Merge "Added more logging on BugreportProgressService."
diff --git a/Android.mk b/Android.mk
index 2c85d4d..9ebc276 100644
--- a/Android.mk
+++ b/Android.mk
@@ -104,6 +104,7 @@
 	core/java/android/app/trust/ITrustListener.aidl \
 	core/java/android/app/backup/IBackupManager.aidl \
 	core/java/android/app/backup/IBackupObserver.aidl \
+	core/java/android/app/backup/IBackupManagerMonitor.aidl \
 	core/java/android/app/backup/IFullBackupRestoreObserver.aidl \
 	core/java/android/app/backup/IRestoreObserver.aidl \
 	core/java/android/app/backup/IRestoreSession.aidl \
@@ -370,6 +371,7 @@
 	core/java/com/android/internal/statusbar/IStatusBar.aidl \
 	core/java/com/android/internal/statusbar/IStatusBarService.aidl \
 	core/java/com/android/internal/textservice/ISpellCheckerService.aidl \
+	core/java/com/android/internal/textservice/ISpellCheckerServiceCallback.aidl \
 	core/java/com/android/internal/textservice/ISpellCheckerSession.aidl \
 	core/java/com/android/internal/textservice/ISpellCheckerSessionListener.aidl \
 	core/java/com/android/internal/textservice/ITextServicesManager.aidl \
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml
index 791f587..a8d3de0 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml
@@ -35,8 +35,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="20px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml
index cca4a52..d991862 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml
@@ -19,8 +19,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="110px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml
index bb9fc5e..3b55b6c 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml
@@ -19,8 +19,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="1010px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml
index e0e5878..64a25c2 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml
@@ -19,8 +19,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="10010px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml
index 4f66805..1f60783 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml
@@ -19,8 +19,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="100010px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml
index d3a4040..54c7e71 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml
@@ -19,8 +19,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="310px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml
index c7982e7..525b2c8 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml
@@ -35,8 +35,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="15px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml
index b009889..470c4da 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml
@@ -19,8 +19,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="60px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml
index f59d751..b8a6e0a 100644
--- a/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml
+++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml
@@ -19,8 +19,7 @@
           android:layout_width="400dp"
           android:layout_height="600dp"
           android:text="@string/long_text"
-          android:textDirection="rtl"
-          android:autoSizeText="xy"
+          android:autoSizeText="uniform"
           android:autoSizeMinTextSize="10px"
           android:textSize="510px"
           android:autoSizeStepGranularity="1px"/>
diff --git a/api/current.txt b/api/current.txt
index 90f300c..88e99e7 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -15,6 +15,7 @@
     field public static final java.lang.String ACCESS_WIFI_STATE = "android.permission.ACCESS_WIFI_STATE";
     field public static final java.lang.String ACCOUNT_MANAGER = "android.permission.ACCOUNT_MANAGER";
     field public static final java.lang.String ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL";
+    field public static final java.lang.String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
     field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS";
     field public static final java.lang.String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE";
     field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
@@ -79,6 +80,7 @@
     field public static final java.lang.String INSTALL_LOCATION_PROVIDER = "android.permission.INSTALL_LOCATION_PROVIDER";
     field public static final java.lang.String INSTALL_PACKAGES = "android.permission.INSTALL_PACKAGES";
     field public static final java.lang.String INSTALL_SHORTCUT = "com.android.launcher.permission.INSTALL_SHORTCUT";
+    field public static final java.lang.String INSTANT_APP_FOREGROUND_SERVICE = "android.permission.INSTANT_APP_FOREGROUND_SERVICE";
     field public static final java.lang.String INTERNET = "android.permission.INTERNET";
     field public static final java.lang.String KILL_BACKGROUND_PROCESSES = "android.permission.KILL_BACKGROUND_PROCESSES";
     field public static final java.lang.String LOCATION_HARDWARE = "android.permission.LOCATION_HARDWARE";
@@ -269,6 +271,7 @@
     field public static final int allowTaskReparenting = 16843268; // 0x1010204
     field public static final int allowUndo = 16843999; // 0x10104df
     field public static final int alpha = 16843551; // 0x101031f
+    field public static final int alphabeticModifiers = 16844112; // 0x1010550
     field public static final int alphabeticShortcut = 16843235; // 0x10101e3
     field public static final int alwaysDrawnWithCache = 16842991; // 0x10100ef
     field public static final int alwaysRetainTaskState = 16843267; // 0x1010203
@@ -298,8 +301,8 @@
     field public static final int autoRemoveFromRecents = 16843847; // 0x1010447
     field public static final int autoSizeMaxTextSize = 16844103; // 0x1010547
     field public static final int autoSizeMinTextSize = 16844088; // 0x1010538
+    field public static final int autoSizePresetSizes = 16844087; // 0x1010537
     field public static final int autoSizeStepGranularity = 16844086; // 0x1010536
-    field public static final int autoSizeStepSizeSet = 16844087; // 0x1010537
     field public static final int autoSizeText = 16844085; // 0x1010535
     field public static final int autoStart = 16843445; // 0x10102b5
     field public static final deprecated int autoText = 16843114; // 0x101016a
@@ -923,6 +926,7 @@
     field public static final int numbersSelectorColor = 16843939; // 0x10104a3
     field public static final int numbersTextColor = 16843937; // 0x10104a1
     field public static final deprecated int numeric = 16843109; // 0x1010165
+    field public static final int numericModifiers = 16844113; // 0x1010551
     field public static final int numericShortcut = 16843236; // 0x10101e4
     field public static final int offset = 16844052; // 0x1010514
     field public static final int onClick = 16843375; // 0x101026f
@@ -3137,6 +3141,7 @@
   public final class AnimatorSet extends android.animation.Animator {
     ctor public AnimatorSet();
     method public java.util.ArrayList<android.animation.Animator> getChildAnimations();
+    method public long getCurrentPlayTime();
     method public long getDuration();
     method public long getStartDelay();
     method public boolean isRunning();
@@ -5099,6 +5104,7 @@
     field public static final java.lang.String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
     field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
     field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
+    field public static final java.lang.String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
     field public static final java.lang.String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
     field public static final java.lang.String EXTRA_COLORIZED = "android.colorized";
     field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
@@ -5501,6 +5507,7 @@
   public final class NotificationChannelGroup implements android.os.Parcelable {
     ctor public NotificationChannelGroup(java.lang.String, java.lang.CharSequence);
     ctor protected NotificationChannelGroup(android.os.Parcel);
+    method public android.app.NotificationChannelGroup clone();
     method public int describeContents();
     method public java.util.List<android.app.NotificationChannel> getChannels();
     method public java.lang.String getId();
@@ -5668,10 +5675,9 @@
   }
 
   public final class RecoverableSecurityException extends java.lang.SecurityException implements android.os.Parcelable {
-    ctor public RecoverableSecurityException(java.lang.Throwable, java.lang.CharSequence, java.lang.CharSequence, android.app.PendingIntent);
+    ctor public RecoverableSecurityException(java.lang.Throwable, java.lang.CharSequence, android.app.RemoteAction);
     method public int describeContents();
-    method public android.app.PendingIntent getUserAction();
-    method public java.lang.CharSequence getUserActionTitle();
+    method public android.app.RemoteAction getUserAction();
     method public java.lang.CharSequence getUserMessage();
     method public void showAsDialog(android.app.Activity);
     method public void showAsNotification(android.content.Context);
@@ -6598,6 +6604,7 @@
   public abstract class BackupAgent extends android.content.ContextWrapper {
     ctor public BackupAgent();
     method public final void fullBackupFile(java.io.File, android.app.backup.FullBackupDataOutput);
+    method public long getBackupQuota();
     method public abstract void onBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) throws java.io.IOException;
     method public void onCreate();
     method public void onDestroy();
@@ -12239,6 +12246,7 @@
     field public int inTargetDensity;
     field public byte[] inTempStorage;
     field public deprecated boolean mCancel;
+    field public android.graphics.Bitmap.Config outConfig;
     field public int outHeight;
     field public java.lang.String outMimeType;
     field public int outWidth;
@@ -12294,13 +12302,18 @@
   public class Canvas {
     ctor public Canvas();
     ctor public Canvas(android.graphics.Bitmap);
-    method public boolean clipPath(android.graphics.Path, android.graphics.Region.Op);
+    method public boolean clipOutPath(android.graphics.Path);
+    method public boolean clipOutRect(android.graphics.RectF);
+    method public boolean clipOutRect(android.graphics.Rect);
+    method public boolean clipOutRect(float, float, float, float);
+    method public boolean clipOutRect(int, int, int, int);
+    method public deprecated boolean clipPath(android.graphics.Path, android.graphics.Region.Op);
     method public boolean clipPath(android.graphics.Path);
-    method public boolean clipRect(android.graphics.RectF, android.graphics.Region.Op);
-    method public boolean clipRect(android.graphics.Rect, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(android.graphics.RectF, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(android.graphics.Rect, android.graphics.Region.Op);
     method public boolean clipRect(android.graphics.RectF);
     method public boolean clipRect(android.graphics.Rect);
-    method public boolean clipRect(float, float, float, float, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(float, float, float, float, android.graphics.Region.Op);
     method public boolean clipRect(float, float, float, float);
     method public boolean clipRect(int, int, int, int);
     method public void concat(android.graphics.Matrix);
@@ -13767,6 +13780,7 @@
     method public static android.graphics.drawable.Icon createWithContentUri(android.net.Uri);
     method public static android.graphics.drawable.Icon createWithData(byte[], int, int);
     method public static android.graphics.drawable.Icon createWithFilePath(java.lang.String);
+    method public static android.graphics.drawable.Icon createWithMaskableBitmap(android.graphics.Bitmap);
     method public static android.graphics.drawable.Icon createWithResource(android.content.Context, int);
     method public static android.graphics.drawable.Icon createWithResource(java.lang.String, int);
     method public int describeContents();
@@ -13850,9 +13864,9 @@
   }
 
   public class MaskableIconDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
-    ctor public MaskableIconDrawable(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
     method public void draw(android.graphics.Canvas);
     method public android.graphics.drawable.Drawable getBackground();
+    method public static float getExtraInsetPercentage();
     method public android.graphics.drawable.Drawable getForeground();
     method public android.graphics.Path getIconMask();
     method public int getOpacity();
@@ -13862,8 +13876,6 @@
     method public void setColorFilter(android.graphics.ColorFilter);
     method public void setOpacity(int);
     method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
-    field public static final float DEFAULT_VIEW_PORT_SCALE = 0.6666667f;
-    field public static final float MASK_SIZE = 100.0f;
   }
 
   public class NinePatchDrawable extends android.graphics.drawable.Drawable {
@@ -31205,6 +31217,9 @@
   }
 
   public class StorageManager {
+    method public void allocateBytes(java.io.File, long, int) throws java.io.IOException;
+    method public void allocateBytes(java.io.FileDescriptor, long, int) throws java.io.IOException;
+    method public long getAllocatableBytes(java.io.File, int) throws java.io.IOException;
     method public long getCacheQuotaBytes();
     method public long getCacheSizeBytes();
     method public long getExternalCacheQuotaBytes();
@@ -31223,6 +31238,7 @@
     method public void setCacheBehaviorTombstone(java.io.File, boolean) throws java.io.IOException;
     method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
     field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
+    field public static final int FLAG_ALLOCATE_AGGRESSIVE = 1; // 0x1
   }
 
   public final class StorageVolume implements android.os.Parcelable {
@@ -34060,6 +34076,7 @@
     field public static final java.lang.String ACTION_APPLICATION_DETAILS_SETTINGS = "android.settings.APPLICATION_DETAILS_SETTINGS";
     field public static final java.lang.String ACTION_APPLICATION_DEVELOPMENT_SETTINGS = "android.settings.APPLICATION_DEVELOPMENT_SETTINGS";
     field public static final java.lang.String ACTION_APPLICATION_SETTINGS = "android.settings.APPLICATION_SETTINGS";
+    field public static final java.lang.String ACTION_APP_NOTIFICATION_SETTINGS = "android.settings.APP_NOTIFICATION_SETTINGS";
     field public static final java.lang.String ACTION_BATTERY_SAVER_SETTINGS = "android.settings.BATTERY_SAVER_SETTINGS";
     field public static final java.lang.String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS";
     field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
@@ -36758,6 +36775,7 @@
     method public boolean onKeyUp(int, android.view.KeyEvent);
     method public void onLockscreenShown();
     method public void onLowMemory();
+    method public void onPrepareShow(android.os.Bundle, int);
     method public void onRequestAbortVoice(android.service.voice.VoiceInteractionSession.AbortVoiceRequest);
     method public void onRequestCommand(android.service.voice.VoiceInteractionSession.CommandRequest);
     method public void onRequestCompleteVoice(android.service.voice.VoiceInteractionSession.CompleteVoiceRequest);
@@ -36771,7 +36789,9 @@
     method public void setDisabledShowContext(int);
     method public void setKeepAwake(boolean);
     method public void setTheme(int);
+    method public void setUiEnabled(boolean);
     method public void show(android.os.Bundle, int);
+    method public void startAssistantActivity(android.content.Intent);
     method public void startVoiceActivity(android.content.Intent);
     field public static final int SHOW_SOURCE_ACTIVITY = 16; // 0x10
     field public static final int SHOW_SOURCE_APPLICATION = 8; // 0x8
@@ -41002,19 +41022,23 @@
   }
 
   public class DateKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DateKeyListener();
+    ctor public deprecated DateKeyListener();
+    ctor public DateKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DateKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.DateKeyListener getInstance();
+    method public static android.text.method.DateKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class DateTimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DateTimeKeyListener();
+    ctor public deprecated DateTimeKeyListener();
+    ctor public DateTimeKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DateTimeKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.DateTimeKeyListener getInstance();
+    method public static android.text.method.DateTimeKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class DialerKeyListener extends android.text.method.NumberKeyListener {
@@ -41026,12 +41050,16 @@
   }
 
   public class DigitsKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DigitsKeyListener();
-    ctor public DigitsKeyListener(boolean, boolean);
+    ctor public deprecated DigitsKeyListener();
+    ctor public deprecated DigitsKeyListener(boolean, boolean);
+    ctor public DigitsKeyListener(java.util.Locale);
+    ctor public DigitsKeyListener(java.util.Locale, boolean, boolean);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DigitsKeyListener getInstance();
-    method public static android.text.method.DigitsKeyListener getInstance(boolean, boolean);
+    method public static deprecated android.text.method.DigitsKeyListener getInstance();
+    method public static deprecated android.text.method.DigitsKeyListener getInstance(boolean, boolean);
+    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale);
+    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale, boolean, boolean);
     method public static android.text.method.DigitsKeyListener getInstance(java.lang.String);
   }
 
@@ -41175,11 +41203,13 @@
   }
 
   public class TimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public TimeKeyListener();
+    ctor public deprecated TimeKeyListener();
+    ctor public TimeKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.TimeKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.TimeKeyListener getInstance();
+    method public static android.text.method.TimeKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class Touch {
@@ -43819,6 +43849,7 @@
     field public static final int FLAG_APPEND_TO_GROUP = 1; // 0x1
     field public static final int FLAG_PERFORM_NO_CLOSE = 1; // 0x1
     field public static final int NONE = 0; // 0x0
+    field public static final int SUPPORTED_MODIFIERS_MASK = 69647; // 0x1100f
   }
 
   public class MenuInflater {
@@ -43831,6 +43862,7 @@
     method public abstract boolean expandActionView();
     method public abstract android.view.ActionProvider getActionProvider();
     method public abstract android.view.View getActionView();
+    method public default int getAlphabeticModifiers();
     method public abstract char getAlphabeticShortcut();
     method public default java.lang.CharSequence getContentDescription();
     method public abstract int getGroupId();
@@ -43838,6 +43870,7 @@
     method public abstract android.content.Intent getIntent();
     method public abstract int getItemId();
     method public abstract android.view.ContextMenu.ContextMenuInfo getMenuInfo();
+    method public default int getNumericModifiers();
     method public abstract char getNumericShortcut();
     method public abstract int getOrder();
     method public abstract android.view.SubMenu getSubMenu();
@@ -43854,6 +43887,7 @@
     method public abstract android.view.MenuItem setActionView(android.view.View);
     method public abstract android.view.MenuItem setActionView(int);
     method public abstract android.view.MenuItem setAlphabeticShortcut(char);
+    method public default android.view.MenuItem setAlphabeticShortcut(char, int);
     method public abstract android.view.MenuItem setCheckable(boolean);
     method public abstract android.view.MenuItem setChecked(boolean);
     method public default android.view.MenuItem setContentDescription(java.lang.CharSequence);
@@ -43862,9 +43896,11 @@
     method public abstract android.view.MenuItem setIcon(int);
     method public abstract android.view.MenuItem setIntent(android.content.Intent);
     method public abstract android.view.MenuItem setNumericShortcut(char);
+    method public default android.view.MenuItem setNumericShortcut(char, int);
     method public abstract android.view.MenuItem setOnActionExpandListener(android.view.MenuItem.OnActionExpandListener);
     method public abstract android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener);
     method public abstract android.view.MenuItem setShortcut(char, char);
+    method public default android.view.MenuItem setShortcut(char, char, int, int);
     method public abstract void setShowAsAction(int);
     method public abstract android.view.MenuItem setShowAsActionFlags(int);
     method public abstract android.view.MenuItem setTitle(java.lang.CharSequence);
@@ -47318,6 +47354,7 @@
     field public static final java.lang.String TYPE_EMAIL = "email";
     field public static final java.lang.String TYPE_OTHER = "other";
     field public static final java.lang.String TYPE_PHONE = "phone";
+    field public static final java.lang.String TYPE_URL = "url";
   }
 
   public static abstract class TextClassifier.EntityType implements java.lang.annotation.Annotation {
@@ -50369,7 +50406,7 @@
     method public int getAutoSizeMaxTextSize();
     method public int getAutoSizeMinTextSize();
     method public int getAutoSizeStepGranularity();
-    method public int[] getAutoSizeTextPresetSizes();
+    method public int[] getAutoSizeTextAvailableSizes();
     method public int getAutoSizeTextType();
     method public int getBreakStrategy();
     method public int getCompoundDrawablePadding();
@@ -50577,7 +50614,7 @@
     method public void setTypeface(android.graphics.Typeface);
     method public void setWidth(int);
     field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
-    field public static final int AUTO_SIZE_TEXT_TYPE_XY = 1; // 0x1
+    field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
   }
 
   public static final class TextView.BufferType extends java.lang.Enum {
diff --git a/api/system-current.txt b/api/system-current.txt
index 377fad4..ee6814b 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -23,6 +23,7 @@
     field public static final java.lang.String ACCESS_WIFI_STATE = "android.permission.ACCESS_WIFI_STATE";
     field public static final java.lang.String ACCOUNT_MANAGER = "android.permission.ACCOUNT_MANAGER";
     field public static final java.lang.String ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL";
+    field public static final java.lang.String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
     field public static final java.lang.String ALLOW_ANY_CODEC_FOR_PLAYBACK = "android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK";
     field public static final java.lang.String BACKUP = "android.permission.BACKUP";
     field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS";
@@ -121,6 +122,7 @@
     field public static final java.lang.String INSTALL_LOCATION_PROVIDER = "android.permission.INSTALL_LOCATION_PROVIDER";
     field public static final java.lang.String INSTALL_PACKAGES = "android.permission.INSTALL_PACKAGES";
     field public static final java.lang.String INSTALL_SHORTCUT = "com.android.launcher.permission.INSTALL_SHORTCUT";
+    field public static final java.lang.String INSTANT_APP_FOREGROUND_SERVICE = "android.permission.INSTANT_APP_FOREGROUND_SERVICE";
     field public static final java.lang.String INTENT_FILTER_VERIFICATION_AGENT = "android.permission.INTENT_FILTER_VERIFICATION_AGENT";
     field public static final java.lang.String INTERACT_ACROSS_USERS = "android.permission.INTERACT_ACROSS_USERS";
     field public static final java.lang.String INTERACT_ACROSS_USERS_FULL = "android.permission.INTERACT_ACROSS_USERS_FULL";
@@ -381,6 +383,7 @@
     field public static final int allowTaskReparenting = 16843268; // 0x1010204
     field public static final int allowUndo = 16843999; // 0x10104df
     field public static final int alpha = 16843551; // 0x101031f
+    field public static final int alphabeticModifiers = 16844112; // 0x1010550
     field public static final int alphabeticShortcut = 16843235; // 0x10101e3
     field public static final int alwaysDrawnWithCache = 16842991; // 0x10100ef
     field public static final int alwaysRetainTaskState = 16843267; // 0x1010203
@@ -410,8 +413,8 @@
     field public static final int autoRemoveFromRecents = 16843847; // 0x1010447
     field public static final int autoSizeMaxTextSize = 16844103; // 0x1010547
     field public static final int autoSizeMinTextSize = 16844088; // 0x1010538
+    field public static final int autoSizePresetSizes = 16844087; // 0x1010537
     field public static final int autoSizeStepGranularity = 16844086; // 0x1010536
-    field public static final int autoSizeStepSizeSet = 16844087; // 0x1010537
     field public static final int autoSizeText = 16844085; // 0x1010535
     field public static final int autoStart = 16843445; // 0x10102b5
     field public static final deprecated int autoText = 16843114; // 0x101016a
@@ -1035,6 +1038,7 @@
     field public static final int numbersSelectorColor = 16843939; // 0x10104a3
     field public static final int numbersTextColor = 16843937; // 0x10104a1
     field public static final deprecated int numeric = 16843109; // 0x1010165
+    field public static final int numericModifiers = 16844113; // 0x1010551
     field public static final int numericShortcut = 16843236; // 0x10101e4
     field public static final int offset = 16844052; // 0x1010514
     field public static final int onClick = 16843375; // 0x101026f
@@ -3257,6 +3261,7 @@
   public final class AnimatorSet extends android.animation.Animator {
     ctor public AnimatorSet();
     method public java.util.ArrayList<android.animation.Animator> getChildAnimations();
+    method public long getCurrentPlayTime();
     method public long getDuration();
     method public long getStartDelay();
     method public boolean isRunning();
@@ -5260,6 +5265,7 @@
     field public static final java.lang.String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
     field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
     field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
+    field public static final java.lang.String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
     field public static final java.lang.String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
     field public static final java.lang.String EXTRA_COLORIZED = "android.colorized";
     field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
@@ -5695,6 +5701,7 @@
     ctor public NotificationChannelGroup(java.lang.String, java.lang.CharSequence);
     ctor protected NotificationChannelGroup(android.os.Parcel);
     method public void addChannel(android.app.NotificationChannel);
+    method public android.app.NotificationChannelGroup clone();
     method public int describeContents();
     method public java.util.List<android.app.NotificationChannel> getChannels();
     method public java.lang.String getId();
@@ -5864,10 +5871,9 @@
   }
 
   public final class RecoverableSecurityException extends java.lang.SecurityException implements android.os.Parcelable {
-    ctor public RecoverableSecurityException(java.lang.Throwable, java.lang.CharSequence, java.lang.CharSequence, android.app.PendingIntent);
+    ctor public RecoverableSecurityException(java.lang.Throwable, java.lang.CharSequence, android.app.RemoteAction);
     method public int describeContents();
-    method public android.app.PendingIntent getUserAction();
-    method public java.lang.CharSequence getUserActionTitle();
+    method public android.app.RemoteAction getUserAction();
     method public java.lang.CharSequence getUserMessage();
     method public void showAsDialog(android.app.Activity);
     method public void showAsNotification(android.content.Context);
@@ -6835,6 +6841,7 @@
   public abstract class BackupAgent extends android.content.ContextWrapper {
     ctor public BackupAgent();
     method public final void fullBackupFile(java.io.File, android.app.backup.FullBackupDataOutput);
+    method public long getBackupQuota();
     method public abstract void onBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) throws java.io.IOException;
     method public void onCreate();
     method public void onDestroy();
@@ -6893,8 +6900,9 @@
     method public boolean isBackupEnabled();
     method public java.lang.String[] listAllTransports();
     method public int requestBackup(java.lang.String[], android.app.backup.BackupObserver);
-    method public int requestBackup(java.lang.String[], android.app.backup.BackupObserver, int);
+    method public int requestBackup(java.lang.String[], android.app.backup.BackupObserver, android.app.backup.BackupManagerMonitor, int);
     method public int requestRestore(android.app.backup.RestoreObserver);
+    method public int requestRestore(android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
     method public deprecated java.lang.String selectBackupTransport(java.lang.String);
     method public void selectBackupTransport(android.content.ComponentName, android.app.backup.SelectBackupTransportCallback);
     method public void setAutoRestore(boolean);
@@ -6912,6 +6920,23 @@
     field public static final int SUCCESS = 0; // 0x0
   }
 
+  public class BackupManagerMonitor {
+    ctor public BackupManagerMonitor();
+    method public void onEvent(android.os.Bundle);
+    field public static final java.lang.String EXTRA_LOG_EVENT_CATEGORY = "android.app.backup.extra.LOG_EVENT_CATEGORY";
+    field public static final java.lang.String EXTRA_LOG_EVENT_ID = "android.app.backup.extra.LOG_EVENT_ID";
+    field public static final java.lang.String EXTRA_LOG_EVENT_PACKAGE_NAME = "android.app.backup.extra.LOG_EVENT_PACKAGE_NAME";
+    field public static final java.lang.String EXTRA_LOG_EVENT_PACKAGE_VERSION = "android.app.backup.extra.LOG_EVENT_PACKAGE_VERSION";
+    field public static final int LOG_EVENT_CATEGORY_AGENT = 2; // 0x2
+    field public static final int LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY = 3; // 0x3
+    field public static final int LOG_EVENT_CATEGORY_TRANSPORT = 1; // 0x1
+    field public static final int LOG_EVENT_ID_FULL_BACKUP_TIMEOUT = 4; // 0x4
+    field public static final int LOG_EVENT_ID_FULL_RESTORE_TIMEOUT = 45; // 0x2d
+    field public static final int LOG_EVENT_ID_KEY_VALUE_BACKUP_TIMEOUT = 21; // 0x15
+    field public static final int LOG_EVENT_ID_KEY_VALUE_RESTORE_TIMEOUT = 31; // 0x1f
+    field public static final int LOG_EVENT_ID_NO_PACKAGES = 49; // 0x31
+  }
+
   public abstract class BackupObserver {
     ctor public BackupObserver();
     method public void backupFinished(int);
@@ -7005,8 +7030,11 @@
 
   public class RestoreSession {
     method public void endRestoreSession();
+    method public int getAvailableRestoreSets(android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
     method public int getAvailableRestoreSets(android.app.backup.RestoreObserver);
+    method public int restoreAll(long, android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
     method public int restoreAll(long, android.app.backup.RestoreObserver);
+    method public int restorePackage(java.lang.String, android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
     method public int restorePackage(java.lang.String, android.app.backup.RestoreObserver);
   }
 
@@ -12807,6 +12835,7 @@
     field public int inTargetDensity;
     field public byte[] inTempStorage;
     field public deprecated boolean mCancel;
+    field public android.graphics.Bitmap.Config outConfig;
     field public int outHeight;
     field public java.lang.String outMimeType;
     field public int outWidth;
@@ -12862,13 +12891,18 @@
   public class Canvas {
     ctor public Canvas();
     ctor public Canvas(android.graphics.Bitmap);
-    method public boolean clipPath(android.graphics.Path, android.graphics.Region.Op);
+    method public boolean clipOutPath(android.graphics.Path);
+    method public boolean clipOutRect(android.graphics.RectF);
+    method public boolean clipOutRect(android.graphics.Rect);
+    method public boolean clipOutRect(float, float, float, float);
+    method public boolean clipOutRect(int, int, int, int);
+    method public deprecated boolean clipPath(android.graphics.Path, android.graphics.Region.Op);
     method public boolean clipPath(android.graphics.Path);
-    method public boolean clipRect(android.graphics.RectF, android.graphics.Region.Op);
-    method public boolean clipRect(android.graphics.Rect, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(android.graphics.RectF, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(android.graphics.Rect, android.graphics.Region.Op);
     method public boolean clipRect(android.graphics.RectF);
     method public boolean clipRect(android.graphics.Rect);
-    method public boolean clipRect(float, float, float, float, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(float, float, float, float, android.graphics.Region.Op);
     method public boolean clipRect(float, float, float, float);
     method public boolean clipRect(int, int, int, int);
     method public void concat(android.graphics.Matrix);
@@ -14335,6 +14369,7 @@
     method public static android.graphics.drawable.Icon createWithContentUri(android.net.Uri);
     method public static android.graphics.drawable.Icon createWithData(byte[], int, int);
     method public static android.graphics.drawable.Icon createWithFilePath(java.lang.String);
+    method public static android.graphics.drawable.Icon createWithMaskableBitmap(android.graphics.Bitmap);
     method public static android.graphics.drawable.Icon createWithResource(android.content.Context, int);
     method public static android.graphics.drawable.Icon createWithResource(java.lang.String, int);
     method public int describeContents();
@@ -14418,9 +14453,9 @@
   }
 
   public class MaskableIconDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
-    ctor public MaskableIconDrawable(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
     method public void draw(android.graphics.Canvas);
     method public android.graphics.drawable.Drawable getBackground();
+    method public static float getExtraInsetPercentage();
     method public android.graphics.drawable.Drawable getForeground();
     method public android.graphics.Path getIconMask();
     method public int getOpacity();
@@ -14430,8 +14465,6 @@
     method public void setColorFilter(android.graphics.ColorFilter);
     method public void setOpacity(int);
     method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
-    field public static final float DEFAULT_VIEW_PORT_SCALE = 0.6666667f;
-    field public static final float MASK_SIZE = 100.0f;
   }
 
   public class NinePatchDrawable extends android.graphics.drawable.Drawable {
@@ -34054,6 +34087,9 @@
   }
 
   public class StorageManager {
+    method public void allocateBytes(java.io.File, long, int) throws java.io.IOException;
+    method public void allocateBytes(java.io.FileDescriptor, long, int) throws java.io.IOException;
+    method public long getAllocatableBytes(java.io.File, int) throws java.io.IOException;
     method public long getCacheQuotaBytes();
     method public long getCacheSizeBytes();
     method public long getExternalCacheQuotaBytes();
@@ -34072,6 +34108,7 @@
     method public void setCacheBehaviorTombstone(java.io.File, boolean) throws java.io.IOException;
     method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
     field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
+    field public static final int FLAG_ALLOCATE_AGGRESSIVE = 1; // 0x1
   }
 
   public final class StorageVolume implements android.os.Parcelable {
@@ -39856,6 +39893,7 @@
     method public boolean onKeyUp(int, android.view.KeyEvent);
     method public void onLockscreenShown();
     method public void onLowMemory();
+    method public void onPrepareShow(android.os.Bundle, int);
     method public void onRequestAbortVoice(android.service.voice.VoiceInteractionSession.AbortVoiceRequest);
     method public void onRequestCommand(android.service.voice.VoiceInteractionSession.CommandRequest);
     method public void onRequestCompleteVoice(android.service.voice.VoiceInteractionSession.CompleteVoiceRequest);
@@ -39869,7 +39907,9 @@
     method public void setDisabledShowContext(int);
     method public void setKeepAwake(boolean);
     method public void setTheme(int);
+    method public void setUiEnabled(boolean);
     method public void show(android.os.Bundle, int);
+    method public void startAssistantActivity(android.content.Intent);
     method public void startVoiceActivity(android.content.Intent);
     field public static final int SHOW_SOURCE_ACTIVITY = 16; // 0x10
     field public static final int SHOW_SOURCE_APPLICATION = 8; // 0x8
@@ -44417,19 +44457,23 @@
   }
 
   public class DateKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DateKeyListener();
+    ctor public deprecated DateKeyListener();
+    ctor public DateKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DateKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.DateKeyListener getInstance();
+    method public static android.text.method.DateKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class DateTimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DateTimeKeyListener();
+    ctor public deprecated DateTimeKeyListener();
+    ctor public DateTimeKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DateTimeKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.DateTimeKeyListener getInstance();
+    method public static android.text.method.DateTimeKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class DialerKeyListener extends android.text.method.NumberKeyListener {
@@ -44441,12 +44485,16 @@
   }
 
   public class DigitsKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DigitsKeyListener();
-    ctor public DigitsKeyListener(boolean, boolean);
+    ctor public deprecated DigitsKeyListener();
+    ctor public deprecated DigitsKeyListener(boolean, boolean);
+    ctor public DigitsKeyListener(java.util.Locale);
+    ctor public DigitsKeyListener(java.util.Locale, boolean, boolean);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DigitsKeyListener getInstance();
-    method public static android.text.method.DigitsKeyListener getInstance(boolean, boolean);
+    method public static deprecated android.text.method.DigitsKeyListener getInstance();
+    method public static deprecated android.text.method.DigitsKeyListener getInstance(boolean, boolean);
+    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale);
+    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale, boolean, boolean);
     method public static android.text.method.DigitsKeyListener getInstance(java.lang.String);
   }
 
@@ -44590,11 +44638,13 @@
   }
 
   public class TimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public TimeKeyListener();
+    ctor public deprecated TimeKeyListener();
+    ctor public TimeKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.TimeKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.TimeKeyListener getInstance();
+    method public static android.text.method.TimeKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class Touch {
@@ -47235,6 +47285,7 @@
     field public static final int FLAG_APPEND_TO_GROUP = 1; // 0x1
     field public static final int FLAG_PERFORM_NO_CLOSE = 1; // 0x1
     field public static final int NONE = 0; // 0x0
+    field public static final int SUPPORTED_MODIFIERS_MASK = 69647; // 0x1100f
   }
 
   public class MenuInflater {
@@ -47247,6 +47298,7 @@
     method public abstract boolean expandActionView();
     method public abstract android.view.ActionProvider getActionProvider();
     method public abstract android.view.View getActionView();
+    method public default int getAlphabeticModifiers();
     method public abstract char getAlphabeticShortcut();
     method public default java.lang.CharSequence getContentDescription();
     method public abstract int getGroupId();
@@ -47254,6 +47306,7 @@
     method public abstract android.content.Intent getIntent();
     method public abstract int getItemId();
     method public abstract android.view.ContextMenu.ContextMenuInfo getMenuInfo();
+    method public default int getNumericModifiers();
     method public abstract char getNumericShortcut();
     method public abstract int getOrder();
     method public abstract android.view.SubMenu getSubMenu();
@@ -47270,6 +47323,7 @@
     method public abstract android.view.MenuItem setActionView(android.view.View);
     method public abstract android.view.MenuItem setActionView(int);
     method public abstract android.view.MenuItem setAlphabeticShortcut(char);
+    method public default android.view.MenuItem setAlphabeticShortcut(char, int);
     method public abstract android.view.MenuItem setCheckable(boolean);
     method public abstract android.view.MenuItem setChecked(boolean);
     method public default android.view.MenuItem setContentDescription(java.lang.CharSequence);
@@ -47278,9 +47332,11 @@
     method public abstract android.view.MenuItem setIcon(int);
     method public abstract android.view.MenuItem setIntent(android.content.Intent);
     method public abstract android.view.MenuItem setNumericShortcut(char);
+    method public default android.view.MenuItem setNumericShortcut(char, int);
     method public abstract android.view.MenuItem setOnActionExpandListener(android.view.MenuItem.OnActionExpandListener);
     method public abstract android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener);
     method public abstract android.view.MenuItem setShortcut(char, char);
+    method public default android.view.MenuItem setShortcut(char, char, int, int);
     method public abstract void setShowAsAction(int);
     method public abstract android.view.MenuItem setShowAsActionFlags(int);
     method public abstract android.view.MenuItem setTitle(java.lang.CharSequence);
@@ -50737,6 +50793,7 @@
     field public static final java.lang.String TYPE_EMAIL = "email";
     field public static final java.lang.String TYPE_OTHER = "other";
     field public static final java.lang.String TYPE_PHONE = "phone";
+    field public static final java.lang.String TYPE_URL = "url";
   }
 
   public static abstract class TextClassifier.EntityType implements java.lang.annotation.Annotation {
@@ -54149,7 +54206,7 @@
     method public int getAutoSizeMaxTextSize();
     method public int getAutoSizeMinTextSize();
     method public int getAutoSizeStepGranularity();
-    method public int[] getAutoSizeTextPresetSizes();
+    method public int[] getAutoSizeTextAvailableSizes();
     method public int getAutoSizeTextType();
     method public int getBreakStrategy();
     method public int getCompoundDrawablePadding();
@@ -54357,7 +54414,7 @@
     method public void setTypeface(android.graphics.Typeface);
     method public void setWidth(int);
     field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
-    field public static final int AUTO_SIZE_TEXT_TYPE_XY = 1; // 0x1
+    field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
   }
 
   public static final class TextView.BufferType extends java.lang.Enum {
diff --git a/api/test-current.txt b/api/test-current.txt
index 9cf005d..49b6f61 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -15,6 +15,7 @@
     field public static final java.lang.String ACCESS_WIFI_STATE = "android.permission.ACCESS_WIFI_STATE";
     field public static final java.lang.String ACCOUNT_MANAGER = "android.permission.ACCOUNT_MANAGER";
     field public static final java.lang.String ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL";
+    field public static final java.lang.String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
     field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS";
     field public static final java.lang.String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE";
     field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
@@ -79,6 +80,7 @@
     field public static final java.lang.String INSTALL_LOCATION_PROVIDER = "android.permission.INSTALL_LOCATION_PROVIDER";
     field public static final java.lang.String INSTALL_PACKAGES = "android.permission.INSTALL_PACKAGES";
     field public static final java.lang.String INSTALL_SHORTCUT = "com.android.launcher.permission.INSTALL_SHORTCUT";
+    field public static final java.lang.String INSTANT_APP_FOREGROUND_SERVICE = "android.permission.INSTANT_APP_FOREGROUND_SERVICE";
     field public static final java.lang.String INTERNET = "android.permission.INTERNET";
     field public static final java.lang.String KILL_BACKGROUND_PROCESSES = "android.permission.KILL_BACKGROUND_PROCESSES";
     field public static final java.lang.String LOCATION_HARDWARE = "android.permission.LOCATION_HARDWARE";
@@ -269,6 +271,7 @@
     field public static final int allowTaskReparenting = 16843268; // 0x1010204
     field public static final int allowUndo = 16843999; // 0x10104df
     field public static final int alpha = 16843551; // 0x101031f
+    field public static final int alphabeticModifiers = 16844112; // 0x1010550
     field public static final int alphabeticShortcut = 16843235; // 0x10101e3
     field public static final int alwaysDrawnWithCache = 16842991; // 0x10100ef
     field public static final int alwaysRetainTaskState = 16843267; // 0x1010203
@@ -298,8 +301,8 @@
     field public static final int autoRemoveFromRecents = 16843847; // 0x1010447
     field public static final int autoSizeMaxTextSize = 16844103; // 0x1010547
     field public static final int autoSizeMinTextSize = 16844088; // 0x1010538
+    field public static final int autoSizePresetSizes = 16844087; // 0x1010537
     field public static final int autoSizeStepGranularity = 16844086; // 0x1010536
-    field public static final int autoSizeStepSizeSet = 16844087; // 0x1010537
     field public static final int autoSizeText = 16844085; // 0x1010535
     field public static final int autoStart = 16843445; // 0x10102b5
     field public static final deprecated int autoText = 16843114; // 0x101016a
@@ -923,6 +926,7 @@
     field public static final int numbersSelectorColor = 16843939; // 0x10104a3
     field public static final int numbersTextColor = 16843937; // 0x10104a1
     field public static final deprecated int numeric = 16843109; // 0x1010165
+    field public static final int numericModifiers = 16844113; // 0x1010551
     field public static final int numericShortcut = 16843236; // 0x10101e4
     field public static final int offset = 16844052; // 0x1010514
     field public static final int onClick = 16843375; // 0x101026f
@@ -3137,6 +3141,7 @@
   public final class AnimatorSet extends android.animation.Animator {
     ctor public AnimatorSet();
     method public java.util.ArrayList<android.animation.Animator> getChildAnimations();
+    method public long getCurrentPlayTime();
     method public long getDuration();
     method public long getStartDelay();
     method public boolean isRunning();
@@ -5109,6 +5114,7 @@
     field public static final java.lang.String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
     field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
     field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
+    field public static final java.lang.String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
     field public static final java.lang.String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
     field public static final java.lang.String EXTRA_COLORIZED = "android.colorized";
     field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
@@ -5511,6 +5517,7 @@
   public final class NotificationChannelGroup implements android.os.Parcelable {
     ctor public NotificationChannelGroup(java.lang.String, java.lang.CharSequence);
     ctor protected NotificationChannelGroup(android.os.Parcel);
+    method public android.app.NotificationChannelGroup clone();
     method public int describeContents();
     method public java.util.List<android.app.NotificationChannel> getChannels();
     method public java.lang.String getId();
@@ -5679,10 +5686,9 @@
   }
 
   public final class RecoverableSecurityException extends java.lang.SecurityException implements android.os.Parcelable {
-    ctor public RecoverableSecurityException(java.lang.Throwable, java.lang.CharSequence, java.lang.CharSequence, android.app.PendingIntent);
+    ctor public RecoverableSecurityException(java.lang.Throwable, java.lang.CharSequence, android.app.RemoteAction);
     method public int describeContents();
-    method public android.app.PendingIntent getUserAction();
-    method public java.lang.CharSequence getUserActionTitle();
+    method public android.app.RemoteAction getUserAction();
     method public java.lang.CharSequence getUserMessage();
     method public void showAsDialog(android.app.Activity);
     method public void showAsNotification(android.content.Context);
@@ -6621,6 +6627,7 @@
   public abstract class BackupAgent extends android.content.ContextWrapper {
     ctor public BackupAgent();
     method public final void fullBackupFile(java.io.File, android.app.backup.FullBackupDataOutput);
+    method public long getBackupQuota();
     method public abstract void onBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) throws java.io.IOException;
     method public void onCreate();
     method public void onDestroy();
@@ -12273,6 +12280,7 @@
     field public int inTargetDensity;
     field public byte[] inTempStorage;
     field public deprecated boolean mCancel;
+    field public android.graphics.Bitmap.Config outConfig;
     field public int outHeight;
     field public java.lang.String outMimeType;
     field public int outWidth;
@@ -12328,13 +12336,18 @@
   public class Canvas {
     ctor public Canvas();
     ctor public Canvas(android.graphics.Bitmap);
-    method public boolean clipPath(android.graphics.Path, android.graphics.Region.Op);
+    method public boolean clipOutPath(android.graphics.Path);
+    method public boolean clipOutRect(android.graphics.RectF);
+    method public boolean clipOutRect(android.graphics.Rect);
+    method public boolean clipOutRect(float, float, float, float);
+    method public boolean clipOutRect(int, int, int, int);
+    method public deprecated boolean clipPath(android.graphics.Path, android.graphics.Region.Op);
     method public boolean clipPath(android.graphics.Path);
-    method public boolean clipRect(android.graphics.RectF, android.graphics.Region.Op);
-    method public boolean clipRect(android.graphics.Rect, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(android.graphics.RectF, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(android.graphics.Rect, android.graphics.Region.Op);
     method public boolean clipRect(android.graphics.RectF);
     method public boolean clipRect(android.graphics.Rect);
-    method public boolean clipRect(float, float, float, float, android.graphics.Region.Op);
+    method public deprecated boolean clipRect(float, float, float, float, android.graphics.Region.Op);
     method public boolean clipRect(float, float, float, float);
     method public boolean clipRect(int, int, int, int);
     method public void concat(android.graphics.Matrix);
@@ -13801,6 +13814,7 @@
     method public static android.graphics.drawable.Icon createWithContentUri(android.net.Uri);
     method public static android.graphics.drawable.Icon createWithData(byte[], int, int);
     method public static android.graphics.drawable.Icon createWithFilePath(java.lang.String);
+    method public static android.graphics.drawable.Icon createWithMaskableBitmap(android.graphics.Bitmap);
     method public static android.graphics.drawable.Icon createWithResource(android.content.Context, int);
     method public static android.graphics.drawable.Icon createWithResource(java.lang.String, int);
     method public int describeContents();
@@ -13884,20 +13898,19 @@
   }
 
   public class MaskableIconDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
-    ctor public MaskableIconDrawable(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
     method public void draw(android.graphics.Canvas);
     method public android.graphics.drawable.Drawable getBackground();
+    method public static float getExtraInsetPercentage();
     method public android.graphics.drawable.Drawable getForeground();
     method public android.graphics.Path getIconMask();
     method public int getOpacity();
+    method public android.graphics.Region getSafeZone();
     method public void invalidateDrawable(android.graphics.drawable.Drawable);
     method public void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
     method public void setAlpha(int);
     method public void setColorFilter(android.graphics.ColorFilter);
     method public void setOpacity(int);
     method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
-    field public static final float DEFAULT_VIEW_PORT_SCALE = 0.6666667f;
-    field public static final float MASK_SIZE = 100.0f;
   }
 
   public class NinePatchDrawable extends android.graphics.drawable.Drawable {
@@ -31320,6 +31333,9 @@
   }
 
   public class StorageManager {
+    method public void allocateBytes(java.io.File, long, int) throws java.io.IOException;
+    method public void allocateBytes(java.io.FileDescriptor, long, int) throws java.io.IOException;
+    method public long getAllocatableBytes(java.io.File, int) throws java.io.IOException;
     method public long getCacheQuotaBytes();
     method public long getCacheSizeBytes();
     method public long getExternalCacheQuotaBytes();
@@ -31338,6 +31354,7 @@
     method public void setCacheBehaviorTombstone(java.io.File, boolean) throws java.io.IOException;
     method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
     field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
+    field public static final int FLAG_ALLOCATE_AGGRESSIVE = 1; // 0x1
   }
 
   public final class StorageVolume implements android.os.Parcelable {
@@ -34178,6 +34195,7 @@
     field public static final java.lang.String ACTION_APPLICATION_DETAILS_SETTINGS = "android.settings.APPLICATION_DETAILS_SETTINGS";
     field public static final java.lang.String ACTION_APPLICATION_DEVELOPMENT_SETTINGS = "android.settings.APPLICATION_DEVELOPMENT_SETTINGS";
     field public static final java.lang.String ACTION_APPLICATION_SETTINGS = "android.settings.APPLICATION_SETTINGS";
+    field public static final java.lang.String ACTION_APP_NOTIFICATION_SETTINGS = "android.settings.APP_NOTIFICATION_SETTINGS";
     field public static final java.lang.String ACTION_BATTERY_SAVER_SETTINGS = "android.settings.BATTERY_SAVER_SETTINGS";
     field public static final java.lang.String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS";
     field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
@@ -36893,6 +36911,7 @@
     method public boolean onKeyUp(int, android.view.KeyEvent);
     method public void onLockscreenShown();
     method public void onLowMemory();
+    method public void onPrepareShow(android.os.Bundle, int);
     method public void onRequestAbortVoice(android.service.voice.VoiceInteractionSession.AbortVoiceRequest);
     method public void onRequestCommand(android.service.voice.VoiceInteractionSession.CommandRequest);
     method public void onRequestCompleteVoice(android.service.voice.VoiceInteractionSession.CompleteVoiceRequest);
@@ -36906,7 +36925,9 @@
     method public void setDisabledShowContext(int);
     method public void setKeepAwake(boolean);
     method public void setTheme(int);
+    method public void setUiEnabled(boolean);
     method public void show(android.os.Bundle, int);
+    method public void startAssistantActivity(android.content.Intent);
     method public void startVoiceActivity(android.content.Intent);
     field public static final int SHOW_SOURCE_ACTIVITY = 16; // 0x10
     field public static final int SHOW_SOURCE_APPLICATION = 8; // 0x8
@@ -41141,19 +41162,23 @@
   }
 
   public class DateKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DateKeyListener();
+    ctor public deprecated DateKeyListener();
+    ctor public DateKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DateKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.DateKeyListener getInstance();
+    method public static android.text.method.DateKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class DateTimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DateTimeKeyListener();
+    ctor public deprecated DateTimeKeyListener();
+    ctor public DateTimeKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DateTimeKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.DateTimeKeyListener getInstance();
+    method public static android.text.method.DateTimeKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class DialerKeyListener extends android.text.method.NumberKeyListener {
@@ -41165,12 +41190,16 @@
   }
 
   public class DigitsKeyListener extends android.text.method.NumberKeyListener {
-    ctor public DigitsKeyListener();
-    ctor public DigitsKeyListener(boolean, boolean);
+    ctor public deprecated DigitsKeyListener();
+    ctor public deprecated DigitsKeyListener(boolean, boolean);
+    ctor public DigitsKeyListener(java.util.Locale);
+    ctor public DigitsKeyListener(java.util.Locale, boolean, boolean);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.DigitsKeyListener getInstance();
-    method public static android.text.method.DigitsKeyListener getInstance(boolean, boolean);
+    method public static deprecated android.text.method.DigitsKeyListener getInstance();
+    method public static deprecated android.text.method.DigitsKeyListener getInstance(boolean, boolean);
+    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale);
+    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale, boolean, boolean);
     method public static android.text.method.DigitsKeyListener getInstance(java.lang.String);
   }
 
@@ -41314,11 +41343,13 @@
   }
 
   public class TimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public TimeKeyListener();
+    ctor public deprecated TimeKeyListener();
+    ctor public TimeKeyListener(java.util.Locale);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static android.text.method.TimeKeyListener getInstance();
-    field public static final char[] CHARACTERS;
+    method public static deprecated android.text.method.TimeKeyListener getInstance();
+    method public static android.text.method.TimeKeyListener getInstance(java.util.Locale);
+    field public static final deprecated char[] CHARACTERS;
   }
 
   public class Touch {
@@ -44123,6 +44154,7 @@
     field public static final int FLAG_APPEND_TO_GROUP = 1; // 0x1
     field public static final int FLAG_PERFORM_NO_CLOSE = 1; // 0x1
     field public static final int NONE = 0; // 0x0
+    field public static final int SUPPORTED_MODIFIERS_MASK = 69647; // 0x1100f
   }
 
   public class MenuInflater {
@@ -44135,6 +44167,7 @@
     method public abstract boolean expandActionView();
     method public abstract android.view.ActionProvider getActionProvider();
     method public abstract android.view.View getActionView();
+    method public default int getAlphabeticModifiers();
     method public abstract char getAlphabeticShortcut();
     method public default java.lang.CharSequence getContentDescription();
     method public abstract int getGroupId();
@@ -44142,6 +44175,7 @@
     method public abstract android.content.Intent getIntent();
     method public abstract int getItemId();
     method public abstract android.view.ContextMenu.ContextMenuInfo getMenuInfo();
+    method public default int getNumericModifiers();
     method public abstract char getNumericShortcut();
     method public abstract int getOrder();
     method public abstract android.view.SubMenu getSubMenu();
@@ -44158,6 +44192,7 @@
     method public abstract android.view.MenuItem setActionView(android.view.View);
     method public abstract android.view.MenuItem setActionView(int);
     method public abstract android.view.MenuItem setAlphabeticShortcut(char);
+    method public default android.view.MenuItem setAlphabeticShortcut(char, int);
     method public abstract android.view.MenuItem setCheckable(boolean);
     method public abstract android.view.MenuItem setChecked(boolean);
     method public default android.view.MenuItem setContentDescription(java.lang.CharSequence);
@@ -44166,9 +44201,11 @@
     method public abstract android.view.MenuItem setIcon(int);
     method public abstract android.view.MenuItem setIntent(android.content.Intent);
     method public abstract android.view.MenuItem setNumericShortcut(char);
+    method public default android.view.MenuItem setNumericShortcut(char, int);
     method public abstract android.view.MenuItem setOnActionExpandListener(android.view.MenuItem.OnActionExpandListener);
     method public abstract android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener);
     method public abstract android.view.MenuItem setShortcut(char, char);
+    method public default android.view.MenuItem setShortcut(char, char, int, int);
     method public abstract void setShowAsAction(int);
     method public abstract android.view.MenuItem setShowAsActionFlags(int);
     method public abstract android.view.MenuItem setTitle(java.lang.CharSequence);
@@ -47631,6 +47668,7 @@
     field public static final java.lang.String TYPE_EMAIL = "email";
     field public static final java.lang.String TYPE_OTHER = "other";
     field public static final java.lang.String TYPE_PHONE = "phone";
+    field public static final java.lang.String TYPE_URL = "url";
   }
 
   public static abstract class TextClassifier.EntityType implements java.lang.annotation.Annotation {
@@ -50689,7 +50727,7 @@
     method public int getAutoSizeMaxTextSize();
     method public int getAutoSizeMinTextSize();
     method public int getAutoSizeStepGranularity();
-    method public int[] getAutoSizeTextPresetSizes();
+    method public int[] getAutoSizeTextAvailableSizes();
     method public int getAutoSizeTextType();
     method public int getBreakStrategy();
     method public int getCompoundDrawablePadding();
@@ -50897,7 +50935,7 @@
     method public void setTypeface(android.graphics.Typeface);
     method public void setWidth(int);
     field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
-    field public static final int AUTO_SIZE_TEXT_TYPE_XY = 1; // 0x1
+    field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
   }
 
   public static final class TextView.BufferType extends java.lang.Enum {
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
index 7e91391..a67e47f 100644
--- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
+++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
@@ -17,6 +17,7 @@
 package com.android.commands.bmgr;
 
 import android.app.backup.BackupManager;
+import android.app.backup.BackupManagerMonitor;
 import android.app.backup.BackupProgress;
 import android.app.backup.IBackupManager;
 import android.app.backup.IBackupObserver;
@@ -312,8 +313,9 @@
         }
         try {
             BackupObserver observer = new BackupObserver();
+            // TODO: implement monitor here?
             int err = mBmgr.requestBackup(packages.toArray(new String[packages.size()]), observer,
-                    flags);
+                    null, flags);
             if (err == 0) {
                 // Off and running -- wait for the backup to complete
                 observer.waitForCompletion();
@@ -504,7 +506,8 @@
     private void doListRestoreSets() {
         try {
             RestoreObserver observer = new RestoreObserver();
-            int err = mRestore.getAvailableRestoreSets(observer);
+            // TODO implement monitor here
+            int err = mRestore.getAvailableRestoreSets(observer, null);
             if (err != 0) {
                 System.out.println("Unable to request restore sets");
             } else {
@@ -607,7 +610,8 @@
             }
 
             RestoreObserver observer = new RestoreObserver();
-            int err = mRestore.restorePackage(pkg, observer);
+            // TODO implement monitor here
+            int err = mRestore.restorePackage(pkg, observer, null );
             if (err == 0) {
                 // Off and running -- wait for the restore to complete
                 observer.waitForCompletion();
@@ -634,7 +638,8 @@
                 return;
             }
             RestoreSet[] sets = null;
-            int err = mRestore.getAvailableRestoreSets(observer);
+            // TODO implement monitor here
+            int err = mRestore.getAvailableRestoreSets(observer, null);
             if (err == 0) {
                 observer.waitForCompletion();
                 sets = observer.sets;
@@ -643,11 +648,12 @@
                         if (s.token == token) {
                             System.out.println("Scheduling restore: " + s.name);
                             if (filter == null) {
-                                didRestore = (mRestore.restoreAll(token, observer) == 0);
+                                didRestore = (mRestore.restoreAll(token, observer, null) == 0);
                             } else {
                                 String[] names = new String[filter.size()];
                                 filter.toArray(names);
-                                didRestore = (mRestore.restoreSome(token, observer, names) == 0);
+                                didRestore = (mRestore.restoreSome(token, observer,
+                                        null, names) == 0);
                             }
                             break;
                         }
diff --git a/core/java/android/animation/AnimatorSet.java b/core/java/android/animation/AnimatorSet.java
index 4e3b7d0..78cd89b 100644
--- a/core/java/android/animation/AnimatorSet.java
+++ b/core/java/android/animation/AnimatorSet.java
@@ -142,11 +142,17 @@
     // the animation was previously seeked and therefore doesn't start from the beginning).
     private final boolean mShouldResetValuesAtStart;
 
+    // In pre-O releases, end() may never explicitly called on a child animator. As a result, end()
+    // may not even be properly implemented in a lot of cases. After a few apps crashing on this,
+    // it became necessary to use an sdk target guard for calling end().
+    private final boolean mEndCanBeCalled;
+
     // The time, in milliseconds, when last frame of the animation came in. -1 when the animation is
     // not running.
     private long mLastFrameTime = -1;
 
-    // The time, in milliseconds, when the first frame of the animation came in.
+    // The time, in milliseconds, when the first frame of the animation came in. This is the
+    // frame before we start counting down the start delay, if any.
     // -1 when the animation is not running.
     private long mFirstFrame = -1;
 
@@ -191,11 +197,12 @@
         super();
         mNodeMap.put(mDelayAnim, mRootNode);
         mNodes.add(mRootNode);
+        boolean isPreO;
         // Set the flag to ignore calling end() without start() for pre-N releases
         Application app = ActivityThread.currentApplication();
         if (app == null || app.getApplicationInfo() == null) {
             mShouldIgnoreEndWithoutStart = true;
-            mShouldResetValuesAtStart = false;
+            isPreO = true;
         } else {
             if (app.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) {
                 mShouldIgnoreEndWithoutStart = true;
@@ -203,12 +210,10 @@
                 mShouldIgnoreEndWithoutStart = false;
             }
 
-            if (app.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.O) {
-                mShouldResetValuesAtStart = false;
-            } else {
-                mShouldResetValuesAtStart = true;
-            }
+            isPreO = app.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.O;
         }
+        mShouldResetValuesAtStart = !isPreO;
+        mEndCanBeCalled = !isPreO;
     }
 
     /**
@@ -424,6 +429,35 @@
         }
     }
 
+    // Force all the animations to end when the duration scale is 0.
+    private void forceToEnd() {
+        if (mEndCanBeCalled) {
+            end();
+        } else {
+            // Note: we don't want to combine this case with the end() method below because in
+            // the case of developer calling end(), we still need to make sure end() is explicitly
+            // called on the child animators to maintain the old behavior.
+            if (mReversing) {
+                mLastEventId = mLastEventId == -1 ? mEvents.size() : mLastEventId;
+                for (int j = mLastEventId - 1; j >= 0; j--) {
+                    AnimationEvent event = mEvents.get(j);
+                    if (event.mEvent == AnimationEvent.ANIMATION_END) {
+                        event.mNode.mAnimation.reverse();
+                    }
+                }
+            } else {
+                for (int j = mLastEventId + 1; j < mEvents.size(); j++) {
+                    AnimationEvent event = mEvents.get(j);
+                    if (event.mEvent == AnimationEvent.ANIMATION_START) {
+                        event.mNode.mAnimation.start();
+                    }
+                }
+            }
+            mPlayingSet.clear();
+            endAnimation();
+        }
+    }
+
     /**
      * {@inheritDoc}
      *
@@ -445,19 +479,28 @@
                 mLastEventId = mLastEventId == -1 ? mEvents.size() : mLastEventId;
                 for (int j = mLastEventId - 1; j >= 0; j--) {
                     AnimationEvent event = mEvents.get(j);
+                    Animator anim = event.mNode.mAnimation;
                     if (event.mEvent == AnimationEvent.ANIMATION_END) {
-                        event.mNode.mAnimation.reverse();
-                    } else if (event.mEvent == AnimationEvent.ANIMATION_DELAY_ENDED) {
-                        event.mNode.mAnimation.end();
+                        anim.reverse();
+                    } else if (event.mEvent == AnimationEvent.ANIMATION_DELAY_ENDED
+                            && anim.isStarted()) {
+                        // Make sure anim hasn't finished before calling end() so that we don't end
+                        // already ended animations, which will cause start and end callbacks to be
+                        // triggered again.
+                        anim.end();
                     }
                 }
             } else {
                 for (int j = mLastEventId + 1; j < mEvents.size(); j++) {
                     AnimationEvent event = mEvents.get(j);
+                    Animator anim = event.mNode.mAnimation;
                     if (event.mEvent == AnimationEvent.ANIMATION_START) {
-                        event.mNode.mAnimation.start();
-                    } else if (event.mEvent == AnimationEvent.ANIMATION_END) {
-                        event.mNode.mAnimation.end();
+                        anim.start();
+                    } else if (event.mEvent == AnimationEvent.ANIMATION_END && anim.isStarted()) {
+                        // Make sure anim hasn't finished before calling end() so that we don't end
+                        // already ended animations, which will cause start and end callbacks to be
+                        // triggered again.
+                        anim.end();
                     }
                 }
             }
@@ -476,12 +519,10 @@
      */
     @Override
     public boolean isRunning() {
-        if (mStartDelay > 0) {
-            return mStarted && !mDelayAnim.isRunning();
-        } else {
-            // No start delay, animation should start right away
+        if (mStartDelay == 0) {
             return mStarted;
         }
+        return mLastFrameTime > 0;
     }
 
     @Override
@@ -673,8 +714,8 @@
         mReversing = inReverse;
 
         // Now that all dependencies are set up, start the animations that should be started.
-        boolean setIsEmpty = isEmptySet(this);
-        if (!setIsEmpty) {
+        boolean isZeroDuration = ValueAnimator.getDurationScale() == 0f || isEmptySet(this);
+        if (!isZeroDuration) {
             startAnimation();
         }
 
@@ -686,9 +727,10 @@
                 tmpListeners.get(i).onAnimationStart(this, inReverse);
             }
         }
-        if (setIsEmpty) {
-            // In the case of empty AnimatorSet, we will trigger the onAnimationEnd() right away.
-            end();
+        if (isZeroDuration) {
+            // In the case of empty AnimatorSet, or 0 duration scale, we will trigger the
+            // onAnimationEnd() right away.
+            forceToEnd();
         }
     }
 
@@ -815,6 +857,9 @@
         for (int i = 0; i < unfinishedNodes.size(); i++) {
             Node node = unfinishedNodes.get(i);
             long playTime = getPlayTimeForNode(currentPlayTime, node, inReverse);
+            if (!inReverse) {
+                playTime -= node.mAnimation.getStartDelay();
+            }
             node.mAnimation.animateBasedOnPlayTime(playTime, lastPlayTime, inReverse);
         }
     }
@@ -889,6 +934,31 @@
         }
     }
 
+    /**
+     * Gets the current position of the animation in time, which is equal to the current
+     * time minus the time that the animation started. An animation that is not yet started will
+     * return a value of zero, unless the animation has has its play time set via
+     * {@link #setCurrentPlayTime(long)}, in which case it will return the time that was set.
+     *
+     * @return The current position in time of the animation.
+     */
+    public long getCurrentPlayTime() {
+        if (mSeekState.isActive()) {
+            return mSeekState.getPlayTime();
+        }
+        if (mLastFrameTime == -1) {
+            // Not yet started or during start delay
+            return 0;
+        }
+        float durationScale = ValueAnimator.getDurationScale();
+        durationScale = durationScale == 0 ? 1 : durationScale;
+        if (mReversing) {
+            return (long) ((mLastFrameTime - mFirstFrame) / durationScale);
+        } else {
+            return (long) ((mLastFrameTime - mFirstFrame - mStartDelay) / durationScale);
+        }
+    }
+
     private void initChildren() {
         if (!isInitialized()) {
             mChildrenInitialized = true;
@@ -907,8 +977,17 @@
      */
     @Override
     public boolean doAnimationFrame(long frameTime) {
-        if (mLastFrameTime < 0) {
-            mFirstFrame = mLastFrameTime = frameTime;
+        float durationScale = ValueAnimator.getDurationScale();
+        if (durationScale == 0f) {
+            // Duration scale changed to 0 amid animation, end the animation right away.
+            forceToEnd();
+            return true;
+        }
+
+        // After the first frame comes in, we need to wait for start delay to pass before updating
+        // any animation values.
+        if (mFirstFrame < 0) {
+            mFirstFrame = frameTime;
         }
 
         // Handle pause/resume
@@ -928,19 +1007,31 @@
         // Continue at seeked position
         if (mSeekState.isActive()) {
             mSeekState.updateSeekDirection(mReversing);
-            mFirstFrame = frameTime - mSeekState.getPlayTime() - mStartDelay;
+            if (mReversing) {
+                mFirstFrame = (long) (frameTime - mSeekState.getPlayTime() * durationScale);
+            } else {
+                mFirstFrame = (long) (frameTime - (mSeekState.getPlayTime() + mStartDelay)
+                        * durationScale);
+            }
             mSeekState.reset();
         }
 
-        // This playTime includes the start delay.
-        long playTime = frameTime - mFirstFrame;
+        if (!mReversing && frameTime < mFirstFrame + mStartDelay * durationScale) {
+            // Still during start delay in a forward playing case.
+            return false;
+        }
+
+        // From here on, we always use unscaled play time. Note this unscaled playtime includes
+        // the start delay.
+        long unscaledPlayTime = (long) ((frameTime - mFirstFrame) / durationScale);
+        mLastFrameTime = frameTime;
 
         // 1. Pulse the animators that will start or end in this frame
         // 2. Pulse the animators that will finish in a later frame
-        int latestId = findLatestEventIdForTime(playTime);
+        int latestId = findLatestEventIdForTime(unscaledPlayTime);
         int startId = mLastEventId;
 
-        handleAnimationEvents(startId, latestId, playTime);
+        handleAnimationEvents(startId, latestId, unscaledPlayTime);
 
         mLastEventId = latestId;
 
@@ -948,8 +1039,7 @@
         for (int i = 0; i < mPlayingSet.size(); i++) {
             Node node = mPlayingSet.get(i);
             if (!node.mEnded) {
-                node.mEnded = node.mAnimation.pulseAnimationFrame(
-                    getPlayTimeForNode(playTime, node));
+                pulseFrame(node, getPlayTimeForNode(unscaledPlayTime, node));
             }
         }
 
@@ -960,20 +1050,22 @@
             }
         }
 
-        mLastFrameTime = frameTime;
-        if (mPlayingSet.isEmpty()) {
-            boolean finished;
-            if (mReversing) {
-                // Make sure there's no more END event before current event id and after start delay
-                finished = mLastEventId <= 3;
-            } else {
-                // Make sure there's no more START event before current event id:
-                finished = (mLastEventId == mEvents.size() - 1);
+        boolean finished = false;
+        if (mReversing) {
+            if (mPlayingSet.size() == 1 && mPlayingSet.get(0) == mRootNode) {
+                // The only animation that is running is the delay animation.
+                finished = true;
+            } else if (mPlayingSet.isEmpty() && mLastEventId < 3) {
+                // The only remaining animation is the delay animation
+                finished = true;
             }
-            if (finished) {
-                endAnimation();
-                return true;
-            }
+        } else {
+            finished = mPlayingSet.isEmpty() && mLastEventId == mEvents.size() - 1;
+        }
+
+        if (finished) {
+            endAnimation();
+            return true;
         }
         return false;
     }
@@ -1029,9 +1121,17 @@
         }
     }
 
-    private void pulseFrame(Node node, long frameTime) {
+    /**
+     * This method pulses frames into child animations. It scales the input animation play time
+     * with the duration scale and pass that to the child animation via pulseAnimationFrame(long).
+     *
+     * @param node child animator node
+     * @param animPlayTime unscaled play time (including start delay) for the child animator
+     */
+    private void pulseFrame(Node node, long animPlayTime) {
         if (!node.mEnded) {
-            node.mEnded = node.mAnimation.pulseAnimationFrame(frameTime);
+            node.mEnded = node.mAnimation.pulseAnimationFrame(
+                    (long) (animPlayTime * ValueAnimator.getDurationScale()));
         }
     }
 
@@ -1052,7 +1152,7 @@
         addDummyListener();
 
         // Register animation callback
-        addAnimationCallback(mStartDelay);
+        addAnimationCallback(0);
 
         if (mSeekState.getPlayTimeNormalized() == 0 && mReversing) {
             // Maintain old behavior, if seeked to 0 then call reverse, we'll treat the case
@@ -1061,7 +1161,11 @@
         }
         // Set the child animators to the right end:
         if (mShouldResetValuesAtStart) {
-            if (mReversing || isInitialized()) {
+            if (isInitialized()) {
+                skipToEndValue(!mReversing);
+            } else if (mReversing) {
+                // Reversing but haven't initialized all the children yet.
+                initChildren();
                 skipToEndValue(!mReversing);
             } else {
                 // If not all children are initialized and play direction is forward
@@ -1091,6 +1195,11 @@
             }
             int toId = findLatestEventIdForTime(playTime);
             handleAnimationEvents(-1, toId, playTime);
+            for (int i = mPlayingSet.size() - 1; i >= 0; i--) {
+                if (mPlayingSet.get(i).mEnded) {
+                    mPlayingSet.remove(i);
+                }
+            }
             mLastEventId = toId;
         }
     }
@@ -1756,7 +1865,8 @@
             if (mEvent == ANIMATION_START) {
                 return mNode.mStartTime;
             } else if (mEvent == ANIMATION_DELAY_ENDED) {
-                return mNode.mStartTime + mNode.mAnimation.getStartDelay();
+                return mNode.mStartTime = mNode.mStartTime == DURATION_INFINITE
+                        ? DURATION_INFINITE : mNode.mStartTime + mNode.mAnimation.getStartDelay();
             } else {
                 return mNode.mEndTime;
             }
@@ -1797,6 +1907,7 @@
             if (mPlayTime >= 0) {
                 if (inReverse != mSeekingInReverse) {
                     mPlayTime = getTotalDuration() - mStartDelay - mPlayTime;
+                    mSeekingInReverse = inReverse;
                 }
             }
         }
diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java
index 558fdc6..4e31e44 100644
--- a/core/java/android/animation/ValueAnimator.java
+++ b/core/java/android/animation/ValueAnimator.java
@@ -1031,6 +1031,7 @@
         // started-but-not-yet-reached-the-first-frame phase.
         mLastFrameTime = -1;
         mFirstFrameTime = -1;
+        mStartTime = -1;
         addAnimationCallback(0);
 
         if (mStartDelay == 0 || mSeekFraction >= 0 || mReversing) {
@@ -1199,7 +1200,7 @@
         mStartListenersCalled = false;
         mLastFrameTime = -1;
         mFirstFrameTime = -1;
-        mReversing = false;
+        mStartTime = -1;
         if (notify && mListeners != null) {
             ArrayList<AnimatorListener> tmpListeners =
                     (ArrayList<AnimatorListener>) mListeners.clone();
@@ -1208,6 +1209,7 @@
                 tmpListeners.get(i).onAnimationEnd(this, mReversing);
             }
         }
+        // mReversing needs to be reset *after* notifying the listeners for the end callbacks.
         mReversing = false;
         if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) {
             Trace.asyncTraceEnd(Trace.TRACE_TAG_VIEW, getNameForTrace(),
@@ -1392,9 +1394,10 @@
      * @hide
      */
     public final boolean doAnimationFrame(long frameTime) {
-        if (!mRunning && mStartTime < 0) {
-            // First frame during delay
-            mStartTime = frameTime + mStartDelay;
+        if (mStartTime < 0) {
+            // First frame. If there is start delay, start delay count down will happen *after* this
+            // frame.
+            mStartTime = mReversing ? frameTime : frameTime + mStartDelay;
         }
 
         // Handle pause/resume
@@ -1411,25 +1414,23 @@
         }
 
         if (!mRunning) {
-            // If not running, that means the animation is in the start delay phase. In the case of
-            // reversing, we want to run start delay in the end.
-            if (mStartTime > frameTime) {
-                // During start delay
+            // If not running, that means the animation is in the start delay phase of a forward
+            // running animation. In the case of reversing, we want to run start delay in the end.
+            if (mStartTime > frameTime && mSeekFraction == -1) {
+                // This is when no seek fraction is set during start delay. If developers change the
+                // seek fraction during the delay, animation will start from the seeked position
+                // right away.
                 return false;
             } else {
-                // Start delay has passed.
+                // If mRunning is not set by now, that means non-zero start delay,
+                // no seeking, not reversing. At this point, start delay has passed.
                 mRunning = true;
+                startAnimation();
             }
         }
 
         if (mLastFrameTime < 0) {
-            // First frame
-            if (mStartDelay > 0) {
-                startAnimation();
-            }
-            if (mSeekFraction < 0) {
-                mStartTime = frameTime;
-            } else {
+            if (mSeekFraction >= 0) {
                 long seekTime = (long) (getScaledDuration() * mSeekFraction);
                 mStartTime = frameTime - seekTime;
                 mSeekFraction = -1;
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 6a1e74e..edf60b4 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -1744,13 +1744,14 @@
             final MenuItem item = menu.getItem(i);
             final CharSequence title = item.getTitle();
             final char alphaShortcut = item.getAlphabeticShortcut();
+            final int alphaModifiers = item.getAlphabeticModifiers();
             if (title != null && alphaShortcut != MIN_VALUE) {
                 if (group == null) {
                     final int resource = mApplication.getApplicationInfo().labelRes;
                     group = new KeyboardShortcutGroup(resource != 0 ? getString(resource) : null);
                 }
                 group.addItem(new KeyboardShortcutInfo(
-                    title, alphaShortcut, KeyEvent.META_CTRL_ON));
+                    title, alphaShortcut, alphaModifiers));
             }
         }
         if (group != null) {
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 5b05d58..efe72c3 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -616,11 +616,14 @@
         /** ID of stack that always on top (always visible) when it exist. */
         public static final int PINNED_STACK_ID = DOCKED_STACK_ID + 1;
 
-        /** Recents activity stack ID. */
+        /** ID of stack that contains the Recents activity. */
         public static final int RECENTS_STACK_ID = PINNED_STACK_ID + 1;
 
+        /** ID of stack that contains activities launched by the assistant. */
+        public static final int ASSISTANT_STACK_ID = RECENTS_STACK_ID + 1;
+
         /** Last static stack stack ID. */
-        public static final int LAST_STATIC_STACK_ID = RECENTS_STACK_ID;
+        public static final int LAST_STATIC_STACK_ID = ASSISTANT_STACK_ID;
 
         /** Start of ID range used by stacks that are created dynamically. */
         public static final int FIRST_DYNAMIC_STACK_ID = LAST_STATIC_STACK_ID + 1;
@@ -665,7 +668,7 @@
          * Returns true if dynamic stacks are allowed to be visible behind the input stack.
          */
         public static boolean isDynamicStacksVisibleBehindAllowed(int stackId) {
-            return stackId == PINNED_STACK_ID;
+            return stackId == PINNED_STACK_ID || stackId == ASSISTANT_STACK_ID;
         }
 
         /**
@@ -681,8 +684,8 @@
          * Returns true if Stack size is affected by the docked stack changing size.
          */
         public static boolean isResizeableByDockedStack(int stackId) {
-            return isStaticStack(stackId) &&
-                    stackId != DOCKED_STACK_ID && stackId != PINNED_STACK_ID;
+            return isStaticStack(stackId) && stackId != DOCKED_STACK_ID
+                    && stackId != PINNED_STACK_ID && stackId != ASSISTANT_STACK_ID;
         }
 
         /**
@@ -691,14 +694,16 @@
          */
         public static boolean isTaskResizeableByDockedStack(int stackId) {
             return isStaticStack(stackId) && stackId != FREEFORM_WORKSPACE_STACK_ID
-                    && stackId != DOCKED_STACK_ID && stackId != PINNED_STACK_ID;
+                    && stackId != DOCKED_STACK_ID && stackId != PINNED_STACK_ID
+                    && stackId != ASSISTANT_STACK_ID;
         }
 
         /**
          * Returns true if the input stack is affected by drag resizing.
          */
         public static boolean isStackAffectedByDragResizing(int stackId) {
-            return isStaticStack(stackId) && stackId != PINNED_STACK_ID;
+            return isStaticStack(stackId) && stackId != PINNED_STACK_ID
+                    && stackId != ASSISTANT_STACK_ID;
         }
 
         /**
@@ -722,19 +727,31 @@
         }
 
         /**
+         * Return whether a stackId is a stack that be a backdrop to a translucent activity.  These
+         * are generally fullscreen stacks.
+         */
+        public static boolean isBackdropToTranslucentActivity(int stackId) {
+            return stackId == FULLSCREEN_WORKSPACE_STACK_ID
+                    || stackId == ASSISTANT_STACK_ID;
+        }
+
+        /**
          * Returns true if animation specs should be constructed for app transition that moves
          * the task to the specified stack.
          */
         public static boolean useAnimationSpecForAppTransition(int stackId) {
-
             // TODO: INVALID_STACK_ID is also animated because we don't persist stack id's across
             // reboots.
             return stackId == FREEFORM_WORKSPACE_STACK_ID
-                    || stackId == FULLSCREEN_WORKSPACE_STACK_ID || stackId == DOCKED_STACK_ID
+                    || stackId == FULLSCREEN_WORKSPACE_STACK_ID
+                    || stackId == ASSISTANT_STACK_ID
+                    || stackId == DOCKED_STACK_ID
                     || stackId == INVALID_STACK_ID;
         }
 
-        /** Returns true if the windows in the stack can receive input keys. */
+        /**
+         * Returns true if the windows in the stack can receive input keys.
+         */
         public static boolean canReceiveKeys(int stackId) {
             return stackId != PINNED_STACK_ID;
         }
@@ -743,7 +760,17 @@
          * Returns true if the stack can be visible above lockscreen.
          */
         public static boolean isAllowedOverLockscreen(int stackId) {
-            return stackId == HOME_STACK_ID || stackId == FULLSCREEN_WORKSPACE_STACK_ID;
+            return stackId == HOME_STACK_ID || stackId == FULLSCREEN_WORKSPACE_STACK_ID ||
+                    stackId == ASSISTANT_STACK_ID;
+        }
+
+        /**
+         * Returns true if activities from stasks in the given {@param stackId} are allowed to
+         * enter picture-in-picture.
+         */
+        public static boolean isAllowedToEnterPictureInPicture(int stackId) {
+            return stackId != HOME_STACK_ID && stackId != ASSISTANT_STACK_ID &&
+                    stackId != RECENTS_STACK_ID;
         }
 
         public static boolean isAlwaysOnTop(int stackId) {
@@ -799,8 +826,8 @@
          * @see android.app.ActivityManager#supportsMultiWindow
          */
         public static boolean isMultiWindowStack(int stackId) {
-            return isStaticStack(stackId) || stackId == PINNED_STACK_ID
-                    || stackId == FREEFORM_WORKSPACE_STACK_ID || stackId == DOCKED_STACK_ID;
+            return stackId == PINNED_STACK_ID || stackId == FREEFORM_WORKSPACE_STACK_ID
+                    || stackId == DOCKED_STACK_ID;
         }
 
         /**
@@ -815,20 +842,20 @@
          * calling {@link Activity#requestVisibleBehind}.
          */
         public static boolean activitiesCanRequestVisibleBehind(int stackId) {
-            return stackId == FULLSCREEN_WORKSPACE_STACK_ID;
+            return stackId == FULLSCREEN_WORKSPACE_STACK_ID ||
+                    stackId == ASSISTANT_STACK_ID;
         }
 
         /**
-         * Returns true if this stack may be scaled without resizing,
-         * and windows within may need to be configured as such.
+         * Returns true if this stack may be scaled without resizing, and windows within may need
+         * to be configured as such.
          */
         public static boolean windowsAreScaleable(int stackId) {
             return stackId == PINNED_STACK_ID;
         }
 
         /**
-         * Returns true if windows in this stack should be given move animations
-         * by default.
+         * Returns true if windows in this stack should be given move animations by default.
          */
         public static boolean hasMovementAnimations(int stackId) {
             return stackId != PINNED_STACK_ID;
@@ -836,8 +863,11 @@
 
         /** Returns true if the input stack and its content can affect the device orientation. */
         public static boolean canSpecifyOrientation(int stackId) {
-            return stackId == HOME_STACK_ID || stackId == RECENTS_STACK_ID
-                    || stackId == FULLSCREEN_WORKSPACE_STACK_ID || isDynamicStack(stackId);
+            return stackId == HOME_STACK_ID
+                    || stackId == RECENTS_STACK_ID
+                    || stackId == FULLSCREEN_WORKSPACE_STACK_ID
+                    || stackId == ASSISTANT_STACK_ID
+                    || isDynamicStack(stackId);
         }
     }
 
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index 89510d9..fa64a0f 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -224,4 +224,13 @@
      * Called when the trusted state of Keyguard has changed.
      */
     public abstract void notifyKeyguardTrustedChanged();
+
+    /**
+     * Sets if the given pid has an overlay UI or not.
+     *
+     * @param pid The pid we are setting overlay UI for.
+     * @param hasOverlayUi True if the process has overlay UI.
+     * @see android.view.WindowManager.LayoutParams#TYPE_APPLICATION_OVERLAY
+     */
+    public abstract void setHasOverlayUi(int pid, boolean hasOverlayUi);
 }
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 603126b..fb927e9 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -247,8 +247,10 @@
     public static final int OP_REQUEST_INSTALL_PACKAGES = 66;
     /** @hide Enter picture-in-picture when hidden. */
     public static final int OP_ENTER_PICTURE_IN_PICTURE_ON_HIDE = 67;
+    /** @hide Instant app start foreground service. */
+    public static final int OP_INSTANT_APP_START_FOREGROUND = 68;
     /** @hide */
-    public static final int _NUM_OP = 68;
+    public static final int _NUM_OP = 69;
 
     /** Access to coarse location information. */
     public static final String OPSTR_COARSE_LOCATION = "android:coarse_location";
@@ -351,6 +353,9 @@
             = "android:get_accounts";
     public static final String OPSTR_READ_PHONE_NUMBER
             = "android:read_phone_number";
+    /** @hide */
+    public static final String OPSTR_INSTANT_APP_START_FOREGROUND
+            = "android:instant_app_start_foreground";
 
     private static final int[] RUNTIME_PERMISSIONS_OPS = {
             // Contacts
@@ -467,6 +472,7 @@
             OP_READ_PHONE_NUMBER,
             OP_REQUEST_INSTALL_PACKAGES,
             OP_ENTER_PICTURE_IN_PICTURE_ON_HIDE,
+            OP_INSTANT_APP_START_FOREGROUND,
     };
 
     /**
@@ -542,6 +548,7 @@
             OPSTR_READ_PHONE_NUMBER,
             null, // OP_REQUEST_INSTALL_PACKAGES
             null,
+            OPSTR_INSTANT_APP_START_FOREGROUND,
     };
 
     /**
@@ -617,6 +624,7 @@
             "READ_PHONE_NUMBER",
             "REQUEST_INSTALL_PACKAGES",
             "OP_ENTER_PICTURE_IN_PICTURE_ON_HIDE",
+            "INSTANT_APP_START_FOREGROUND",
     };
 
     /**
@@ -692,6 +700,7 @@
             Manifest.permission.READ_PHONE_NUMBER,
             Manifest.permission.REQUEST_INSTALL_PACKAGES,
             null, // no permission for entering picture-in-picture on hide
+            Manifest.permission.INSTANT_APP_FOREGROUND_SERVICE,
     };
 
     /**
@@ -768,6 +777,7 @@
             null, // READ_PHONE_NUMBER
             null, // REQUEST_INSTALL_PACKAGES
             null, // ENTER_PICTURE_IN_PICTURE_ON_HIDE
+            null, // INSTANT_APP_START_FOREGROUND
     };
 
     /**
@@ -843,6 +853,7 @@
             false, // READ_PHONE_NUMBER
             false, // REQUEST_INSTALL_PACKAGES
             false, // ENTER_PICTURE_IN_PICTURE_ON_HIDE
+            false, // INSTANT_APP_START_FOREGROUND
     };
 
     /**
@@ -917,6 +928,7 @@
             AppOpsManager.MODE_ALLOWED,
             AppOpsManager.MODE_DEFAULT, // OP_REQUEST_INSTALL_PACKAGES
             AppOpsManager.MODE_ALLOWED,  // OP_ENTER_PICTURE_IN_PICTURE_ON_HIDE
+            AppOpsManager.MODE_DEFAULT, // OP_INSTANT_APP_START_FOREGROUND
     };
 
     /**
@@ -995,6 +1007,7 @@
             false,
             false, // OP_REQUEST_INSTALL_PACKAGES
             false, // OP_ENTER_PICTURE_IN_PICTURE_ON_HIDE
+            false,
     };
 
     /**
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index c842f78..585bd05 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -389,6 +389,8 @@
             in Intent intent, in String resolvedType, in IVoiceInteractionSession session,
             in IVoiceInteractor interactor, int flags, in ProfilerInfo profilerInfo,
             in Bundle options, int userId);
+    int startAssistantActivity(in String callingPackage, int callingPid, int callingUid,
+            in Intent intent, in String resolvedType, in Bundle options, int userId);
     Bundle getActivityOptions(in IBinder token);
     List<IBinder> getAppTasks(in String callingPackage);
     void startSystemLockTaskMode(int taskId);
diff --git a/core/java/android/app/IBackupAgent.aidl b/core/java/android/app/IBackupAgent.aidl
index eda9603..a07374b 100644
--- a/core/java/android/app/IBackupAgent.aidl
+++ b/core/java/android/app/IBackupAgent.aidl
@@ -41,6 +41,8 @@
      * @param newState Read-write file, empty when onBackup() is called,
      *        where the new state blob is to be recorded.
      *
+     * @param quota Quota reported by the transport for this backup operation (in bytes).
+     *
      * @param token Opaque token identifying this transaction.  This must
      *        be echoed back to the backup service binder once the new
      *        data has been written to the data and newState files.
@@ -51,7 +53,7 @@
     void doBackup(in ParcelFileDescriptor oldState,
             in ParcelFileDescriptor data,
             in ParcelFileDescriptor newState,
-            int token, IBackupManager callbackBinder);
+            long quotaBytes, int token, IBackupManager callbackBinder);
 
     /**
      * Restore an entire data snapshot to the application.
@@ -89,6 +91,8 @@
      *        The data must be formatted correctly for the resulting archive to be
      *        legitimate, so that will be tightly controlled by the available API.
      *
+     * @param quota Quota reported by the transport for this backup operation (in bytes).
+     *
      * @param token Opaque token identifying this transaction.  This must
      *        be echoed back to the backup service binder once the agent is
      *        finished restoring the application based on the restore data
@@ -97,12 +101,12 @@
      * @param callbackBinder Binder on which to indicate operation completion,
      *        passed here as a convenience to the agent.
      */
-    void doFullBackup(in ParcelFileDescriptor data, int token, IBackupManager callbackBinder);
+    void doFullBackup(in ParcelFileDescriptor data, long quotaBytes, int token, IBackupManager callbackBinder);
 
     /**
      * Estimate how much data a full backup will deliver
      */
-    void doMeasureFullBackup(int token, IBackupManager callbackBinder);
+    void doMeasureFullBackup(long quotaBytes, int token, IBackupManager callbackBinder);
 
     /**
      * Tells the application agent that the backup data size exceeded current transport quota.
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index cc6f6e1..5ab767b 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -20,6 +20,7 @@
 import android.app.ITransientNotification;
 import android.app.Notification;
 import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
 import android.app.NotificationManager;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -57,12 +58,14 @@
     void createNotificationChannelGroups(String pkg, in ParceledListSlice channelGroupList);
     void createNotificationChannels(String pkg, in ParceledListSlice channelsList);
     ParceledListSlice getNotificationChannelGroupsForPackage(String pkg, int uid, boolean includeDeleted);
+    NotificationChannelGroup getNotificationChannelGroupForPackage(String groupId, String pkg, int uid);
     void updateNotificationChannelForPackage(String pkg, int uid, in NotificationChannel channel);
     NotificationChannel getNotificationChannel(String pkg, String channelId);
     NotificationChannel getNotificationChannelForPackage(String pkg, int uid, String channelId, boolean includeDeleted);
     void deleteNotificationChannel(String pkg, String channelId);
     ParceledListSlice getNotificationChannels(String pkg);
     ParceledListSlice getNotificationChannelsForPackage(String pkg, int uid, boolean includeDeleted);
+    int getNumNotificationChannelsForPackage(String pkg, int uid, boolean includeDeleted);
 
     // TODO: Remove this when callers have been migrated to the equivalent
     // INotificationListener method.
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 9ef40b4..7900fc5 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -110,6 +110,13 @@
             = "android.intent.category.NOTIFICATION_PREFERENCES";
 
     /**
+     * Optional extra for {@link #INTENT_CATEGORY_NOTIFICATION_PREFERENCES}. If provided, will
+     * contain a {@link NotificationChannel#getId() channel id} that can be used to narrow down
+     * what in app notifications settings should be shown.
+     */
+    public static final String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
+
+    /**
      * Use all default values (where applicable).
      */
     public static final int DEFAULT_ALL = ~0;
@@ -5086,9 +5093,6 @@
      */
     public static class BigTextStyle extends Style {
 
-        private static final int MAX_LINES = 13;
-        private static final int LINES_CONSUMED_BY_ACTIONS = 4;
-
         private CharSequence mBigText;
 
         public BigTextStyle() {
@@ -5194,18 +5198,8 @@
             builder.setTextViewColorSecondary(contentView, R.id.big_text);
             contentView.setViewVisibility(R.id.big_text,
                     TextUtils.isEmpty(bigTextText) ? View.GONE : View.VISIBLE);
-            contentView.setInt(R.id.big_text, "setMaxLines", calculateMaxLines(builder));
             contentView.setBoolean(R.id.big_text, "setHasImage", builder.mN.hasLargeIcon());
         }
-
-        private static int calculateMaxLines(Builder builder) {
-            int lineCount = MAX_LINES;
-            boolean hasActions = builder.mActions.size() > 0;
-            if (hasActions) {
-                lineCount -= LINES_CONSUMED_BY_ACTIONS;
-            }
-            return lineCount;
-        }
     }
 
     /**
diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java
index 02d5705..7d1a16a 100644
--- a/core/java/android/app/PendingIntent.java
+++ b/core/java/android/app/PendingIntent.java
@@ -346,8 +346,8 @@
                     flags, options, UserHandle.myUserId());
             return target != null ? new PendingIntent(target) : null;
         } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
         }
-        return null;
     }
 
     /**
@@ -371,8 +371,8 @@
                     flags, options, user.getIdentifier());
             return target != null ? new PendingIntent(target) : null;
         } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
         }
-        return null;
     }
 
     /**
@@ -487,8 +487,8 @@
                     UserHandle.myUserId());
             return target != null ? new PendingIntent(target) : null;
         } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
         }
-        return null;
     }
 
     /**
@@ -513,8 +513,8 @@
                     flags, options, user.getIdentifier());
             return target != null ? new PendingIntent(target) : null;
         } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
         }
-        return null;
     }
 
     /**
@@ -566,8 +566,8 @@
                     flags, null, userHandle.getIdentifier());
             return target != null ? new PendingIntent(target) : null;
         } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
         }
-        return null;
     }
 
     /**
@@ -609,8 +609,8 @@
                     flags, null, UserHandle.myUserId());
             return target != null ? new PendingIntent(target) : null;
         } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
         }
-        return null;
     }
 
     /**
@@ -856,8 +856,7 @@
             return ActivityManager.getService()
                 .getPackageForIntentSender(mTarget);
         } catch (RemoteException e) {
-            // Should never happen.
-            return null;
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -885,8 +884,7 @@
             return ActivityManager.getService()
                 .getPackageForIntentSender(mTarget);
         } catch (RemoteException e) {
-            // Should never happen.
-            return null;
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -913,8 +911,7 @@
             return ActivityManager.getService()
                 .getUidForIntentSender(mTarget);
         } catch (RemoteException e) {
-            // Should never happen.
-            return -1;
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -945,8 +942,7 @@
                 .getUidForIntentSender(mTarget);
             return uid > 0 ? new UserHandle(UserHandle.getUserId(uid)) : null;
         } catch (RemoteException e) {
-            // Should never happen.
-            return null;
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -959,8 +955,7 @@
             return ActivityManager.getService()
                 .isIntentSenderTargetedToPackage(mTarget);
         } catch (RemoteException e) {
-            // Should never happen.
-            return false;
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -973,8 +968,7 @@
             return ActivityManager.getService()
                 .isIntentSenderAnActivity(mTarget);
         } catch (RemoteException e) {
-            // Should never happen.
-            return false;
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -987,8 +981,7 @@
             return ActivityManager.getService()
                 .getIntentForIntentSender(mTarget);
         } catch (RemoteException e) {
-            // Should never happen.
-            return null;
+            throw e.rethrowFromSystemServer();
         }
     }
 
@@ -1001,8 +994,7 @@
             return ActivityManager.getService()
                 .getTagForIntentSender(mTarget, prefix);
         } catch (RemoteException e) {
-            // Should never happen.
-            return null;
+            throw e.rethrowFromSystemServer();
         }
     }
 
diff --git a/core/java/android/app/RecoverableSecurityException.java b/core/java/android/app/RecoverableSecurityException.java
index 1f015a6..540d1cd 100644
--- a/core/java/android/app/RecoverableSecurityException.java
+++ b/core/java/android/app/RecoverableSecurityException.java
@@ -17,6 +17,8 @@
 package android.app;
 
 import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Icon;
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -40,13 +42,12 @@
     private static final String TAG = "RecoverableSecurityException";
 
     private final CharSequence mUserMessage;
-    private final CharSequence mUserActionTitle;
-    private final PendingIntent mUserAction;
+    private final RemoteAction mUserAction;
 
     /** {@hide} */
     public RecoverableSecurityException(Parcel in) {
-        this(new SecurityException(in.readString()), in.readCharSequence(), in.readCharSequence(),
-                PendingIntent.CREATOR.createFromParcel(in));
+        this(new SecurityException(in.readString()), in.readCharSequence(),
+                RemoteAction.CREATOR.createFromParcel(in));
     }
 
     /**
@@ -56,26 +57,35 @@
      *            audiences.
      * @param userMessage short message describing the issue for end user
      *            audiences, which may be shown in a notification or dialog.
-     *            This should be less than 64 characters. For example: <em>PIN
-     *            required to access Document.pdf</em>
-     * @param userActionTitle short title describing the primary action. This
-     *            should be less than 24 characters. For example: <em>Enter
-     *            PIN</em>
-     * @param userAction primary action that will initiate the recovery. This
-     *            must launch an activity that is expected to set
+     *            This should be localized and less than 64 characters. For
+     *            example: <em>PIN required to access Document.pdf</em>
+     * @param userAction primary action that will initiate the recovery. The
+     *            title should be localized and less than 24 characters. For
+     *            example: <em>Enter PIN</em>. This action must launch an
+     *            activity that is expected to set
      *            {@link Activity#setResult(int)} before finishing to
      *            communicate the final status of the recovery. For example,
      *            apps that observe {@link Activity#RESULT_OK} may choose to
      *            immediately retry their operation.
      */
     public RecoverableSecurityException(Throwable cause, CharSequence userMessage,
-            CharSequence userActionTitle, PendingIntent userAction) {
+            RemoteAction userAction) {
         super(cause.getMessage());
         mUserMessage = Preconditions.checkNotNull(userMessage);
-        mUserActionTitle = Preconditions.checkNotNull(userActionTitle);
         mUserAction = Preconditions.checkNotNull(userAction);
     }
 
+    /** {@hide} */
+    @Deprecated
+    public RecoverableSecurityException(Throwable cause, CharSequence userMessage,
+            CharSequence userActionTitle, PendingIntent userAction) {
+        this(cause, userMessage,
+                new RemoteAction(
+                        Icon.createWithResource("android",
+                                com.android.internal.R.drawable.ic_restart),
+                        userActionTitle, userActionTitle, userAction));
+    }
+
     /**
      * Return short message describing the issue for end user audiences, which
      * may be shown in a notification or dialog.
@@ -85,16 +95,9 @@
     }
 
     /**
-     * Return short title describing the primary action.
-     */
-    public CharSequence getUserActionTitle() {
-        return mUserActionTitle;
-    }
-
-    /**
      * Return primary action that will initiate the recovery.
      */
-    public PendingIntent getUserAction() {
+    public RemoteAction getUserAction() {
         return mUserAction;
     }
 
@@ -113,15 +116,21 @@
      * remote UID; notifications from older exceptions will always be replaced.
      */
     public void showAsNotification(Context context) {
-        final Notification.Builder builder = new Notification.Builder(context)
-                .setSmallIcon(com.android.internal.R.drawable.ic_print_error)
-                .setContentTitle(mUserActionTitle)
-                .setContentText(mUserMessage)
-                .setContentIntent(mUserAction)
-                .setCategory(Notification.CATEGORY_ERROR);
-
         final NotificationManager nm = context.getSystemService(NotificationManager.class);
-        nm.notify(TAG, mUserAction.getCreatorUid(), builder.build());
+
+        // Create a channel per-sender, since we don't want one poorly behaved
+        // remote app to cause all of our notifications to be blocked
+        final String tag = TAG + "_" + mUserAction.getActionIntent().getCreatorUid();
+        nm.createNotificationChannel(new NotificationChannel(tag, TAG,
+                NotificationManager.IMPORTANCE_DEFAULT));
+
+        final Notification.Builder builder = new Notification.Builder(context, tag)
+                .setSmallIcon(com.android.internal.R.drawable.ic_print_error)
+                .setContentTitle(mUserAction.getTitle())
+                .setContentText(mUserMessage)
+                .setContentIntent(mUserAction.getActionIntent())
+                .setCategory(Notification.CATEGORY_ERROR);
+        nm.notify(tag, 0, builder.build());
     }
 
     /**
@@ -144,7 +153,7 @@
         args.putParcelable(TAG, this);
         dialog.setArguments(args);
 
-        final String tag = TAG + "_" + mUserAction.getCreatorUid();
+        final String tag = TAG + "_" + mUserAction.getActionIntent().getCreatorUid();
         final FragmentManager fm = activity.getFragmentManager();
         final FragmentTransaction ft = fm.beginTransaction();
         final Fragment old = fm.findFragmentByTag(tag);
@@ -162,9 +171,9 @@
             final RecoverableSecurityException e = getArguments().getParcelable(TAG);
             return new AlertDialog.Builder(getActivity())
                     .setMessage(e.mUserMessage)
-                    .setPositiveButton(e.mUserActionTitle, (dialog, which) -> {
+                    .setPositiveButton(e.mUserAction.getTitle(), (dialog, which) -> {
                         try {
-                            e.mUserAction.send();
+                            e.mUserAction.getActionIntent().send();
                         } catch (PendingIntent.CanceledException ignored) {
                         }
                     })
@@ -182,7 +191,6 @@
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeString(getMessage());
         dest.writeCharSequence(mUserMessage);
-        dest.writeCharSequence(mUserActionTitle);
         mUserAction.writeToParcel(dest, flags);
     }
 
diff --git a/core/java/android/app/backup/BackupAgent.java b/core/java/android/app/backup/BackupAgent.java
index 45d9fb7..11636a5 100644
--- a/core/java/android/app/backup/BackupAgent.java
+++ b/core/java/android/app/backup/BackupAgent.java
@@ -133,6 +133,8 @@
 
     Handler mHandler = null;
 
+    private long mBackupQuotaBytes = -1;
+
     Handler getHandler() {
         if (mHandler == null) {
             mHandler = new Handler(Looper.getMainLooper());
@@ -184,6 +186,21 @@
     }
 
     /**
+     * Returns the quota in bytes for the currently requested backup operation. The value can
+     * vary for each operation depending on the type of backup being done.
+     *
+     * <p>Can be called only from {@link BackupAgent#onFullBackup(FullBackupDataOutput)} or
+     * {@link BackupAgent#onBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor)}.
+     */
+    public long getBackupQuota() {
+        if (mBackupQuotaBytes < 0) {
+            throw new IllegalStateException(
+                    "Backup quota is available only during backup operations.");
+        }
+        return mBackupQuotaBytes;
+    }
+
+    /**
      * The application is being asked to write any data changed since the last
      * time it performed a backup operation. The state data recorded during the
      * last backup pass is provided in the <code>oldState</code> file
@@ -897,10 +914,12 @@
         public void doBackup(ParcelFileDescriptor oldState,
                 ParcelFileDescriptor data,
                 ParcelFileDescriptor newState,
-                int token, IBackupManager callbackBinder) throws RemoteException {
+                long quotaBytes, int token, IBackupManager callbackBinder) throws RemoteException {
             // Ensure that we're running with the app's normal permission level
             long ident = Binder.clearCallingIdentity();
 
+            mBackupQuotaBytes = quotaBytes;
+
             if (DEBUG) Log.v(TAG, "doBackup() invoked");
             BackupDataOutput output = new BackupDataOutput(data.getFileDescriptor());
 
@@ -918,6 +937,9 @@
                 // guarantee themselves).
                 waitForSharedPrefs();
 
+                // Unset quota after onBackup is done.
+                mBackupQuotaBytes = -1;
+
                 Binder.restoreCallingIdentity(ident);
                 try {
                     callbackBinder.opComplete(token, 0);
@@ -971,10 +993,12 @@
 
         @Override
         public void doFullBackup(ParcelFileDescriptor data,
-                int token, IBackupManager callbackBinder) {
+                long quotaBytes, int token, IBackupManager callbackBinder) {
             // Ensure that we're running with the app's normal permission level
             long ident = Binder.clearCallingIdentity();
 
+            mBackupQuotaBytes = quotaBytes;
+
             if (DEBUG) Log.v(TAG, "doFullBackup() invoked");
 
             // Ensure that any SharedPreferences writes have landed *before*
@@ -993,6 +1017,9 @@
                 // ... and then again after, as in the doBackup() case
                 waitForSharedPrefs();
 
+                // Unset quota after onFullBackup is done.
+                mBackupQuotaBytes = -1;
+
                 // Send the EOD marker indicating that there is no more data
                 // forthcoming from this agent.
                 try {
@@ -1016,11 +1043,13 @@
             }
         }
 
-        public void doMeasureFullBackup(int token, IBackupManager callbackBinder) {
+        public void doMeasureFullBackup(long quotaBytes, int token, IBackupManager callbackBinder) {
             // Ensure that we're running with the app's normal permission level
             final long ident = Binder.clearCallingIdentity();
             FullBackupDataOutput measureOutput = new FullBackupDataOutput();
 
+            mBackupQuotaBytes = quotaBytes;
+
             waitForSharedPrefs();
             try {
                 BackupAgent.this.onFullBackup(measureOutput);
@@ -1031,6 +1060,8 @@
                 Log.d(TAG, "onFullBackup[M] (" + BackupAgent.this.getClass().getName() + ") threw", ex);
                 throw ex;
             } finally {
+                // Unset quota after onFullBackup is done.
+                mBackupQuotaBytes = -1;
                 Binder.restoreCallingIdentity(ident);
                 try {
                     callbackBinder.opComplete(token, measureOutput.getSize());
diff --git a/core/java/android/app/backup/BackupManager.java b/core/java/android/app/backup/BackupManager.java
index f0abe33..59bd01f 100644
--- a/core/java/android/app/backup/BackupManager.java
+++ b/core/java/android/app/backup/BackupManager.java
@@ -19,6 +19,7 @@
 import android.annotation.SystemApi;
 import android.content.ComponentName;
 import android.content.Context;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.os.RemoteException;
@@ -257,16 +258,46 @@
      * @return Zero on success; nonzero on error.
      */
     public int requestRestore(RestoreObserver observer) {
+        return requestRestore(observer, null);
+    }
+
+    // system APIs start here
+
+    /**
+     * Restore the calling application from backup.  The data will be restored from the
+     * current backup dataset if the application has stored data there, or from
+     * the dataset used during the last full device setup operation if the current
+     * backup dataset has no matching data.  If no backup data exists for this application
+     * in either source, a nonzero value will be returned.
+     *
+     * <p>If this method returns zero (meaning success), the OS will attempt to retrieve
+     * a backed-up dataset from the remote transport, instantiate the application's
+     * backup agent, and pass the dataset to the agent's
+     * {@link android.app.backup.BackupAgent#onRestore(BackupDataInput, int, android.os.ParcelFileDescriptor) onRestore()}
+     * method.
+     *
+     * @param observer The {@link RestoreObserver} to receive callbacks during the restore
+     * operation. This must not be null.
+     *
+     * @param monitor the {@link BackupManagerMonitor} to receive callbacks during the restore
+     * operation.
+     *
+     * @return Zero on success; nonzero on error.
+     *
+     * @hide
+     */
+    @SystemApi
+    public int requestRestore(RestoreObserver observer, BackupManagerMonitor monitor) {
         int result = -1;
         checkServiceBinder();
         if (sService != null) {
             RestoreSession session = null;
             try {
                 IRestoreSession binder = sService.beginRestoreSession(mContext.getPackageName(),
-                        null);
+                    null);
                 if (binder != null) {
                     session = new RestoreSession(mContext, binder);
-                    result = session.restorePackage(mContext.getPackageName(), observer);
+                    result = session.restorePackage(mContext.getPackageName(), observer, monitor);
                 }
             } catch (RemoteException e) {
                 Log.e(TAG, "restoreSelf() unable to contact service");
@@ -279,8 +310,6 @@
         return result;
     }
 
-    // system APIs start here
-
     /**
      * Begin the process of restoring data from backup.  See the
      * {@link android.app.backup.RestoreSession} class for documentation on that process.
@@ -556,7 +585,7 @@
      */
     @SystemApi
     public int requestBackup(String[] packages, BackupObserver observer) {
-        return requestBackup(packages, observer, 0);
+        return requestBackup(packages, observer, null, 0);
     }
 
     /**
@@ -570,20 +599,26 @@
      * @param packages List of package names to backup.
      * @param observer The {@link BackupObserver} to receive callbacks during the backup
      *                 operation. Could be {@code null}.
+     * @param monitor  The {@link BackupManagerMonitorWrapper} to receive callbacks of important
+     *                 events during the backup operation. Could be {@code null}.
      * @param flags    {@link #FLAG_NON_INCREMENTAL_BACKUP}.
      * @return {@link BackupManager#SUCCESS} on success; nonzero on error.
      * @throws IllegalArgumentException on null or empty {@code packages} param.
      * @hide
      */
     @SystemApi
-    public int requestBackup(String[] packages, BackupObserver observer, int flags) {
+    public int requestBackup(String[] packages, BackupObserver observer,
+            BackupManagerMonitor monitor, int flags) {
         checkServiceBinder();
         if (sService != null) {
             try {
                 BackupObserverWrapper observerWrapper = observer == null
                         ? null
                         : new BackupObserverWrapper(mContext, observer);
-                return sService.requestBackup(packages, observerWrapper, flags);
+                BackupManagerMonitorWrapper monitorWrapper = monitor == null
+                        ? null
+                        : new BackupManagerMonitorWrapper(monitor);
+                return sService.requestBackup(packages, observerWrapper, monitorWrapper, flags);
             } catch (RemoteException e) {
                 Log.e(TAG, "requestBackup() couldn't connect");
             }
@@ -680,4 +715,18 @@
             });
         }
     }
+
+    private class BackupManagerMonitorWrapper extends IBackupManagerMonitor.Stub {
+        final BackupManagerMonitor mMonitor;
+
+        BackupManagerMonitorWrapper(BackupManagerMonitor monitor) {
+            mMonitor = monitor;
+        }
+
+        @Override
+        public void onEvent(final Bundle event) throws RemoteException {
+            mMonitor.onEvent(event);
+        }
+    }
+
 }
diff --git a/core/java/android/app/backup/BackupManagerMonitor.java b/core/java/android/app/backup/BackupManagerMonitor.java
new file mode 100644
index 0000000..099878b
--- /dev/null
+++ b/core/java/android/app/backup/BackupManagerMonitor.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2017 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.backup;
+
+import android.annotation.SystemApi;
+import android.os.Bundle;
+
+/**
+ * Callback class for receiving important events during backup/restore operations.
+ * Events consist mostly of errors and exceptions, giving detailed reason on why a restore/backup
+ * failed or any time BackupManager makes an important decision.
+ * On the other hand {@link BackupObserver} will give a failure/success view without
+ * getting into details why. This callback runs on the thread it was called on because it can get
+ * a bit spammy.
+ * These callbacks will run on the binder thread.
+ *
+ * @hide
+ */
+@SystemApi
+public class BackupManagerMonitor {
+
+  // Logging constants for BackupManagerMonitor
+  public static final int LOG_EVENT_CATEGORY_TRANSPORT = 1;
+  public static final int LOG_EVENT_CATEGORY_AGENT = 2;
+  public static final int LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY = 3;
+  /** string : the package name */
+  public static final String EXTRA_LOG_EVENT_PACKAGE_NAME =
+          "android.app.backup.extra.LOG_EVENT_PACKAGE_NAME";
+  /** int : the versionCode of the package named by EXTRA_LOG_EVENT_PACKAGE_NAME */
+  public static final String EXTRA_LOG_EVENT_PACKAGE_VERSION =
+          "android.app.backup.extra.LOG_EVENT_PACKAGE_VERSION";
+  /** int : the id of the log message, will be a unique identifier */
+  public static final String EXTRA_LOG_EVENT_ID = "android.app.backup.extra.LOG_EVENT_ID";
+  /**
+   *  int : category will be one of
+   *  { LOG_EVENT_CATEGORY_TRANSPORT,
+   *    LOG_EVENT_CATEGORY_AGENT,
+   *    LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY}.
+   */
+  public static final String EXTRA_LOG_EVENT_CATEGORY =
+          "android.app.backup.extra.LOG_EVENT_CATEGORY";
+
+  // TODO complete this list with all log messages. And document properly.
+  public static final int LOG_EVENT_ID_FULL_BACKUP_TIMEOUT = 4;
+  public static final int LOG_EVENT_ID_KEY_VALUE_BACKUP_TIMEOUT = 21;
+  public static final int LOG_EVENT_ID_KEY_VALUE_RESTORE_TIMEOUT = 31;
+  public static final int LOG_EVENT_ID_FULL_RESTORE_TIMEOUT = 45;
+  public static final int LOG_EVENT_ID_NO_PACKAGES = 49;
+
+
+
+  /**
+   * This method will be called each time something important happens on BackupManager.
+   *
+   * @param event bundle will contain data about event:
+   *    - event id, not optional, a unique identifier for each event.
+   *    - package name, optional, the current package we're backing up/restoring if applicable.
+   *    - package version, optional, the current package version  we're backing up/restoring
+   *          if applicable.
+   *    - category of event, not optional, one of
+   *          { LOG_EVENT_CATEGORY_TRANSPORT,
+   *            LOG_EVENT_CATEGORY_AGENT,
+   *            LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY}
+   *
+   */
+  public void onEvent(Bundle event) {
+  }
+}
diff --git a/core/java/android/app/backup/IBackupManager.aidl b/core/java/android/app/backup/IBackupManager.aidl
index 1657e2e..393667d 100644
--- a/core/java/android/app/backup/IBackupManager.aidl
+++ b/core/java/android/app/backup/IBackupManager.aidl
@@ -17,6 +17,7 @@
 package android.app.backup;
 
 import android.app.backup.IBackupObserver;
+import android.app.backup.IBackupManagerMonitor;
 import android.app.backup.IFullBackupRestoreObserver;
 import android.app.backup.IRestoreSession;
 import android.app.backup.ISelectBackupTransportCallback;
@@ -376,9 +377,13 @@
      * @param observer The {@link BackupObserver} to receive callbacks during the backup
      * operation.
      *
+     * @param monitor the {@link BackupManagerMonitor} to receive callbacks about important events
+     * during the backup operation.
+     *
      * @param flags {@link BackupManager#FLAG_NON_INCREMENTAL_BACKUP}.
      *
      * @return Zero on success; nonzero on error.
      */
-    int requestBackup(in String[] packages, IBackupObserver observer, int flags);
+    int requestBackup(in String[] packages, IBackupObserver observer, IBackupManagerMonitor monitor,
+        int flags);
 }
diff --git a/core/java/android/app/backup/IBackupManagerMonitor.aidl b/core/java/android/app/backup/IBackupManagerMonitor.aidl
new file mode 100644
index 0000000..cf1d9f8
--- /dev/null
+++ b/core/java/android/app/backup/IBackupManagerMonitor.aidl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2017 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.backup;
+
+import android.os.Bundle;
+
+/**
+ * Callback class for receiving important events during backup/restore operations.
+ * These callbacks will run on the binder thread.
+ *
+ * @hide
+ */
+oneway interface IBackupManagerMonitor {
+
+  /**
+   * This method will be called each time something important happens on BackupManager.
+   *
+   * @param event bundle will contain data about event, like package name, package version etc.
+   */
+  void onEvent(in Bundle event);
+
+}
\ No newline at end of file
diff --git a/core/java/android/app/backup/IRestoreSession.aidl b/core/java/android/app/backup/IRestoreSession.aidl
index 14731ee..b9e9485 100644
--- a/core/java/android/app/backup/IRestoreSession.aidl
+++ b/core/java/android/app/backup/IRestoreSession.aidl
@@ -18,7 +18,7 @@
 
 import android.app.backup.RestoreSet;
 import android.app.backup.IRestoreObserver;
-
+import android.app.backup.IBackupManagerMonitor;
 /**
  * Binder interface used by clients who wish to manage a restore operation.  Every
  * method in this interface requires the android.permission.BACKUP permission.
@@ -31,10 +31,11 @@
      *
      * @param observer This binder points to an object whose onRestoreSetsAvailable()
      *   method will be called to supply the results of the transport's lookup.
+     * @param monitor If non null the binder will send important events to this monitor.
      * @return Zero on success; nonzero on error.  The observer will only receive a
      *   result callback if this method returned zero.
      */
-    int getAvailableRestoreSets(IRestoreObserver observer);
+    int getAvailableRestoreSets(IRestoreObserver observer, IBackupManagerMonitor monitor);
 
     /**
      * Restore the given set onto the device, replacing the current data of any app
@@ -48,8 +49,9 @@
      *   the restore set that should be used.
      * @param observer If non-null, this binder points to an object that will receive
      *   progress callbacks during the restore operation.
+     * @param monitor If non null the binder will send important events to this monitor.
      */
-    int restoreAll(long token, IRestoreObserver observer);
+    int restoreAll(long token, IRestoreObserver observer, IBackupManagerMonitor monitor);
 
     /**
      * Restore select packages from the given set onto the device, replacing the
@@ -67,8 +69,10 @@
      * @param packages The set of packages for which to attempt a restore.  Regardless of
      *   the contents of the actual back-end dataset named by {@code token}, only
      *   applications mentioned in this list will have their data restored.
+     * @param monitor If non null the binder will send important events to this monitor.
      */
-    int restoreSome(long token, IRestoreObserver observer, in String[] packages);
+    int restoreSome(long token, IRestoreObserver observer, IBackupManagerMonitor monitor,
+            in String[] packages);
 
     /**
      * Restore a single application from backup.  The data will be restored from the
@@ -84,8 +88,10 @@
      *   permission must be held.
      * @param observer If non-null, this binder points to an object that will receive
      *   progress callbacks during the restore operation.
+     * @param monitor If non null the binder will send important events to this monitor.
      */
-    int restorePackage(in String packageName, IRestoreObserver observer);
+    int restorePackage(in String packageName, IRestoreObserver observer,
+          IBackupManagerMonitor monitor);
 
     /**
      * End this restore session.  After this method is called, the IRestoreSession binder
diff --git a/core/java/android/app/backup/RestoreSession.java b/core/java/android/app/backup/RestoreSession.java
index 0a885b6..94fac17 100644
--- a/core/java/android/app/backup/RestoreSession.java
+++ b/core/java/android/app/backup/RestoreSession.java
@@ -22,6 +22,7 @@
 import android.app.backup.IRestoreObserver;
 import android.app.backup.IRestoreSession;
 import android.content.Context;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.os.RemoteException;
@@ -46,16 +47,63 @@
      *   be called on the application's main thread in order to supply the results of
      *   the restore set lookup by the backup transport.  This parameter must not be
      *   null.
+     * @param monitor a BackupManagerMonitor object will supply data about important events.
+     * @return Zero on success, nonzero on error.  The observer's restoreSetsAvailable()
+     *   method will only be called if this method returned zero.
+     */
+    public int getAvailableRestoreSets(RestoreObserver observer, BackupManagerMonitor monitor) {
+        int err = -1;
+        RestoreObserverWrapper obsWrapper = new RestoreObserverWrapper(mContext, observer);
+        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);
+        try {
+            err = mBinder.getAvailableRestoreSets(obsWrapper, monitorWrapper);
+        } catch (RemoteException e) {
+            Log.d(TAG, "Can't contact server to get available sets");
+        }
+        return err;
+    }
+
+    /**
+     * Ask the current transport what the available restore sets are.
+     *
+     * @param observer a RestoreObserver object whose restoreSetsAvailable() method will
+     *   be called on the application's main thread in order to supply the results of
+     *   the restore set lookup by the backup transport.  This parameter must not be
+     *   null.
      * @return Zero on success, nonzero on error.  The observer's restoreSetsAvailable()
      *   method will only be called if this method returned zero.
      */
     public int getAvailableRestoreSets(RestoreObserver observer) {
+        return getAvailableRestoreSets(observer, null);
+    }
+
+    /**
+     * Restore the given set onto the device, replacing the current data of any app
+     * contained in the restore set with the data previously backed up.
+     *
+     * <p>Callers must hold the android.permission.BACKUP permission to use this method.
+     *
+     * @return Zero on success; nonzero on error.  The observer will only receive
+     *   progress callbacks if this method returned zero.
+     * @param token The token from {@link #getAvailableRestoreSets()} corresponding to
+     *   the restore set that should be used.
+     * @param observer If non-null, this binder points to an object that will receive
+     *   progress callbacks during the restore operation.
+     * @param monitor If non-null, this binder points to an object that will receive
+     *   progress callbacks during the restore operation.
+     */
+    public int restoreAll(long token, RestoreObserver observer, BackupManagerMonitor monitor) {
         int err = -1;
-        RestoreObserverWrapper obsWrapper = new RestoreObserverWrapper(mContext, observer);
+        if (mObserver != null) {
+            Log.d(TAG, "restoreAll() called during active restore");
+            return -1;
+        }
+        mObserver = new RestoreObserverWrapper(mContext, observer);
+        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);
         try {
-            err = mBinder.getAvailableRestoreSets(obsWrapper);
+            err = mBinder.restoreAll(token, mObserver, monitorWrapper);
         } catch (RemoteException e) {
-            Log.d(TAG, "Can't contact server to get available sets");
+            Log.d(TAG, "Can't contact server to restore");
         }
         return err;
     }
@@ -74,16 +122,43 @@
      *   progress callbacks during the restore operation.
      */
     public int restoreAll(long token, RestoreObserver observer) {
+        return restoreAll(token, observer, null);
+    }
+
+    /**
+     * Restore select packages from the given set onto the device, replacing the
+     * current data of any app contained in the set with the data previously
+     * backed up.
+     *
+     * <p>Callers must hold the android.permission.BACKUP permission to use this method.
+     *
+     * @return Zero on success, nonzero on error. The observer will only receive
+     *   progress callbacks if this method returned zero.
+     * @param token The token from {@link getAvailableRestoreSets()} corresponding to
+     *   the restore set that should be used.
+     * @param observer If non-null, this binder points to an object that will receive
+     *   progress callbacks during the restore operation.
+     * @param monitor If non-null, this binder points to an object that will receive
+     *   progress callbacks during the restore operation.
+     * @param packages The set of packages for which to attempt a restore.  Regardless of
+     *   the contents of the actual back-end dataset named by {@code token}, only
+     *   applications mentioned in this list will have their data restored.
+     *
+     * @hide
+     */
+    public int restoreSome(long token, RestoreObserver observer, BackupManagerMonitor monitor,
+            String[] packages) {
         int err = -1;
         if (mObserver != null) {
             Log.d(TAG, "restoreAll() called during active restore");
             return -1;
         }
         mObserver = new RestoreObserverWrapper(mContext, observer);
+        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);
         try {
-            err = mBinder.restoreAll(token, mObserver);
+            err = mBinder.restoreSome(token, mObserver, monitorWrapper, packages);
         } catch (RemoteException e) {
-            Log.d(TAG, "Can't contact server to restore");
+            Log.d(TAG, "Can't contact server to restore packages");
         }
         return err;
     }
@@ -108,20 +183,46 @@
      * @hide
      */
     public int restoreSome(long token, RestoreObserver observer, String[] packages) {
+        return restoreSome(token, observer, null, packages);
+    }
+
+    /**
+     * Restore a single application from backup.  The data will be restored from the
+     * current backup dataset if the given package has stored data there, or from
+     * the dataset used during the last full device setup operation if the current
+     * backup dataset has no matching data.  If no backup data exists for this package
+     * in either source, a nonzero value will be returned.
+     *
+     * @return Zero on success; nonzero on error.  The observer will only receive
+     *   progress callbacks if this method returned zero.
+     * @param packageName The name of the package whose data to restore.  If this is
+     *   not the name of the caller's own package, then the android.permission.BACKUP
+     *   permission must be held.
+     * @param observer If non-null, this binder points to an object that will receive
+     *   progress callbacks during the restore operation.
+     *
+     * @param monitor If non-null, this binder points to an object that will receive
+     *   event callbacks during the restore operation.
+     */
+    public int restorePackage(String packageName, RestoreObserver observer,
+            BackupManagerMonitor monitor) {
         int err = -1;
         if (mObserver != null) {
-            Log.d(TAG, "restoreAll() called during active restore");
+            Log.d(TAG, "restorePackage() called during active restore");
             return -1;
         }
         mObserver = new RestoreObserverWrapper(mContext, observer);
+        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);
+
         try {
-            err = mBinder.restoreSome(token, mObserver, packages);
+            err = mBinder.restorePackage(packageName, mObserver, monitorWrapper);
         } catch (RemoteException e) {
-            Log.d(TAG, "Can't contact server to restore packages");
+            Log.d(TAG, "Can't contact server to restore package");
         }
         return err;
     }
 
+
     /**
      * Restore a single application from backup.  The data will be restored from the
      * current backup dataset if the given package has stored data there, or from
@@ -138,18 +239,7 @@
      *   progress callbacks during the restore operation.
      */
     public int restorePackage(String packageName, RestoreObserver observer) {
-        int err = -1;
-        if (mObserver != null) {
-            Log.d(TAG, "restorePackage() called during active restore");
-            return -1;
-        }
-        mObserver = new RestoreObserverWrapper(mContext, observer);
-        try {
-            err = mBinder.restorePackage(packageName, mObserver);
-        } catch (RemoteException e) {
-            Log.d(TAG, "Can't contact server to restore package");
-        }
-        return err;
+        return restorePackage(packageName, observer, null);
     }
 
     /**
@@ -236,4 +326,17 @@
                     mHandler.obtainMessage(MSG_RESTORE_FINISHED, error, 0));
         }
     }
+
+    private class BackupManagerMonitorWrapper extends IBackupManagerMonitor.Stub {
+        final BackupManagerMonitor mMonitor;
+
+        BackupManagerMonitorWrapper(BackupManagerMonitor monitor) {
+            mMonitor = monitor;
+        }
+
+        @Override
+        public void onEvent(final Bundle event) throws RemoteException {
+            mMonitor.onEvent(event);
+        }
+    }
 }
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 6a8141f..5f4c36c 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -6039,6 +6039,12 @@
                 case "--receiver-foreground":
                     intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
                     break;
+                case "--receiver-no-abort":
+                    intent.addFlags(Intent.FLAG_RECEIVER_NO_ABORT);
+                    break;
+                case "--receiver-include-background":
+                    intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
+                    break;
                 case "--selector":
                     intent.setDataAndType(data, type);
                     intent = new Intent();
@@ -6162,7 +6168,8 @@
                 "    [--activity-single-top] [--activity-clear-task]",
                 "    [--activity-task-on-home]",
                 "    [--receiver-registered-only] [--receiver-replace-pending]",
-                "    [--receiver-foreground]",
+                "    [--receiver-foreground] [--receiver-no-abort]",
+                "    [--receiver-include-background]",
                 "    [--selector]",
                 "    [<URI> | <PACKAGE> | <COMPONENT>]"
         };
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 9a8eff0..48c52d5 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -824,6 +824,7 @@
      * WindowManager.LayoutParams.softInputMode}.  If 0 (unspecified),
      * the mode from the theme will be used.
      */
+    @android.view.WindowManager.LayoutParams.SoftInputModeFlags
     public int softInputMode;
 
     /**
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index 999b34f..c8f6406 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -127,9 +127,10 @@
     public static final String EXTRA_PIN_ITEM_REQUEST =
             "android.content.pm.extra.PIN_ITEM_REQUEST";
 
-    private Context mContext;
-    private ILauncherApps mService;
-    private PackageManager mPm;
+    private final Context mContext;
+    private final ILauncherApps mService;
+    private final PackageManager mPm;
+    private final UserManager mUserManager;
 
     private List<CallbackMessageHandler> mCallbacks
             = new ArrayList<CallbackMessageHandler>();
@@ -387,6 +388,7 @@
         mContext = context;
         mService = service;
         mPm = context.getPackageManager();
+        mUserManager = context.getSystemService(UserManager.class);
     }
 
     /** @hide */
@@ -397,20 +399,29 @@
     }
 
     /**
+     * Show an error log on logcat, when the calling user is a managed profile, and the target
+     * user is different from the calling user, in order to help developers to detect it.
+     */
+    private void logErrorForInvalidProfileAccess(@NonNull UserHandle target) {
+        if (UserHandle.myUserId() != target.getIdentifier() && mUserManager.isManagedProfile()) {
+            Log.e(TAG, "Accessing other profiles/users from managed profile is no longer allowed.");
+        }
+    }
+
+    /**
      * Return a list of profiles that the caller can access via the {@link LauncherApps} APIs.
      *
      * <p>If the caller is running on a managed profile, it'll return only the current profile.
      * Otherwise it'll return the same list as {@link UserManager#getUserProfiles()} would.
      */
     public List<UserHandle> getProfiles() {
-        final UserManager um = mContext.getSystemService(UserManager.class);
-        if (um.isManagedProfile()) {
+        if (mUserManager.isManagedProfile()) {
             // If it's a managed profile, only return the current profile.
             final List result =  new ArrayList(1);
             result.add(android.os.Process.myUserHandle());
             return result;
         } else {
-            return um.getUserProfiles();
+            return mUserManager.getUserProfiles();
         }
     }
 
@@ -424,6 +435,7 @@
      * @return List of launchable activities. Can be an empty list but will not be null.
      */
     public List<LauncherActivityInfo> getActivityList(String packageName, UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             return convertToActivityList(mService.getLauncherActivities(mContext.getPackageName(),
                     packageName, user), user);
@@ -441,6 +453,7 @@
      * @return An activity info object if there is a match.
      */
     public LauncherActivityInfo resolveActivity(Intent intent, UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             ActivityInfo ai = mService.resolveActivity(mContext.getPackageName(),
                     intent.getComponent(), user);
@@ -464,6 +477,7 @@
      */
     public void startMainActivity(ComponentName component, UserHandle user, Rect sourceBounds,
             Bundle opts) {
+        logErrorForInvalidProfileAccess(user);
         if (DEBUG) {
             Log.i(TAG, "StartMainActivity " + component + " " + user.getIdentifier());
         }
@@ -486,6 +500,7 @@
      */
     public void startAppDetailsActivity(ComponentName component, UserHandle user,
             Rect sourceBounds, Bundle opts) {
+        logErrorForInvalidProfileAccess(user);
         try {
             mService.showAppDetailsAsUser(mContext.getPackageName(),
                     component, sourceBounds, opts, user);
@@ -507,6 +522,7 @@
      */
     public List<LauncherActivityInfo> getShortcutConfigActivityList(@Nullable String packageName,
             @NonNull UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             return convertToActivityList(mService.getShortcutConfigActivities(
                     mContext.getPackageName(), packageName, user),
@@ -553,6 +569,7 @@
      * @see Intent#ACTION_CREATE_SHORTCUT
      * @see android.app.Activity#startIntentSenderForResult
      */
+    @Nullable
     public IntentSender getShortcutConfigActivityIntent(@NonNull LauncherActivityInfo info) {
         try {
             return mService.getShortcutConfigActivityIntent(
@@ -571,6 +588,7 @@
      * @return true if the package exists and is enabled.
      */
     public boolean isPackageEnabled(String packageName, UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             return mService.isPackageEnabled(mContext.getPackageName(), packageName, user);
         } catch (RemoteException re) {
@@ -591,6 +609,7 @@
      */
     public ApplicationInfo getApplicationInfo(String packageName, @ApplicationInfoFlags int flags,
             UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             return mService.getApplicationInfo(mContext.getPackageName(), packageName, flags, user);
         } catch (RemoteException re) {
@@ -607,6 +626,7 @@
      * @return true if the activity exists and is enabled.
      */
     public boolean isActivityEnabled(ComponentName component, UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             return mService.isActivityEnabled(mContext.getPackageName(), component, user);
         } catch (RemoteException re) {
@@ -656,6 +676,7 @@
     @Nullable
     public List<ShortcutInfo> getShortcuts(@NonNull ShortcutQuery query,
             @NonNull UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             return mService.getShortcuts(mContext.getPackageName(),
                     query.mChangedSince, query.mPackage, query.mShortcutIds, query.mActivity,
@@ -699,6 +720,7 @@
      */
     public void pinShortcuts(@NonNull String packageName, @NonNull List<String> shortcutIds,
             @NonNull UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
         try {
             mService.pinShortcuts(mContext.getPackageName(), packageName, shortcutIds, user);
         } catch (RemoteException e) {
@@ -866,6 +888,8 @@
     public void startShortcut(@NonNull String packageName, @NonNull String shortcutId,
             @Nullable Rect sourceBounds, @Nullable Bundle startActivityOptions,
             @NonNull UserHandle user) {
+        logErrorForInvalidProfileAccess(user);
+
         startShortcut(packageName, shortcutId, sourceBounds, startActivityOptions,
                 user.getIdentifier());
     }
diff --git a/core/java/android/content/pm/PackageManagerInternal.java b/core/java/android/content/pm/PackageManagerInternal.java
index e4e0a19..7d59bd6 100644
--- a/core/java/android/content/pm/PackageManagerInternal.java
+++ b/core/java/android/content/pm/PackageManagerInternal.java
@@ -275,6 +275,11 @@
     public abstract void setExternalSourcesPolicy(ExternalSourcesPolicy policy);
 
     /**
+     * Return true if the given package is a persistent app process.
+     */
+    public abstract boolean isPackagePersistent(String packageName);
+
+    /**
      * Get all overlay packages for a user.
      * @param userId The user for which to get the overlays.
      * @return A list of overlay packages. An empty list is returned if the
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 7cef781..7a9aaaf 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -2747,15 +2747,15 @@
         String cls = clsSeq.toString();
         char c = cls.charAt(0);
         if (c == '.') {
-            return pkg + cls;
+            return (pkg + cls).intern();
         }
         if (cls.indexOf('.') < 0) {
             StringBuilder b = new StringBuilder(pkg);
             b.append('.');
             b.append(cls);
-            return b.toString();
+            return b.toString().intern();
         }
-        return cls;
+        return cls.intern();
     }
 
     private static String buildCompoundName(String pkg,
@@ -2775,7 +2775,7 @@
                         + pkg + ": " + nameError;
                 return null;
             }
-            return pkg + proc;
+            return (pkg + proc).intern();
         }
         String nameError = validateName(proc, true, false);
         if (nameError != null && !"system".equals(proc)) {
@@ -2783,7 +2783,7 @@
                     + pkg + ": " + nameError;
             return null;
         }
-        return proc;
+        return proc.intern();
     }
 
     private static String buildProcessName(String pkg, String defProc,
@@ -5101,7 +5101,7 @@
             if (v != null) {
                 if (v.type == TypedValue.TYPE_STRING) {
                     CharSequence cs = v.coerceToString();
-                    data.putString(name, cs != null ? cs.toString() : null);
+                    data.putString(name, cs != null ? cs.toString().intern() : null);
                 } else if (v.type == TypedValue.TYPE_INT_BOOLEAN) {
                     data.putBoolean(name, v.data != 0);
                 } else if (v.type >= TypedValue.TYPE_FIRST_INT
diff --git a/core/java/android/hardware/camera2/params/OutputConfiguration.java b/core/java/android/hardware/camera2/params/OutputConfiguration.java
index d951294..522575f 100644
--- a/core/java/android/hardware/camera2/params/OutputConfiguration.java
+++ b/core/java/android/hardware/camera2/params/OutputConfiguration.java
@@ -259,6 +259,10 @@
             throw new IllegalArgumentException("Unknow surface source class type");
         }
 
+        if (surfaceSize.getWidth() == 0 || surfaceSize.getHeight() == 0) {
+            throw new IllegalArgumentException("Surface size needs to be non-zero");
+        }
+
         mSurfaceGroupId = SURFACE_GROUP_ID_NONE;
         mSurfaces = new ArrayList<Surface>();
         mRotation = ROTATION_0;
diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java
index 167d5a0..562f40b 100644
--- a/core/java/android/inputmethodservice/IInputMethodWrapper.java
+++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java
@@ -61,7 +61,6 @@
     private static final int DO_SET_INPUT_CONTEXT = 20;
     private static final int DO_UNSET_INPUT_CONTEXT = 30;
     private static final int DO_START_INPUT = 32;
-    private static final int DO_RESTART_INPUT = 34;
     private static final int DO_CREATE_SESSION = 40;
     private static final int DO_SET_SESSION_ENABLED = 45;
     private static final int DO_REVOKE_SESSION = 50;
@@ -164,26 +163,22 @@
                 inputMethod.unbindInput();
                 return;
             case DO_START_INPUT: {
-                SomeArgs args = (SomeArgs)msg.obj;
-                int missingMethods = msg.arg1;
-                IInputContext inputContext = (IInputContext)args.arg1;
-                InputConnection ic = inputContext != null
+                final SomeArgs args = (SomeArgs) msg.obj;
+                final int missingMethods = msg.arg1;
+                final boolean restarting = msg.arg2 != 0;
+                final IBinder startInputToken = (IBinder) args.arg1;
+                final IInputContext inputContext = (IInputContext) args.arg2;
+                final EditorInfo info = (EditorInfo) args.arg3;
+                final InputConnection ic = inputContext != null
                         ? new InputConnectionWrapper(mTarget, inputContext, missingMethods) : null;
-                EditorInfo info = (EditorInfo)args.arg2;
                 info.makeCompatible(mTargetSdkVersion);
-                inputMethod.startInput(ic, info);
-                args.recycle();
-                return;
-            }
-            case DO_RESTART_INPUT: {
-                SomeArgs args = (SomeArgs)msg.obj;
-                int missingMethods = msg.arg1;
-                IInputContext inputContext = (IInputContext)args.arg1;
-                InputConnection ic = inputContext != null
-                        ? new InputConnectionWrapper(mTarget, inputContext, missingMethods) : null;
-                EditorInfo info = (EditorInfo)args.arg2;
-                info.makeCompatible(mTargetSdkVersion);
-                inputMethod.restartInput(ic, info);
+                if (restarting) {
+                    inputMethod.restartInput(ic, info);
+                } else {
+                    inputMethod.startInput(ic, info);
+                }
+                inputMethod.dispatchStartInputWithToken(ic, info, true /* initial */,
+                        startInputToken);
                 args.recycle();
                 return;
             }
@@ -263,19 +258,11 @@
     }
 
     @Override
-    public void startInput(IInputContext inputContext,
+    public void startInput(IBinder startInputToken, IInputContext inputContext,
             @InputConnectionInspector.MissingMethodFlags final int missingMethods,
-            EditorInfo attribute) {
-        mCaller.executeOrSendMessage(mCaller.obtainMessageIOO(DO_START_INPUT,
-                missingMethods, inputContext, attribute));
-    }
-
-    @Override
-    public void restartInput(IInputContext inputContext,
-            @InputConnectionInspector.MissingMethodFlags final int missingMethods,
-            EditorInfo attribute) {
-        mCaller.executeOrSendMessage(mCaller.obtainMessageIOO(DO_RESTART_INPUT,
-                missingMethods, inputContext, attribute));
+            EditorInfo attribute, boolean restarting) {
+        mCaller.executeOrSendMessage(mCaller.obtainMessageIIOOO(DO_START_INPUT,
+                missingMethods, restarting ? 1 : 0, startInputToken, inputContext, attribute));
     }
 
     @Override
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 5996fe2..7a20943 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -24,6 +24,7 @@
 import android.annotation.IntDef;
 import android.annotation.MainThread;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.app.Dialog;
 import android.content.Context;
@@ -291,7 +292,20 @@
     boolean mCandidatesViewStarted;
     InputConnection mStartedInputConnection;
     EditorInfo mInputEditorInfo;
-    
+
+    /**
+     * A token to keep tracking the last IPC that triggered
+     * {@link #doStartInput(InputConnection, EditorInfo, boolean)}. If
+     * {@link #doStartInput(InputConnection, EditorInfo, boolean)} was not caused by IPCs from
+     * {@link com.android.server.InputMethodManagerService}, this needs to remain unchanged.
+     *
+     * <p>Some IPCs to {@link com.android.server.InputMethodManagerService} require this token to
+     * disentangle event flows for various purposes such as better window animation and providing
+     * fine-grained debugging information.</p>
+     */
+    @Nullable
+    private IBinder mStartInputToken;
+
     int mShowInputFlags;
     boolean mShowInputRequested;
     boolean mLastShowInputRequested;
@@ -387,8 +401,9 @@
             mInputConnection = binding.getConnection();
             if (DEBUG) Log.v(TAG, "bindInput(): binding=" + binding
                     + " ic=" + mInputConnection);
-            InputConnection ic = getCurrentInputConnection();
-            if (ic != null) ic.reportFullscreenMode(mIsFullscreen);
+            if (mImm != null && mToken != null) {
+                mImm.reportFullscreenMode(mToken, mIsFullscreen);
+            }
             initialize();
             onBindInput();
         }
@@ -415,6 +430,23 @@
         }
 
         /**
+         * {@inheritDoc}
+         * @hide
+         */
+        @Override
+        public void dispatchStartInputWithToken(@Nullable InputConnection inputConnection,
+                @NonNull EditorInfo editorInfo, boolean restarting,
+                @NonNull IBinder startInputToken) {
+            mStartInputToken = startInputToken;
+
+            // This needs to be dispatched to interface methods rather than doStartInput().
+            // Otherwise IME developers who have overridden those interface methods will lose
+            // notifications.
+            super.dispatchStartInputWithToken(inputConnection, editorInfo, restarting,
+                    startInputToken);
+        }
+
+        /**
          * Handle a request by the system to hide the soft input area.
          */
         public void hideSoftInput(int flags, ResultReceiver resultReceiver) {
@@ -453,8 +485,8 @@
             clearInsetOfPreviousIme();
             // If user uses hard keyboard, IME button should always be shown.
             boolean showing = isInputViewShown();
-            mImm.setImeWindowStatus(mToken, IME_ACTIVE | (showing ? IME_VISIBLE : 0),
-                    mBackDisposition);
+            mImm.setImeWindowStatus(mToken, mStartInputToken,
+                    IME_ACTIVE | (showing ? IME_VISIBLE : 0), mBackDisposition);
             if (resultReceiver != null) {
                 resultReceiver.send(wasVis != isInputViewShown()
                         ? InputMethodManager.RESULT_SHOWN
@@ -925,8 +957,8 @@
             }
             // If user uses hard keyboard, IME button should always be shown.
             boolean showing = onEvaluateInputViewShown();
-            mImm.setImeWindowStatus(mToken, IME_ACTIVE | (showing ? IME_VISIBLE : 0),
-                    mBackDisposition);
+            mImm.setImeWindowStatus(mToken, mStartInputToken,
+                    IME_ACTIVE | (showing ? IME_VISIBLE : 0), mBackDisposition);
         }
     }
 
@@ -1027,8 +1059,9 @@
         if (mIsFullscreen != isFullscreen || !mFullscreenApplied) {
             changed = true;
             mIsFullscreen = isFullscreen;
-            InputConnection ic = getCurrentInputConnection();
-            if (ic != null) ic.reportFullscreenMode(isFullscreen);
+            if (mImm != null && mToken != null) {
+                mImm.reportFullscreenMode(mToken, mIsFullscreen);
+            }
             mFullscreenApplied = true;
             initialize();
             LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)
@@ -1651,7 +1684,8 @@
 
         final int nextImeWindowStatus = IME_ACTIVE | (isInputViewShown() ? IME_VISIBLE : 0);
         if (previousImeWindowStatus != nextImeWindowStatus) {
-            mImm.setImeWindowStatus(mToken, nextImeWindowStatus, mBackDisposition);
+            mImm.setImeWindowStatus(mToken, mStartInputToken, nextImeWindowStatus,
+                    mBackDisposition);
         }
         if ((previousImeWindowStatus & IME_ACTIVE) == 0) {
             if (DEBUG) Log.v(TAG, "showWindow: showing!");
@@ -1676,7 +1710,7 @@
     }
 
     private void doHideWindow() {
-        mImm.setImeWindowStatus(mToken, 0, mBackDisposition);
+        mImm.setImeWindowStatus(mToken, mStartInputToken, 0, mBackDisposition);
         hideWindow();
     }
 
@@ -2641,7 +2675,8 @@
         p.println("  mInputStarted=" + mInputStarted
                 + " mInputViewStarted=" + mInputViewStarted
                 + " mCandidatesViewStarted=" + mCandidatesViewStarted);
-        
+        p.println("  mStartInputToken=" + mStartInputToken);
+
         if (mInputEditorInfo != null) {
             p.println("  mInputEditorInfo:");
             mInputEditorInfo.dump(p, "    ");
diff --git a/core/java/android/net/INetworkScoreService.aidl b/core/java/android/net/INetworkScoreService.aidl
index 9cc256e..f249daf 100644
--- a/core/java/android/net/INetworkScoreService.aidl
+++ b/core/java/android/net/INetworkScoreService.aidl
@@ -132,5 +132,14 @@
     oneway void requestRecommendationAsync(in RecommendationRequest request,
                                            in RemoteCallback remoteCallback);
 
+    /**
+     * Returns metadata about the active scorer or <code>null</code> if there is no active scorer.
+     */
     NetworkScorerAppManager.NetworkScorerAppData getActiveScorer();
+
+    /**
+     * Returns the list of available scorer apps. The list will be empty if there are
+     * no valid scorers.
+     */
+    List<NetworkScorerAppManager.NetworkScorerAppData> getAllValidScorers();
 }
diff --git a/core/java/android/net/NetworkRecommendationProvider.java b/core/java/android/net/NetworkRecommendationProvider.java
index 5739c79..8395864 100644
--- a/core/java/android/net/NetworkRecommendationProvider.java
+++ b/core/java/android/net/NetworkRecommendationProvider.java
@@ -1,6 +1,7 @@
 package android.net;
 
 import android.annotation.SystemApi;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -20,6 +21,7 @@
 @SystemApi
 public abstract class NetworkRecommendationProvider {
     private static final String TAG = "NetworkRecProvider";
+    private static final boolean VERBOSE = Build.IS_DEBUGGABLE && Log.isLoggable(TAG, Log.VERBOSE);
     /** The key into the callback Bundle where the RecommendationResult will be found. */
     public static final String EXTRA_RECOMMENDATION_RESULT =
             "android.net.extra.RECOMMENDATION_RESULT";
@@ -91,8 +93,10 @@
          * @param result a {@link RecommendationResult} instance.
          */
         public void onResult(RecommendationResult result) {
+            if (VERBOSE) Log.v(TAG, "onResult(seq=" + mSequence + ")");
             if (!mCallbackRun.compareAndSet(false, true)) {
-                throw new IllegalStateException("The callback cannot be run more than once.");
+                throw new IllegalStateException("The callback cannot be run more than once. "
+                        + "seq=" + mSequence);
             }
             final Bundle data = new Bundle();
             data.putInt(EXTRA_SEQUENCE, mSequence);
@@ -102,6 +106,7 @@
             } catch (RemoteException e) {
                 Log.w(TAG, "Callback failed for seq: " + mSequence, e);
             }
+            if (VERBOSE) Log.v(TAG, "onResult() complete. seq=" + mSequence);
         }
 
         @Override
@@ -134,9 +139,13 @@
         @Override
         public void requestRecommendation(final RecommendationRequest request,
                 final IRemoteCallback callback, final int sequence) throws RemoteException {
+            if (VERBOSE) Log.v(TAG, "requestRecommendation(seq=" + sequence + ")");
             mHandler.post(new Runnable() {
                 @Override
                 public void run() {
+                    if (VERBOSE) {
+                        Log.v(TAG, "requestRecommendation(seq=" + sequence + ") running...");
+                    }
                     ResultCallback resultCallback = new ResultCallback(callback, sequence);
                     onRequestRecommendation(request, resultCallback);
                 }
diff --git a/core/java/android/net/NetworkScoreManager.java b/core/java/android/net/NetworkScoreManager.java
index 2875580..8f3af66 100644
--- a/core/java/android/net/NetworkScoreManager.java
+++ b/core/java/android/net/NetworkScoreManager.java
@@ -37,6 +37,7 @@
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
 /**
@@ -200,6 +201,20 @@
     }
 
     /**
+     * Returns the list of available scorer apps. The list will be empty if there are
+     * no valid scorers.
+     *
+     * @hide
+     */
+    public List<NetworkScorerAppData> getAllValidScorers() {
+        try {
+            return mService.getAllValidScorers();
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * Update network scores.
      *
      * <p>This may be called at any time to re-score active networks. Scores will generally be
diff --git a/core/java/android/net/NetworkScorerAppManager.java b/core/java/android/net/NetworkScorerAppManager.java
index f3cbb52..a166c7f 100644
--- a/core/java/android/net/NetworkScorerAppManager.java
+++ b/core/java/android/net/NetworkScorerAppManager.java
@@ -127,6 +127,14 @@
     }
 
     /**
+     * Returns the list of available scorer apps. The list will be empty if there are
+     * no valid scorers.
+     */
+    public List<NetworkScorerAppData> getAllValidScorers() {
+        return Collections.emptyList();
+    }
+
+    /**
      * @return A {@link NetworkScorerAppData} instance containing information about the
      *         best configured network recommendation provider installed or {@code null}
      *         if none of the configured packages can recommend networks.
diff --git a/core/java/android/net/WifiKey.java b/core/java/android/net/WifiKey.java
index 99de99e..68b505d 100644
--- a/core/java/android/net/WifiKey.java
+++ b/core/java/android/net/WifiKey.java
@@ -64,10 +64,10 @@
      * @throws IllegalArgumentException if either the SSID or BSSID is invalid.
      */
     public WifiKey(String ssid, String bssid) {
-        if (!SSID_PATTERN.matcher(ssid).matches()) {
+        if (ssid == null || !SSID_PATTERN.matcher(ssid).matches()) {
             throw new IllegalArgumentException("Invalid ssid: " + ssid);
         }
-        if (!BSSID_PATTERN.matcher(bssid).matches()) {
+        if (bssid == null || !BSSID_PATTERN.matcher(bssid).matches()) {
             throw new IllegalArgumentException("Invalid bssid: " + bssid);
         }
         this.ssid = ssid;
diff --git a/core/java/android/os/ISchedulingPolicyService.aidl b/core/java/android/os/ISchedulingPolicyService.aidl
index 1273c83..efcf59a 100644
--- a/core/java/android/os/ISchedulingPolicyService.aidl
+++ b/core/java/android/os/ISchedulingPolicyService.aidl
@@ -29,6 +29,6 @@
      * The thread group leader of tid must be pid.
      * There may be restrictions on who can call this.
      */
-    int requestPriority(int pid, int tid, int prio);
+    int requestPriority(int pid, int tid, int prio, boolean isForApp);
 
 }
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index dfcab3d..21c70f9 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -30,6 +30,7 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.IntentSender;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
@@ -421,6 +422,14 @@
      * <p>
      * The default value is <code>false</code>.
      *
+     * <p><strong>Note:</strong> The user will still be able to perform those actions via other
+     * means (such as adb). Third party apps will also be able to uninstall apps via the
+     * {@link android.content.pm.PackageInstaller}. {@link #DISALLOW_UNINSTALL_APPS} or
+     * {@link DevicePolicyManager#setUninstallBlocked(ComponentName, String, boolean)} should be
+     * used to prevent the user from uninstalling apps completely, and
+     * {@link DevicePolicyManager#addPersistentPreferredActivity(ComponentName, IntentFilter, ComponentName)}
+     * to add a default intent handler for a given intent filter.
+     *
      * <p>Key for user restrictions.
      * <p>Type: Boolean
      * @see DevicePolicyManager#addUserRestriction(ComponentName, String)
@@ -635,7 +644,7 @@
      * @see #getUserRestrictions()
      * @hide
      */
-    public static final String DISALLLOW_UNMUTE_DEVICE = "disallow_unmute_device";
+    public static final String DISALLOW_UNMUTE_DEVICE = "disallow_unmute_device";
 
     /**
      * Specifies if a user is not allowed to use cellular data when roaming. This can only be set by
@@ -1048,6 +1057,10 @@
      * allowed to run code through scheduled alarms, receiving broadcasts,
      * etc.  A started user may be either the current foreground user or a
      * background user; the result here does not distinguish between the two.
+     * <p>Requires {@code android.permission.MANAGE_USERS} or
+     * {@code android.permission.INTERACT_ACROSS_USERS}, otherwise specified {@link UserHandle user}
+     * must be the calling user or a managed profile associated with it.
+     *
      * @param user The user to retrieve the running state for.
      */
     public boolean isUserRunning(UserHandle user) {
@@ -1068,6 +1081,10 @@
      * This is like {@link #isUserRunning(UserHandle)}, but will also return
      * true if the user had been running but is in the process of being stopped
      * (but is not yet fully stopped, and still running some code).
+     * <p>Requires {@code android.permission.MANAGE_USERS} or
+     * {@code android.permission.INTERACT_ACROSS_USERS}, otherwise specified {@link UserHandle user}
+     * must be the calling user or a managed profile associated with it.
+     *
      * @param user The user to retrieve the running state for.
      */
     public boolean isUserRunningOrStopping(UserHandle user) {
@@ -1142,6 +1159,9 @@
      * When a user is locked, only device-protected data storage is available.
      * When a user is unlocked, both device-protected and credential-protected
      * private app data storage is available.
+     * <p>Requires {@code android.permission.MANAGE_USERS} or
+     * {@code android.permission.INTERACT_ACROSS_USERS}, otherwise specified {@link UserHandle user}
+     * must be the calling user or a managed profile associated with it.
      *
      * @param user to retrieve the unlocked state for.
      * @see Intent#ACTION_USER_UNLOCKED
diff --git a/core/java/android/os/storage/IStorageManager.aidl b/core/java/android/os/storage/IStorageManager.aidl
index 35a266b..9e35bf6 100644
--- a/core/java/android/os/storage/IStorageManager.aidl
+++ b/core/java/android/os/storage/IStorageManager.aidl
@@ -293,4 +293,6 @@
     ParcelFileDescriptor openProxyFileDescriptor(int mountPointId, int fileId, int mode) = 74;
     long getCacheQuotaBytes(String volumeUuid, int uid) = 75;
     long getCacheSizeBytes(String volumeUuid, int uid) = 76;
+    long getAllocatableBytes(String path, int flags) = 77;
+    void allocateBytes(String path, long bytes, int flags) = 78;
 }
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 626d6f4..2a3c03d 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -18,8 +18,10 @@
 
 import static android.net.TrafficStats.MB_IN_BYTES;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.app.ActivityThread;
 import android.content.ContentResolver;
@@ -34,6 +36,7 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.ParcelFileDescriptor;
+import android.os.ParcelableException;
 import android.os.ProxyFileDescriptorCallback;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -60,10 +63,13 @@
 
 import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileDescriptor;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.lang.ref.WeakReference;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
@@ -1424,10 +1430,7 @@
      * as a single unit.
      * </p>
      *
-     * @see #getCacheQuotaBytes()
      * @see #getCacheSizeBytes()
-     * @see #getExternalCacheQuotaBytes()
-     * @see #getExternalCacheSizeBytes()
      */
     public long getCacheQuotaBytes() {
         try {
@@ -1453,9 +1456,6 @@
      * </p>
      *
      * @see #getCacheQuotaBytes()
-     * @see #getCacheSizeBytes()
-     * @see #getExternalCacheQuotaBytes()
-     * @see #getExternalCacheSizeBytes()
      */
     public long getCacheSizeBytes() {
         try {
@@ -1520,6 +1520,139 @@
         }
     }
 
+    /**
+     * Flag indicating that a disk space allocation request should operate in an
+     * aggressive mode. This flag should only be rarely used in situations that
+     * are critical to system health or security.
+     * <p>
+     * When set, the system is more aggressive about the data that it considers
+     * for possible deletion when allocating disk space.
+     * <p class="note">
+     * Note: your app must hold the
+     * {@link android.Manifest.permission#ALLOCATE_AGGRESSIVE} permission for
+     * this flag to take effect.
+     * </p>
+     *
+     * @see #getAllocatableBytes(File, int)
+     * @see #allocateBytes(File, long, int)
+     * @see #allocateBytes(FileDescriptor, long, int)
+     */
+    @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE)
+    public static final int FLAG_ALLOCATE_AGGRESSIVE = 1;
+
+    /** @hide */
+    @IntDef(flag = true, value = {
+            FLAG_ALLOCATE_AGGRESSIVE,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface AllocateFlags {}
+
+    /**
+     * Return the maximum number of new bytes that your app can allocate for
+     * itself using {@link #allocateBytes(File, long, int)} at the given path.
+     * This value is typically larger than {@link File#getUsableSpace()}, since
+     * the system may automatically delete cached files to satisfy your request.
+     * <p>
+     * This method is best used as a pre-flight check, such as deciding if there
+     * is enough space to store an entire music album before you allocate space
+     * for each audio file in the album. Attempts to allocate disk space beyond
+     * this value will fail.
+     * <p class="note">
+     * Note: if your app uses the {@code android:sharedUserId} manifest feature,
+     * then allocatable space for all packages in your shared UID is tracked
+     * together as a single unit.
+     * </p>
+     *
+     * @param file the directory where you're considering allocating disk space,
+     *            since allocatable space can vary widely depending on the
+     *            underlying storage device.
+     * @param flags to apply to the request.
+     * @return the maximum number of new bytes that the calling app can allocate
+     *         using {@link #allocateBytes(File, long, int)}.
+     */
+    public long getAllocatableBytes(File file, @AllocateFlags int flags) throws IOException {
+        try {
+            return mStorageManager.getAllocatableBytes(file.getAbsolutePath(), flags);
+        } catch (ParcelableException e) {
+            e.maybeRethrow(IOException.class);
+            throw new RuntimeException(e);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Allocate the requested number of bytes for your application to use at the
+     * given path. This will cause the system to delete any cached files
+     * necessary to satisfy your request.
+     * <p>
+     * Attempts to allocate disk space beyond the value returned by
+     * {@link #getAllocatableBytes(File, int)} will fail.
+     * <p>
+     * Since multiple apps can be running simultaneously, this method may be
+     * subject to race conditions. If possible, consider using
+     * {@link #allocateBytes(FileDescriptor, long, int)} which will guarantee
+     * that bytes are allocated to an opened file.
+     *
+     * @param file the directory where you'd like to allocate disk space.
+     * @param bytes the number of bytes to allocate.
+     * @param flags to apply to the request.
+     * @see #getAllocatableBytes(File, int)
+     */
+    public void allocateBytes(File file, long bytes, @AllocateFlags int flags) throws IOException {
+        try {
+            mStorageManager.allocateBytes(file.getAbsolutePath(), bytes, flags);
+        } catch (ParcelableException e) {
+            e.maybeRethrow(IOException.class);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Allocate the requested number of bytes for your application to use at the
+     * given path. This will cause the system to delete any cached files
+     * necessary to satisfy your request.
+     * <p>
+     * Attempts to allocate disk space beyond the value returned by
+     * {@link #getAllocatableBytes(File, int)} will fail.
+     * <p>
+     * This method guarantees that bytes are allocated to the opened file,
+     * otherwise it will throw if fast allocation not possible. Fast allocation
+     * is typically only supported in private app data directories, and on
+     * shared/external storage devices which are emulated.
+     *
+     * @param fd the directory where you'd like to allocate disk space.
+     * @param bytes the number of bytes to allocate.
+     * @param flags to apply to the request.
+     * @see #getAllocatableBytes(File, int)
+     * @see Environment#isExternalStorageEmulated(File)
+     */
+    public void allocateBytes(FileDescriptor fd, long bytes, @AllocateFlags int flags)
+            throws IOException {
+        final File file;
+        try {
+            file = new File(Os.readlink("/proc/self/fd/" + fd.getInt$()));
+        } catch (ErrnoException e) {
+            throw e.rethrowAsIOException();
+        }
+        for (int i = 0; i < 3; i++) {
+            allocateBytes(file, bytes, flags);
+
+            try {
+                Os.posix_fallocate(fd, 0, bytes);
+            } catch (ErrnoException e) {
+                if (e.errno == OsConstants.ENOSPC) {
+                    Log.w(TAG, "Odd, not enough space; let's try again?");
+                    continue;
+                }
+                throw e.rethrowAsIOException();
+            }
+        }
+        throw new IOException(
+                "Well this is embarassing; we can't allocate " + bytes + " for " + file);
+    }
+
     private static final String XATTR_ATOMIC = "user.atomic";
     private static final String XATTR_TOMBSTONE = "user.tombstone";
 
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index 5e7f68b..600d82f 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -602,7 +602,9 @@
         if (mHeaders.size() > 0) {
             setListAdapter(new HeaderAdapter(this, mHeaders, mPreferenceHeaderItemResId,
                     mPreferenceHeaderRemoveEmptyIcon));
-            getListView().setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
+            if (!mSinglePane) {
+                getListView().setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
+            }
         }
 
         if (mSinglePane && initialFragment != null && initialTitle != 0) {
diff --git a/core/java/android/provider/CalendarContract.java b/core/java/android/provider/CalendarContract.java
index aa22041..d9ce57a 100644
--- a/core/java/android/provider/CalendarContract.java
+++ b/core/java/android/provider/CalendarContract.java
@@ -2392,6 +2392,7 @@
             Intent intent = new Intent(ACTION_EVENT_REMINDER);
             intent.setData(ContentUris.withAppendedId(CalendarContract.CONTENT_URI, alarmTime));
             intent.putExtra(ALARM_TIME, alarmTime);
+            intent.setFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
             PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
             manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmTime, pi);
         }
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 2936dfb..1655847 100755
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -48,6 +48,7 @@
 import android.database.SQLException;
 import android.location.LocationManager;
 import android.net.ConnectivityManager;
+import android.net.NetworkScoreManager;
 import android.net.Uri;
 import android.net.wifi.WifiManager;
 import android.os.BatteryManager;
@@ -1279,9 +1280,7 @@
      *     Input: Optionally, {@link #EXTRA_CHANNEL_ID}, to highlight that channel.
      * <p>
      * Output: Nothing.
-     * @hide
      */
-    @SystemApi
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_APP_NOTIFICATION_SETTINGS
             = "android.settings.APP_NOTIFICATION_SETTINGS";
@@ -1289,8 +1288,6 @@
     /**
      * Activity Action: Show notification settings for a single {@link NotificationChannel}.
      * <p>
-     * Must be called from an activity.
-     * <p>
      *     Input: {@link #EXTRA_APP_PACKAGE}, the package containing the channel to display.
      *     Input: {@link #EXTRA_CHANNEL_ID}, the id of the channel to display.
      * <p>
@@ -6825,39 +6822,6 @@
                 "system_navigation_keys_enabled";
 
         /**
-         * Whether Downloads folder backup is enabled and should run on the device.
-         *
-         * @hide
-         */
-        public static final String DOWNLOADS_BACKUP_ENABLED = "downloads_backup_enabled";
-
-        /**
-         * Whether Downloads folder backup should only occur if the device is using a metered
-         * network.
-         *
-         * @hide
-         */
-        public static final String DOWNLOADS_BACKUP_ALLOW_METERED =
-                "downloads_backup_allow_metered";
-
-        /**
-         * Whether Downloads folder backup should only occur if the device is charging.
-         *
-         * @hide
-         */
-        public static final String DOWNLOADS_BACKUP_CHARGING_ONLY =
-                "downloads_backup_charging_only";
-
-        /**
-         * How many days of information for the automatic storage manager to retain on the device
-         * for downloads.
-         *
-         * @hide
-         */
-        public static final String AUTOMATIC_STORAGE_MANAGER_DOWNLOADS_DAYS_TO_RETAIN =
-                "automatic_storage_manager_downloads_days_to_retain";
-
-        /**
          * Holds comma separated list of ordering of QS tiles.
          * @hide
          */
@@ -6977,7 +6941,8 @@
             DOZE_ENABLED,
             DOZE_PULSE_ON_PICK_UP,
             DOZE_PULSE_ON_DOUBLE_TAP,
-            NFC_PAYMENT_DEFAULT_COMPONENT
+            NFC_PAYMENT_DEFAULT_COMPONENT,
+            AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN
         };
 
         /**
@@ -8220,6 +8185,19 @@
                 "network_recommendations_enabled";
 
         /**
+         * Which package name to use for network recommendations. If null, network recommendations
+         * will neither be requested nor accepted.
+         *
+         * Use {@link NetworkScoreManager#getActiveScorerPackage()} to read this value and
+         * {@link NetworkScoreManager#setActiveScorer(String)} to write it.
+         *
+         * Type: string - package name
+         * @hide
+         */
+        public static final String NETWORK_RECOMMENDATIONS_PACKAGE =
+                "network_recommendations_package";
+
+        /**
          * Value to specify if the Wi-Fi Framework should defer to
          * {@link com.android.server.NetworkScoreService} for evaluating saved open networks.
          *
diff --git a/core/java/android/service/autofill/AutoFillService.java b/core/java/android/service/autofill/AutoFillService.java
index ab80aa3..6da6a39 100644
--- a/core/java/android/service/autofill/AutoFillService.java
+++ b/core/java/android/service/autofill/AutoFillService.java
@@ -172,7 +172,7 @@
      * <p>You should generally do initialization here rather than in {@link #onCreate}.
      */
     public void onConnected() {
-
+        //TODO(b/33197203): is not called anymore, fix it!
     }
 
     /**
@@ -221,6 +221,6 @@
      * <p> At this point this service may no longer be an active {@link AutoFillService}.
      */
     public void onDisconnected() {
-
+        //TODO(b/33197203): is not called anymore, fix it!
     }
 }
diff --git a/core/java/android/service/autofill/IAutoFillManagerService.aidl b/core/java/android/service/autofill/IAutoFillManagerService.aidl
index b39c0c8..6cdb516 100644
--- a/core/java/android/service/autofill/IAutoFillManagerService.aidl
+++ b/core/java/android/service/autofill/IAutoFillManagerService.aidl
@@ -34,7 +34,4 @@
     void updateSession(in IBinder activityToken, in AutoFillId id, in Rect bounds,
                        in AutoFillValue value, int flags);
     void finishSession(in IBinder activityToken);
-
-    // Methods called by ShellCommand
-    void requestSaveForUser(int userId);
 }
diff --git a/core/java/android/service/textservice/SpellCheckerService.java b/core/java/android/service/textservice/SpellCheckerService.java
index 120a37a..bd1b44c 100644
--- a/core/java/android/service/textservice/SpellCheckerService.java
+++ b/core/java/android/service/textservice/SpellCheckerService.java
@@ -17,6 +17,7 @@
 package android.service.textservice;
 
 import com.android.internal.textservice.ISpellCheckerService;
+import com.android.internal.textservice.ISpellCheckerServiceCallback;
 import com.android.internal.textservice.ISpellCheckerSession;
 import com.android.internal.textservice.ISpellCheckerSessionListener;
 
@@ -311,16 +312,39 @@
             mInternalServiceRef = new WeakReference<SpellCheckerService>(service);
         }
 
+        /**
+         * Called from the system when an application is requesting a new spell checker session.
+         *
+         * <p>Note: This is an internal protocol used by the system to establish spell checker
+         * sessions, which is not guaranteed to be stable and is subject to change.</p>
+         *
+         * @param locale locale to be returned from {@link Session#getLocale()}
+         * @param listener IPC channel object to be used to implement
+         *                 {@link Session#onGetSuggestionsMultiple(TextInfo[], int, boolean)} and
+         *                 {@link Session#onGetSuggestions(TextInfo, int)}
+         * @param bundle bundle to be returned from {@link Session#getBundle()}
+         * @param callback IPC channel to return the result to the caller in an asynchronous manner
+         */
         @Override
-        public ISpellCheckerSession getISpellCheckerSession(
-                String locale, ISpellCheckerSessionListener listener, Bundle bundle) {
+        public void getISpellCheckerSession(
+                String locale, ISpellCheckerSessionListener listener, Bundle bundle,
+                ISpellCheckerServiceCallback callback) {
             final SpellCheckerService service = mInternalServiceRef.get();
-            if (service == null) return null;
-            final Session session = service.createSession();
-            final InternalISpellCheckerSession internalSession =
-                    new InternalISpellCheckerSession(locale, listener, bundle, session);
-            session.onCreate();
-            return internalSession;
+            final InternalISpellCheckerSession internalSession;
+            if (service == null) {
+                // If the owner SpellCheckerService object was already destroyed and got GC-ed,
+                // the weak-reference returns null and we should just ignore this request.
+                internalSession = null;
+            } else {
+                final Session session = service.createSession();
+                internalSession =
+                        new InternalISpellCheckerSession(locale, listener, bundle, session);
+                session.onCreate();
+            }
+            try {
+                callback.onSessionCreated(internalSession);
+            } catch (RemoteException e) {
+            }
         }
     }
 
diff --git a/core/java/android/service/voice/VoiceInteractionSession.java b/core/java/android/service/voice/VoiceInteractionSession.java
index e9bbc2d..a2a129d 100644
--- a/core/java/android/service/voice/VoiceInteractionSession.java
+++ b/core/java/android/service/voice/VoiceInteractionSession.java
@@ -135,6 +135,7 @@
     FrameLayout mContentFrame;
     SoftInputWindow mWindow;
 
+    boolean mUiEnabled = true;
     boolean mInitialized;
     boolean mWindowAdded;
     boolean mWindowVisible;
@@ -1001,35 +1002,40 @@
 
         try {
             mInShowWindow = true;
+            onPrepareShow(args, flags);
             if (!mWindowVisible) {
-                if (!mWindowAdded) {
-                    mWindowAdded = true;
-                    View v = onCreateContentView();
-                    if (v != null) {
-                        setContentView(v);
-                    }
-                }
+                ensureWindowAdded();
             }
             onShow(args, flags);
             if (!mWindowVisible) {
                 mWindowVisible = true;
-                mWindow.show();
+                if (mUiEnabled) {
+                    mWindow.show();
+                }
             }
             if (showCallback != null) {
-                mRootView.invalidate();
-                mRootView.getViewTreeObserver().addOnPreDrawListener(
-                        new ViewTreeObserver.OnPreDrawListener() {
-                            @Override
-                            public boolean onPreDraw() {
-                                mRootView.getViewTreeObserver().removeOnPreDrawListener(this);
-                                try {
-                                    showCallback.onShown();
-                                } catch (RemoteException e) {
-                                    Log.w(TAG, "Error calling onShown", e);
+                if (mUiEnabled) {
+                    mRootView.invalidate();
+                    mRootView.getViewTreeObserver().addOnPreDrawListener(
+                            new ViewTreeObserver.OnPreDrawListener() {
+                                @Override
+                                public boolean onPreDraw() {
+                                    mRootView.getViewTreeObserver().removeOnPreDrawListener(this);
+                                    try {
+                                        showCallback.onShown();
+                                    } catch (RemoteException e) {
+                                        Log.w(TAG, "Error calling onShown", e);
+                                    }
+                                    return true;
                                 }
-                                return true;
-                            }
-                        });
+                            });
+                } else {
+                    try {
+                        showCallback.onShown();
+                    } catch (RemoteException e) {
+                        Log.w(TAG, "Error calling onShown", e);
+                    }
+                }
             }
         } finally {
             mWindowWasVisible = true;
@@ -1039,7 +1045,7 @@
 
     void doHide() {
         if (mWindowVisible) {
-            mWindow.hide();
+            ensureWindowHidden();
             mWindowVisible = false;
             onHide();
         }
@@ -1058,19 +1064,56 @@
         }
     }
 
-    void initViews() {
+    void ensureWindowCreated() {
+        if (mInitialized) {
+            return;
+        }
+
+        if (!mUiEnabled) {
+            throw new IllegalStateException("setUiEnabled is false");
+        }
+
         mInitialized = true;
+        mInflater = (LayoutInflater)mContext.getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
+        mWindow = new SoftInputWindow(mContext, "VoiceInteractionSession", mTheme,
+                mCallbacks, this, mDispatcherState,
+                WindowManager.LayoutParams.TYPE_VOICE_INTERACTION, Gravity.BOTTOM, true);
+        mWindow.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED |
+                        WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
+                        WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
 
         mThemeAttrs = mContext.obtainStyledAttributes(android.R.styleable.VoiceInteractionSession);
         mRootView = mInflater.inflate(
                 com.android.internal.R.layout.voice_interaction_session, null);
         mRootView.setSystemUiVisibility(
                 View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
-                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
+                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
         mWindow.setContentView(mRootView);
         mRootView.getViewTreeObserver().addOnComputeInternalInsetsListener(mInsetsComputer);
 
         mContentFrame = (FrameLayout)mRootView.findViewById(android.R.id.content);
+
+        mWindow.getWindow().setLayout(MATCH_PARENT, MATCH_PARENT);
+        mWindow.setToken(mToken);
+    }
+
+    void ensureWindowAdded() {
+        if (mUiEnabled && !mWindowAdded) {
+            mWindowAdded = true;
+            ensureWindowCreated();
+            View v = onCreateContentView();
+            if (v != null) {
+                setContentView(v);
+            }
+        }
+    }
+
+    void ensureWindowHidden() {
+        if (mWindow != null) {
+            mWindow.hide();
+        }
     }
 
     /**
@@ -1151,6 +1194,24 @@
     }
 
     /**
+     * Control whether the UI layer for this session is enabled.  It is enabled by default.
+     * If set to false, you will not be able to provide a UI through {@link #onCreateContentView()}.
+     */
+    public void setUiEnabled(boolean enabled) {
+        if (mUiEnabled != enabled) {
+            mUiEnabled = enabled;
+            if (mWindowVisible) {
+                if (enabled) {
+                    ensureWindowAdded();
+                    mWindow.show();
+                } else {
+                    ensureWindowHidden();
+                }
+            }
+        }
+    }
+
+    /**
      * You can call this to customize the theme used by your IME's window.
      * This must be set before {@link #onCreate}, so you
      * will typically call it in your constructor with the resource ID
@@ -1200,6 +1261,36 @@
         }
     }
 
+
+
+    /**
+     * <p>Ask that a new assistant activity be started.  This will create a new task in the
+     * in activity manager: this means that
+     * {@link Intent#FLAG_ACTIVITY_NEW_TASK Intent.FLAG_ACTIVITY_NEW_TASK}
+     * will be set for you to make it a new task.</p>
+     *
+     * <p>The newly started activity will be displayed on top of other activities in the system
+     * in a new layer that is not affected by multi-window mode.  Tasks started from this activity
+     * will go into the normal activity layer and not this new layer.</p>
+     *
+     * <p>By default, the system will create a window for the UI for this session.  If you are using
+     * an assistant activity instead, then you can disable the window creation by calling
+     * {@link #setUiEnabled} in {@link #onPrepareShow(Bundle, int)}.</p>
+     */
+    public void startAssistantActivity(Intent intent) {
+        if (mToken == null) {
+            throw new IllegalStateException("Can't call before onCreate()");
+        }
+        try {
+            intent.migrateExtraStreamToClipData();
+            intent.prepareToLeaveProcess(mContext);
+            int res = mSystemService.startAssistantActivity(mToken, intent,
+                    intent.resolveType(mContext.getContentResolver()));
+            Instrumentation.checkStartActivityResult(res, intent);
+        } catch (RemoteException e) {
+        }
+    }
+
     /**
      * Set whether this session will keep the device awake while it is running a voice
      * activity.  By default, the system holds a wake lock for it while in this state,
@@ -1242,6 +1333,7 @@
      * Convenience for inflating views.
      */
     public LayoutInflater getLayoutInflater() {
+        ensureWindowCreated();
         return mInflater;
     }
 
@@ -1249,6 +1341,7 @@
      * Retrieve the window being used to show the session's UI.
      */
     public Dialog getWindow() {
+        ensureWindowCreated();
         return mWindow;
     }
 
@@ -1278,18 +1371,17 @@
     private void doOnCreate() {
         mTheme = mTheme != 0 ? mTheme
                 : com.android.internal.R.style.Theme_DeviceDefault_VoiceInteractionSession;
-        mInflater = (LayoutInflater)mContext.getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-        mWindow = new SoftInputWindow(mContext, "VoiceInteractionSession", mTheme,
-                mCallbacks, this, mDispatcherState,
-                WindowManager.LayoutParams.TYPE_VOICE_INTERACTION, Gravity.BOTTOM, true);
-        mWindow.getWindow().addFlags(
-                WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED |
-                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
-                WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
-        initViews();
-        mWindow.getWindow().setLayout(MATCH_PARENT, MATCH_PARENT);
-        mWindow.setToken(mToken);
+    }
+
+    /**
+     * Called prior to {@link #onShow} before any UI setup has occurred.  Not generally useful.
+     *
+     * @param args The arguments that were supplied to
+     * {@link VoiceInteractionService#showSession VoiceInteractionService.showSession}.
+     * @param showFlags The show flags originally provided to
+     * {@link VoiceInteractionService#showSession VoiceInteractionService.showSession}.
+     */
+    public void onPrepareShow(Bundle args, int showFlags) {
     }
 
     /**
@@ -1327,6 +1419,7 @@
     }
 
     public void setContentView(View view) {
+        ensureWindowCreated();
         mContentFrame.removeAllViews();
         mContentFrame.addView(view, new FrameLayout.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT,
@@ -1623,7 +1716,8 @@
     public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
         writer.print(prefix); writer.print("mToken="); writer.println(mToken);
         writer.print(prefix); writer.print("mTheme=#"); writer.println(Integer.toHexString(mTheme));
-        writer.print(prefix); writer.print("mInitialized="); writer.println(mInitialized);
+        writer.print(prefix); writer.print("mUiEnabled="); writer.println(mUiEnabled);
+        writer.print(" mInitialized="); writer.println(mInitialized);
         writer.print(prefix); writer.print("mWindowAdded="); writer.print(mWindowAdded);
         writer.print(" mWindowVisible="); writer.println(mWindowVisible);
         writer.print(prefix); writer.print("mWindowWasVisible="); writer.print(mWindowWasVisible);
diff --git a/core/java/android/text/method/DateKeyListener.java b/core/java/android/text/method/DateKeyListener.java
index 88ef388..e14cd2c 100644
--- a/core/java/android/text/method/DateKeyListener.java
+++ b/core/java/android/text/method/DateKeyListener.java
@@ -16,9 +16,17 @@
 
 package android.text.method;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.text.InputType;
 import android.view.KeyEvent;
 
+import com.android.internal.annotations.GuardedBy;
+
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Locale;
+
 /**
  * For entering dates in a text field.
  * <p></p>
@@ -34,29 +42,76 @@
     }
 
     @Override
-    protected char[] getAcceptedChars()
-    {
-        return CHARACTERS;
-    }
-
-    public static DateKeyListener getInstance() {
-        if (sInstance != null)
-            return sInstance;
-
-        sInstance = new DateKeyListener();
-        return sInstance;
+    @NonNull
+    protected char[] getAcceptedChars() {
+        return mCharacters;
     }
 
     /**
-     * The characters that are used.
+     * @deprecated Use {@link #DateKeyListener(Locale)} instead.
+     */
+    @Deprecated
+    public DateKeyListener() {
+        this(null);
+    }
+
+    private static final String SYMBOLS_TO_IGNORE = "yMLd";
+    private static final String[] SKELETONS = {"yMd", "yM", "Md"};
+
+    public DateKeyListener(@Nullable Locale locale) {
+        final LinkedHashSet<Character> chars = new LinkedHashSet<>();
+        // First add the digits, then add all the non-pattern characters seen in the pattern for
+        // "yMd", which is supposed to only have numerical fields.
+        final boolean success = NumberKeyListener.addDigits(chars, locale)
+                                && NumberKeyListener.addFormatCharsFromSkeletons(
+                                        chars, locale, SKELETONS, SYMBOLS_TO_IGNORE);
+        mCharacters = success ? NumberKeyListener.collectionToArray(chars) : CHARACTERS;
+    }
+
+    /**
+     * @deprecated Use {@link #getInstance(Locale)} instead.
+     */
+    @Deprecated
+    @NonNull
+    public static DateKeyListener getInstance() {
+        return getInstance(null);
+    }
+
+    /**
+     * Returns an instance of DateKeyListener appropriate for the given locale.
+     */
+    @NonNull
+    public static DateKeyListener getInstance(@Nullable Locale locale) {
+        DateKeyListener instance;
+        synchronized (sLock) {
+            instance = sInstanceCache.get(locale);
+            if (instance == null) {
+                instance = new DateKeyListener(locale);
+                sInstanceCache.put(locale, instance);
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * This field used to list the characters that were used. But is now a fixed data
+     * field that is the list of code units used for the deprecated case where the class
+     * is instantiated with null or no input parameter.
      *
      * @see KeyEvent#getMatch
      * @see #getAcceptedChars
+     *
+     * @deprecated Use {@link #getAcceptedChars()} instead.
      */
+    @Deprecated
     public static final char[] CHARACTERS = new char[] {
             '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
             '/', '-', '.'
         };
 
-    private static DateKeyListener sInstance;
+    private final char[] mCharacters;
+
+    private static final Object sLock = new Object();
+    @GuardedBy("sLock")
+    private static final HashMap<Locale, DateKeyListener> sInstanceCache = new HashMap<>();
 }
diff --git a/core/java/android/text/method/DateTimeKeyListener.java b/core/java/android/text/method/DateTimeKeyListener.java
index 523e986..62e3ade 100644
--- a/core/java/android/text/method/DateTimeKeyListener.java
+++ b/core/java/android/text/method/DateTimeKeyListener.java
@@ -16,9 +16,17 @@
 
 package android.text.method;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.text.InputType;
 import android.view.KeyEvent;
 
+import com.android.internal.annotations.GuardedBy;
+
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Locale;
+
 /**
  * For entering dates and times in the same text field.
  * <p></p>
@@ -34,29 +42,80 @@
     }
     
     @Override
+    @NonNull
     protected char[] getAcceptedChars()
     {
-        return CHARACTERS;
-    }
-
-    public static DateTimeKeyListener getInstance() {
-        if (sInstance != null)
-            return sInstance;
-
-        sInstance = new DateTimeKeyListener();
-        return sInstance;
+        return mCharacters;
     }
 
     /**
-     * The characters that are used.
+     * @deprecated Use {@link #DateTimeKeyListener(Locale)} instead.
+     */
+    @Deprecated
+    public DateTimeKeyListener() {
+        this(null);
+    }
+
+    private static final String SYMBOLS_TO_IGNORE = "yMLdahHKkms";
+    private static final String SKELETON_12HOUR = "yMdhms";
+    private static final String SKELETON_24HOUR = "yMdHms";
+
+    public DateTimeKeyListener(@Nullable Locale locale) {
+        final LinkedHashSet<Character> chars = new LinkedHashSet<>();
+        // First add the digits. Then, add all the character in AM and PM markers. Finally, add all
+        // the non-pattern characters seen in the patterns for "yMdhms" and "yMdHms".
+        boolean success = NumberKeyListener.addDigits(chars, locale)
+                          && NumberKeyListener.addAmPmChars(chars, locale)
+                          && NumberKeyListener.addFormatCharsFromSkeleton(
+                              chars, locale, SKELETON_12HOUR, SYMBOLS_TO_IGNORE)
+                          && NumberKeyListener.addFormatCharsFromSkeleton(
+                              chars, locale, SKELETON_24HOUR, SYMBOLS_TO_IGNORE);
+        mCharacters = success ? NumberKeyListener.collectionToArray(chars) : CHARACTERS;
+    }
+
+    /**
+     * @deprecated Use {@link #getInstance(Locale)} instead.
+     */
+    @Deprecated
+    @NonNull
+    public static DateTimeKeyListener getInstance() {
+        return getInstance(null);
+    }
+
+    /**
+     * Returns an instance of DateTimeKeyListener appropriate for the given locale.
+     */
+    @NonNull
+    public static DateTimeKeyListener getInstance(@Nullable Locale locale) {
+        DateTimeKeyListener instance;
+        synchronized (sLock) {
+            instance = sInstanceCache.get(locale);
+            if (instance == null) {
+                instance = new DateTimeKeyListener(locale);
+                sInstanceCache.put(locale, instance);
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * This field used to list the characters that were used. But is now a fixed data
+     * field that is the list of code units used for the deprecated case where the class
+     * is instantiated with null or no input parameter.
      *
      * @see KeyEvent#getMatch
      * @see #getAcceptedChars
+     *
+     * @deprecated Use {@link #getAcceptedChars()} instead.
      */
     public static final char[] CHARACTERS = new char[] {
             '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'm',
             'p', ':', '/', '-', ' '
         };
 
-    private static DateTimeKeyListener sInstance;
+    private final char[] mCharacters;
+
+    private static final Object sLock = new Object();
+    @GuardedBy("sLock")
+    private static final HashMap<Locale, DateTimeKeyListener> sInstanceCache = new HashMap<>();
 }
diff --git a/core/java/android/text/method/DigitsKeyListener.java b/core/java/android/text/method/DigitsKeyListener.java
index 4aeb39a..26c69ab 100644
--- a/core/java/android/text/method/DigitsKeyListener.java
+++ b/core/java/android/text/method/DigitsKeyListener.java
@@ -16,11 +16,21 @@
 
 package android.text.method;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.icu.lang.UCharacter;
+import android.icu.lang.UProperty;
+import android.icu.text.DecimalFormatSymbols;
 import android.text.InputType;
 import android.text.SpannableStringBuilder;
 import android.text.Spanned;
 import android.view.KeyEvent;
 
+import com.android.internal.annotations.GuardedBy;
+
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Locale;
 
 /**
  * For digits-only text entry
@@ -32,8 +42,20 @@
 public class DigitsKeyListener extends NumberKeyListener
 {
     private char[] mAccepted;
-    private boolean mSign;
-    private boolean mDecimal;
+    private final boolean mSign;
+    private final boolean mDecimal;
+
+    private static final String DEFAULT_DECIMAL_POINT_CHARS = ".";
+    private static final String DEFAULT_SIGN_CHARS = "-+";
+
+    private static final char HYPHEN_MINUS = '-';
+    // Various locales use this as minus sign
+    private static final char MINUS_SIGN = '\u2212';
+    // Slovenian uses this as minus sign (a bug?): http://unicode.org/cldr/trac/ticket/10050
+    private static final char EN_DASH = '\u2013';
+
+    private String mDecimalPointChars = DEFAULT_DECIMAL_POINT_CHARS;
+    private String mSignChars = DEFAULT_SIGN_CHARS;
 
     private static final int SIGN = 1;
     private static final int DECIMAL = 2;
@@ -44,83 +66,218 @@
     }
 
     /**
-     * The characters that are used.
+     * The characters that are used in compatibility mode.
      *
      * @see KeyEvent#getMatch
      * @see #getAcceptedChars
      */
-    private static final char[][] CHARACTERS = {
+    private static final char[][] COMPATIBILITY_CHARACTERS = {
         { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' },
         { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+' },
         { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.' },
         { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+', '.' },
     };
 
-    private static boolean isSignChar(final char c) {
-        return c == '-' || c == '+';
+    private boolean isSignChar(final char c) {
+        return mSignChars.indexOf(c) != -1;
     }
 
-    // TODO: Needs internationalization
-    private static boolean isDecimalPointChar(final char c) {
-        return c == '.';
+    private boolean isDecimalPointChar(final char c) {
+        return mDecimalPointChars.indexOf(c) != -1;
     }
 
     /**
-     * Allocates a DigitsKeyListener that accepts the digits 0 through 9.
+     * Allocates a DigitsKeyListener that accepts the ASCII digits 0 through 9.
+     *
+     * @deprecated Use {@link #DigitsKeyListener(Locale)} instead.
      */
+    @Deprecated
     public DigitsKeyListener() {
-        this(false, false);
+        this(null, false, false);
     }
 
     /**
-     * Allocates a DigitsKeyListener that accepts the digits 0 through 9,
-     * plus the minus sign (only at the beginning) and/or decimal point
+     * Allocates a DigitsKeyListener that accepts the ASCII digits 0 through 9, plus the ASCII plus
+     * or minus sign (only at the beginning) and/or the ASCII period ('.') as the decimal point
      * (only one per field) if specified.
+     *
+     * @deprecated Use {@link #DigitsKeyListener(Locale, boolean, boolean)} instead.
      */
+    @Deprecated
     public DigitsKeyListener(boolean sign, boolean decimal) {
+        this(null, sign, decimal);
+    }
+
+    public DigitsKeyListener(@Nullable Locale locale) {
+        this(locale, false, false);
+    }
+
+    private void setToCompat(boolean sign, boolean decimal) {
+        mDecimalPointChars = DEFAULT_DECIMAL_POINT_CHARS;
+        mSignChars = DEFAULT_SIGN_CHARS;
+        final int kind = (sign ? SIGN : 0) | (decimal ? DECIMAL : 0);
+        mAccepted = COMPATIBILITY_CHARACTERS[kind];
+    }
+
+    // Takes a sign string and strips off its bidi controls, if any.
+    @NonNull
+    private static String stripBidiControls(@NonNull String sign) {
+        // For the sake of simplicity, we operate on code units, since all bidi controls are
+        // in the BMP. We also expect the string to be very short (almost always 1 character), so we
+        // don't need to use StringBuilder.
+        String result = "";
+        for (int i = 0; i < sign.length(); i++) {
+            final char c = sign.charAt(i);
+            if (!UCharacter.hasBinaryProperty(c, UProperty.BIDI_CONTROL)) {
+                if (result.isEmpty()) {
+                    result = String.valueOf(c);
+                } else {
+                    // This should happen very rarely, only if we have a multi-character sign,
+                    // or a sign outside BMP.
+                    result += c;
+                }
+            }
+        }
+        return result;
+    }
+
+    public DigitsKeyListener(@Nullable Locale locale, boolean sign, boolean decimal) {
         mSign = sign;
         mDecimal = decimal;
+        if (locale == null) {
+            setToCompat(sign, decimal);
+            return;
+        }
+        LinkedHashSet<Character> chars = new LinkedHashSet<>();
+        final boolean success = NumberKeyListener.addDigits(chars, locale);
+        if (!success) {
+            setToCompat(sign, decimal);
+            return;
+        }
+        if (sign || decimal) {
+            final DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(locale);
+            if (sign) {
+                final String minusString = stripBidiControls(symbols.getMinusSignString());
+                final String plusString = stripBidiControls(symbols.getPlusSignString());
+                if (minusString.length() > 1 || plusString.length() > 1) {
+                    // non-BMP and multi-character signs are not supported.
+                    setToCompat(sign, decimal);
+                    return;
+                }
+                final char minus = minusString.charAt(0);
+                final char plus = plusString.charAt(0);
+                chars.add(Character.valueOf(minus));
+                chars.add(Character.valueOf(plus));
+                mSignChars = "" + minus + plus;
 
-        int kind = (sign ? SIGN : 0) | (decimal ? DECIMAL : 0);
-        mAccepted = CHARACTERS[kind];
+                if (minus == MINUS_SIGN || minus == EN_DASH) {
+                    // If the minus sign is U+2212 MINUS SIGN or U+2013 EN DASH, we also need to
+                    // accept the ASCII hyphen-minus.
+                    chars.add(HYPHEN_MINUS);
+                    mSignChars += HYPHEN_MINUS;
+                }
+            }
+            if (decimal) {
+                final String separatorString = symbols.getDecimalSeparatorString();
+                if (separatorString.length() > 1) {
+                    // non-BMP and multi-character decimal separators are not supported.
+                    setToCompat(sign, decimal);
+                    return;
+                }
+                final Character separatorChar = Character.valueOf(separatorString.charAt(0));
+                chars.add(separatorChar);
+                mDecimalPointChars = separatorChar.toString();
+            }
+        }
+        mAccepted = NumberKeyListener.collectionToArray(chars);
+    }
+
+    private DigitsKeyListener(@NonNull final String accepted) {
+        mSign = false;
+        mDecimal = false;
+        mAccepted = new char[accepted.length()];
+        accepted.getChars(0, accepted.length(), mAccepted, 0);
     }
 
     /**
-     * Returns a DigitsKeyListener that accepts the digits 0 through 9.
+     * Returns a DigitsKeyListener that accepts the ASCII digits 0 through 9.
+     *
+     * @deprecated Use {@link #getInstance(Locale)} instead.
      */
+    @Deprecated
+    @NonNull
     public static DigitsKeyListener getInstance() {
         return getInstance(false, false);
     }
 
     /**
-     * Returns a DigitsKeyListener that accepts the digits 0 through 9,
-     * plus the minus sign (only at the beginning) and/or decimal point
+     * Returns a DigitsKeyListener that accepts the ASCII digits 0 through 9, plus the ASCII plus
+     * or minus sign (only at the beginning) and/or the ASCII period ('.') as the decimal point
      * (only one per field) if specified.
+     *
+     * @deprecated Use {@link #getInstance(Locale, boolean, boolean)} instead.
      */
+    @Deprecated
+    @NonNull
     public static DigitsKeyListener getInstance(boolean sign, boolean decimal) {
-        int kind = (sign ? SIGN : 0) | (decimal ? DECIMAL : 0);
-
-        if (sInstance[kind] != null)
-            return sInstance[kind];
-
-        sInstance[kind] = new DigitsKeyListener(sign, decimal);
-        return sInstance[kind];
+        return getInstance(null, sign, decimal);
     }
 
     /**
+     * Returns a DigitsKeyListener that accepts the locale-appropriate digits.
+     */
+    @NonNull
+    public static DigitsKeyListener getInstance(@Nullable Locale locale) {
+        return getInstance(locale, false, false);
+    }
+
+    private static final Object sLocaleCacheLock = new Object();
+    @GuardedBy("sLocaleCacheLock")
+    private static final HashMap<Locale, DigitsKeyListener[]> sLocaleInstanceCache =
+            new HashMap<>();
+
+    /**
+     * Returns a DigitsKeyListener that accepts the locale-appropriate digits, plus the
+     * locale-appropriate plus or minus sign (only at the beginning) and/or the locale-appropriate
+     * decimal separator (only one per field) if specified.
+     */
+    @NonNull
+    public static DigitsKeyListener getInstance(
+            @Nullable Locale locale, boolean sign, boolean decimal) {
+        final int kind = (sign ? SIGN : 0) | (decimal ? DECIMAL : 0);
+        synchronized (sLocaleCacheLock) {
+            DigitsKeyListener[] cachedValue = sLocaleInstanceCache.get(locale);
+            if (cachedValue != null && cachedValue[kind] != null) {
+                return cachedValue[kind];
+            }
+            if (cachedValue == null) {
+                cachedValue = new DigitsKeyListener[4];
+                sLocaleInstanceCache.put(locale, cachedValue);
+            }
+            return cachedValue[kind] = new DigitsKeyListener(locale, sign, decimal);
+        }
+    }
+
+    private static final Object sStringCacheLock = new Object();
+    @GuardedBy("sStringCacheLock")
+    private static final HashMap<String, DigitsKeyListener> sStringInstanceCache = new HashMap<>();
+
+    /**
      * Returns a DigitsKeyListener that accepts only the characters
      * that appear in the specified String.  Note that not all characters
      * may be available on every keyboard.
      */
-    public static DigitsKeyListener getInstance(String accepted) {
-        // TODO: do we need a cache of these to avoid allocating?
-
-        DigitsKeyListener dim = new DigitsKeyListener();
-
-        dim.mAccepted = new char[accepted.length()];
-        accepted.getChars(0, accepted.length(), dim.mAccepted, 0);
-
-        return dim;
+    @NonNull
+    public static DigitsKeyListener getInstance(@NonNull String accepted) {
+        DigitsKeyListener result;
+        synchronized (sStringCacheLock) {
+            result = sStringInstanceCache.get(accepted);
+            if (result == null) {
+                result = new DigitsKeyListener(accepted);
+                sStringInstanceCache.put(accepted, result);
+            }
+        }
+        return result;
     }
 
     public int getInputType() {
@@ -226,6 +383,4 @@
             return null;
         }
     }
-
-    private static DigitsKeyListener[] sInstance = new DigitsKeyListener[4];
 }
diff --git a/core/java/android/text/method/NumberKeyListener.java b/core/java/android/text/method/NumberKeyListener.java
index 6b12b7e..d40015ee 100644
--- a/core/java/android/text/method/NumberKeyListener.java
+++ b/core/java/android/text/method/NumberKeyListener.java
@@ -16,15 +16,24 @@
 
 package android.text.method;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.icu.text.DecimalFormatSymbols;
 import android.text.Editable;
 import android.text.InputFilter;
 import android.text.Selection;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
 import android.text.Spanned;
+import android.text.format.DateFormat;
 import android.view.KeyEvent;
 import android.view.View;
 
+import libcore.icu.LocaleData;
+
+import java.util.Collection;
+import java.util.Locale;
+
 /**
  * For numeric text entry
  * <p></p>
@@ -38,6 +47,7 @@
     /**
      * You can say which characters you can accept.
      */
+    @NonNull
     protected abstract char[] getAcceptedChars();
 
     protected int lookup(KeyEvent event, Spannable content) {
@@ -137,4 +147,109 @@
         adjustMetaAfterKeypress(content);
         return super.onKeyDown(view, content, keyCode, event);
     }
+
+    /* package */
+    @Nullable
+    static boolean addDigits(@NonNull Collection<Character> collection, @Nullable Locale locale) {
+        if (locale == null) {
+            return false;
+        }
+        final String[] digits = DecimalFormatSymbols.getInstance(locale).getDigitStrings();
+        for (int i = 0; i < 10; i++) {
+            if (digits[i].length() > 1) { // multi-codeunit digits. Not supported.
+                return false;
+            }
+            collection.add(Character.valueOf(digits[i].charAt(0)));
+        }
+        return true;
+    }
+
+    // From http://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns
+    private static final String DATE_TIME_FORMAT_SYMBOLS =
+            "GyYuUrQqMLlwWdDFgEecabBhHKkjJCmsSAzZOvVXx";
+    private static final char SINGLE_QUOTE = '\'';
+
+    /* package */
+    static boolean addFormatCharsFromSkeleton(
+            @NonNull Collection<Character> collection, @Nullable Locale locale,
+            @NonNull String skeleton, @NonNull String symbolsToIgnore) {
+        if (locale == null) {
+            return false;
+        }
+        final String pattern = DateFormat.getBestDateTimePattern(locale, skeleton);
+        boolean outsideQuotes = true;
+        for (int i = 0; i < pattern.length(); i++) {
+            final char ch = pattern.charAt(i);
+            if (Character.isSurrogate(ch)) { // characters outside BMP are not supported.
+                return false;
+            } else if (ch == SINGLE_QUOTE) {
+                outsideQuotes = !outsideQuotes;
+                // Single quote characters should be considered if and only if they follow
+                // another single quote.
+                if (i == 0 || pattern.charAt(i - 1) != SINGLE_QUOTE) {
+                    continue;
+                }
+            }
+
+            if (outsideQuotes) {
+                if (symbolsToIgnore.indexOf(ch) != -1) {
+                    // Skip expected pattern characters.
+                    continue;
+                } else if (DATE_TIME_FORMAT_SYMBOLS.indexOf(ch) != -1) {
+                    // An unexpected symbols is seen. We've failed.
+                    return false;
+                }
+            }
+            // If we are here, we are either inside quotes, or we have seen a non-pattern
+            // character outside quotes. So ch is a valid character in a date.
+            collection.add(Character.valueOf(ch));
+        }
+        return true;
+    }
+
+    /* package */
+    static boolean addFormatCharsFromSkeletons(
+            @NonNull Collection<Character> collection, @Nullable Locale locale,
+            @NonNull String[] skeletons, @NonNull String symbolsToIgnore) {
+        for (int i = 0; i < skeletons.length; i++) {
+            final boolean success = addFormatCharsFromSkeleton(
+                    collection, locale, skeletons[i], symbolsToIgnore);
+            if (!success) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+
+    /* package */
+    static boolean addAmPmChars(@NonNull Collection<Character> collection,
+                                @Nullable Locale locale) {
+        if (locale == null) {
+            return false;
+        }
+        final String[] amPm = LocaleData.get(locale).amPm;
+        for (int i = 0; i < amPm.length; i++) {
+            for (int j = 0; j < amPm[i].length(); j++) {
+                final char ch = amPm[i].charAt(j);
+                if (Character.isBmpCodePoint(ch)) {
+                    collection.add(Character.valueOf(ch));
+                } else {  // We don't support non-BMP characters.
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    /* package */
+    @NonNull
+    static char[] collectionToArray(@NonNull Collection<Character> chars) {
+        final char[] result = new char[chars.size()];
+        int i = 0;
+        for (Character ch : chars) {
+            result[i++] = ch;
+        }
+        return result;
+    }
 }
diff --git a/core/java/android/text/method/TimeKeyListener.java b/core/java/android/text/method/TimeKeyListener.java
index 01f4086..c9f9f9f 100644
--- a/core/java/android/text/method/TimeKeyListener.java
+++ b/core/java/android/text/method/TimeKeyListener.java
@@ -16,9 +16,17 @@
 
 package android.text.method;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.text.InputType;
 import android.view.KeyEvent;
 
+import com.android.internal.annotations.GuardedBy;
+
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Locale;
+
 /**
  * For entering times in a text field.
  * <p></p>
@@ -34,29 +42,80 @@
     }
 
     @Override
+    @NonNull
     protected char[] getAcceptedChars()
     {
-        return CHARACTERS;
-    }
-
-    public static TimeKeyListener getInstance() {
-        if (sInstance != null)
-            return sInstance;
-
-        sInstance = new TimeKeyListener();
-        return sInstance;
+        return mCharacters;
     }
 
     /**
-     * The characters that are used.
+     * @deprecated Use {@link #TimeKeyListener(Locale)} instead.
+     */
+    @Deprecated
+    public TimeKeyListener() {
+        this(null);
+    }
+
+    private static final String SYMBOLS_TO_IGNORE = "ahHKkms";
+    private static final String SKELETON_12HOUR = "hms";
+    private static final String SKELETON_24HOUR = "Hms";
+
+    public TimeKeyListener(@Nullable Locale locale) {
+        final LinkedHashSet<Character> chars = new LinkedHashSet<>();
+        // First add the digits. Then, add all the character in AM and PM markers. Finally, add all
+        // the non-pattern characters seen in the patterns for "hms" and "Hms".
+        boolean success = NumberKeyListener.addDigits(chars, locale)
+                          && NumberKeyListener.addAmPmChars(chars, locale)
+                          && NumberKeyListener.addFormatCharsFromSkeleton(
+                              chars, locale, SKELETON_12HOUR, SYMBOLS_TO_IGNORE)
+                          && NumberKeyListener.addFormatCharsFromSkeleton(
+                              chars, locale, SKELETON_24HOUR, SYMBOLS_TO_IGNORE);
+        mCharacters = success ? NumberKeyListener.collectionToArray(chars) : CHARACTERS;
+    }
+
+    /**
+     * @deprecated Use {@link #getInstance(Locale)} instead.
+     */
+    @Deprecated
+    @NonNull
+    public static TimeKeyListener getInstance() {
+        return getInstance(null);
+    }
+
+    /**
+     * Returns an instance of TimeKeyListener appropriate for the given locale.
+     */
+    @NonNull
+    public static TimeKeyListener getInstance(@Nullable Locale locale) {
+        TimeKeyListener instance;
+        synchronized (sLock) {
+            instance = sInstanceCache.get(locale);
+            if (instance == null) {
+                instance = new TimeKeyListener(locale);
+                sInstanceCache.put(locale, instance);
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * This field used to list the characters that were used. But is now a fixed data
+     * field that is the list of code units used for the deprecated case where the class
+     * is instantiated with null or no input parameter.
      *
      * @see KeyEvent#getMatch
      * @see #getAcceptedChars
+     *
+     * @deprecated Use {@link #getAcceptedChars()} instead.
      */
     public static final char[] CHARACTERS = new char[] {
             '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'm',
             'p', ':'
         };
 
-    private static TimeKeyListener sInstance;
+    private final char[] mCharacters;
+
+    private static final Object sLock = new Object();
+    @GuardedBy("sLock")
+    private static final HashMap<Locale, TimeKeyListener> sInstanceCache = new HashMap<>();
 }
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 3ba55ed..83b6a52 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -339,6 +339,21 @@
     public static final int COLOR_MODE_DISPLAY_P3 = 9;
 
     /**
+     * Indicates that when display is removed, all its activities will be moved to the primary
+     * display and the topmost activity should become focused.
+     *
+     * @hide
+     */
+    public static final int REMOVE_MODE_MOVE_CONTENT_TO_PRIMARY = 0;
+    /**
+     * Indicates that when display is removed, all its stacks and tasks will be removed, all
+     * activities will be destroyed according to the usual lifecycle.
+     *
+     * @hide
+     */
+    public static final int REMOVE_MODE_DESTROY_CONTENT = 1;
+
+    /**
      * Internal method to create a display.
      * Applications should use {@link android.view.WindowManager#getDefaultDisplay()}
      * or {@link android.hardware.display.DisplayManager#getDisplay}
@@ -770,6 +785,20 @@
     }
 
     /**
+     * @hide
+     * Get current remove mode of the display - what actions should be performed with the display's
+     * content when it is removed. Default behavior for public displays in this case is to move all
+     * activities to the primary display and make it focused. For private display - destroy all
+     * activities.
+     *
+     * @see #REMOVE_MODE_MOVE_CONTENT_TO_PRIMARY
+     * @see #REMOVE_MODE_DESTROY_CONTENT
+     */
+    public int getRemoveMode() {
+        return mDisplayInfo.removeMode;
+    }
+
+    /**
      * Returns the display's HDR capabilities.
      *
      * @see #isHdr()
diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java
index f6b94af..3d11dcb 100644
--- a/core/java/android/view/DisplayInfo.java
+++ b/core/java/android/view/DisplayInfo.java
@@ -238,6 +238,15 @@
      */
     public String ownerPackageName;
 
+    /**
+     * @hide
+     * Get current remove mode of the display - what actions should be performed with the display's
+     * content when it is removed.
+     *
+     * @see Display#getRemoveMode()
+     */
+    public int removeMode = Display.REMOVE_MODE_MOVE_CONTENT_TO_PRIMARY;
+
     public static final Creator<DisplayInfo> CREATOR = new Creator<DisplayInfo>() {
         @Override
         public DisplayInfo createFromParcel(Parcel source) {
@@ -298,7 +307,8 @@
                 && presentationDeadlineNanos == other.presentationDeadlineNanos
                 && state == other.state
                 && ownerUid == other.ownerUid
-                && Objects.equal(ownerPackageName, other.ownerPackageName);
+                && Objects.equal(ownerPackageName, other.ownerPackageName)
+                && removeMode == other.removeMode;
     }
 
     @Override
@@ -341,6 +351,7 @@
         state = other.state;
         ownerUid = other.ownerUid;
         ownerPackageName = other.ownerPackageName;
+        removeMode = other.removeMode;
     }
 
     public void readFromParcel(Parcel source) {
@@ -385,6 +396,7 @@
         ownerUid = source.readInt();
         ownerPackageName = source.readString();
         uniqueId = source.readString();
+        removeMode = source.readInt();
     }
 
     @Override
@@ -428,6 +440,7 @@
         dest.writeInt(ownerUid);
         dest.writeString(ownerPackageName);
         dest.writeString(uniqueId);
+        dest.writeInt(removeMode);
     }
 
     @Override
@@ -637,6 +650,8 @@
             sb.append(" (uid ").append(ownerUid).append(")");
         }
         sb.append(flagsToString(flags));
+        sb.append(", removeMode ");
+        sb.append(removeMode);
         sb.append("}");
         return sb.toString();
     }
diff --git a/core/java/android/view/GestureDetector.java b/core/java/android/view/GestureDetector.java
index 27c1dcb..52e53b0 100644
--- a/core/java/android/view/GestureDetector.java
+++ b/core/java/android/view/GestureDetector.java
@@ -502,6 +502,8 @@
         final boolean pointerUp =
                 (action & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP;
         final int skipIndex = pointerUp ? ev.getActionIndex() : -1;
+        final boolean isGeneratedGesture =
+                (ev.getFlags() & MotionEvent.FLAG_IS_GENERATED_GESTURE) != 0;
 
         // Determine focal point
         float sumX = 0, sumY = 0;
@@ -604,7 +606,8 @@
                 final int deltaX = (int) (focusX - mDownFocusX);
                 final int deltaY = (int) (focusY - mDownFocusY);
                 int distance = (deltaX * deltaX) + (deltaY * deltaY);
-                if (distance > mTouchSlopSquare) {
+                int slopSquare = isGeneratedGesture ? 0 : mTouchSlopSquare;
+                if (distance > slopSquare) {
                     handled = mListener.onScroll(mCurrentDownEvent, ev, scrollX, scrollY);
                     mLastFocusX = focusX;
                     mLastFocusY = focusY;
@@ -613,7 +616,8 @@
                     mHandler.removeMessages(SHOW_PRESS);
                     mHandler.removeMessages(LONG_PRESS);
                 }
-                if (distance > mDoubleTapTouchSlopSquare) {
+                int doubleTapSlopSquare = isGeneratedGesture ? 0 : mDoubleTapTouchSlopSquare;
+                if (distance > doubleTapSlopSquare) {
                     mAlwaysInBiggerTapRegion = false;
                 }
             } else if ((Math.abs(scrollX) >= 1) || (Math.abs(scrollY) >= 1)) {
@@ -761,7 +765,10 @@
 
         int deltaX = (int) firstDown.getX() - (int) secondDown.getX();
         int deltaY = (int) firstDown.getY() - (int) secondDown.getY();
-        return (deltaX * deltaX + deltaY * deltaY < mDoubleTapSlopSquare);
+        final boolean isGeneratedGesture =
+                (firstDown.getFlags() & MotionEvent.FLAG_IS_GENERATED_GESTURE) != 0;
+        int slopSquare = isGeneratedGesture ? 0 : mDoubleTapSlopSquare;
+        return (deltaX * deltaX + deltaY * deltaY < slopSquare);
     }
 
     private void dispatchLongPress() {
diff --git a/core/java/android/view/Menu.java b/core/java/android/view/Menu.java
index 0c2e9cf..a8ea4dc 100644
--- a/core/java/android/view/Menu.java
+++ b/core/java/android/view/Menu.java
@@ -75,6 +75,13 @@
     static final int CATEGORY_SHIFT = 16;
 
     /**
+     * A mask of all supported modifiers for MenuItem's keyboard shortcuts
+     */
+    static final int SUPPORTED_MODIFIERS_MASK = KeyEvent.META_META_ON | KeyEvent.META_CTRL_ON
+            | KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON | KeyEvent.META_SYM_ON
+            | KeyEvent.META_FUNCTION_ON;
+
+    /**
      * Value to use for group and item identifier integers when you don't care
      * about them.
      */
diff --git a/core/java/android/view/MenuInflater.java b/core/java/android/view/MenuInflater.java
index 7a5c65f..6574bc0 100644
--- a/core/java/android/view/MenuInflater.java
+++ b/core/java/android/view/MenuInflater.java
@@ -305,7 +305,9 @@
         private CharSequence itemTitleCondensed;
         private int itemIconResId;
         private char itemAlphabeticShortcut;
+        private int itemAlphabeticModifiers;
         private char itemNumericShortcut;
+        private int itemNumericModifiers;
         /**
          * Sync to attrs.xml enum:
          * - 0: none
@@ -395,8 +397,14 @@
             itemIconResId = a.getResourceId(com.android.internal.R.styleable.MenuItem_icon, 0);
             itemAlphabeticShortcut =
                     getShortcut(a.getString(com.android.internal.R.styleable.MenuItem_alphabeticShortcut));
+            itemAlphabeticModifiers =
+                    a.getInt(com.android.internal.R.styleable.MenuItem_alphabeticModifiers,
+                            KeyEvent.META_CTRL_ON);
             itemNumericShortcut =
                     getShortcut(a.getString(com.android.internal.R.styleable.MenuItem_numericShortcut));
+            itemNumericModifiers =
+                    a.getInt(com.android.internal.R.styleable.MenuItem_numericModifiers,
+                            KeyEvent.META_CTRL_ON);
             if (a.hasValue(com.android.internal.R.styleable.MenuItem_checkable)) {
                 // Item has attribute checkable, use it
                 itemCheckable = a.getBoolean(com.android.internal.R.styleable.MenuItem_checkable, false) ? 1 : 0;
@@ -451,8 +459,8 @@
                 .setCheckable(itemCheckable >= 1)
                 .setTitleCondensed(itemTitleCondensed)
                 .setIcon(itemIconResId)
-                .setAlphabeticShortcut(itemAlphabeticShortcut)
-                .setNumericShortcut(itemNumericShortcut);
+                .setAlphabeticShortcut(itemAlphabeticShortcut, itemAlphabeticModifiers)
+                .setNumericShortcut(itemNumericShortcut, itemNumericModifiers);
 
             if (itemShowAsAction >= 0) {
                 item.setShowAsAction(itemShowAsAction);
diff --git a/core/java/android/view/MenuItem.java b/core/java/android/view/MenuItem.java
index 3f8d089..6aaaedbe 100644
--- a/core/java/android/view/MenuItem.java
+++ b/core/java/android/view/MenuItem.java
@@ -261,12 +261,13 @@
     /**
      * Change both the numeric and alphabetic shortcut associated with this
      * item. Note that the shortcut will be triggered when the key that
-     * generates the given character is pressed along with the ctrl key.
-     * Also note that case is not significant and that alphabetic shortcut
-     * characters will be displayed in lower case.
+     * generates the given character is pressed along with the corresponding
+     * modifier key. The default modifier is  {@link KeyEvent#META_CTRL_ON} in
+     * case nothing is specified. Also note that case is not significant and
+     * that alphabetic shortcut characters will be handled in lower case.
      * <p>
      * See {@link Menu} for the menu types that support shortcuts.
-     * 
+     *
      * @param numericChar The numeric shortcut key. This is the shortcut when
      *        using a numeric (e.g., 12-key) keyboard.
      * @param alphaChar The alphabetic shortcut key. This is the shortcut when
@@ -276,6 +277,39 @@
     public MenuItem setShortcut(char numericChar, char alphaChar);
 
     /**
+     * Change both the numeric and alphabetic shortcut associated with this
+     * item. Note that the shortcut will be triggered when the key that
+     * generates the given character is pressed along with the corresponding
+     * modifier key. Also note that case is not significant and that alphabetic
+     * shortcut characters will be handled in lower case.
+     * <p>
+     * See {@link Menu} for the menu types that support shortcuts.
+     *
+     * @param numericChar The numeric shortcut key. This is the shortcut when
+     *        using a numeric (e.g., 12-key) keyboard.
+     * @param numericModifiers The numeric modifier associated with the shortcut. It should
+     *        be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON},
+     *        {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON},
+     *        {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}.
+     * @param alphaChar The alphabetic shortcut key. This is the shortcut when
+     *        using a keyboard with alphabetic keys.
+     * @param alphaModifiers The alphabetic modifier associated with the shortcut. It should
+     *        be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON},
+     *        {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON},
+     *        {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}.
+     * @return This Item so additional setters can be called.
+     */
+    default public MenuItem setShortcut(char numericChar, char alphaChar, int numericModifiers,
+            int alphaModifiers) {
+        if ((alphaModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON
+                && (numericModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) {
+            return setShortcut(numericChar, alphaChar);
+        } else {
+            return this;
+        }
+    }
+
+    /**
      * Change the numeric shortcut associated with this item.
      * <p>
      * See {@link Menu} for the menu types that support shortcuts.
@@ -287,6 +321,27 @@
     public MenuItem setNumericShortcut(char numericChar);
 
     /**
+     * Change the numeric shortcut and modifiers associated with this item.
+     * <p>
+     * See {@link Menu} for the menu types that support shortcuts.
+     *
+     * @param numericChar The numeric shortcut key.  This is the shortcut when
+     *                 using a 12-key (numeric) keyboard.
+     * @param numericModifiers The modifier associated with the shortcut. It should
+     *        be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON},
+     *        {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON},
+     *        {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}.
+     * @return This Item so additional setters can be called.
+     */
+    default public MenuItem setNumericShortcut(char numericChar, int numericModifiers) {
+        if ((numericModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) {
+            return setNumericShortcut(numericChar);
+        } else {
+            return this;
+        }
+    }
+
+    /**
      * Return the char for this menu item's numeric (12-key) shortcut.
      *
      * @return Numeric character to use as a shortcut.
@@ -294,15 +349,30 @@
     public char getNumericShortcut();
 
     /**
+     * Return the modifiers for this menu item's numeric (12-key) shortcut.
+     * The modifier is a combination of {@link KeyEvent#META_META_ON},
+     * {@link KeyEvent#META_CTRL_ON}, {@link KeyEvent#META_ALT_ON},
+     * {@link KeyEvent#META_SHIFT_ON}, {@link KeyEvent#META_SYM_ON},
+     * {@link KeyEvent#META_FUNCTION_ON}.
+     * For example, {@link KeyEvent#META_FUNCTION_ON}|{@link KeyEvent#META_CTRL_ON}
+     *
+     * @return Modifier associated with the numeric shortcut.
+     */
+    default public int getNumericModifiers() {
+        return KeyEvent.META_CTRL_ON;
+    }
+
+    /**
      * Change the alphabetic shortcut associated with this item. The shortcut
      * will be triggered when the key that generates the given character is
-     * pressed along with the ctrl key. Case is not significant and shortcut
-     * characters will be displayed in lower case. Note that menu items with
-     * the characters '\b' or '\n' as shortcuts will get triggered by the
-     * Delete key or Carriage Return key, respectively.
+     * pressed along with the corresponding modifier key. The default modifier
+     * is {@link KeyEvent#META_CTRL_ON} in case nothing is specified. Case is
+     * not significant and shortcut characters will be displayed in lower case.
+     * Note that menu items with the characters '\b' or '\n' as shortcuts will
+     * get triggered by the Delete key or Carriage Return key, respectively.
      * <p>
      * See {@link Menu} for the menu types that support shortcuts.
-     * 
+     *
      * @param alphaChar The alphabetic shortcut key. This is the shortcut when
      *        using a keyboard with alphabetic keys.
      * @return This Item so additional setters can be called.
@@ -310,6 +380,32 @@
     public MenuItem setAlphabeticShortcut(char alphaChar);
 
     /**
+     * Change the alphabetic shortcut associated with this item. The shortcut
+     * will be triggered when the key that generates the given character is
+     * pressed along with the modifier keys. Case is not significant and shortcut
+     * characters will be displayed in lower case. Note that menu items with
+     * the characters '\b' or '\n' as shortcuts will get triggered by the
+     * Delete key or Carriage Return key, respectively.
+     * <p>
+     * See {@link Menu} for the menu types that support shortcuts.
+     *
+     * @param alphaChar The alphabetic shortcut key. This is the shortcut when
+     *        using a keyboard with alphabetic keys.
+     * @param alphaModifiers The modifier associated with the shortcut. It should
+     *        be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON},
+     *        {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON},
+     *        {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}.
+     * @return This Item so additional setters can be called.
+     */
+    default public MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers) {
+        if ((alphaModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) {
+            return setAlphabeticShortcut(alphaChar);
+        } else {
+            return this;
+        }
+    }
+
+    /**
      * Return the char for this menu item's alphabetic shortcut.
      *
      * @return Alphabetic character to use as a shortcut.
@@ -317,13 +413,27 @@
     public char getAlphabeticShortcut();
 
     /**
+     * Return the modifier for this menu item's alphabetic shortcut.
+     * The modifier is a combination of {@link KeyEvent#META_META_ON},
+     * {@link KeyEvent#META_CTRL_ON}, {@link KeyEvent#META_ALT_ON},
+     * {@link KeyEvent#META_SHIFT_ON}, {@link KeyEvent#META_SYM_ON},
+     * {@link KeyEvent#META_FUNCTION_ON}.
+     * For example, {@link KeyEvent#META_FUNCTION_ON}|{@link KeyEvent#META_CTRL_ON}
+     *
+     * @return Modifier associated with the keyboard shortcut.
+     */
+    default public int getAlphabeticModifiers() {
+        return KeyEvent.META_CTRL_ON;
+    }
+
+    /**
      * Control whether this item can display a check mark. Setting this does
      * not actually display a check mark (see {@link #setChecked} for that);
      * rather, it ensures there is room in the item in which to display a
      * check mark.
      * <p>
      * See {@link Menu} for the menu types that support check marks.
-     * 
+     *
      * @param checkable Set to true to allow a check mark, false to
      *            disallow. The default is false.
      * @see #setChecked
diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java
index 2316b38..2129039 100644
--- a/core/java/android/view/MotionEvent.java
+++ b/core/java/android/view/MotionEvent.java
@@ -186,7 +186,7 @@
      * Bit mask of the parts of the action code that are the action itself.
      */
     public static final int ACTION_MASK             = 0xff;
-    
+
     /**
      * Constant for {@link #getActionMasked}: A pressed gesture has started, the
      * motion contains the initial starting location.
@@ -197,14 +197,14 @@
      * </p>
      */
     public static final int ACTION_DOWN             = 0;
-    
+
     /**
      * Constant for {@link #getActionMasked}: A pressed gesture has finished, the
      * motion contains the final release location as well as any intermediate
      * points since the last down or move event.
      */
     public static final int ACTION_UP               = 1;
-    
+
     /**
      * Constant for {@link #getActionMasked}: A change has happened during a
      * press gesture (between {@link #ACTION_DOWN} and {@link #ACTION_UP}).
@@ -212,14 +212,14 @@
      * points since the last down or move event.
      */
     public static final int ACTION_MOVE             = 2;
-    
+
     /**
      * Constant for {@link #getActionMasked}: The current gesture has been aborted.
      * You will not receive any more points in it.  You should treat this as
      * an up event, but not perform any action that you normally would.
      */
     public static final int ACTION_CANCEL           = 3;
-    
+
     /**
      * Constant for {@link #getActionMasked}: A movement has happened outside of the
      * normal bounds of the UI element.  This does not provide a full gesture,
@@ -237,7 +237,7 @@
      * </p>
      */
     public static final int ACTION_POINTER_DOWN     = 5;
-    
+
     /**
      * Constant for {@link #getActionMasked}: A non-primary pointer has gone up.
      * <p>
@@ -343,7 +343,7 @@
      * @see #getActionIndex
      */
     public static final int ACTION_POINTER_INDEX_MASK  = 0xff00;
-    
+
     /**
      * Bit shift for the action bits holding the pointer index as
      * defined by {@link #ACTION_POINTER_INDEX_MASK}.
@@ -358,56 +358,56 @@
      */
     @Deprecated
     public static final int ACTION_POINTER_1_DOWN   = ACTION_POINTER_DOWN | 0x0000;
-    
+
     /**
      * @deprecated Use {@link #ACTION_POINTER_INDEX_MASK} to retrieve the
      * data index associated with {@link #ACTION_POINTER_DOWN}.
      */
     @Deprecated
     public static final int ACTION_POINTER_2_DOWN   = ACTION_POINTER_DOWN | 0x0100;
-    
+
     /**
      * @deprecated Use {@link #ACTION_POINTER_INDEX_MASK} to retrieve the
      * data index associated with {@link #ACTION_POINTER_DOWN}.
      */
     @Deprecated
     public static final int ACTION_POINTER_3_DOWN   = ACTION_POINTER_DOWN | 0x0200;
-    
+
     /**
      * @deprecated Use {@link #ACTION_POINTER_INDEX_MASK} to retrieve the
      * data index associated with {@link #ACTION_POINTER_UP}.
      */
     @Deprecated
     public static final int ACTION_POINTER_1_UP     = ACTION_POINTER_UP | 0x0000;
-    
+
     /**
      * @deprecated Use {@link #ACTION_POINTER_INDEX_MASK} to retrieve the
      * data index associated with {@link #ACTION_POINTER_UP}.
      */
     @Deprecated
     public static final int ACTION_POINTER_2_UP     = ACTION_POINTER_UP | 0x0100;
-    
+
     /**
      * @deprecated Use {@link #ACTION_POINTER_INDEX_MASK} to retrieve the
      * data index associated with {@link #ACTION_POINTER_UP}.
      */
     @Deprecated
     public static final int ACTION_POINTER_3_UP     = ACTION_POINTER_UP | 0x0200;
-    
+
     /**
      * @deprecated Renamed to {@link #ACTION_POINTER_INDEX_MASK} to match
      * the actual data contained in these bits.
      */
     @Deprecated
     public static final int ACTION_POINTER_ID_MASK  = 0xff00;
-    
+
     /**
      * @deprecated Renamed to {@link #ACTION_POINTER_INDEX_SHIFT} to match
      * the actual data contained in these bits.
      */
     @Deprecated
     public static final int ACTION_POINTER_ID_SHIFT = 8;
-    
+
     /**
      * This flag indicates that the window that received this motion event is partly
      * or wholly obscured by another visible window above it.  This flag is set to true
@@ -444,6 +444,14 @@
     public static final int FLAG_HOVER_EXIT_PENDING = 0x4;
 
     /**
+     * This flag indicates that the event has been generated by a gesture generator. It
+     * provides a hint to the GestureDector to not apply any touch slop.
+     *
+     * @hide
+     */
+    public static final int FLAG_IS_GENERATED_GESTURE = 0x8;
+
+    /**
      * Private flag that indicates when the system has detected that this motion event
      * may be inconsistent with respect to the sequence of previously delivered motion events,
      * such as when a pointer move event is sent but the pointer is not down.
@@ -1582,9 +1590,9 @@
      * Create a new MotionEvent, filling in all of the basic values that
      * define the motion.
      *
-     * @param downTime The time (in ms) when the user originally pressed down to start 
+     * @param downTime The time (in ms) when the user originally pressed down to start
      * a stream of position events.  This must be obtained from {@link SystemClock#uptimeMillis()}.
-     * @param eventTime The the time (in ms) when this specific event was generated.  This 
+     * @param eventTime The the time (in ms) when this specific event was generated.  This
      * must be obtained from {@link SystemClock#uptimeMillis()}.
      * @param action The kind of action being performed, such as {@link #ACTION_DOWN}.
      * @param pointerCount The number of pointers that will be in this event.
@@ -1623,7 +1631,7 @@
     /**
      * Create a new MotionEvent, filling in all of the basic values that
      * define the motion.
-     * 
+     *
      * @param downTime The time (in ms) when the user originally pressed down to start
      * a stream of position events.  This must be obtained from {@link SystemClock#uptimeMillis()}.
      * @param eventTime The the time (in ms) when this specific event was generated.  This
@@ -1751,7 +1759,7 @@
      * numbers are arbitrary and you shouldn't depend on the values.
      * @param edgeFlags A bitfield indicating which edges, if any, were touched by this
      * MotionEvent.
-     * 
+     *
      * @deprecated Use {@link #obtain(long, long, int, float, float, float, float, int, float, float, int, int)}
      * instead.
      */
@@ -2057,7 +2065,7 @@
     public final float getSize() {
         return nativeGetAxisValue(mNativePtr, AXIS_SIZE, 0, HISTORY_CURRENT);
     }
-    
+
     /**
      * {@link #getTouchMajor(int)} for the first pointer index (may be an
      * arbitrary pointer identifier).
@@ -2077,7 +2085,7 @@
     public final float getTouchMinor() {
         return nativeGetAxisValue(mNativePtr, AXIS_TOUCH_MINOR, 0, HISTORY_CURRENT);
     }
-    
+
     /**
      * {@link #getToolMajor(int)} for the first pointer index (may be an
      * arbitrary pointer identifier).
@@ -2161,7 +2169,7 @@
 
     /**
      * Given a pointer identifier, find the index of its data in the event.
-     * 
+     *
      * @param pointerId The identifier of the pointer to be found.
      * @return Returns either the index of the pointer (for use with
      * {@link #getX(int)} et al.), or -1 if there is no data available for
@@ -2175,8 +2183,8 @@
      * Returns the X coordinate of this event for the given pointer
      * <em>index</em> (use {@link #getPointerId(int)} to find the pointer
      * identifier for this index).
-     * Whole numbers are pixels; the 
-     * value may have a fraction for input devices that are sub-pixel precise. 
+     * Whole numbers are pixels; the
+     * value may have a fraction for input devices that are sub-pixel precise.
      * @param pointerIndex Raw index of pointer to retrieve.  Value may be from 0
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      *
@@ -2235,7 +2243,7 @@
     public final float getSize(int pointerIndex) {
         return nativeGetAxisValue(mNativePtr, AXIS_SIZE, pointerIndex, HISTORY_CURRENT);
     }
-    
+
     /**
      * Returns the length of the major axis of an ellipse that describes the touch
      * area at the point of contact for the given pointer
@@ -2249,7 +2257,7 @@
     public final float getTouchMajor(int pointerIndex) {
         return nativeGetAxisValue(mNativePtr, AXIS_TOUCH_MAJOR, pointerIndex, HISTORY_CURRENT);
     }
-    
+
     /**
      * Returns the length of the minor axis of an ellipse that describes the touch
      * area at the point of contact for the given pointer
@@ -2263,7 +2271,7 @@
     public final float getTouchMinor(int pointerIndex) {
         return nativeGetAxisValue(mNativePtr, AXIS_TOUCH_MINOR, pointerIndex, HISTORY_CURRENT);
     }
-    
+
     /**
      * Returns the length of the major axis of an ellipse that describes the size of
      * the approaching tool for the given pointer
@@ -2279,7 +2287,7 @@
     public final float getToolMajor(int pointerIndex) {
         return nativeGetAxisValue(mNativePtr, AXIS_TOOL_MAJOR, pointerIndex, HISTORY_CURRENT);
     }
-    
+
     /**
      * Returns the length of the minor axis of an ellipse that describes the size of
      * the approaching tool for the given pointer
@@ -2295,7 +2303,7 @@
     public final float getToolMinor(int pointerIndex) {
         return nativeGetAxisValue(mNativePtr, AXIS_TOOL_MINOR, pointerIndex, HISTORY_CURRENT);
     }
-    
+
     /**
      * Returns the orientation of the touch area and tool area in radians clockwise from vertical
      * for the given pointer <em>index</em> (use {@link #getPointerId(int)} to find the pointer
@@ -2334,7 +2342,7 @@
     /**
      * Populates a {@link PointerCoords} object with pointer coordinate data for
      * the specified pointer index.
-     * 
+     *
      * @param pointerIndex Raw index of pointer to retrieve.  Value may be from 0
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param outPointerCoords The pointer coordinate object to populate.
@@ -2622,7 +2630,7 @@
     public final float getHistoricalTouchMinor(int pos) {
         return nativeGetAxisValue(mNativePtr, AXIS_TOUCH_MINOR, 0, pos);
     }
-    
+
     /**
      * {@link #getHistoricalToolMajor(int, int)} for the first pointer index (may be an
      * arbitrary pointer identifier).
@@ -2652,7 +2660,7 @@
     public final float getHistoricalToolMinor(int pos) {
         return nativeGetAxisValue(mNativePtr, AXIS_TOOL_MINOR, 0, pos);
     }
-    
+
     /**
      * {@link #getHistoricalOrientation(int, int)} for the first pointer index (may be an
      * arbitrary pointer identifier).
@@ -2730,7 +2738,7 @@
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
-     * 
+     *
      * @see #getHistorySize
      * @see #getPressure(int)
      * @see #AXIS_PRESSURE
@@ -2748,7 +2756,7 @@
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
-     * 
+     *
      * @see #getHistorySize
      * @see #getSize(int)
      * @see #AXIS_SIZE
@@ -2756,7 +2764,7 @@
     public final float getHistoricalSize(int pointerIndex, int pos) {
         return nativeGetAxisValue(mNativePtr, AXIS_SIZE, pointerIndex, pos);
     }
-    
+
     /**
      * Returns a historical touch major axis coordinate, as per {@link #getTouchMajor(int)}, that
      * occurred between this event and the previous event for the given pointer.
@@ -2766,7 +2774,7 @@
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
-     * 
+     *
      * @see #getHistorySize
      * @see #getTouchMajor(int)
      * @see #AXIS_TOUCH_MAJOR
@@ -2784,7 +2792,7 @@
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
-     * 
+     *
      * @see #getHistorySize
      * @see #getTouchMinor(int)
      * @see #AXIS_TOUCH_MINOR
@@ -2802,7 +2810,7 @@
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
-     * 
+     *
      * @see #getHistorySize
      * @see #getToolMajor(int)
      * @see #AXIS_TOOL_MAJOR
@@ -2820,7 +2828,7 @@
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
-     * 
+     *
      * @see #getHistorySize
      * @see #getToolMinor(int)
      * @see #AXIS_TOOL_MINOR
@@ -2838,7 +2846,7 @@
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
-     * 
+     *
      * @see #getHistorySize
      * @see #getOrientation(int)
      * @see #AXIS_ORIENTATION
@@ -2871,13 +2879,13 @@
      * as per {@link #getPointerCoords}, that occurred between this event and the previous
      * event for the given pointer.
      * Only applies to ACTION_MOVE events.
-     * 
+     *
      * @param pointerIndex Raw index of pointer to retrieve.  Value may be from 0
      * (the first pointer that is down) to {@link #getPointerCount()}-1.
      * @param pos Which historical value to return; must be less than
      * {@link #getHistorySize}
      * @param outPointerCoords The pointer coordinate object to populate.
-     * 
+     *
      * @see #getHistorySize
      * @see #getPointerCoords
      * @see PointerCoords
@@ -2886,7 +2894,7 @@
             PointerCoords outPointerCoords) {
         nativeGetPointerCoords(mNativePtr, pointerIndex, pos, outPointerCoords);
     }
-    
+
     /**
      * Returns a bitfield indicating which edges, if any, were touched by this
      * MotionEvent. For touch events, clients can use this to determine if the
@@ -2943,7 +2951,7 @@
         float oldY = getY();
         offsetLocation(x - oldX, y - oldY);
     }
-    
+
     /**
      * Applies a transformation matrix to all of the points in the event.
      *
@@ -3427,11 +3435,11 @@
 
     /**
      * Transfer object for pointer coordinates.
-     * 
+     *
      * Objects of this type can be used to specify the pointer coordinates when
      * creating new {@link MotionEvent} objects and to query pointer coordinates
      * in bulk.
-     * 
+     *
      * Refer to {@link InputDevice} for information about how different kinds of
      * input devices and sources represent pointer coordinates.
      */
@@ -3471,14 +3479,14 @@
          * @see MotionEvent#AXIS_X
          */
         public float x;
-        
+
         /**
          * The Y component of the pointer movement.
          *
          * @see MotionEvent#AXIS_Y
          */
         public float y;
-        
+
         /**
          * A normalized value that describes the pressure applied to the device
          * by a finger or other tool.
@@ -3489,7 +3497,7 @@
          * @see MotionEvent#AXIS_PRESSURE
          */
         public float pressure;
-        
+
         /**
          * A normalized value that describes the approximate size of the pointer touch area
          * in relation to the maximum detectable size of the device.
@@ -3502,7 +3510,7 @@
          * @see MotionEvent#AXIS_SIZE
          */
         public float size;
-        
+
         /**
          * The length of the major axis of an ellipse that describes the touch area at
          * the point of contact.
@@ -3512,7 +3520,7 @@
          * @see MotionEvent#AXIS_TOUCH_MAJOR
          */
         public float touchMajor;
-        
+
         /**
          * The length of the minor axis of an ellipse that describes the touch area at
          * the point of contact.
@@ -3522,7 +3530,7 @@
          * @see MotionEvent#AXIS_TOUCH_MINOR
          */
         public float touchMinor;
-        
+
         /**
          * The length of the major axis of an ellipse that describes the size of
          * the approaching tool.
@@ -3534,7 +3542,7 @@
          * @see MotionEvent#AXIS_TOOL_MAJOR
          */
         public float toolMajor;
-        
+
         /**
          * The length of the minor axis of an ellipse that describes the size of
          * the approaching tool.
@@ -3546,7 +3554,7 @@
          * @see MotionEvent#AXIS_TOOL_MINOR
          */
         public float toolMinor;
-        
+
         /**
          * The orientation of the touch area and tool area in radians clockwise from vertical.
          * An angle of 0 radians indicates that the major axis of contact is oriented
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index b06c3fd..0c6d9e3 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -858,6 +858,17 @@
      */
     static boolean sHasFocusableExcludeAutoFocusable;
 
+    /**
+     * Prior to O, auto-focusable didn't exist and views marked as clickable weren't implicitly
+     * made focusable by default. As a result, apps could (incorrectly) change the clickable
+     * setting of views off the UI thread. Now that clickable can effect the focusable state,
+     * changing the clickable attribute off the UI thread will cause an exception (since changing
+     * the focusable state checks). In order to prevent apps from crashing, we will handle this
+     * specific case and just not notify parents on new focusables resulting from marking views
+     * clickable from outside the UI thread.
+     */
+    private static boolean sAutoFocusableOffUIThreadWontNotifyParents;
+
     /** @hide */
     @IntDef({NOT_FOCUSABLE, FOCUSABLE, FOCUSABLE_AUTO})
     @Retention(RetentionPolicy.SOURCE)
@@ -4182,6 +4193,8 @@
 
             sHasFocusableExcludeAutoFocusable = targetSdkVersion < Build.VERSION_CODES.O;
 
+            sAutoFocusableOffUIThreadWontNotifyParents = targetSdkVersion < Build.VERSION_CODES.O;
+
             sCompatibilityDone = true;
         }
     }
@@ -5373,16 +5386,16 @@
         x += getScrollX();
         y += getScrollY();
         if (isVerticalScrollBarEnabled() && !isVerticalScrollBarHidden()) {
-            final Rect bounds = mScrollCache.mScrollBarBounds;
-            getVerticalScrollBarBounds(bounds);
-            if (bounds.contains((int)x, (int)y)) {
+            final Rect touchBounds = mScrollCache.mScrollBarTouchBounds;
+            getVerticalScrollBarBounds(null, touchBounds);
+            if (touchBounds.contains((int) x, (int) y)) {
                 return true;
             }
         }
         if (isHorizontalScrollBarEnabled()) {
-            final Rect bounds = mScrollCache.mScrollBarBounds;
-            getHorizontalScrollBarBounds(bounds);
-            if (bounds.contains((int)x, (int)y)) {
+            final Rect touchBounds = mScrollCache.mScrollBarTouchBounds;
+            getHorizontalScrollBarBounds(null, touchBounds);
+            if (touchBounds.contains((int) x, (int) y)) {
                 return true;
             }
         }
@@ -5401,7 +5414,8 @@
             x += getScrollX();
             y += getScrollY();
             final Rect bounds = mScrollCache.mScrollBarBounds;
-            getVerticalScrollBarBounds(bounds);
+            final Rect touchBounds = mScrollCache.mScrollBarTouchBounds;
+            getVerticalScrollBarBounds(bounds, touchBounds);
             final int range = computeVerticalScrollRange();
             final int offset = computeVerticalScrollOffset();
             final int extent = computeVerticalScrollExtent();
@@ -5410,8 +5424,9 @@
             final int thumbOffset = ScrollBarUtils.getThumbOffset(bounds.height(), thumbLength,
                     extent, range, offset);
             final int thumbTop = bounds.top + thumbOffset;
-            if (x >= bounds.left && x <= bounds.right && y >= thumbTop
-                    && y <= thumbTop + thumbLength) {
+            final int adjust = Math.max(mScrollCache.scrollBarMinTouchTarget - thumbLength, 0) / 2;
+            if (x >= touchBounds.left && x <= touchBounds.right
+                    && y >= thumbTop - adjust && y <= thumbTop + thumbLength + adjust) {
                 return true;
             }
         }
@@ -5426,7 +5441,8 @@
             x += getScrollX();
             y += getScrollY();
             final Rect bounds = mScrollCache.mScrollBarBounds;
-            getHorizontalScrollBarBounds(bounds);
+            final Rect touchBounds = mScrollCache.mScrollBarTouchBounds;
+            getHorizontalScrollBarBounds(bounds, touchBounds);
             final int range = computeHorizontalScrollRange();
             final int offset = computeHorizontalScrollOffset();
             final int extent = computeHorizontalScrollExtent();
@@ -5435,8 +5451,9 @@
             final int thumbOffset = ScrollBarUtils.getThumbOffset(bounds.width(), thumbLength,
                     extent, range, offset);
             final int thumbLeft = bounds.left + thumbOffset;
-            if (x >= thumbLeft && x <= thumbLeft + thumbLength && y >= bounds.top
-                    && y <= bounds.bottom) {
+            final int adjust = Math.max(mScrollCache.scrollBarMinTouchTarget - thumbLength, 0) / 2;
+            if (x >= thumbLeft - adjust && x <= thumbLeft + thumbLength + adjust
+                    && y >= touchBounds.top && y <= touchBounds.bottom) {
                 return true;
             }
         }
@@ -11739,7 +11756,7 @@
                 if (mScrollCache.mScrollBarDraggingState
                         == ScrollabilityCache.DRAGGING_VERTICAL_SCROLL_BAR) {
                     final Rect bounds = mScrollCache.mScrollBarBounds;
-                    getVerticalScrollBarBounds(bounds);
+                    getVerticalScrollBarBounds(bounds, null);
                     final int range = computeVerticalScrollRange();
                     final int offset = computeVerticalScrollOffset();
                     final int extent = computeVerticalScrollExtent();
@@ -11768,7 +11785,7 @@
                 if (mScrollCache.mScrollBarDraggingState
                         == ScrollabilityCache.DRAGGING_HORIZONTAL_SCROLL_BAR) {
                     final Rect bounds = mScrollCache.mScrollBarBounds;
-                    getHorizontalScrollBarBounds(bounds);
+                    getHorizontalScrollBarBounds(bounds, null);
                     final int range = computeHorizontalScrollRange();
                     final int offset = computeHorizontalScrollOffset();
                     final int extent = computeHorizontalScrollExtent();
@@ -12135,6 +12152,7 @@
         int privateFlags = mPrivateFlags;
 
         // If focusable is auto, update the FOCUSABLE bit.
+        int focusableChangedByAuto = 0;
         if (((mViewFlags & FOCUSABLE_AUTO) != 0)
                 && (changed & (FOCUSABLE_MASK | CLICKABLE | FOCUSABLE_IN_TOUCH_MODE)) != 0) {
             int newFocus = NOT_FOCUSABLE;
@@ -12144,8 +12162,8 @@
                 mViewFlags = (mViewFlags & ~FOCUSABLE_IN_TOUCH_MODE);
             }
             mViewFlags = (mViewFlags & ~FOCUSABLE) | newFocus;
-            int focusChanged = (old & FOCUSABLE) ^ (newFocus & FOCUSABLE);
-            changed = (changed & ~FOCUSABLE) | focusChanged;
+            focusableChangedByAuto = (old & FOCUSABLE) ^ (newFocus & FOCUSABLE);
+            changed = (changed & ~FOCUSABLE) | focusableChangedByAuto;
         }
 
         /* Check if the FOCUSABLE bit has changed */
@@ -12160,7 +12178,15 @@
                  * Tell the view system that we are now available to take focus
                  * if no one else already has it.
                  */
-                if (mParent != null) mParent.focusableViewAvailable(this);
+                if (mParent != null) {
+                    ViewRootImpl viewRootImpl = getViewRootImpl();
+                    if (!sAutoFocusableOffUIThreadWontNotifyParents
+                            || focusableChangedByAuto == 0
+                            || viewRootImpl == null
+                            || viewRootImpl.mThread == Thread.currentThread()) {
+                        mParent.focusableViewAvailable(this);
+                    }
+                }
             }
         }
 
@@ -15466,7 +15492,12 @@
         }
     }
 
-    private void getHorizontalScrollBarBounds(Rect bounds) {
+    private void getHorizontalScrollBarBounds(@Nullable Rect drawBounds,
+            @Nullable Rect touchBounds) {
+        final Rect bounds = drawBounds != null ? drawBounds : touchBounds;
+        if (bounds == null) {
+            return;
+        }
         final int inside = (mViewFlags & SCROLLBARS_OUTSIDE_MASK) == 0 ? ~0 : 0;
         final boolean drawVerticalScrollBar = isVerticalScrollBarEnabled()
                 && !isVerticalScrollBarHidden();
@@ -15479,13 +15510,31 @@
         bounds.left = mScrollX + (mPaddingLeft & inside);
         bounds.right = mScrollX + width - (mUserPaddingRight & inside) - verticalScrollBarGap;
         bounds.bottom = bounds.top + size;
+
+        if (touchBounds == null) {
+            return;
+        }
+        if (touchBounds != bounds) {
+            touchBounds.set(bounds);
+        }
+        final int minTouchTarget = mScrollCache.scrollBarMinTouchTarget;
+        if (touchBounds.height() < minTouchTarget) {
+            final int adjust = (minTouchTarget - touchBounds.height()) / 2;
+            touchBounds.bottom = Math.min(touchBounds.bottom + adjust, mScrollY + height);
+            touchBounds.top = touchBounds.bottom - minTouchTarget;
+        }
+        if (touchBounds.width() < minTouchTarget) {
+            final int adjust = (minTouchTarget - touchBounds.width()) / 2;
+            touchBounds.left -= adjust;
+            touchBounds.right = touchBounds.left + minTouchTarget;
+        }
     }
 
-    private void getVerticalScrollBarBounds(Rect bounds) {
+    private void getVerticalScrollBarBounds(@Nullable Rect bounds, @Nullable Rect touchBounds) {
         if (mRoundScrollbarRenderer == null) {
-            getStraightVerticalScrollBarBounds(bounds);
+            getStraightVerticalScrollBarBounds(bounds, touchBounds);
         } else {
-            getRoundVerticalScrollBarBounds(bounds);
+            getRoundVerticalScrollBarBounds(bounds != null ? bounds : touchBounds);
         }
     }
 
@@ -15500,7 +15549,12 @@
         bounds.bottom = mScrollY + height;
     }
 
-    private void getStraightVerticalScrollBarBounds(Rect bounds) {
+    private void getStraightVerticalScrollBarBounds(@Nullable Rect drawBounds,
+            @Nullable Rect touchBounds) {
+        final Rect bounds = drawBounds != null ? drawBounds : touchBounds;
+        if (bounds == null) {
+            return;
+        }
         final int inside = (mViewFlags & SCROLLBARS_OUTSIDE_MASK) == 0 ? ~0 : 0;
         final int size = getVerticalScrollbarWidth();
         int verticalScrollbarPosition = mVerticalScrollbarPosition;
@@ -15522,6 +15576,29 @@
         bounds.top = mScrollY + (mPaddingTop & inside);
         bounds.right = bounds.left + size;
         bounds.bottom = mScrollY + height - (mUserPaddingBottom & inside);
+
+        if (touchBounds == null) {
+            return;
+        }
+        if (touchBounds != bounds) {
+            touchBounds.set(bounds);
+        }
+        final int minTouchTarget = mScrollCache.scrollBarMinTouchTarget;
+        if (touchBounds.width() < minTouchTarget) {
+            final int adjust = (minTouchTarget - touchBounds.width()) / 2;
+            if (verticalScrollbarPosition == SCROLLBAR_POSITION_RIGHT) {
+                touchBounds.right = Math.min(touchBounds.right + adjust, mScrollX + width);
+                touchBounds.left = touchBounds.right - minTouchTarget;
+            } else {
+                touchBounds.left = Math.max(touchBounds.left + adjust, mScrollX);
+                touchBounds.right = touchBounds.left + minTouchTarget;
+            }
+        }
+        if (touchBounds.height() < minTouchTarget) {
+            final int adjust = (minTouchTarget - touchBounds.height()) / 2;
+            touchBounds.top -= adjust;
+            touchBounds.bottom = touchBounds.top + minTouchTarget;
+        }
     }
 
     /**
@@ -15580,7 +15657,7 @@
             if (mRoundScrollbarRenderer != null) {
                 if (drawVerticalScrollBar) {
                     final Rect bounds = cache.mScrollBarBounds;
-                    getVerticalScrollBarBounds(bounds);
+                    getVerticalScrollBarBounds(bounds, null);
                     mRoundScrollbarRenderer.drawRoundScrollbars(
                             canvas, (float) cache.scrollBar.getAlpha() / 255f, bounds);
                     if (invalidate) {
@@ -15596,7 +15673,7 @@
                             computeHorizontalScrollOffset(),
                             computeHorizontalScrollExtent(), false);
                     final Rect bounds = cache.mScrollBarBounds;
-                    getHorizontalScrollBarBounds(bounds);
+                    getHorizontalScrollBarBounds(bounds, null);
                     onDrawHorizontalScrollBar(canvas, scrollBar, bounds.left, bounds.top,
                             bounds.right, bounds.bottom);
                     if (invalidate) {
@@ -15609,7 +15686,7 @@
                             computeVerticalScrollOffset(),
                             computeVerticalScrollExtent(), true);
                     final Rect bounds = cache.mScrollBarBounds;
-                    getVerticalScrollBarBounds(bounds);
+                    getVerticalScrollBarBounds(bounds, null);
                     onDrawVerticalScrollBar(canvas, scrollBar, bounds.left, bounds.top,
                             bounds.right, bounds.bottom);
                     if (invalidate) {
@@ -24101,6 +24178,7 @@
         public int scrollBarFadeDuration;
 
         public int scrollBarSize;
+        public int scrollBarMinTouchTarget;
         public ScrollBarDrawable scrollBar;
         public float[] interpolatorValues;
         public View host;
@@ -24129,6 +24207,7 @@
         private int mLastColor;
 
         public final Rect mScrollBarBounds = new Rect();
+        public final Rect mScrollBarTouchBounds = new Rect();
 
         public static final int NOT_DRAGGING = 0;
         public static final int DRAGGING_VERTICAL_SCROLL_BAR = 1;
@@ -24140,6 +24219,7 @@
         public ScrollabilityCache(ViewConfiguration configuration, View host) {
             fadingEdgeLength = configuration.getScaledFadingEdgeLength();
             scrollBarSize = configuration.getScaledScrollBarSize();
+            scrollBarMinTouchTarget = configuration.getScaledMinScrollbarTouchTarget();
             scrollBarDefaultDelayBeforeFade = ViewConfiguration.getScrollDefaultDelay();
             scrollBarFadeDuration = ViewConfiguration.getScrollBarFadeDuration();
 
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 0e753f3..5d01b416 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -156,6 +156,11 @@
     private static final int TOUCH_SLOP = 8;
 
     /**
+     * Defines the minimum size of the touch target for a scrollbar in dips
+     */
+    private static final int MIN_SCROLLBAR_TOUCH_TARGET = 48;
+
+    /**
      * Distance the first touch can wander before we stop considering this event a double tap
      * (in dips)
      */
@@ -274,6 +279,7 @@
     private final int mMaximumFlingVelocity;
     private final int mScrollbarSize;
     private final int mTouchSlop;
+    private final int mMinScrollbarTouchTarget;
     private final int mDoubleTapTouchSlop;
     private final int mPagingTouchSlop;
     private final int mDoubleTapSlop;
@@ -302,6 +308,7 @@
         mMaximumFlingVelocity = MAXIMUM_FLING_VELOCITY;
         mScrollbarSize = SCROLL_BAR_SIZE;
         mTouchSlop = TOUCH_SLOP;
+        mMinScrollbarTouchTarget = MIN_SCROLLBAR_TOUCH_TARGET;
         mDoubleTapTouchSlop = DOUBLE_TAP_TOUCH_SLOP;
         mPagingTouchSlop = PAGING_TOUCH_SLOP;
         mDoubleTapSlop = DOUBLE_TAP_SLOP;
@@ -386,6 +393,8 @@
                 com.android.internal.R.bool.config_ui_enableFadingMarquee);
         mTouchSlop = res.getDimensionPixelSize(
                 com.android.internal.R.dimen.config_viewConfigurationTouchSlop);
+        mMinScrollbarTouchTarget = res.getDimensionPixelSize(
+                com.android.internal.R.dimen.config_minScrollbarTouchTarget);
         mPagingTouchSlop = mTouchSlop * 2;
 
         mDoubleTapTouchSlop = mTouchSlop;
@@ -440,6 +449,14 @@
     }
 
     /**
+     * @return the minimum size of the scrollbar thumb's touch target in pixels
+     * @hide
+     */
+    public int getScaledMinScrollbarTouchTarget() {
+        return mMinScrollbarTouchTarget;
+    }
+
+    /**
      * @return Duration of the fade when scrollbars fade away in milliseconds
      */
     public static int getScrollBarFadeDuration() {
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index cb29053..20d8a11 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -73,6 +73,7 @@
 import android.view.Surface.OutOfResourcesException;
 import android.view.View.AttachInfo;
 import android.view.View.MeasureSpec;
+import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
 import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener;
@@ -334,6 +335,7 @@
     final Configuration mPendingConfiguration = new Configuration();
 
     boolean mScrollMayChange;
+    @SoftInputModeFlags
     int mSoftInputMode;
     WeakReference<View> mLastScrolledFocus;
     int mScrollY;
@@ -4279,7 +4281,8 @@
 
             // Enter touch mode on down or scroll.
             final int action = event.getAction();
-            if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_SCROLL) {
+            if (event.isFromSource(InputDevice.SOURCE_TOUCHSCREEN)
+                    && (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_SCROLL)) {
                 ensureTouchMode(true);
             }
 
@@ -4479,9 +4482,9 @@
                 }
             }
 
-            // If the Control modifier is held, try to interpret the key as a shortcut.
+            // If a modifier is held, try to interpret the key as a shortcut.
             if (event.getAction() == KeyEvent.ACTION_DOWN
-                    && event.isCtrlPressed()
+                    && !KeyEvent.metaStateHasNoModifiers(event.getMetaState())
                     && event.getRepeatCount() == 0
                     && !KeyEvent.isModifierKey(event.getKeyCode())
                     && groupNavigationDirection == 0) {
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 5a640fa..6b8aab6 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -16,6 +16,7 @@
 
 package android.view;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.app.KeyguardManager;
@@ -30,6 +31,8 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 import java.util.Objects;
 
@@ -726,7 +729,10 @@
          * <p>
          * Requires {@link android.Manifest.permission#SYSTEM_ALERT_WINDOW} permission.
          * <p>
-         * In mult-iuser systems shows only on the owning user's screen.
+         * The system will adjust the importance of processes with this window type to reduce the
+         * chance of the low-memory-killer killing them.
+         * <p>
+         * In multi-user systems shows only on the owning user's screen.
          */
         public static final int TYPE_APPLICATION_OVERLAY = FIRST_SYSTEM_WINDOW + 38;
 
@@ -1540,24 +1546,45 @@
         public static final int SOFT_INPUT_IS_FORWARD_NAVIGATION = 0x100;
 
         /**
+         * An internal annotation for flags that can be specified to {@link #softInputMode}.
+         *
+         * @hide
+         */
+        @Retention(RetentionPolicy.SOURCE)
+        @IntDef(flag = true, value = {
+                SOFT_INPUT_STATE_UNSPECIFIED,
+                SOFT_INPUT_STATE_UNCHANGED,
+                SOFT_INPUT_STATE_HIDDEN,
+                SOFT_INPUT_STATE_ALWAYS_HIDDEN,
+                SOFT_INPUT_STATE_VISIBLE,
+                SOFT_INPUT_STATE_ALWAYS_VISIBLE,
+                SOFT_INPUT_ADJUST_UNSPECIFIED,
+                SOFT_INPUT_ADJUST_RESIZE,
+                SOFT_INPUT_ADJUST_PAN,
+                SOFT_INPUT_ADJUST_NOTHING,
+                SOFT_INPUT_IS_FORWARD_NAVIGATION,
+        })
+        public @interface SoftInputModeFlags {}
+
+        /**
          * Desired operating mode for any soft input area.  May be any combination
          * of:
          *
          * <ul>
          * <li> One of the visibility states
          * {@link #SOFT_INPUT_STATE_UNSPECIFIED}, {@link #SOFT_INPUT_STATE_UNCHANGED},
-         * {@link #SOFT_INPUT_STATE_HIDDEN}, {@link #SOFT_INPUT_STATE_ALWAYS_VISIBLE}, or
-         * {@link #SOFT_INPUT_STATE_VISIBLE}.
+         * {@link #SOFT_INPUT_STATE_HIDDEN}, {@link #SOFT_INPUT_STATE_ALWAYS_HIDDEN},
+         * {@link #SOFT_INPUT_STATE_VISIBLE}, or {@link #SOFT_INPUT_STATE_ALWAYS_VISIBLE}.
          * <li> One of the adjustment options
-         * {@link #SOFT_INPUT_ADJUST_UNSPECIFIED},
-         * {@link #SOFT_INPUT_ADJUST_RESIZE}, or
-         * {@link #SOFT_INPUT_ADJUST_PAN}.
+         * {@link #SOFT_INPUT_ADJUST_UNSPECIFIED}, {@link #SOFT_INPUT_ADJUST_RESIZE},
+         * {@link #SOFT_INPUT_ADJUST_PAN}, or {@link #SOFT_INPUT_ADJUST_NOTHING}.
          * </ul>
          *
          *
          * <p>This flag can be controlled in your theme through the
          * {@link android.R.attr#windowSoftInputMode} attribute.</p>
          */
+        @SoftInputModeFlags
         public int softInputMode;
 
         /**
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index 8e597dc..2617d45 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -786,13 +786,13 @@
             case TYPE_PRIORITY_PHONE:
                 // SIM errors and unlock.  Not sure if this really should be in a high layer.
                 return  9;
-            case TYPE_DREAM:
-                // used for Dreams (screensavers with TYPE_DREAM windows)
-                return  10;
             case TYPE_SYSTEM_ALERT:
                 // like the ANR / app crashed dialogs
                 return  canAddInternalSystemWindow ? 11 : 10;
             case TYPE_APPLICATION_OVERLAY:
+                return  12;
+            case TYPE_DREAM:
+                // used for Dreams (screensavers with TYPE_DREAM windows)
                 return  13;
             case TYPE_INPUT_METHOD:
                 // on-screen keyboards and other such input method user interfaces go here.
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index b0a11cd..67d7ff8 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -3315,6 +3315,7 @@
         mBoundsInScreen.set(0, 0, 0, 0);
         mBooleanProperties = 0;
         mDrawingOrderInParent = 0;
+        mExtraDataKeys = null;
         mPackageName = null;
         mClassName = null;
         mText = null;
diff --git a/core/java/android/view/autofill/AutoFillId.java b/core/java/android/view/autofill/AutoFillId.java
index 3dbf5a8..38dc404 100644
--- a/core/java/android/view/autofill/AutoFillId.java
+++ b/core/java/android/view/autofill/AutoFillId.java
@@ -93,11 +93,11 @@
     public String toString() {
         if (!DEBUG) return super.toString();
 
-        final StringBuilder builder = new StringBuilder("FieldId [viewId=").append(mViewId);
+        final StringBuilder builder = new StringBuilder().append(mViewId);
         if (mVirtual) {
-            builder.append(", virtualId=").append(mVirtualId);
+            builder.append(":").append(mVirtualId);
         }
-        return builder.append(']').toString();
+        return builder.toString();
     }
 
     @Override
diff --git a/core/java/android/view/autofill/AutoFillValue.java b/core/java/android/view/autofill/AutoFillValue.java
index b31f4af..af70361 100644
--- a/core/java/android/view/autofill/AutoFillValue.java
+++ b/core/java/android/view/autofill/AutoFillValue.java
@@ -104,8 +104,11 @@
     public String toString() {
         if (!DEBUG) return super.toString();
 
-        return "AutoFillValue[text=" + mText + ", listIndex=" + mListIndex + ", toggle=" + mToggle
-                + "]";
+        if (mText != null) {
+            return mText.length() + "_chars";
+        }
+
+        return "[listIndex=" + mListIndex + ", toggle=" + mToggle + "]";
     }
 
     /////////////////////////////////////
diff --git a/core/java/android/view/autofill/Helper.java b/core/java/android/view/autofill/Helper.java
index a9844d7..b1c9efa 100644
--- a/core/java/android/view/autofill/Helper.java
+++ b/core/java/android/view/autofill/Helper.java
@@ -32,7 +32,7 @@
     static StringBuilder append(StringBuilder builder, Bundle bundle) {
         if (bundle == null) {
             builder.append("N/A");
-        } else if (!DEBUG) {
+        } else if (!VERBOSE) {
             builder.append(REDACTED);
         } else {
             final Set<String> keySet = bundle.keySet();
diff --git a/core/java/android/view/inputmethod/InputConnection.java b/core/java/android/view/inputmethod/InputConnection.java
index 71c1d62..57f9895 100644
--- a/core/java/android/view/inputmethod/InputConnection.java
+++ b/core/java/android/view/inputmethod/InputConnection.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.inputmethodservice.InputMethodService;
 import android.os.Bundle;
 import android.os.Handler;
 import android.view.KeyCharacterMap;
@@ -751,13 +752,19 @@
     public boolean clearMetaKeyStates(int states);
 
     /**
-     * Called by the IME to tell the client when it switches between
-     * fullscreen and normal modes. This will normally be called for
-     * you by the standard implementation of
-     * {@link android.inputmethodservice.InputMethodService}.
+     * Called back when the connected IME switches between fullscreen and normal modes.
      *
-     * @return true on success, false if the input connection is no longer
-     * valid.
+     * <p>Note: On {@link android.os.Build.VERSION_CODES#O} and later devices, input methods are no
+     * longer allowed to directly call this method at any time. To signal this event in the target
+     * application, input methods should always call
+     * {@link InputMethodService#updateFullscreenMode()} instead. This approach should work on API
+     * {@link android.os.Build.VERSION_CODES#N_MR1} and prior devices.</p>
+     *
+     * @return For editor authors, the return value will always be ignored. For IME authors, this
+     *         always returns {@code true} on {@link android.os.Build.VERSION_CODES#N_MR1} and prior
+     *         devices and {@code false} on {@link android.os.Build.VERSION_CODES#O} and later
+     *         devices.
+     * @see InputMethodManager#isFullscreenMode()
      */
     public boolean reportFullscreenMode(boolean enabled);
 
diff --git a/core/java/android/view/inputmethod/InputMethod.java b/core/java/android/view/inputmethod/InputMethod.java
index 5ab3d34..0922422 100644
--- a/core/java/android/view/inputmethod/InputMethod.java
+++ b/core/java/android/view/inputmethod/InputMethod.java
@@ -16,6 +16,8 @@
 
 package android.view.inputmethod;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
 import android.inputmethodservice.InputMethodService;
@@ -148,6 +150,44 @@
     public void restartInput(InputConnection inputConnection, EditorInfo attribute);
 
     /**
+     * This method is called when {@code {@link #startInput(InputConnection, EditorInfo)} or
+     * {@code {@link #restartInput(InputConnection, EditorInfo)} needs to be dispatched.
+     *
+     * <p>Note: This method is hidden because the {@code startInputToken} that this method is
+     * dealing with is one of internal details, which should not be exposed to the IME developers.
+     * If you override this method, you are responsible for not breaking existing IMEs that expect
+     * {@link #startInput(InputConnection, EditorInfo)} to be still called back.</p>
+     *
+     * @param inputConnection optional specific input connection for communicating with the text
+     *                        box; if {@code null}, you should use the generic bound input
+     *                        connection
+     * @param editorInfo information about the text box (typically, an EditText) that requests input
+     * @param restarting {@code false} if this corresponds to
+     *                   {@link #startInput(InputConnection, EditorInfo)}. Otherwise this
+     *                   corresponds to {@link #restartInput(InputConnection, EditorInfo)}.
+     * @param startInputToken a token that identifies a logical session that starts with this method
+     *                        call. Some internal IPCs such as {@link
+     *                        InputMethodManager#setImeWindowStatus(IBinder, IBinder, int, int)}
+     *                        require this token to work, and you have to keep the token alive until
+     *                        the next {@link #startInput(InputConnection, EditorInfo, IBinder)} as
+     *                        long as your implementation of {@link InputMethod} relies on such
+     *                        IPCs
+     * @see #startInput(InputConnection, EditorInfo)
+     * @see #restartInput(InputConnection, EditorInfo)
+     * @see EditorInfo
+     * @hide
+     */
+    default void dispatchStartInputWithToken(@Nullable InputConnection inputConnection,
+            @NonNull EditorInfo editorInfo, boolean restarting,
+            @NonNull IBinder startInputToken) {
+        if (restarting) {
+            restartInput(inputConnection, editorInfo);
+        } else {
+            startInput(inputConnection, editorInfo);
+        }
+    }
+
+    /**
      * Create a new {@link InputMethodSession} that can be handed to client
      * applications for interacting with the input method.  You can later
      * use {@link #revokeSession(InputMethodSession)} to destroy the session
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 2e99092..79b0420 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -34,7 +34,6 @@
 import android.os.ServiceManager;
 import android.os.ServiceManager.ServiceNotFoundException;
 import android.os.Trace;
-import android.text.TextUtils;
 import android.text.style.SuggestionSpan;
 import android.util.Log;
 import android.util.Pools.Pool;
@@ -48,6 +47,7 @@
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewRootImpl;
+import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
 
 import com.android.internal.inputmethod.IInputContentUriToken;
 import com.android.internal.os.SomeArgs;
@@ -396,6 +396,7 @@
     static final int MSG_TIMEOUT_INPUT_EVENT = 6;
     static final int MSG_FLUSH_INPUT_EVENT = 7;
     static final int MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER = 9;
+    static final int MSG_REPORT_FULLSCREEN_MODE = 10;
 
     class H extends Handler {
         H(Looper looper) {
@@ -476,12 +477,13 @@
                 }
                 case MSG_SET_ACTIVE: {
                     final boolean active = msg.arg1 != 0;
+                    final boolean fullscreen = msg.arg2 != 0;
                     if (DEBUG) {
                         Log.i(TAG, "handleMessage: MSG_SET_ACTIVE " + active + ", was " + mActive);
                     }
                     synchronized (mH) {
                         mActive = active;
-                        mFullscreenMode = false;
+                        mFullscreenMode = fullscreen;
                         if (!active) {
                             // Some other client has starting using the IME, so note
                             // that this happened and make sure our own editor's
@@ -523,6 +525,21 @@
                     synchronized (mH) {
                         mNextUserActionNotificationSequenceNumber = msg.arg1;
                     }
+                    return;
+                }
+                case MSG_REPORT_FULLSCREEN_MODE: {
+                    final boolean fullscreen = msg.arg1 != 0;
+                    InputConnection ic = null;
+                    synchronized (mH) {
+                        mFullscreenMode = fullscreen;
+                        if (mServedInputConnectionWrapper != null) {
+                            ic = mServedInputConnectionWrapper.getInputConnection();
+                        }
+                    }
+                    if (ic != null) {
+                        ic.reportFullscreenMode(fullscreen);
+                    }
+                    return;
                 }
             }
         }
@@ -557,18 +574,11 @@
         }
 
         @Override
-        protected void onReportFullscreenMode(boolean enabled, boolean calledInBackground) {
-            mParentInputMethodManager.onReportFullscreenMode(enabled, calledInBackground,
-                    getInputMethodId());
-        }
-
-        @Override
         public String toString() {
             return "ControlledInputConnectionWrapper{"
                     + "connection=" + getInputConnection()
                     + " finished=" + isFinished()
                     + " mParentInputMethodManager.mActive=" + mParentInputMethodManager.mActive
-                    + " mInputMethodId=" + getInputMethodId()
                     + "}";
         }
     }
@@ -600,24 +610,31 @@
 
         @Override
         public void onBindMethod(InputBindResult res) {
-            mH.sendMessage(mH.obtainMessage(MSG_BIND, res));
+            mH.obtainMessage(MSG_BIND, res).sendToTarget();
         }
 
         @Override
         public void onUnbindMethod(int sequence, @InputMethodClient.UnbindReason int unbindReason) {
-            mH.sendMessage(mH.obtainMessage(MSG_UNBIND, sequence, unbindReason));
+            mH.obtainMessage(MSG_UNBIND, sequence, unbindReason).sendToTarget();
         }
 
         @Override
-        public void setActive(boolean active) {
-            mH.sendMessage(mH.obtainMessage(MSG_SET_ACTIVE, active ? 1 : 0, 0));
+        public void setActive(boolean active, boolean fullscreen) {
+            mH.obtainMessage(MSG_SET_ACTIVE, active ? 1 : 0, fullscreen ? 1 : 0).sendToTarget();
         }
 
         @Override
         public void setUserActionNotificationSequenceNumber(int sequenceNumber) {
-            mH.sendMessage(mH.obtainMessage(MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER,
-                    sequenceNumber, 0));
+            mH.obtainMessage(MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER, sequenceNumber, 0)
+                    .sendToTarget();
         }
+
+        @Override
+        public void reportFullscreenMode(boolean fullscreen) {
+            mH.obtainMessage(MSG_REPORT_FULLSCREEN_MODE, fullscreen ? 1 : 0, 0)
+                    .sendToTarget();
+        }
+
     };
 
     final InputConnection mDummyInputConnection = new BaseInputConnection(this, false);
@@ -722,25 +739,16 @@
     }
 
     /** @hide */
-    public void setImeWindowStatus(IBinder imeToken, int vis, int backDisposition) {
+    public void setImeWindowStatus(IBinder imeToken, IBinder startInputToken, int vis,
+            int backDisposition) {
         try {
-            mService.setImeWindowStatus(imeToken, vis, backDisposition);
+            mService.setImeWindowStatus(imeToken, startInputToken, vis, backDisposition);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
     }
 
     /** @hide */
-    public void onReportFullscreenMode(boolean fullScreen, boolean calledInBackground,
-            String inputMethodId) {
-        synchronized (mH) {
-            if (!calledInBackground || TextUtils.equals(mCurId, inputMethodId)) {
-                mFullscreenMode = fullScreen;
-            }
-        }
-    }
-
-    /** @hide */
     public void registerSuggestionSpansForNotification(SuggestionSpan[] spans) {
         try {
             mService.registerSuggestionSpansForNotification(spans);
@@ -770,6 +778,17 @@
     }
 
     /**
+     * @hide
+     */
+    public void reportFullscreenMode(IBinder token, boolean fullscreen) {
+        try {
+            mService.reportFullscreenMode(token, fullscreen);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * Return true if the given view is the currently active view for the
      * input method.
      */
@@ -1274,9 +1293,6 @@
                         mCurId = res.id;
                         mNextUserActionNotificationSequenceNumber =
                                 res.userActionNotificationSequenceNumber;
-                        if (mServedInputConnectionWrapper != null) {
-                            mServedInputConnectionWrapper.setInputMethodId(mCurId);
-                        }
                     } else {
                         if (res.channel != null && res.channel != mCurChannel) {
                             res.channel.dispose();
@@ -1476,12 +1492,12 @@
      * Called by ViewAncestor when its window gets input focus.
      * @hide
      */
-    public void onPostWindowFocus(View rootView, View focusedView, int softInputMode,
-            boolean first, int windowFlags) {
+    public void onPostWindowFocus(View rootView, View focusedView,
+            @SoftInputModeFlags int softInputMode, boolean first, int windowFlags) {
         boolean forceNewFocus = false;
         synchronized (mH) {
             if (DEBUG) Log.v(TAG, "onWindowFocus: " + focusedView
-                    + " softInputMode=" + softInputMode
+                    + " softInputMode=" + InputMethodClient.softInputModeToString(softInputMode)
                     + " first=" + first + " flags=#"
                     + Integer.toHexString(windowFlags));
             if (mHasBeenInactive) {
@@ -2341,6 +2357,7 @@
                 + " mHasBeenInactive=" + mHasBeenInactive
                 + " mBindSequence=" + mBindSequence
                 + " mCurId=" + mCurId);
+        p.println("  mFullscreenMode=" + mFullscreenMode);
         p.println("  mCurMethod=" + mCurMethod);
         p.println("  mCurRootView=" + mCurRootView);
         p.println("  mServedView=" + mServedView);
diff --git a/core/java/android/text/LangId.java b/core/java/android/view/textclassifier/LangId.java
similarity index 85%
rename from core/java/android/text/LangId.java
rename to core/java/android/view/textclassifier/LangId.java
index ed6e909..53bc1b0 100644
--- a/core/java/android/text/LangId.java
+++ b/core/java/android/view/textclassifier/LangId.java
@@ -13,16 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.text;
+package android.view.textclassifier;
 
 /**
  *  Java wrapper for LangId native library interface.
  *  This class is used to detect languages in text.
- *  @hide
  */
-public final class LangId {
-    // TODO: Move this to android.view.textclassifier and make it package-private.
-    // We'll have to update the native library code to do this.
+final class LangId {
 
     static {
         System.loadLibrary("smart-selection_jni");
@@ -33,7 +30,7 @@
     /**
      * Creates a new instance of LangId predictor, using the provided model image.
      */
-    public LangId(int fd) {
+    LangId(int fd) {
         mModelPtr = nativeNew(fd);
     }
 
diff --git a/core/java/android/text/SmartSelection.java b/core/java/android/view/textclassifier/SmartSelection.java
similarity index 91%
rename from core/java/android/text/SmartSelection.java
rename to core/java/android/view/textclassifier/SmartSelection.java
index 97ef514..47c39e4 100644
--- a/core/java/android/text/SmartSelection.java
+++ b/core/java/android/view/textclassifier/SmartSelection.java
@@ -14,16 +14,13 @@
  * limitations under the License.
  */
 
-package android.text;
+package android.view.textclassifier;
 
 /**
  *  Java wrapper for SmartSelection native library interface.
  *  This library is used for detecting entities in text.
- *  @hide
  */
-public final class SmartSelection {
-    // TODO: Move this to android.view.textclassifier and make it package-private.
-    // We'll have to update the native library code to do this.
+final class SmartSelection {
 
     static {
         System.loadLibrary("smart-selection_jni");
@@ -35,7 +32,7 @@
      * Creates a new instance of SmartSelect predictor, using the provided model image,
      * given as a file descriptor.
      */
-    public SmartSelection(int fd) {
+    SmartSelection(int fd) {
         mCtx = nativeNew(fd);
     }
 
diff --git a/core/java/android/view/textclassifier/TextClassificationManager.java b/core/java/android/view/textclassifier/TextClassificationManager.java
index a4e524f..c4d64d1 100644
--- a/core/java/android/view/textclassifier/TextClassificationManager.java
+++ b/core/java/android/view/textclassifier/TextClassificationManager.java
@@ -19,7 +19,6 @@
 import android.annotation.NonNull;
 import android.content.Context;
 import android.os.ParcelFileDescriptor;
-import android.text.LangId;
 import android.util.Log;
 
 import com.android.internal.util.Preconditions;
@@ -45,8 +44,9 @@
     private final Object mLangIdLock = new Object();
 
     private final Context mContext;
-    // TODO: Implement a way to close the file descriptor.
-    private ParcelFileDescriptor mFd;
+    // TODO: Implement a way to close the file descriptors.
+    private ParcelFileDescriptor mSmartSelectionFd;
+    private ParcelFileDescriptor mLangIdFd;
     private TextClassifier mDefault;
     private LangId mLangId;
 
@@ -62,10 +62,10 @@
         synchronized (mTextClassifierLock) {
             if (mDefault == null) {
                 try {
-                    mFd = ParcelFileDescriptor.open(
+                    mSmartSelectionFd = ParcelFileDescriptor.open(
                             new File("/etc/assistant/smart-selection.model"),
                             ParcelFileDescriptor.MODE_READ_ONLY);
-                    mDefault = new TextClassifierImpl(mContext, mFd);
+                    mDefault = new TextClassifierImpl(mContext, mSmartSelectionFd);
                 } catch (FileNotFoundException e) {
                     Log.e(LOG_TAG, "Error accessing 'text classifier selection' model file.", e);
                     mDefault = TextClassifier.NO_OP;
@@ -100,12 +100,13 @@
         return Collections.emptyList();
     }
 
-    private LangId getLanguageDetector() {
+    private LangId getLanguageDetector() throws FileNotFoundException {
         synchronized (mLangIdLock) {
             if (mLangId == null) {
-                // TODO: Use a file descriptor as soon as we start to depend on a model file
-                // for language detection.
-                mLangId = new LangId(0);
+                mLangIdFd = ParcelFileDescriptor.open(
+                        new File("/etc/assistant/lang-id.model"),
+                        ParcelFileDescriptor.MODE_READ_ONLY);
+                mLangId = new LangId(mLangIdFd.getFd());
             }
             return mLangId;
         }
diff --git a/core/java/android/view/textclassifier/TextClassificationResult.java b/core/java/android/view/textclassifier/TextClassificationResult.java
index 6af0efb..8912ef3 100644
--- a/core/java/android/view/textclassifier/TextClassificationResult.java
+++ b/core/java/android/view/textclassifier/TextClassificationResult.java
@@ -148,7 +148,7 @@
      * @hide
      */
     @NonNull
-    public static OnClickListener createStartActivityOnClick(
+    public static OnClickListener createStartActivityOnClickListener(
             @NonNull final Context context, @NonNull final Intent intent) {
         Preconditions.checkArgument(context != null);
         Preconditions.checkArgument(intent != null);
diff --git a/core/java/android/view/textclassifier/TextClassifier.java b/core/java/android/view/textclassifier/TextClassifier.java
index b84e2ae..791543e 100644
--- a/core/java/android/view/textclassifier/TextClassifier.java
+++ b/core/java/android/view/textclassifier/TextClassifier.java
@@ -35,6 +35,7 @@
     String TYPE_EMAIL = "email";
     String TYPE_PHONE = "phone";
     String TYPE_ADDRESS = "address";
+    String TYPE_URL = "url";
 
     @Retention(RetentionPolicy.SOURCE)
     @StringDef({
diff --git a/core/java/android/view/textclassifier/TextClassifierImpl.java b/core/java/android/view/textclassifier/TextClassifierImpl.java
index e2ff44c..97a36fd 100644
--- a/core/java/android/view/textclassifier/TextClassifierImpl.java
+++ b/core/java/android/view/textclassifier/TextClassifierImpl.java
@@ -27,7 +27,7 @@
 import android.icu.text.BreakIterator;
 import android.net.Uri;
 import android.os.ParcelFileDescriptor;
-import android.text.SmartSelection;
+import android.provider.Browser;
 import android.text.Spannable;
 import android.text.TextUtils;
 import android.text.method.WordIterator;
@@ -45,6 +45,7 @@
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
 /**
@@ -113,7 +114,7 @@
                 String type = getSmartSelection()
                         .classifyText(text.toString(), startIndex, endIndex);
                 if (!TextUtils.isEmpty(type)) {
-                    type = type.toLowerCase().trim();
+                    type = type.toLowerCase(Locale.ENGLISH).trim();
                     // TODO: Added this log for debug only. Remove before release.
                     Log.d(LOG_TAG, String.format("Classification type: %s", type));
                     return createClassificationResult(type, classified);
@@ -127,7 +128,6 @@
         return TextClassifier.NO_OP.getTextClassificationResult(text, startIndex, endIndex);
     }
 
-
     @Override
     public LinksInfo getLinks(CharSequence text, int linkMask) {
         Preconditions.checkArgument(text != null);
@@ -152,20 +152,25 @@
     }
 
     private TextClassificationResult createClassificationResult(String type, CharSequence text) {
-        final Intent intent = IntentFactory.create(type, text.toString());
-        if (intent == null) {
-            return TextClassificationResult.EMPTY;
-        }
-
         final TextClassificationResult.Builder builder = new TextClassificationResult.Builder()
                 .setText(text.toString())
-                .setEntityType(type, 1.0f /* confidence */)
-                .setIntent(intent)
-                .setOnClickListener(TextClassificationResult.createStartActivityOnClick(
-                        mContext, intent));
-        final PackageManager pm = mContext.getPackageManager();
-        final ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
+                .setEntityType(type, 1.0f /* confidence */);
+
+        final Intent intent = IntentFactory.create(mContext, type, text.toString());
+        final PackageManager pm;
+        final ResolveInfo resolveInfo;
+        if (intent != null) {
+            pm = mContext.getPackageManager();
+            resolveInfo = pm.resolveActivity(intent, 0);
+        } else {
+            pm = null;
+            resolveInfo = null;
+        }
         if (resolveInfo != null && resolveInfo.activityInfo != null) {
+            builder.setIntent(intent)
+                    .setOnClickListener(TextClassificationResult.createStartActivityOnClickListener(
+                            mContext, intent));
+
             final String packageName = resolveInfo.activityInfo.packageName;
             if ("android".equals(packageName)) {
                 // Requires the chooser to find an activity to handle the intent.
@@ -228,7 +233,7 @@
                             smartSelection.classifyText(text, selectionStart, selectionEnd);
                     if (matches(type, linkMask)) {
                         final Intent intent = IntentFactory.create(
-                                type, text.substring(selectionStart, selectionEnd));
+                                context, type, text.substring(selectionStart, selectionEnd));
                         if (hasActivityHandler(context, intent)) {
                             final ClickableSpan span = createSpan(context, intent);
                             spans.add(new SpanSpec(selectionStart, selectionEnd, span));
@@ -256,6 +261,10 @@
                     && TextClassifier.TYPE_ADDRESS.equals(type)) {
                 return true;
             }
+            if ((linkMask & Linkify.WEB_URLS) != 0
+                    && TextClassifier.TYPE_URL.equals(type)) {
+                return true;
+            }
             return false;
         }
 
@@ -370,7 +379,7 @@
         private IntentFactory() {}
 
         @Nullable
-        public static Intent create(String type, String text) {
+        public static Intent create(Context context, String type, String text) {
             switch (type) {
                 case TextClassifier.TYPE_EMAIL:
                     return new Intent(Intent.ACTION_SENDTO)
@@ -381,6 +390,9 @@
                 case TextClassifier.TYPE_ADDRESS:
                     return new Intent(Intent.ACTION_VIEW)
                             .setData(Uri.parse(String.format("geo:0,0?q=%s", text)));
+                case TextClassifier.TYPE_URL:
+                    return new Intent(Intent.ACTION_VIEW, Uri.parse(text))
+                            .putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
                 default:
                     return null;
                 // TODO: Add other classification types.
@@ -396,6 +408,8 @@
                     return context.getString(com.android.internal.R.string.dial);
                 case TextClassifier.TYPE_ADDRESS:
                     return context.getString(com.android.internal.R.string.map);
+                case TextClassifier.TYPE_URL:
+                    return context.getString(com.android.internal.R.string.browse);
                 default:
                     return null;
                 // TODO: Add other classification types.
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 45b5570..dd3b054 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -3902,7 +3902,7 @@
                 } else {
                     final Intent intent = textClassificationResult.getIntent();
                     if (intent != null) {
-                        TextClassificationResult.createStartActivityOnClick(
+                        TextClassificationResult.createStartActivityOnClickListener(
                                 mTextView.getContext(), intent)
                                 .onClick(mTextView);
                     }
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index 989927e..d096baf 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -54,6 +54,7 @@
 import android.view.ViewTreeObserver.OnScrollChangedListener;
 import android.view.WindowManager;
 import android.view.WindowManager.LayoutParams;
+import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
 
 import com.android.internal.R;
 
@@ -162,6 +163,7 @@
 
     private boolean mFocusable;
     private int mInputMethodMode = INPUT_METHOD_FROM_FOCUSABLE;
+    @SoftInputModeFlags
     private int mSoftInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED;
     private boolean mTouchable = true;
     private boolean mOutsideTouchable = false;
@@ -208,6 +210,21 @@
         com.android.internal.R.attr.state_above_anchor
     };
 
+    private final OnAttachStateChangeListener mOnAnchorDetachedListener =
+            new OnAttachStateChangeListener() {
+                @Override
+                public void onViewAttachedToWindow(View v) {
+                    // Anchor might have been reattached in a different position.
+                    alignToAnchor();
+                }
+
+                @Override
+                public void onViewDetachedFromWindow(View v) {
+                    // Leave the popup in its current position.
+                    // The anchor might become attached again.
+                }
+            };
+
     private final OnAttachStateChangeListener mOnAnchorRootDetachedListener =
             new OnAttachStateChangeListener() {
                 @Override
@@ -223,20 +240,7 @@
     private WeakReference<View> mAnchorRoot;
     private boolean mIsAnchorRootAttached;
 
-    private final OnScrollChangedListener mOnScrollChangedListener = new OnScrollChangedListener() {
-        @Override
-        public void onScrollChanged() {
-            final View anchor = mAnchor != null ? mAnchor.get() : null;
-            if (anchor != null && mDecorView != null) {
-                final WindowManager.LayoutParams p = (WindowManager.LayoutParams)
-                        mDecorView.getLayoutParams();
-
-                updateAboveAnchor(findDropDownPosition(anchor, p, mAnchorXoff, mAnchorYoff,
-                        p.width, p.height, mAnchoredGravity, false));
-                update(p.x, p.y, -1, -1, true);
-            }
-        }
-    };
+    private final OnScrollChangedListener mOnScrollChangedListener = this::alignToAnchor;
 
     private int mAnchorXoff;
     private int mAnchorYoff;
@@ -724,7 +728,7 @@
      * @see android.view.WindowManager.LayoutParams#softInputMode
      * @see #getSoftInputMode()
      */
-    public void setSoftInputMode(int mode) {
+    public void setSoftInputMode(@SoftInputModeFlags int mode) {
         mSoftInputMode = mode;
     }
 
@@ -734,6 +738,7 @@
      * @see #setSoftInputMode(int)
      * @see android.view.WindowManager.LayoutParams#softInputMode
      */
+    @SoftInputModeFlags
     public int getSoftInputMode() {
         return mSoftInputMode;
     }
@@ -2214,6 +2219,7 @@
         if (anchor != null) {
             final ViewTreeObserver vto = anchor.getViewTreeObserver();
             vto.removeOnScrollChangedListener(mOnScrollChangedListener);
+            anchor.removeOnAttachStateChangeListener(mOnAnchorDetachedListener);
         }
 
         final View anchorRoot = mAnchorRoot != null ? mAnchorRoot.get() : null;
@@ -2233,6 +2239,7 @@
         if (vto != null) {
             vto.addOnScrollChangedListener(mOnScrollChangedListener);
         }
+        anchor.addOnAttachStateChangeListener(mOnAnchorDetachedListener);
 
         final View anchorRoot = anchor.getRootView();
         anchorRoot.addOnAttachStateChangeListener(mOnAnchorRootDetachedListener);
@@ -2247,6 +2254,18 @@
         mAnchoredGravity = gravity;
     }
 
+    private void alignToAnchor() {
+        final View anchor = mAnchor != null ? mAnchor.get() : null;
+        if (anchor != null && anchor.isAttachedToWindow() && mDecorView != null) {
+            final WindowManager.LayoutParams p = (WindowManager.LayoutParams)
+                    mDecorView.getLayoutParams();
+
+            updateAboveAnchor(findDropDownPosition(anchor, p, mAnchorXoff, mAnchorYoff,
+                    p.width, p.height, mAnchoredGravity, false));
+            update(p.x, p.y, -1, -1, true);
+        }
+    }
+
     private class PopupDecorView extends FrameLayout {
         private TransitionListenerAdapter mPendingExitListener;
 
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 20e325c..17cd446 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -271,7 +271,7 @@
  * @attr ref android.R.styleable#TextView_autoSizeMinTextSize
  * @attr ref android.R.styleable#TextView_autoSizeMaxTextSize
  * @attr ref android.R.styleable#TextView_autoSizeStepGranularity
- * @attr ref android.R.styleable#TextView_autoSizeStepSizeSet
+ * @attr ref android.R.styleable#TextView_autoSizePresetSizes
  */
 @RemoteView
 public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {
@@ -698,9 +698,9 @@
     public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0;
     // The TextView performs uniform horizontal and vertical text size scaling to fit within the
     // container.
-    public static final int AUTO_SIZE_TEXT_TYPE_XY = 1;
+    public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1;
     /** @hide */
-    @IntDef({AUTO_SIZE_TEXT_TYPE_NONE, AUTO_SIZE_TEXT_TYPE_XY})
+    @IntDef({AUTO_SIZE_TEXT_TYPE_NONE, AUTO_SIZE_TEXT_TYPE_UNIFORM})
     @Retention(RetentionPolicy.SOURCE)
     public @interface AutoSizeTextType {}
     // Default minimum size for auto-sizing text in scaled pixels. {@see #setAutoSizeMinTextSize}.
@@ -725,7 +725,7 @@
     // Specifies whether auto-size should use the provided auto size steps set or if it should
     // build the steps set using mAutoSizeMinTextSizeInPx, mAutoSizeMaxTextSizeInPx and
     // mAutoSizeStepGranularityInPx.
-    private boolean mHasPredefinedAutoSizeSet = false;
+    private boolean mHasPresetAutoSizeValues = false;
 
     // Watcher used to notify changes to auto-fill manager.
     private AutoFillChangeWatcher mAutoFillChangeWatcher;
@@ -1318,12 +1318,12 @@
                     mAutoSizeMaxTextSizeInPx = a.getDimensionPixelSize(attr, 0);
                     break;
 
-                case com.android.internal.R.styleable.TextView_autoSizeStepSizeSet:
+                case com.android.internal.R.styleable.TextView_autoSizePresetSizes:
                     final int autoSizeStepSizeArrayResId = a.getResourceId(attr, 0);
                     if (autoSizeStepSizeArrayResId > 0) {
                         final TypedArray autoSizePreDefTextSizes = a.getResources()
                                 .obtainTypedArray(autoSizeStepSizeArrayResId);
-                        setupAutoSizeStepSizeSet(autoSizePreDefTextSizes);
+                        setupAutoSizePresetSizes(autoSizePreDefTextSizes);
                         autoSizePreDefTextSizes.recycle();
                     }
                     break;
@@ -1601,7 +1601,7 @@
             setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
         }
 
-        setupAutoSizeTextXY();
+        setupAutoSizeText();
     }
 
     /**
@@ -1610,7 +1610,7 @@
      *
      * @param autoSizeTextType the type of auto-size. Must be one of
      *        {@link TextView#AUTO_SIZE_TEXT_TYPE_NONE} or
-     *        {@link TextView#AUTO_SIZE_TEXT_TYPE_XY}
+     *        {@link TextView#AUTO_SIZE_TEXT_TYPE_UNIFORM}
      *
      * @attr ref android.R.styleable#TextView_autoSizeText
      *
@@ -1630,10 +1630,10 @@
                         mNeedsAutoSizeText = false;
                     }
                     break;
-                case AUTO_SIZE_TEXT_TYPE_XY:
-                    if (mAutoSizeTextType != AUTO_SIZE_TEXT_TYPE_XY) {
-                        mAutoSizeTextType = AUTO_SIZE_TEXT_TYPE_XY;
-                        setupAutoSizeTextXY();
+                case AUTO_SIZE_TEXT_TYPE_UNIFORM:
+                    if (mAutoSizeTextType != AUTO_SIZE_TEXT_TYPE_UNIFORM) {
+                        mAutoSizeTextType = AUTO_SIZE_TEXT_TYPE_UNIFORM;
+                        setupAutoSizeText();
                     }
                     break;
                 default:
@@ -1648,7 +1648,7 @@
      *
      * @return an {@code int} corresponding to one of the auto-size types:
      *         {@link TextView#AUTO_SIZE_TEXT_TYPE_NONE} or
-     *         {@link TextView#AUTO_SIZE_TEXT_TYPE_XY}
+     *         {@link TextView#AUTO_SIZE_TEXT_TYPE_UNIFORM}
      *
      * @attr ref android.R.styleable#TextView_autoSizeText
      *
@@ -1678,8 +1678,8 @@
         if (supportsAutoSizeText()) {
             mAutoSizeStepGranularityInPx = (int) TypedValue.applyDimension(
                     unit, size, getResources().getDisplayMetrics());
-            mHasPredefinedAutoSizeSet = false;
-            setupAutoSizeTextXY();
+            mHasPresetAutoSizeValues = false;
+            setupAutoSizeText();
         }
     }
 
@@ -1711,8 +1711,8 @@
         if (supportsAutoSizeText()) {
             mAutoSizeMinTextSizeInPx = (int) TypedValue.applyDimension(
                     unit, size, getResources().getDisplayMetrics());
-            mHasPredefinedAutoSizeSet = false;
-            setupAutoSizeTextXY();
+            mHasPresetAutoSizeValues = false;
+            setupAutoSizeText();
         }
     }
 
@@ -1745,8 +1745,8 @@
         if (supportsAutoSizeText()) {
             mAutoSizeMaxTextSizeInPx = (int) TypedValue.applyDimension(
                     unit, size, getResources().getDisplayMetrics());
-            mHasPredefinedAutoSizeSet = false;
-            setupAutoSizeTextXY();
+            mHasPresetAutoSizeValues = false;
+            setupAutoSizeText();
         }
     }
 
@@ -1774,25 +1774,25 @@
      *
      * @param presetSizes an {@code int} array of sizes in pixels
      *
-     * @attr ref android.R.styleable#TextView_autoSizeStepSizeSet
+     * @attr ref android.R.styleable#TextView_autoSizePresetSizes
      *
-     * @see #getAutoSizeTextPresetSizes()
+     * @see #getAutoSizeTextAvailableSizes()
      */
     public void setAutoSizeTextPresetSizes(@NonNull int[] presetSizes) {
         if (supportsAutoSizeText()) {
             if (presetSizes.length > 0) {
-                mAutoSizeTextSizesInPx = cleanupAutoSizePredefinedSizes(presetSizes);
+                mAutoSizeTextSizesInPx = cleanupAutoSizePresetSizes(presetSizes);
                 final int sizesLength = mAutoSizeTextSizesInPx.length;
-                mHasPredefinedAutoSizeSet = sizesLength > 0;
-                if (mHasPredefinedAutoSizeSet) {
+                mHasPresetAutoSizeValues = sizesLength > 0;
+                if (mHasPresetAutoSizeValues) {
                     mAutoSizeMinTextSizeInPx = mAutoSizeTextSizesInPx[0];
                     mAutoSizeMaxTextSizeInPx = mAutoSizeTextSizesInPx[sizesLength - 1];
                     mAutoSizeStepGranularityInPx = 0;
                 }
             } else {
-                mHasPredefinedAutoSizeSet = false;
+                mHasPresetAutoSizeValues = false;
             }
-            setupAutoSizeTextXY();
+            setupAutoSizeText();
         }
     }
 
@@ -1804,11 +1804,11 @@
      * @see #setAutoSizeMaxTextSize(int, float)
      * @see #setAutoSizeStepGranularity(int, float)
      */
-    public int[] getAutoSizeTextPresetSizes() {
+    public int[] getAutoSizeTextAvailableSizes() {
         return mAutoSizeTextSizesInPx;
     }
 
-    private void setupAutoSizeStepSizeSet(TypedArray textSizes) {
+    private void setupAutoSizePresetSizes(TypedArray textSizes) {
         final int textSizesLength = textSizes.length();
         final int[] parsedSizes = new int[textSizesLength];
 
@@ -1816,39 +1816,39 @@
             for (int i = 0; i < textSizesLength; i++) {
                 parsedSizes[i] = textSizes.getDimensionPixelSize(i, -1);
             }
-            mAutoSizeTextSizesInPx = cleanupAutoSizePredefinedSizes(parsedSizes);
-            mHasPredefinedAutoSizeSet = mAutoSizeTextSizesInPx.length > 0;
+            mAutoSizeTextSizesInPx = cleanupAutoSizePresetSizes(parsedSizes);
+            mHasPresetAutoSizeValues = mAutoSizeTextSizesInPx.length > 0;
         }
     }
 
     // Returns distinct sorted positive values.
-    private int[] cleanupAutoSizePredefinedSizes(int[] predefinedValues) {
-        final int predefinedValuesLength = predefinedValues.length;
-        if (predefinedValuesLength == 0) {
-            return predefinedValues;
+    private int[] cleanupAutoSizePresetSizes(int[] presetValues) {
+        final int presetValuesLength = presetValues.length;
+        if (presetValuesLength == 0) {
+            return presetValues;
         }
-        Arrays.sort(predefinedValues);
+        Arrays.sort(presetValues);
 
         final IntArray uniqueValidSizes = new IntArray();
-        for (int i = 0; i < predefinedValuesLength; i++) {
-            final int currentPredefinedValue = predefinedValues[i];
+        for (int i = 0; i < presetValuesLength; i++) {
+            final int currentPresetValue = presetValues[i];
 
-            if (currentPredefinedValue > 0
-                    && uniqueValidSizes.binarySearch(currentPredefinedValue) < 0) {
-                uniqueValidSizes.add(currentPredefinedValue);
+            if (currentPresetValue > 0
+                    && uniqueValidSizes.binarySearch(currentPresetValue) < 0) {
+                uniqueValidSizes.add(currentPresetValue);
             }
         }
 
-        return predefinedValuesLength == uniqueValidSizes.size()
-            ? predefinedValues
+        return presetValuesLength == uniqueValidSizes.size()
+            ? presetValues
             : uniqueValidSizes.toArray();
     }
 
-    private void setupAutoSizeTextXY() {
-        if (supportsAutoSizeText() && mAutoSizeTextType == AUTO_SIZE_TEXT_TYPE_XY) {
+    private void setupAutoSizeText() {
+        if (supportsAutoSizeText() && mAutoSizeTextType == AUTO_SIZE_TEXT_TYPE_UNIFORM) {
             // Calculate the sizes set based on minimum size, maximum size and step size if we do
             // not have a predefined set of sizes or if the current sizes array is empty.
-            if (!mHasPredefinedAutoSizeSet || mAutoSizeTextSizesInPx.length == 0) {
+            if (!mHasPresetAutoSizeValues || mAutoSizeTextSizesInPx.length == 0) {
                 // Set valid defaults.
                 if (mAutoSizeMinTextSizeInPx <= 0) {
                     mAutoSizeMinTextSizeInPx = (int) TypedValue.applyDimension(
diff --git a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
index 033dd13..ff75a8b 100644
--- a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
+++ b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
@@ -35,6 +35,7 @@
     boolean showSessionFromSession(IBinder token, in Bundle sessionArgs, int flags);
     boolean hideSessionFromSession(IBinder token);
     int startVoiceActivity(IBinder token, in Intent intent, String resolvedType);
+    int startAssistantActivity(IBinder token, in Intent intent, String resolvedType);
     void setKeepAwake(IBinder token, boolean keepAwake);
     void closeSystemDialogs(IBinder token);
     void finish(IBinder token);
diff --git a/core/java/com/android/internal/backup/LocalTransport.java b/core/java/com/android/internal/backup/LocalTransport.java
index 5e8f4a2..f76b702 100644
--- a/core/java/com/android/internal/backup/LocalTransport.java
+++ b/core/java/com/android/internal/backup/LocalTransport.java
@@ -73,6 +73,8 @@
     // Full backup size quota is set to reasonable value.
     private static final long FULL_BACKUP_SIZE_QUOTA = 25 * 1024 * 1024;
 
+    private static final long KEY_VALUE_BACKUP_SIZE_QUOTA = 5 * 1024 * 1024;
+
     private Context mContext;
     private File mDataDir = new File(Environment.getDownloadCacheDirectory(), "backup");
     private File mCurrentSetDir = new File(mDataDir, Long.toString(CURRENT_SET_TOKEN));
@@ -712,6 +714,6 @@
 
     @Override
     public long getBackupQuota(String packageName, boolean isFullBackup) {
-        return isFullBackup ? FULL_BACKUP_SIZE_QUOTA : Long.MAX_VALUE;
+        return isFullBackup ? FULL_BACKUP_SIZE_QUOTA : KEY_VALUE_BACKUP_SIZE_QUOTA;
     }
 }
diff --git a/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java b/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
index a94b161..dfc0696 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
@@ -42,8 +42,9 @@
 /**
  * InputMethodSubtypeSwitchingController controls the switching behavior of the subtypes.
  * <p>
- * This class is designed to be used from and only from {@link InputMethodManagerService} by using
- * {@link InputMethodManagerService#mMethodMap} as a global lock.
+ * This class is designed to be used from and only from
+ * {@link com.android.server.InputMethodManagerService} by using
+ * {@link com.android.server.InputMethodManagerService#mMethodMap} as a global lock.
  * </p>
  */
 public class InputMethodSubtypeSwitchingController {
@@ -106,21 +107,39 @@
             return c1.toString().compareTo(c2.toString());
         }
 
+        /**
+         * Compares this object with the specified object for order. The fields of this class will
+         * be compared in the following order.
+         * <ol>
+         *   <li>{@link #mImeName}</li>
+         *   <li>{@link #mIsSystemLocale}</li>
+         *   <li>{@link #mIsSystemLanguage}</li>
+         *   <li>{@link #mSubtypeName}</li>
+         * </ol>
+         * Note: this class has a natural ordering that is inconsistent with {@link #equals(Object).
+         * This method doesn't compare {@link #mSubtypeId} but {@link #equals(Object)} does.
+         *
+         * @param other the object to be compared.
+         * @return a negative integer, zero, or positive integer as this object is less than, equal
+         *         to, or greater than the specified <code>other</code> object.
+         */
         @Override
         public int compareTo(ImeSubtypeListItem other) {
             int result = compareNullableCharSequences(mImeName, other.mImeName);
             if (result != 0) {
                 return result;
             }
-            result = compareNullableCharSequences(mSubtypeName, other.mSubtypeName);
-            if (result != 0) {
-                return result;
-            }
+            // Subtype that has the same locale of the system's has higher priority.
             result = (mIsSystemLocale ? -1 : 0) - (other.mIsSystemLocale ? -1 : 0);
             if (result != 0) {
                 return result;
             }
-            return (mIsSystemLanguage ? -1 : 0) - (other.mIsSystemLanguage ? -1 : 0);
+            // Subtype that has the same language of the system's has higher priority.
+            result = (mIsSystemLanguage ? -1 : 0) - (other.mIsSystemLanguage ? -1 : 0);
+            if (result != 0) {
+                return result;
+            }
+            return compareNullableCharSequences(mSubtypeName, other.mSubtypeName);
         }
 
         @Override
@@ -141,13 +160,7 @@
             }
             if (o instanceof ImeSubtypeListItem) {
                 final ImeSubtypeListItem that = (ImeSubtypeListItem)o;
-                if (!Objects.equals(this.mImi, that.mImi)) {
-                    return false;
-                }
-                if (this.mSubtypeId != that.mSubtypeId) {
-                    return false;
-                }
-                return true;
+                return Objects.equals(this.mImi, that.mImi) && this.mSubtypeId == that.mSubtypeId;
             }
             return false;
         }
diff --git a/core/java/com/android/internal/os/HandlerCaller.java b/core/java/com/android/internal/os/HandlerCaller.java
index c26fc3a..ae7c5f2 100644
--- a/core/java/com/android/internal/os/HandlerCaller.java
+++ b/core/java/com/android/internal/os/HandlerCaller.java
@@ -173,6 +173,16 @@
         return mH.obtainMessage(what, arg1, arg2, args);
     }
 
+    public Message obtainMessageIIOOOO(int what, int arg1, int arg2, Object arg3, Object arg4,
+            Object arg5, Object arg6) {
+        SomeArgs args = SomeArgs.obtain();
+        args.arg1 = arg3;
+        args.arg2 = arg4;
+        args.arg3 = arg5;
+        args.arg4 = arg6;
+        return mH.obtainMessage(what, arg1, arg2, args);
+    }
+
     public Message obtainMessageOO(int what, Object arg1, Object arg2) {
         SomeArgs args = SomeArgs.obtain();
         args.arg1 = arg1;
diff --git a/core/java/com/android/internal/os/RuntimeInit.java b/core/java/com/android/internal/os/RuntimeInit.java
index 304c31d..f4be128 100644
--- a/core/java/com/android/internal/os/RuntimeInit.java
+++ b/core/java/com/android/internal/os/RuntimeInit.java
@@ -43,8 +43,8 @@
  * @hide
  */
 public class RuntimeInit {
-    private final static String TAG = "AndroidRuntime";
-    private final static boolean DEBUG = false;
+    final static String TAG = "AndroidRuntime";
+    final static boolean DEBUG = false;
 
     /** true if commonInit() has been called */
     private static boolean initialized;
@@ -53,7 +53,6 @@
 
     private static volatile boolean mCrashing = false;
 
-    private static final native void nativeZygoteInit();
     private static final native void nativeFinishInit();
     private static final native void nativeSetExitWithoutCleanup(boolean exitWithoutCleanup);
 
@@ -133,7 +132,7 @@
         }
     }
 
-    private static final void commonInit() {
+    protected static final void commonInit() {
         if (DEBUG) Slog.d(TAG, "Entered RuntimeInit!");
 
         /*
@@ -287,50 +286,7 @@
         if (DEBUG) Slog.d(TAG, "Leaving RuntimeInit!");
     }
 
-    /**
-     * The main function called when started through the zygote process. This
-     * could be unified with main(), if the native code in nativeFinishInit()
-     * were rationalized with Zygote startup.<p>
-     *
-     * Current recognized args:
-     * <ul>
-     *   <li> <code> [--] &lt;start class name&gt;  &lt;args&gt;
-     * </ul>
-     *
-     * @param targetSdkVersion target SDK version
-     * @param argv arg strings
-     */
-    public static final void zygoteInit(int targetSdkVersion, String[] argv, ClassLoader classLoader)
-            throws Zygote.MethodAndArgsCaller {
-        if (DEBUG) Slog.d(TAG, "RuntimeInit: Starting application from zygote");
-
-        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "RuntimeInit");
-        redirectLogStreams();
-
-        commonInit();
-        nativeZygoteInit();
-        applicationInit(targetSdkVersion, argv, classLoader);
-    }
-
-    /**
-     * The main function called when an application is started through a
-     * wrapper process.
-     *
-     * When the wrapper starts, the runtime starts {@link RuntimeInit#main}
-     * which calls {@link WrapperInit#main} which then calls this method.
-     * So we don't need to call commonInit() here.
-     *
-     * @param targetSdkVersion target SDK version
-     * @param argv arg strings
-     */
-    public static void wrapperInit(int targetSdkVersion, String[] argv)
-            throws Zygote.MethodAndArgsCaller {
-        if (DEBUG) Slog.d(TAG, "RuntimeInit: Starting application from wrapper");
-
-        applicationInit(targetSdkVersion, argv, null);
-    }
-
-    private static void applicationInit(int targetSdkVersion, String[] argv, ClassLoader classLoader)
+    protected static void applicationInit(int targetSdkVersion, String[] argv, ClassLoader classLoader)
             throws Zygote.MethodAndArgsCaller {
         // If the application calls System.exit(), terminate the process
         // immediately without running any shutdown hooks.  It is not possible to
diff --git a/core/java/com/android/internal/os/WrapperInit.java b/core/java/com/android/internal/os/WrapperInit.java
index c03bcdf..96468ab 100644
--- a/core/java/com/android/internal/os/WrapperInit.java
+++ b/core/java/com/android/internal/os/WrapperInit.java
@@ -20,7 +20,7 @@
 import android.os.Trace;
 import android.util.BootTimingsTraceLog;
 import android.util.Slog;
-
+import com.android.internal.os.Zygote.MethodAndArgsCaller;
 import dalvik.system.VMRuntime;
 import java.io.DataOutputStream;
 import java.io.FileDescriptor;
@@ -83,7 +83,7 @@
             // Launch the application.
             String[] runtimeArgs = new String[args.length - 2];
             System.arraycopy(args, 2, runtimeArgs, 0, runtimeArgs.length);
-            RuntimeInit.wrapperInit(targetSdkVersion, runtimeArgs);
+            WrapperInit.wrapperInit(targetSdkVersion, runtimeArgs);
         } catch (Zygote.MethodAndArgsCaller caller) {
             caller.run();
         }
@@ -124,4 +124,24 @@
         Zygote.appendQuotedShellArgs(command, args);
         Zygote.execShell(command.toString());
     }
+
+    /**
+     * The main function called when an application is started through a
+     * wrapper process.
+     *
+     * When the wrapper starts, the runtime starts {@link RuntimeInit#main}
+     * which calls {@link main} which then calls this method.
+     * So we don't need to call commonInit() here.
+     *
+     * @param targetSdkVersion target SDK version
+     * @param argv arg strings
+     */
+    private static void wrapperInit(int targetSdkVersion, String[] argv)
+            throws Zygote.MethodAndArgsCaller {
+        if (RuntimeInit.DEBUG) {
+            Slog.d(RuntimeInit.TAG, "RuntimeInit: Starting application from wrapper");
+        }
+
+        RuntimeInit.applicationInit(targetSdkVersion, argv, null);
+    }
 }
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index 8fe374c..a7f311b 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -789,7 +789,7 @@
                     VMRuntime.getCurrentInstructionSet(),
                     pipeFd, parsedArgs.remainingArgs);
         } else {
-            RuntimeInit.zygoteInit(parsedArgs.targetSdkVersion,
+            ZygoteInit.zygoteInit(parsedArgs.targetSdkVersion,
                     parsedArgs.remainingArgs, null /* classLoader */);
         }
     }
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 5049738..a72b66a 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -25,6 +25,7 @@
 import android.icu.text.DecimalFormatSymbols;
 import android.icu.util.ULocale;
 import android.net.LocalServerSocket;
+import android.opengl.EGL14;
 import android.os.IInstalld;
 import android.os.Process;
 import android.os.RemoteException;
@@ -44,6 +45,7 @@
 import android.util.BootTimingsTraceLog;
 import android.util.EventLog;
 import android.util.Log;
+import android.util.Slog;
 import android.webkit.WebViewFactory;
 import android.widget.TextView;
 
@@ -81,6 +83,7 @@
     private static final String TAG = "Zygote";
 
     private static final String PROPERTY_DISABLE_OPENGL_PRELOADING = "ro.zygote.disable_gl_preload";
+    private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0";
     private static final String PROPERTY_RUNNING_IN_CONTAINER = "ro.boot.container";
 
     private static final int LOG_BOOT_PROGRESS_PRELOAD_START = 3020;
@@ -125,6 +128,12 @@
         bootTimingsTraceLog.traceBegin("PreloadResources");
         preloadResources();
         bootTimingsTraceLog.traceEnd(); // PreloadResources
+        Trace.traceBegin(Trace.TRACE_TAG_DALVIK, "PreloadOpenGL");
+        preloadOpenGL();
+        Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
+        Trace.traceBegin(Trace.TRACE_TAG_DALVIK, "PreloadOpenGL");
+        preloadOpenGL();
+        Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
         preloadSharedLibraries();
         preloadTextResources();
         // Ask the WebViewFactory to do any initialization that must run in the zygote process,
@@ -174,6 +183,14 @@
         System.loadLibrary("jnigraphics");
     }
 
+    private static void preloadOpenGL() {
+        String driverPackageName = SystemProperties.get(PROPERTY_GFX_DRIVER);
+        if (!SystemProperties.getBoolean(PROPERTY_DISABLE_OPENGL_PRELOADING, false) ||
+                driverPackageName == null || driverPackageName.isEmpty()) {
+            EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
+        }
+    }
+
     private static void preloadTextResources() {
         Hyphenator.init();
         TextView.preloadFontCache();
@@ -471,7 +488,7 @@
             /*
              * Pass the remaining arguments to SystemServer.
              */
-            RuntimeInit.zygoteInit(parsedArgs.targetSdkVersion, parsedArgs.remainingArgs, cl);
+            ZygoteInit.zygoteInit(parsedArgs.targetSdkVersion, parsedArgs.remainingArgs, cl);
         }
 
         /* should never reach here */
@@ -771,4 +788,33 @@
      */
     private ZygoteInit() {
     }
+
+    /**
+     * The main function called when started through the zygote process. This
+     * could be unified with main(), if the native code in nativeFinishInit()
+     * were rationalized with Zygote startup.<p>
+     *
+     * Current recognized args:
+     * <ul>
+     *   <li> <code> [--] &lt;start class name&gt;  &lt;args&gt;
+     * </ul>
+     *
+     * @param targetSdkVersion target SDK version
+     * @param argv arg strings
+     */
+    public static final void zygoteInit(int targetSdkVersion, String[] argv,
+            ClassLoader classLoader) throws Zygote.MethodAndArgsCaller {
+        if (RuntimeInit.DEBUG) {
+            Slog.d(RuntimeInit.TAG, "RuntimeInit: Starting application from zygote");
+        }
+
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "ZygoteInit");
+        RuntimeInit.redirectLogStreams();
+
+        RuntimeInit.commonInit();
+        ZygoteInit.nativeZygoteInit();
+        RuntimeInit.applicationInit(targetSdkVersion, argv, classLoader);
+    }
+
+    private static final native void nativeZygoteInit();
 }
diff --git a/core/java/com/android/internal/policy/PipSnapAlgorithm.java b/core/java/com/android/internal/policy/PipSnapAlgorithm.java
index bf047c1..040f150 100644
--- a/core/java/com/android/internal/policy/PipSnapAlgorithm.java
+++ b/core/java/com/android/internal/policy/PipSnapAlgorithm.java
@@ -25,6 +25,7 @@
 import android.view.ViewConfiguration;
 import android.widget.Scroller;
 
+import java.io.PrintWriter;
 import java.util.ArrayList;
 
 /**
@@ -322,4 +323,13 @@
                 break;
         }
     }
+
+    public void dump(PrintWriter pw, String prefix) {
+        final String innerPrefix = prefix + "  ";
+        pw.println(prefix + PipSnapAlgorithm.class.getSimpleName());
+        pw.println(innerPrefix + "mSnapMode=" + mSnapMode);
+        pw.println(innerPrefix + "mOrientation=" + mOrientation);
+        pw.println(innerPrefix + "mMinimizedVisibleSize=" + mMinimizedVisibleSize);
+        pw.println(innerPrefix + "mIsMinimized=" + mIsMinimized);
+    }
 }
diff --git a/core/java/com/android/internal/textservice/ISpellCheckerService.aidl b/core/java/com/android/internal/textservice/ISpellCheckerService.aidl
index 67d7b3e..6a25964 100644
--- a/core/java/com/android/internal/textservice/ISpellCheckerService.aidl
+++ b/core/java/com/android/internal/textservice/ISpellCheckerService.aidl
@@ -16,16 +16,32 @@
 
 package com.android.internal.textservice;
 
+import com.android.internal.textservice.ISpellCheckerServiceCallback;
 import com.android.internal.textservice.ISpellCheckerSession;
 import com.android.internal.textservice.ISpellCheckerSessionListener;
 
 import android.os.Bundle;
 
 /**
- * Public interface to the global spell checker.
+ * IPC channels from TextServicesManagerService to SpellCheckerService.
  * @hide
  */
-interface ISpellCheckerService {
-    ISpellCheckerSession getISpellCheckerSession(
-            String locale, ISpellCheckerSessionListener listener, in Bundle bundle);
+oneway interface ISpellCheckerService {
+    /**
+     * Called from the system when an application is requesting a new spell checker session.
+     *
+     * <p>Note: This is an internal protocol used by the system to establish spell checker sessions,
+     * which is not guaranteed to be stable and is subject to change.</p>
+     *
+     * @param locale locale to be returned from
+     *               {@link android.service.textservice.SpellCheckerService.Session#getLocale()}
+     * @param listener IPC channel object to be used to implement
+     *                 {@link android.service.textservice.SpellCheckerService.Session#onGetSuggestionsMultiple(TextInfo[], int, boolean)} and
+     *                 {@link android.service.textservice.SpellCheckerService.Session#onGetSuggestions(TextInfo, int)}
+     * @param bundle bundle to be returned from {@link android.service.textservice.SpellCheckerService.Session#getBundle()}
+     * @param callback IPC channel to return the result to the caller in an asynchronous manner
+     */
+    void getISpellCheckerSession(
+            String locale, ISpellCheckerSessionListener listener, in Bundle bundle,
+            ISpellCheckerServiceCallback callback);
 }
diff --git a/core/java/com/android/internal/textservice/ISpellCheckerServiceCallback.aidl b/core/java/com/android/internal/textservice/ISpellCheckerServiceCallback.aidl
new file mode 100644
index 0000000..e716cc1
--- /dev/null
+++ b/core/java/com/android/internal/textservice/ISpellCheckerServiceCallback.aidl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 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.textservice;
+
+import com.android.internal.textservice.ISpellCheckerSession;
+import com.android.internal.textservice.ISpellCheckerSessionListener;
+
+import android.os.Bundle;
+
+/**
+ * IPC channels from SpellCheckerService to TextServicesManagerService.
+ * @hide
+ */
+oneway interface ISpellCheckerServiceCallback {
+    // TODO: Currently SpellCheckerSession just ignores null newSession and continues waiting for
+    // the next onSessionCreated with non-null newSession, which is supposed to never happen if
+    // the system is working normally. We should at least free up resources in SpellCheckerSession.
+    // Note: This method is called from non-system processes, in theory we cannot assume that
+    // this method is always be called only once with non-null value.
+    void onSessionCreated(ISpellCheckerSession newSession);
+}
diff --git a/core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl b/core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl
index ecb6cd0..08d2a5d 100644
--- a/core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl
+++ b/core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl
@@ -21,7 +21,7 @@
 import android.view.textservice.SpellCheckerInfo;
 
 /**
- * Interface to the text service session.
+ * (Per-session) IPC channels from TextServicesManagerService to spell checker client applications.
  * @hide
  */
 interface ITextServicesSessionListener {
diff --git a/test-runner/src/com/android/internal/util/Predicate.java b/core/java/com/android/internal/util/Predicate.java
similarity index 100%
rename from test-runner/src/com/android/internal/util/Predicate.java
rename to core/java/com/android/internal/util/Predicate.java
diff --git a/test-runner/src/com/android/internal/util/Predicates.java b/core/java/com/android/internal/util/Predicates.java
similarity index 99%
rename from test-runner/src/com/android/internal/util/Predicates.java
rename to core/java/com/android/internal/util/Predicates.java
index 30b8dc6..c006564 100644
--- a/test-runner/src/com/android/internal/util/Predicates.java
+++ b/core/java/com/android/internal/util/Predicates.java
@@ -21,7 +21,6 @@
 /**
  * Predicates contains static methods for creating the standard set of
  * {@code Predicate} objects.
- * @hide
  */
 public class Predicates {
 
diff --git a/core/java/com/android/internal/view/IInputConnectionWrapper.java b/core/java/com/android/internal/view/IInputConnectionWrapper.java
index 0185e30..555263d 100644
--- a/core/java/com/android/internal/view/IInputConnectionWrapper.java
+++ b/core/java/com/android/internal/view/IInputConnectionWrapper.java
@@ -17,6 +17,7 @@
 package com.android.internal.view;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.os.SomeArgs;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -36,7 +37,8 @@
 import android.view.inputmethod.InputContentInfo;
 
 public abstract class IInputConnectionWrapper extends IInputContext.Stub {
-    static final String TAG = "IInputConnectionWrapper";
+    private static final String TAG = "IInputConnectionWrapper";
+    private static final boolean DEBUG = false;
 
     private static final int DO_GET_TEXT_AFTER_CURSOR = 10;
     private static final int DO_GET_TEXT_BEFORE_CURSOR = 20;
@@ -57,7 +59,6 @@
     private static final int DO_DELETE_SURROUNDING_TEXT_IN_CODE_POINTS = 81;
     private static final int DO_BEGIN_BATCH_EDIT = 90;
     private static final int DO_END_BATCH_EDIT = 95;
-    private static final int DO_REPORT_FULLSCREEN_MODE = 100;
     private static final int DO_PERFORM_PRIVATE_COMMAND = 120;
     private static final int DO_CLEAR_META_KEY_STATES = 130;
     private static final int DO_REQUEST_UPDATE_CURSOR_ANCHOR_INFO = 140;
@@ -73,16 +74,7 @@
     private Object mLock = new Object();
     @GuardedBy("mLock")
     private boolean mFinished = false;
-    @GuardedBy("mLock")
-    private String mInputMethodId;
 
-    static class SomeArgs {
-        Object arg1;
-        Object arg2;
-        IInputContextCallback callback;
-        int seq;
-    }
-    
     class MyHandler extends Handler {
         MyHandler(Looper looper) {
             super(looper);
@@ -113,18 +105,6 @@
         }
     }
 
-    public String getInputMethodId() {
-        synchronized (mLock) {
-            return mInputMethodId;
-        }
-    }
-
-    public void setInputMethodId(final String inputMethodId) {
-        synchronized (mLock) {
-            mInputMethodId = inputMethodId;
-        }
-    }
-
     abstract protected boolean isActive();
 
     /**
@@ -133,14 +113,6 @@
      */
     abstract protected void onUserAction();
 
-    /**
-     * Called when the input method started or stopped full-screen mode.
-     * @param enabled {@code true} if the input method starts full-screen mode.
-     * @param calledInBackground {@code true} if this input connection is in a state when incoming
-     * events are usually ignored.
-     */
-    abstract protected void onReportFullscreenMode(boolean enabled, boolean calledInBackground);
-
     public void getTextAfterCursor(int length, int flags, int seq, IInputContextCallback callback) {
         dispatchMessage(obtainMessageIISC(DO_GET_TEXT_AFTER_CURSOR, length, flags, seq, callback));
     }
@@ -225,10 +197,6 @@
         dispatchMessage(obtainMessage(DO_END_BATCH_EDIT));
     }
 
-    public void reportFullscreenMode(boolean enabled) {
-        dispatchMessage(obtainMessageII(DO_REPORT_FULLSCREEN_MODE, enabled ? 1 : 0, 0));
-    }
-
     public void performPrivateCommand(String action, Bundle data) {
         dispatchMessage(obtainMessageOO(DO_PERFORM_PRIVATE_COMMAND, action, data));
     }
@@ -267,80 +235,100 @@
             case DO_GET_TEXT_AFTER_CURSOR: {
                 SomeArgs args = (SomeArgs)msg.obj;
                 try {
+                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
+                    final int callbackSeq = args.argi6;
                     InputConnection ic = getInputConnection();
                     if (ic == null || !isActive()) {
                         Log.w(TAG, "getTextAfterCursor on inactive InputConnection");
-                        args.callback.setTextAfterCursor(null, args.seq);
+                        callback.setTextAfterCursor(null, callbackSeq);
                         return;
                     }
-                    args.callback.setTextAfterCursor(ic.getTextAfterCursor(
-                            msg.arg1, msg.arg2), args.seq);
+                    callback.setTextAfterCursor(ic.getTextAfterCursor(
+                            msg.arg1, msg.arg2), callbackSeq);
                 } catch (RemoteException e) {
                     Log.w(TAG, "Got RemoteException calling setTextAfterCursor", e);
+                } finally {
+                    args.recycle();
                 }
                 return;
             }
             case DO_GET_TEXT_BEFORE_CURSOR: {
                 SomeArgs args = (SomeArgs)msg.obj;
                 try {
+                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
+                    final int callbackSeq = args.argi6;
                     InputConnection ic = getInputConnection();
                     if (ic == null || !isActive()) {
                         Log.w(TAG, "getTextBeforeCursor on inactive InputConnection");
-                        args.callback.setTextBeforeCursor(null, args.seq);
+                        callback.setTextBeforeCursor(null, callbackSeq);
                         return;
                     }
-                    args.callback.setTextBeforeCursor(ic.getTextBeforeCursor(
-                            msg.arg1, msg.arg2), args.seq);
+                    callback.setTextBeforeCursor(ic.getTextBeforeCursor(
+                            msg.arg1, msg.arg2), callbackSeq);
                 } catch (RemoteException e) {
                     Log.w(TAG, "Got RemoteException calling setTextBeforeCursor", e);
+                } finally {
+                    args.recycle();
                 }
                 return;
             }
             case DO_GET_SELECTED_TEXT: {
                 SomeArgs args = (SomeArgs)msg.obj;
                 try {
+                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
+                    final int callbackSeq = args.argi6;
                     InputConnection ic = getInputConnection();
                     if (ic == null || !isActive()) {
                         Log.w(TAG, "getSelectedText on inactive InputConnection");
-                        args.callback.setSelectedText(null, args.seq);
+                        callback.setSelectedText(null, callbackSeq);
                         return;
                     }
-                    args.callback.setSelectedText(ic.getSelectedText(
-                            msg.arg1), args.seq);
+                    callback.setSelectedText(ic.getSelectedText(
+                            msg.arg1), callbackSeq);
                 } catch (RemoteException e) {
                     Log.w(TAG, "Got RemoteException calling setSelectedText", e);
+                } finally {
+                    args.recycle();
                 }
                 return;
             }
             case DO_GET_CURSOR_CAPS_MODE: {
                 SomeArgs args = (SomeArgs)msg.obj;
                 try {
+                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
+                    final int callbackSeq = args.argi6;
                     InputConnection ic = getInputConnection();
                     if (ic == null || !isActive()) {
                         Log.w(TAG, "getCursorCapsMode on inactive InputConnection");
-                        args.callback.setCursorCapsMode(0, args.seq);
+                        callback.setCursorCapsMode(0, callbackSeq);
                         return;
                     }
-                    args.callback.setCursorCapsMode(ic.getCursorCapsMode(msg.arg1),
-                            args.seq);
+                    callback.setCursorCapsMode(ic.getCursorCapsMode(msg.arg1),
+                            callbackSeq);
                 } catch (RemoteException e) {
                     Log.w(TAG, "Got RemoteException calling setCursorCapsMode", e);
+                } finally {
+                    args.recycle();
                 }
                 return;
             }
             case DO_GET_EXTRACTED_TEXT: {
                 SomeArgs args = (SomeArgs)msg.obj;
                 try {
+                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
+                    final int callbackSeq = args.argi6;
                     InputConnection ic = getInputConnection();
                     if (ic == null || !isActive()) {
                         Log.w(TAG, "getExtractedText on inactive InputConnection");
-                        args.callback.setExtractedText(null, args.seq);
+                        callback.setExtractedText(null, callbackSeq);
                         return;
                     }
-                    args.callback.setExtractedText(ic.getExtractedText(
-                            (ExtractedTextRequest)args.arg1, msg.arg1), args.seq);
+                    callback.setExtractedText(ic.getExtractedText(
+                            (ExtractedTextRequest)args.arg1, msg.arg1), callbackSeq);
                 } catch (RemoteException e) {
                     Log.w(TAG, "Got RemoteException calling setExtractedText", e);
+                } finally {
+                    args.recycle();
                 }
                 return;
             }
@@ -419,6 +407,14 @@
                 return;
             }
             case DO_FINISH_COMPOSING_TEXT: {
+                if (isFinished()) {
+                    // In this case, #finishComposingText() is guaranteed to be called already.
+                    // There should be no negative impact if we ignore this call silently.
+                    if (DEBUG) {
+                        Log.w(TAG, "Bug 35301295: Redundant finishComposingText.");
+                    }
+                    return;
+                }
                 InputConnection ic = getInputConnection();
                 // Note we do NOT check isActive() here, because this is safe
                 // for an IME to call at any time, and we need to allow it
@@ -486,47 +482,38 @@
                 ic.endBatchEdit();
                 return;
             }
-            case DO_REPORT_FULLSCREEN_MODE: {
-                InputConnection ic = getInputConnection();
-                boolean isBackground = false;
-                if (ic == null || !isActive()) {
-                    Log.w(TAG, "reportFullscreenMode on inexistent InputConnection");
-                    isBackground = true;
-                }
-                final boolean enabled = msg.arg1 == 1;
-                if (!isBackground) {
-                    ic.reportFullscreenMode(enabled);
-                }
-                // Due to the nature of asynchronous event handling, currently InputMethodService
-                // has relied on the fact that #reportFullscreenMode() can be handled even when the
-                // InputConnection is inactive.  We have to notify this event to InputMethodManager.
-                onReportFullscreenMode(enabled, isBackground);
-                return;
-            }
             case DO_PERFORM_PRIVATE_COMMAND: {
-                InputConnection ic = getInputConnection();
-                if (ic == null || !isActive()) {
-                    Log.w(TAG, "performPrivateCommand on inactive InputConnection");
-                    return;
+                final SomeArgs args = (SomeArgs) msg.obj;
+                try {
+                    final String action = (String) args.arg1;
+                    final Bundle data = (Bundle) args.arg2;
+                    InputConnection ic = getInputConnection();
+                    if (ic == null || !isActive()) {
+                        Log.w(TAG, "performPrivateCommand on inactive InputConnection");
+                        return;
+                    }
+                    ic.performPrivateCommand(action, data);
+                } finally {
+                    args.recycle();
                 }
-                SomeArgs args = (SomeArgs)msg.obj;
-                ic.performPrivateCommand((String)args.arg1,
-                        (Bundle)args.arg2);
-                return;
             }
             case DO_REQUEST_UPDATE_CURSOR_ANCHOR_INFO: {
                 SomeArgs args = (SomeArgs)msg.obj;
                 try {
+                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
+                    final int callbackSeq = args.argi6;
                     InputConnection ic = getInputConnection();
                     if (ic == null || !isActive()) {
                         Log.w(TAG, "requestCursorAnchorInfo on inactive InputConnection");
-                        args.callback.setRequestUpdateCursorAnchorInfoResult(false, args.seq);
+                        callback.setRequestUpdateCursorAnchorInfoResult(false, callbackSeq);
                         return;
                     }
-                    args.callback.setRequestUpdateCursorAnchorInfoResult(
-                            ic.requestCursorUpdates(msg.arg1), args.seq);
+                    callback.setRequestUpdateCursorAnchorInfoResult(
+                            ic.requestCursorUpdates(msg.arg1), callbackSeq);
                 } catch (RemoteException e) {
                     Log.w(TAG, "Got RemoteException calling requestCursorAnchorInfo", e);
+                } finally {
+                    args.recycle();
                 }
                 return;
             }
@@ -564,35 +551,39 @@
                 final int flags = msg.arg1;
                 SomeArgs args = (SomeArgs) msg.obj;
                 try {
+                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
+                    final int callbackSeq = args.argi6;
                     InputConnection ic = getInputConnection();
                     if (ic == null || !isActive()) {
                         Log.w(TAG, "commitContent on inactive InputConnection");
-                        args.callback.setCommitContentResult(false, args.seq);
+                        callback.setCommitContentResult(false, callbackSeq);
                         return;
                     }
                     final InputContentInfo inputContentInfo = (InputContentInfo) args.arg1;
                     if (inputContentInfo == null || !inputContentInfo.validate()) {
                         Log.w(TAG, "commitContent with invalid inputContentInfo="
                                 + inputContentInfo);
-                        args.callback.setCommitContentResult(false, args.seq);
+                        callback.setCommitContentResult(false, callbackSeq);
                         return;
                     }
                     final boolean result =
                             ic.commitContent(inputContentInfo, flags, (Bundle) args.arg2);
-                    args.callback.setCommitContentResult(result, args.seq);
+                    callback.setCommitContentResult(result, callbackSeq);
                 } catch (RemoteException e) {
                     Log.w(TAG, "Got RemoteException calling commitContent", e);
+                } finally {
+                    args.recycle();
                 }
                 return;
             }
         }
         Log.w(TAG, "Unhandled message code: " + msg.what);
     }
-    
+
     Message obtainMessage(int what) {
         return mH.obtainMessage(what);
     }
-    
+
     Message obtainMessageII(int what, int arg1, int arg2) {
         return mH.obtainMessage(what, arg1, arg2);
     }
@@ -600,46 +591,47 @@
     Message obtainMessageO(int what, Object arg1) {
         return mH.obtainMessage(what, 0, 0, arg1);
     }
-    
-    Message obtainMessageISC(int what, int arg1, int seq, IInputContextCallback callback) {
-        SomeArgs args = new SomeArgs();
-        args.callback = callback;
-        args.seq = seq;
+
+    Message obtainMessageISC(int what, int arg1, int callbackSeq, IInputContextCallback callback) {
+        final SomeArgs args = SomeArgs.obtain();
+        args.arg6 = callback;
+        args.argi6 = callbackSeq;
         return mH.obtainMessage(what, arg1, 0, args);
     }
-    
-    Message obtainMessageIISC(int what, int arg1, int arg2, int seq, IInputContextCallback callback) {
-        SomeArgs args = new SomeArgs();
-        args.callback = callback;
-        args.seq = seq;
+
+    Message obtainMessageIISC(int what, int arg1, int arg2, int callbackSeq,
+            IInputContextCallback callback) {
+        final SomeArgs args = SomeArgs.obtain();
+        args.arg6 = callback;
+        args.argi6 = callbackSeq;
         return mH.obtainMessage(what, arg1, arg2, args);
     }
 
-    Message obtainMessageIOOSC(int what, int arg1, Object objArg1, Object objArg2, int seq,
+    Message obtainMessageIOOSC(int what, int arg1, Object objArg1, Object objArg2, int callbackSeq,
             IInputContextCallback callback) {
-        SomeArgs args = new SomeArgs();
+        final SomeArgs args = SomeArgs.obtain();
         args.arg1 = objArg1;
         args.arg2 = objArg2;
-        args.callback = callback;
-        args.seq = seq;
+        args.arg6 = callback;
+        args.argi6 = callbackSeq;
         return mH.obtainMessage(what, arg1, 0, args);
     }
 
-    Message obtainMessageIOSC(int what, int arg1, Object arg2, int seq,
+    Message obtainMessageIOSC(int what, int arg1, Object arg2, int callbackSeq,
             IInputContextCallback callback) {
-        SomeArgs args = new SomeArgs();
+        final SomeArgs args = SomeArgs.obtain();
         args.arg1 = arg2;
-        args.callback = callback;
-        args.seq = seq;
+        args.arg6 = callback;
+        args.argi6 = callbackSeq;
         return mH.obtainMessage(what, arg1, 0, args);
     }
-    
+
     Message obtainMessageIO(int what, int arg1, Object arg2) {
         return mH.obtainMessage(what, arg1, 0, arg2);
     }
-    
+
     Message obtainMessageOO(int what, Object arg1, Object arg2) {
-        SomeArgs args = new SomeArgs();
+        final SomeArgs args = SomeArgs.obtain();
         args.arg1 = arg1;
         args.arg2 = arg2;
         return mH.obtainMessage(what, 0, 0, args);
diff --git a/core/java/com/android/internal/view/IInputContext.aidl b/core/java/com/android/internal/view/IInputContext.aidl
index 728c557..c227991 100644
--- a/core/java/com/android/internal/view/IInputContext.aidl
+++ b/core/java/com/android/internal/view/IInputContext.aidl
@@ -62,9 +62,7 @@
     void beginBatchEdit();
     
     void endBatchEdit();
-    
-    void reportFullscreenMode(boolean enabled);
-    
+
     void sendKeyEvent(in KeyEvent event);
     
     void clearMetaKeyStates(int states);
diff --git a/core/java/com/android/internal/view/IInputMethod.aidl b/core/java/com/android/internal/view/IInputMethod.aidl
index 6ab1ec7..5b29f4c 100644
--- a/core/java/com/android/internal/view/IInputMethod.aidl
+++ b/core/java/com/android/internal/view/IInputMethod.aidl
@@ -38,9 +38,8 @@
 
     void unbindInput();
 
-    void startInput(in IInputContext inputContext, int missingMethods, in EditorInfo attribute);
-
-    void restartInput(in IInputContext inputContext, int missingMethods, in EditorInfo attribute);
+    void startInput(in IBinder startInputToken, in IInputContext inputContext, int missingMethods,
+            in EditorInfo attribute, boolean restarting);
 
     void createSession(in InputChannel channel, IInputSessionCallback callback);
 
diff --git a/core/java/com/android/internal/view/IInputMethodClient.aidl b/core/java/com/android/internal/view/IInputMethodClient.aidl
index 81056f2..ffa9f75 100644
--- a/core/java/com/android/internal/view/IInputMethodClient.aidl
+++ b/core/java/com/android/internal/view/IInputMethodClient.aidl
@@ -27,6 +27,7 @@
     void onBindMethod(in InputBindResult res);
     // unbindReason corresponds to InputMethodClient.UnbindReason.
     void onUnbindMethod(int sequence, int unbindReason);
-    void setActive(boolean active);
+    void setActive(boolean active, boolean fullscreen);
     void setUserActionNotificationSequenceNumber(int sequenceNumber);
+    void reportFullscreenMode(boolean fullscreen);
 }
diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl
index 9e4b43b..b979807 100644
--- a/core/java/com/android/internal/view/IInputMethodManager.aidl
+++ b/core/java/com/android/internal/view/IInputMethodManager.aidl
@@ -58,8 +58,8 @@
     InputBindResult startInputOrWindowGainedFocus(
             /* @InputMethodClient.StartInputReason */ int startInputReason,
             in IInputMethodClient client, in IBinder windowToken, int controlFlags,
-            int softInputMode, int windowFlags, in EditorInfo attribute,
-            IInputContext inputContext,
+            /* @android.view.WindowManager.LayoutParams.SoftInputModeFlags */ int softInputMode,
+            int windowFlags, in EditorInfo attribute, IInputContext inputContext,
             /* @InputConnectionInspector.MissingMethodFlags */ int missingMethodFlags);
 
     void showInputMethodPickerFromClient(in IInputMethodClient client,
@@ -70,7 +70,8 @@
     void hideMySoftInput(in IBinder token, int flags);
     void showMySoftInput(in IBinder token, int flags);
     void updateStatusIcon(in IBinder token, String packageName, int iconId);
-    void setImeWindowStatus(in IBinder token, int vis, int backDisposition);
+    void setImeWindowStatus(in IBinder token, in IBinder startInputToken, int vis,
+            int backDisposition);
     void registerSuggestionSpansForNotification(in SuggestionSpan[] spans);
     boolean notifySuggestionPicked(in SuggestionSpan span, String originalString, int index);
     InputMethodSubtype getCurrentInputMethodSubtype();
@@ -86,5 +87,7 @@
     IInputContentUriToken createInputContentUriToken(in IBinder token, in Uri contentUri,
             in String packageName);
 
+    void reportFullscreenMode(in IBinder token, boolean fullscreen);
+
     oneway void notifyUserAction(int sequenceNumber);
 }
diff --git a/core/java/com/android/internal/view/InputConnectionWrapper.java b/core/java/com/android/internal/view/InputConnectionWrapper.java
index 9a09dcc..cc0ef75 100644
--- a/core/java/com/android/internal/view/InputConnectionWrapper.java
+++ b/core/java/com/android/internal/view/InputConnectionWrapper.java
@@ -467,12 +467,8 @@
     }
 
     public boolean reportFullscreenMode(boolean enabled) {
-        try {
-            mIInputContext.reportFullscreenMode(enabled);
-            return true;
-        } catch (RemoteException e) {
-            return false;
-        }
+        // Nothing should happen when called from input method.
+        return false;
     }
 
     public boolean performPrivateCommand(String action, Bundle data) {
diff --git a/core/java/com/android/internal/view/InputMethodClient.java b/core/java/com/android/internal/view/InputMethodClient.java
index 802ce3e..bbd33a2 100644
--- a/core/java/com/android/internal/view/InputMethodClient.java
+++ b/core/java/com/android/internal/view/InputMethodClient.java
@@ -17,6 +17,8 @@
 package com.android.internal.view;
 
 import android.annotation.IntDef;
+import android.view.WindowManager.LayoutParams;
+import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
 
 import java.lang.annotation.Retention;
 
@@ -75,12 +77,12 @@
     public static final int UNBIND_REASON_DISCONNECT_IME = 3;
     public static final int UNBIND_REASON_NO_IME = 4;
     public static final int UNBIND_REASON_SWITCH_IME_FAILED = 5;
-    public static final int UNBIND_REASON_RESET_IME = 6;
+    public static final int UNBIND_REASON_SWITCH_USER = 6;
 
     @Retention(SOURCE)
     @IntDef({UNBIND_REASON_UNSPECIFIED, UNBIND_REASON_SWITCH_CLIENT, UNBIND_REASON_SWITCH_IME,
             UNBIND_REASON_DISCONNECT_IME, UNBIND_REASON_NO_IME, UNBIND_REASON_SWITCH_IME_FAILED,
-            UNBIND_REASON_RESET_IME})
+            UNBIND_REASON_SWITCH_USER})
     public @interface UnbindReason {}
 
     public static String getUnbindReason(@UnbindReason final int reason) {
@@ -97,10 +99,71 @@
                 return "NO_IME";
             case UNBIND_REASON_SWITCH_IME_FAILED:
                 return "SWITCH_IME_FAILED";
-            case UNBIND_REASON_RESET_IME:
-                return "RESET_IME";
+            case UNBIND_REASON_SWITCH_USER:
+                return "SWITCH_USER";
             default:
                 return "Unknown=" + reason;
         }
     }
+
+    public static String softInputModeToString(@SoftInputModeFlags final int softInputMode) {
+        final StringBuilder sb = new StringBuilder();
+        final int state = softInputMode & LayoutParams.SOFT_INPUT_MASK_STATE;
+        final int adjust = softInputMode & LayoutParams.SOFT_INPUT_MASK_ADJUST;
+        final boolean isForwardNav =
+                (softInputMode & LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION) != 0;
+
+        switch (state) {
+            case LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED:
+                sb.append("STATE_UNSPECIFIED");
+                break;
+            case LayoutParams.SOFT_INPUT_STATE_UNCHANGED:
+                sb.append("STATE_UNCHANGED");
+                break;
+            case LayoutParams.SOFT_INPUT_STATE_HIDDEN:
+                sb.append("STATE_HIDDEN");
+                break;
+            case LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN:
+                sb.append("STATE_ALWAYS_HIDDEN");
+                break;
+            case LayoutParams.SOFT_INPUT_STATE_VISIBLE:
+                sb.append("STATE_VISIBLE");
+                break;
+            case LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE:
+                sb.append("STATE_ALWAYS_VISIBLE");
+                break;
+            default:
+                sb.append("STATE_UNKNOWN(");
+                sb.append(state);
+                sb.append(")");
+                break;
+        }
+
+        switch (adjust) {
+            case LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED:
+                sb.append("|ADJUST_UNSPECIFIED");
+                break;
+            case LayoutParams.SOFT_INPUT_ADJUST_RESIZE:
+                sb.append("|ADJUST_RESIZE");
+                break;
+            case LayoutParams.SOFT_INPUT_ADJUST_PAN:
+                sb.append("|ADJUST_PAN");
+                break;
+            case LayoutParams.SOFT_INPUT_ADJUST_NOTHING:
+                sb.append("|ADJUST_NOTHING");
+                break;
+            default:
+                sb.append("|ADJUST_UNKNOWN(");
+                sb.append(adjust);
+                sb.append(")");
+                break;
+        }
+
+        if (isForwardNav) {
+            // This is a special bit that is set by the system only during the window navigation.
+            sb.append("|IS_FORWARD_NAVIGATION");
+        }
+
+        return sb.toString();
+    }
 }
diff --git a/core/java/com/android/internal/view/menu/ActionMenu.java b/core/java/com/android/internal/view/menu/ActionMenu.java
index 3d44ebc..c657b87 100644
--- a/core/java/com/android/internal/view/menu/ActionMenu.java
+++ b/core/java/com/android/internal/view/menu/ActionMenu.java
@@ -38,7 +38,7 @@
     private boolean mIsQwerty;
     
     private ArrayList<ActionMenuItem> mItems;
-    
+
     public ActionMenu(Context context) {
         mContext = context;
         mItems = new ArrayList<ActionMenuItem>();
@@ -157,18 +157,22 @@
         
         return false;
     }
-    
+
     private ActionMenuItem findItemWithShortcut(int keyCode, KeyEvent event) {
         // TODO Make this smarter.
         final boolean qwerty = mIsQwerty;
         final ArrayList<ActionMenuItem> items = mItems;
         final int itemCount = items.size();
-        
+        final int modifierState = event.getModifiers();
         for (int i = 0; i < itemCount; i++) {
             ActionMenuItem item = items.get(i);
             final char shortcut = qwerty ? item.getAlphabeticShortcut() :
                     item.getNumericShortcut();
-            if (keyCode == shortcut) {
+            final int shortcutModifiers =
+                    qwerty ? item.getAlphabeticModifiers() : item.getNumericModifiers();
+            final boolean is_modifiers_exact_match = (modifierState & SUPPORTED_MODIFIERS_MASK)
+                    == (shortcutModifiers & SUPPORTED_MODIFIERS_MASK);
+            if ((keyCode == shortcut) && is_modifiers_exact_match) {
                 return item;
             }
         }
diff --git a/core/java/com/android/internal/view/menu/ActionMenuItem.java b/core/java/com/android/internal/view/menu/ActionMenuItem.java
index 1fce0b7..ace0cce 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuItem.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuItem.java
@@ -21,6 +21,7 @@
 import android.graphics.drawable.Drawable;
 import android.view.ActionProvider;
 import android.view.ContextMenu.ContextMenuInfo;
+import android.view.KeyEvent;
 import android.view.MenuItem;
 import android.view.SubMenu;
 import android.view.View;
@@ -33,12 +34,14 @@
     private final int mGroup;
     private final int mCategoryOrder;
     private final int mOrdering;
-    
+
     private CharSequence mTitle;
     private CharSequence mTitleCondensed;
     private Intent mIntent;
     private char mShortcutNumericChar;
+    private int mShortcutNumericModifiers = KeyEvent.META_CTRL_ON;
     private char mShortcutAlphabeticChar;
+    private int mShortcutAlphabeticModifiers = KeyEvent.META_CTRL_ON;
 
     private Drawable mIconDrawable;
     private int mIconResId = NO_ICON;
@@ -73,6 +76,10 @@
         return mShortcutAlphabeticChar;
     }
 
+    public int getAlphabeticModifiers() {
+        return mShortcutAlphabeticModifiers;
+    }
+
     public int getGroupId() {
         return mGroup;
     }
@@ -97,6 +104,10 @@
         return mShortcutNumericChar;
     }
 
+    public int getNumericModifiers() {
+        return mShortcutNumericModifiers;
+    }
+
     public int getOrder() {
         return mOrdering;
     }
@@ -138,6 +149,12 @@
         return this;
     }
 
+    public MenuItem setAlphabeticShortcut(char alphachar, int alphaModifiers) {
+        mShortcutAlphabeticChar = alphachar;
+        mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(alphaModifiers);
+        return this;
+    }
+
     public MenuItem setCheckable(boolean checkable) {
         mFlags = (mFlags & ~CHECKABLE) | (checkable ? CHECKABLE : 0);
         return this;
@@ -180,6 +197,12 @@
         return this;
     }
 
+    public MenuItem setNumericShortcut(char numericChar, int numericModifiers) {
+        mShortcutNumericChar = numericChar;
+        mShortcutNumericModifiers = KeyEvent.normalizeMetaState(numericModifiers);
+        return this;
+    }
+
     public MenuItem setOnMenuItemClickListener(OnMenuItemClickListener menuItemClickListener) {
         mClickListener = menuItemClickListener;
         return this;
@@ -191,6 +214,15 @@
         return this;
     }
 
+    public MenuItem setShortcut(char numericChar, char alphaChar, int numericModifiers,
+            int alphaModifiers) {
+        mShortcutNumericChar = numericChar;
+        mShortcutNumericModifiers = KeyEvent.normalizeMetaState(numericModifiers);
+        mShortcutAlphabeticChar = alphaChar;
+        mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(alphaModifiers);
+        return this;
+    }
+
     public MenuItem setTitle(CharSequence title) {
         mTitle = title;
         return this;
diff --git a/core/java/com/android/internal/view/menu/MenuBuilder.java b/core/java/com/android/internal/view/menu/MenuBuilder.java
index df57639..7eb0f4d 100644
--- a/core/java/com/android/internal/view/menu/MenuBuilder.java
+++ b/core/java/com/android/internal/view/menu/MenuBuilder.java
@@ -805,7 +805,7 @@
      */
     void findItemsWithShortcutForKey(List<MenuItemImpl> items, int keyCode, KeyEvent event) {
         final boolean qwerty = isQwertyMode();
-        final int metaState = event.getMetaState();
+        final int modifierState = event.getModifiers();
         final KeyCharacterMap.KeyData possibleChars = new KeyCharacterMap.KeyData();
         // Get the chars associated with the keyCode (i.e using any chording combo)
         final boolean isKeyCodeMapped = event.getKeyData(possibleChars);
@@ -821,9 +821,13 @@
             if (item.hasSubMenu()) {
                 ((MenuBuilder)item.getSubMenu()).findItemsWithShortcutForKey(items, keyCode, event);
             }
-            final char shortcutChar = qwerty ? item.getAlphabeticShortcut() : item.getNumericShortcut();
-            if (((metaState & (KeyEvent.META_SHIFT_ON | KeyEvent.META_SYM_ON)) == 0) &&
-                  (shortcutChar != 0) &&
+            final char shortcutChar =
+                    qwerty ? item.getAlphabeticShortcut() : item.getNumericShortcut();
+            final int shortcutModifiers =
+                    qwerty ? item.getAlphabeticModifiers() : item.getNumericModifiers();
+            final boolean isModifiersExactMatch = (modifierState & SUPPORTED_MODIFIERS_MASK)
+                    == (shortcutModifiers & SUPPORTED_MODIFIERS_MASK);
+            if (isModifiersExactMatch && (shortcutChar != 0) &&
                   (shortcutChar == possibleChars.meta[0]
                       || shortcutChar == possibleChars.meta[2]
                       || (qwerty && shortcutChar == '\b' &&
diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java
index 342943f..4c3118d 100644
--- a/core/java/com/android/internal/view/menu/MenuItemImpl.java
+++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java
@@ -25,6 +25,7 @@
 import android.util.Log;
 import android.view.ActionProvider;
 import android.view.ContextMenu.ContextMenuInfo;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.SubMenu;
@@ -50,7 +51,9 @@
     private CharSequence mTitleCondensed;
     private Intent mIntent;
     private char mShortcutNumericChar;
+    private int mShortcutNumericModifiers = KeyEvent.META_CTRL_ON;
     private char mShortcutAlphabeticChar;
+    private int mShortcutAlphabeticModifiers = KeyEvent.META_CTRL_ON;
 
     /** The icon's drawable which is only created as needed */
     private Drawable mIconDrawable;
@@ -227,18 +230,36 @@
         mItemCallback = callback;
         return this;
     }
-    
+
     public char getAlphabeticShortcut() {
         return mShortcutAlphabeticChar;
     }
 
+    public int getAlphabeticModifiers() {
+        return mShortcutAlphabeticModifiers;
+    }
+
     public MenuItem setAlphabeticShortcut(char alphaChar) {
         if (mShortcutAlphabeticChar == alphaChar) return this;
-        
+
         mShortcutAlphabeticChar = Character.toLowerCase(alphaChar);
-        
+
         mMenu.onItemsChanged(false);
-        
+
+        return this;
+    }
+
+    public MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers){
+        if (mShortcutAlphabeticChar == alphaChar &&
+                mShortcutAlphabeticModifiers == alphaModifiers) {
+            return this;
+        }
+
+        mShortcutAlphabeticChar = alphaChar;
+        mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(alphaModifiers);
+
+        mMenu.onItemsChanged(false);
+
         return this;
     }
 
@@ -246,6 +267,10 @@
         return mShortcutNumericChar;
     }
 
+    public int getNumericModifiers() {
+        return mShortcutNumericModifiers;
+    }
+
     public MenuItem setNumericShortcut(char numericChar) {
         if (mShortcutNumericChar == numericChar) return this;
         
@@ -256,6 +281,19 @@
         return this;
     }
 
+    public MenuItem setNumericShortcut(char numericChar, int numericModifiers){
+        if (mShortcutNumericChar == numericChar && mShortcutNumericModifiers == numericModifiers) {
+            return this;
+        }
+
+        mShortcutNumericChar = numericChar;
+        mShortcutNumericModifiers = KeyEvent.normalizeMetaState(numericModifiers);
+
+        mMenu.onItemsChanged(false);
+
+        return this;
+    }
+
     public MenuItem setShortcut(char numericChar, char alphaChar) {
         mShortcutNumericChar = numericChar;
         mShortcutAlphabeticChar = Character.toLowerCase(alphaChar);
@@ -265,6 +303,18 @@
         return this;
     }
 
+    public MenuItem setShortcut(char numericChar, int numericModifiers, char alphaChar,
+            int alphaModifiers) {
+        mShortcutNumericChar = numericChar;
+        mShortcutNumericModifiers = KeyEvent.normalizeMetaState(numericModifiers);
+        mShortcutAlphabeticChar = alphaChar;
+        mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(alphaModifiers);
+
+        mMenu.onItemsChanged(false);
+
+        return this;
+    }
+
     /**
      * @return The active shortcut (based on QWERTY-mode of the menu).
      */
diff --git a/core/java/com/android/internal/widget/ImageFloatingTextView.java b/core/java/com/android/internal/widget/ImageFloatingTextView.java
index a5d2bf3..80207ee 100644
--- a/core/java/com/android/internal/widget/ImageFloatingTextView.java
+++ b/core/java/com/android/internal/widget/ImageFloatingTextView.java
@@ -42,6 +42,10 @@
 
     /** Resolved layout direction */
     private int mResolvedDirection = LAYOUT_DIRECTION_UNDEFINED;
+    private int mMaxLinesForHeight = -1;
+    private boolean mFirstMeasure = true;
+    private int mLayoutMaxLines = -1;
+    private boolean mBlockLayouts;
 
     public ImageFloatingTextView(Context context) {
         this(context, null);
@@ -72,8 +76,15 @@
                 .setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier())
                 .setIncludePad(getIncludeFontPadding())
                 .setBreakStrategy(Layout.BREAK_STRATEGY_HIGH_QUALITY)
-                .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL)
-                .setMaxLines(getMaxLines() >= 0 ? getMaxLines() : Integer.MAX_VALUE);
+                .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL);
+        int maxLines;
+        if (mMaxLinesForHeight > 0) {
+            maxLines = mMaxLinesForHeight;
+        } else {
+            maxLines = getMaxLines() >= 0 ? getMaxLines() : Integer.MAX_VALUE;
+        }
+        builder.setMaxLines(maxLines);
+        mLayoutMaxLines = maxLines;
         if (shouldEllipsize) {
             builder.setEllipsize(effectiveEllipsize)
                     .setEllipsizedWidth(ellipsisWidth);
@@ -99,6 +110,34 @@
     }
 
     @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        int height = MeasureSpec.getSize(heightMeasureSpec);
+        // Lets calculate how many lines the given measurement allows us.
+        int availableHeight = height - mPaddingTop - mPaddingBottom;
+        int maxLines = availableHeight / getLineHeight();
+        if (getMaxLines() > 0) {
+            maxLines = Math.min(getMaxLines(), maxLines);
+        }
+        if (maxLines != mMaxLinesForHeight) {
+            mMaxLinesForHeight = maxLines;
+            if (getLayout() != null && mMaxLinesForHeight != mLayoutMaxLines) {
+                // Invalidate layout.
+                mBlockLayouts = true;
+                setHint(getHint());
+                mBlockLayouts = false;
+            }
+        }
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+    }
+
+    @Override
+    public void requestLayout() {
+        if (!mBlockLayouts) {
+            super.requestLayout();
+        }
+    }
+
+    @Override
     public void onRtlPropertiesChanged(int layoutDirection) {
         super.onRtlPropertiesChanged(layoutDirection);
 
diff --git a/core/java/com/android/internal/widget/MessagingLinearLayout.java b/core/java/com/android/internal/widget/MessagingLinearLayout.java
index cb123a1..b259ad1 100644
--- a/core/java/com/android/internal/widget/MessagingLinearLayout.java
+++ b/core/java/com/android/internal/widget/MessagingLinearLayout.java
@@ -36,6 +36,7 @@
 @RemoteViews.RemoteView
 public class MessagingLinearLayout extends ViewGroup {
 
+    private static final int NOT_MEASURED_BEFORE = -1;
     /**
      * Spacing to be applied between views.
      */
@@ -52,6 +53,11 @@
      * Id of the child that's also visible in the contracted layout.
      */
     private int mContractedChildId;
+    /**
+     * The last measured with in a layout pass if it was measured before or
+     * {@link #NOT_MEASURED_BEFORE} if this is the first layout pass.
+     */
+    private int mLastMeasuredWidth = NOT_MEASURED_BEFORE;
 
     public MessagingLinearLayout(Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
@@ -64,20 +70,12 @@
         for (int i = 0; i < N; i++) {
             int attr = a.getIndex(i);
             switch (attr) {
-                case R.styleable.MessagingLinearLayout_maxHeight:
-                    mMaxHeight = a.getDimensionPixelSize(i, 0);
-                    break;
                 case R.styleable.MessagingLinearLayout_spacing:
                     mSpacing = a.getDimensionPixelSize(i, 0);
                     break;
             }
         }
 
-        if (mMaxHeight <= 0) {
-            throw new IllegalStateException(
-                    "MessagingLinearLayout: Must specify positive maxHeight");
-        }
-
         a.recycle();
     }
 
@@ -86,62 +84,63 @@
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         // This is essentially a bottom-up linear layout that only adds children that fit entirely
         // up to a maximum height.
-
+        int targetHeight = MeasureSpec.getSize(heightMeasureSpec);
         switch (MeasureSpec.getMode(heightMeasureSpec)) {
-            case MeasureSpec.AT_MOST:
-                heightMeasureSpec = MeasureSpec.makeMeasureSpec(
-                        Math.min(mMaxHeight, MeasureSpec.getSize(heightMeasureSpec)),
-                        MeasureSpec.AT_MOST);
-                break;
             case MeasureSpec.UNSPECIFIED:
-                heightMeasureSpec = MeasureSpec.makeMeasureSpec(
-                        mMaxHeight,
-                        MeasureSpec.AT_MOST);
-                break;
-            case MeasureSpec.EXACTLY:
+                targetHeight = Integer.MAX_VALUE;
                 break;
         }
-        final int targetHeight = MeasureSpec.getSize(heightMeasureSpec);
+        int widthSize = MeasureSpec.getSize(widthMeasureSpec);
+        boolean recalculateVisibility = mLastMeasuredWidth == NOT_MEASURED_BEFORE
+                || getMeasuredHeight() != targetHeight
+                || mLastMeasuredWidth != widthSize;
+
         final int count = getChildCount();
-
-        for (int i = 0; i < count; ++i) {
-            final View child = getChildAt(i);
-            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
-            lp.hide = true;
-        }
-
-        int totalHeight = mPaddingTop + mPaddingBottom;
-        boolean first = true;
-
-        // Starting from the bottom: we measure every view as if it were the only one. If it still
-        // fits, we take it, otherwise we stop there.
-        for (int i = count - 1; i >= 0 && totalHeight < targetHeight; i--) {
-            if (getChildAt(i).getVisibility() == GONE) {
-                continue;
-            }
-            final View child = getChildAt(i);
-            LayoutParams lp = (LayoutParams) getChildAt(i).getLayoutParams();
-
-            if (child instanceof ImageFloatingTextView) {
-                // Pretend we need the image padding for all views, we don't know which
-                // one will end up needing to do this (might end up not using all the space,
-                // but calculating this exactly would be more expensive).
-                ((ImageFloatingTextView) child).setNumIndentLines(
-                        mIndentLines == 2 ? 3 : mIndentLines);
+        if (recalculateVisibility) {
+            // We only need to recalculate the view visibilities if the view wasn't measured already
+            // in this pass, otherwise we may drop messages here already since we are measured
+            // exactly with what we returned before, which was optimized already with the
+            // line-indents.
+            for (int i = 0; i < count; ++i) {
+                final View child = getChildAt(i);
+                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+                lp.hide = true;
             }
 
-            measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0);
+            int totalHeight = mPaddingTop + mPaddingBottom;
+            boolean first = true;
 
-            final int childHeight = child.getMeasuredHeight();
-            int newHeight = Math.max(totalHeight, totalHeight + childHeight + lp.topMargin +
-                    lp.bottomMargin + (first ? 0 : mSpacing));
-            first = false;
+            // Starting from the bottom: we measure every view as if it were the only one. If it still
 
-            if (newHeight <= targetHeight) {
-                totalHeight = newHeight;
-                lp.hide = false;
-            } else {
-                break;
+            // fits, we take it, otherwise we stop there.
+            for (int i = count - 1; i >= 0 && totalHeight < targetHeight; i--) {
+                if (getChildAt(i).getVisibility() == GONE) {
+                    continue;
+                }
+                final View child = getChildAt(i);
+                LayoutParams lp = (LayoutParams) getChildAt(i).getLayoutParams();
+
+                if (child instanceof ImageFloatingTextView) {
+                    // Pretend we need the image padding for all views, we don't know which
+                    // one will end up needing to do this (might end up not using all the space,
+                    // but calculating this exactly would be more expensive).
+                    ((ImageFloatingTextView) child).setNumIndentLines(
+                            mIndentLines == 2 ? 3 : mIndentLines);
+                }
+
+                measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0);
+
+                final int childHeight = child.getMeasuredHeight();
+                int newHeight = Math.max(totalHeight, totalHeight + childHeight + lp.topMargin +
+                        lp.bottomMargin + (first ? 0 : mSpacing));
+                first = false;
+
+                if (newHeight <= targetHeight) {
+                    totalHeight = newHeight;
+                    lp.hide = false;
+                } else {
+                    break;
+                }
             }
         }
 
@@ -149,8 +148,8 @@
         int measuredWidth = mPaddingLeft + mPaddingRight;
         int imageLines = mIndentLines;
         // Need to redo the height because it may change due to changing indents.
-        totalHeight = mPaddingTop + mPaddingBottom;
-        first = true;
+        int totalHeight = mPaddingTop + mPaddingBottom;
+        boolean first = true;
         for (int i = 0; i < count; i++) {
             final View child = getChildAt(i);
             final LayoutParams lp = (LayoutParams) child.getLayoutParams();
@@ -168,7 +167,7 @@
                     imageLines = 3;
                 }
                 boolean changed = textChild.setNumIndentLines(Math.max(0, imageLines));
-                if (changed) {
+                if (changed || !recalculateVisibility) {
                     measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0);
                 }
                 imageLines -= textChild.getLineCount();
@@ -188,6 +187,7 @@
                         widthMeasureSpec),
                 resolveSize(Math.max(getSuggestedMinimumHeight(), totalHeight),
                         heightMeasureSpec));
+        mLastMeasuredWidth = widthSize;
     }
 
     @Override
@@ -236,6 +236,7 @@
 
             first = false;
         }
+        mLastMeasuredWidth = NOT_MEASURED_BEFORE;
     }
 
     @Override
diff --git a/core/java/com/android/internal/widget/SwipeDismissLayout.java b/core/java/com/android/internal/widget/SwipeDismissLayout.java
index 2a5957c..261fa43 100644
--- a/core/java/com/android/internal/widget/SwipeDismissLayout.java
+++ b/core/java/com/android/internal/widget/SwipeDismissLayout.java
@@ -43,7 +43,8 @@
 public class SwipeDismissLayout extends FrameLayout {
     private static final String TAG = "SwipeDismissLayout";
 
-    private static final float DISMISS_MIN_DRAG_WIDTH_RATIO = .33f;
+    private static final float MAX_DIST_THRESHOLD = .33f;
+    private static final float MIN_DIST_THRESHOLD = .1f;
 
     public interface OnDismissedListener {
         void onDismissed(SwipeDismissLayout layout);
@@ -73,6 +74,7 @@
     private int mActiveTouchId;
     private float mDownX;
     private float mDownY;
+    private float mLastX;
     private boolean mSwiping;
     private boolean mDismissed;
     private boolean mDiscardIntercept;
@@ -105,7 +107,6 @@
     };
     private IntentFilter mScreenOffFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
 
-    private float mLastX;
 
     private boolean mDismissable = true;
 
@@ -174,7 +175,7 @@
                 mDownX = ev.getRawX();
                 mDownY = ev.getRawY();
                 mActiveTouchId = ev.getPointerId(0);
-                mVelocityTracker = VelocityTracker.obtain();
+                mVelocityTracker = VelocityTracker.obtain("int1");
                 mVelocityTracker.addMovement(ev);
                 break;
 
@@ -238,7 +239,10 @@
                 updateDismiss(ev);
                 if (mDismissed) {
                     mDismissAnimator.animateDismissal(ev.getRawX() - mDownX);
-                } else if (mSwiping) {
+                } else if (mSwiping
+                        // Only trigger animation if we had a MOVE event that would shift the
+                        // underlying view, otherwise the animation would be janky.
+                        && mLastX != Integer.MIN_VALUE) {
                     mDismissAnimator.animateRecovery(ev.getRawX() - mDownX);
                 }
                 resetMembers();
@@ -298,6 +302,7 @@
         mVelocityTracker = null;
         mTranslationX = 0;
         mDownX = 0;
+        mLastX = Integer.MIN_VALUE;
         mDownY = 0;
         mSwiping = false;
         mDismissed = false;
@@ -329,19 +334,32 @@
 
     private void updateDismiss(MotionEvent ev) {
         float deltaX = ev.getRawX() - mDownX;
-        mVelocityTracker.addMovement(ev);
+        // Don't add the motion event as an UP event would clear the velocity tracker
         mVelocityTracker.computeCurrentVelocity(1000);
+        float xVelocity = mVelocityTracker.getXVelocity();
+        if (mLastX == Integer.MIN_VALUE) {
+            // If there's no changes to mLastX, we have only one point of data, and therefore no
+            // velocity. Estimate velocity from just the up and down event in that case.
+            xVelocity = deltaX / ((ev.getEventTime() - ev.getDownTime()) / 1000);
+        }
         if (!mDismissed) {
-            if ((deltaX > (getWidth() * DISMISS_MIN_DRAG_WIDTH_RATIO) &&
-                    ev.getRawX() >= mLastX)
-                    || mVelocityTracker.getXVelocity() >= mMinFlingVelocity) {
+            // Adjust the distance threshold linearly between the min and max threshold based on the
+            // x-velocity scaled with the the fling threshold speed
+            float distanceThreshold = getWidth() * Math.max(
+                    Math.min((MIN_DIST_THRESHOLD - MAX_DIST_THRESHOLD)
+                            * xVelocity / mMinFlingVelocity // scale x-velocity with fling velocity
+                            + MAX_DIST_THRESHOLD, // offset to start at max threshold
+                            MAX_DIST_THRESHOLD), // cap at max threshold
+                    MIN_DIST_THRESHOLD); // bottom out at min threshold
+            if ((deltaX > distanceThreshold && ev.getRawX() >= mLastX)
+                    || xVelocity >= mMinFlingVelocity) {
                 mDismissed = true;
             }
         }
         // Check if the user tried to undo this.
         if (mDismissed && mSwiping) {
             // Check if the user's finger is actually flinging back to left
-            if (mVelocityTracker.getXVelocity() < -mMinFlingVelocity) {
+            if (xVelocity < -mMinFlingVelocity) {
                 mDismissed = false;
             }
         }
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index db3ea8c..0c07192 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -203,6 +203,8 @@
     $(call include-path-for, libhardware)/hardware \
     $(call include-path-for, libhardware_legacy)/hardware_legacy \
     $(TOP)/frameworks/base/media/jni \
+    $(TOP)/frameworks/rs/cpp \
+    $(TOP)/frameworks/rs \
     $(TOP)/system/core/base/include \
     $(TOP)/system/core/include \
     $(TOP)/system/core/libappfuse/include \
@@ -281,6 +283,7 @@
     libhidlbase \
     libhidltransport \
     libhwbinder \
+    libvintf \
 
 LOCAL_SHARED_LIBRARIES += \
     libhwui \
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 407e69c..e237ce9 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -216,7 +216,7 @@
     gCurRuntime->onStarted();
 }
 
-static void com_android_internal_os_RuntimeInit_nativeZygoteInit(JNIEnv* env, jobject clazz)
+static void com_android_internal_os_ZygoteInit_nativeZygoteInit(JNIEnv* env, jobject clazz)
 {
     gCurRuntime->onZygoteInit();
 }
@@ -230,19 +230,27 @@
 /*
  * JNI registration.
  */
-static const JNINativeMethod gMethods[] = {
-    { "nativeFinishInit", "()V",
-        (void*) com_android_internal_os_RuntimeInit_nativeFinishInit },
-    { "nativeZygoteInit", "()V",
-        (void*) com_android_internal_os_RuntimeInit_nativeZygoteInit },
-    { "nativeSetExitWithoutCleanup", "(Z)V",
-        (void*) com_android_internal_os_RuntimeInit_nativeSetExitWithoutCleanup },
-};
 
 int register_com_android_internal_os_RuntimeInit(JNIEnv* env)
 {
+    const JNINativeMethod methods[] = {
+        { "nativeFinishInit", "()V",
+            (void*) com_android_internal_os_RuntimeInit_nativeFinishInit },
+        { "nativeSetExitWithoutCleanup", "(Z)V",
+            (void*) com_android_internal_os_RuntimeInit_nativeSetExitWithoutCleanup },
+    };
     return jniRegisterNativeMethods(env, "com/android/internal/os/RuntimeInit",
-        gMethods, NELEM(gMethods));
+        methods, NELEM(methods));
+}
+
+int register_com_android_internal_os_ZygoteInit(JNIEnv* env)
+{
+    const JNINativeMethod methods[] = {
+        { "nativeZygoteInit", "()V",
+            (void*) com_android_internal_os_ZygoteInit_nativeZygoteInit },
+    };
+    return jniRegisterNativeMethods(env, "com/android/internal/os/ZygoteInit",
+        methods, NELEM(methods));
 }
 
 // ----------------------------------------------------------------------
@@ -1271,6 +1279,7 @@
 
 static const RegJNIRec gRegJNI[] = {
     REG_JNI(register_com_android_internal_os_RuntimeInit),
+    REG_JNI(register_com_android_internal_os_ZygoteInit),
     REG_JNI(register_android_os_SystemClock),
     REG_JNI(register_android_util_EventLog),
     REG_JNI(register_android_util_Log),
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 2bde991..3ca455d 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -876,9 +876,9 @@
 
     sk_sp<SkColorSpace> colorSpace;
     if (kRGBA_F16_SkColorType == colorType) {
-        colorSpace = SkColorSpace::MakeNamed(SkColorSpace::kSRGBLinear_Named);
+        colorSpace = SkColorSpace::MakeSRGBLinear();
     } else {
-        colorSpace = isSRGB ? SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named) : nullptr;
+        colorSpace = isSRGB ? SkColorSpace::MakeSRGB() : nullptr;
     }
 
     if (!bitmap->setInfo(SkImageInfo::Make(width, height, colorType, alphaType, colorSpace),
@@ -997,7 +997,7 @@
     auto bitmapWrapper = reinterpret_cast<BitmapWrapper*>(bitmapHandle);
     bitmapWrapper->getSkBitmap(&bitmap);
 
-    sk_sp<SkColorSpace> sRGB = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
+    sk_sp<SkColorSpace> sRGB = SkColorSpace::MakeSRGB();
     bool isSRGB = bitmap.colorSpace() == sRGB.get();
 
     p->writeInt32(isMutable);
diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp
index 19d4848..2aa16b2 100644
--- a/core/jni/android/graphics/BitmapFactory.cpp
+++ b/core/jni/android/graphics/BitmapFactory.cpp
@@ -39,6 +39,7 @@
 jfieldID gOptions_widthFieldID;
 jfieldID gOptions_heightFieldID;
 jfieldID gOptions_mimeFieldID;
+jfieldID gOptions_outConfigFieldID;
 jfieldID gOptions_mCancelID;
 jfieldID gOptions_bitmapFieldID;
 
@@ -47,6 +48,9 @@
 jclass gInsetStruct_class;
 jmethodID gInsetStruct_constructorMethodID;
 
+jclass gBitmapConfig_class;
+jmethodID gBitmapConfig_nativeToConfigMethodID;
+
 using namespace android;
 
 jstring encodedFormatToString(JNIEnv* env, SkEncodedImageFormat format) {
@@ -298,6 +302,7 @@
         env->SetIntField(options, gOptions_widthFieldID, -1);
         env->SetIntField(options, gOptions_heightFieldID, -1);
         env->SetObjectField(options, gOptions_mimeFieldID, 0);
+        env->SetObjectField(options, gOptions_outConfigFieldID, 0);
 
         jobject jconfig = env->GetObjectField(options, gOptions_configFieldID);
         prefColorType = GraphicsJNI::getNativeBitmapColorType(env, jconfig);
@@ -352,6 +357,9 @@
         scaledHeight = codec->getInfo().height() / sampleSize;
     }
 
+    // Set the decode colorType
+    SkColorType decodeColorType = codec->computeOutputColorType(prefColorType);
+
     // Set the options and return if the client only wants the size.
     if (options != NULL) {
         jstring mimeType = encodedFormatToString(
@@ -363,6 +371,20 @@
         env->SetIntField(options, gOptions_heightFieldID, scaledHeight);
         env->SetObjectField(options, gOptions_mimeFieldID, mimeType);
 
+        SkColorType outColorType = decodeColorType;
+        // Scaling can affect the output color type
+        if (willScale || scale != 1.0f) {
+            outColorType = colorTypeForScaledOutput(outColorType);
+        }
+
+        jint configID = GraphicsJNI::colorTypeToLegacyBitmapConfig(outColorType);
+        if (isHardware) {
+            configID = GraphicsJNI::kHardware_LegacyBitmapConfig;
+        }
+        jobject config = env->CallStaticObjectMethod(gBitmapConfig_class,
+                gBitmapConfig_nativeToConfigMethodID, configID);
+        env->SetObjectField(options, gOptions_outConfigFieldID, config);
+
         if (onlyDecodeSize) {
             return nullptr;
         }
@@ -409,10 +431,6 @@
         decodeAllocator = &defaultAllocator;
     }
 
-    // Set the decode colorType.  This is necessary because we can't always support
-    // the requested colorType.
-    SkColorType decodeColorType = codec->computeOutputColorType(prefColorType);
-
     // Construct a color table for the decode if necessary
     sk_sp<SkColorTable> colorTable(nullptr);
     SkPMColor* colorPtr = nullptr;
@@ -747,6 +765,8 @@
     gOptions_widthFieldID = GetFieldIDOrDie(env, options_class, "outWidth", "I");
     gOptions_heightFieldID = GetFieldIDOrDie(env, options_class, "outHeight", "I");
     gOptions_mimeFieldID = GetFieldIDOrDie(env, options_class, "outMimeType", "Ljava/lang/String;");
+    gOptions_outConfigFieldID = GetFieldIDOrDie(env, options_class, "outConfig",
+             "Landroid/graphics/Bitmap$Config;");
     gOptions_mCancelID = GetFieldIDOrDie(env, options_class, "mCancel", "Z");
 
     jclass bitmap_class = FindClassOrDie(env, "android/graphics/Bitmap");
@@ -758,6 +778,11 @@
     gInsetStruct_constructorMethodID = GetMethodIDOrDie(env, gInsetStruct_class, "<init>",
                                                         "(IIIIIIIIFIF)V");
 
+    gBitmapConfig_class = MakeGlobalRefOrDie(env, FindClassOrDie(env,
+            "android/graphics/Bitmap$Config"));
+    gBitmapConfig_nativeToConfigMethodID = GetStaticMethodIDOrDie(env, gBitmapConfig_class,
+            "nativeToConfig", "(I)Landroid/graphics/Bitmap$Config;");
+
     return android::RegisterMethodsOrDie(env, "android/graphics/BitmapFactory",
                                          gMethods, NELEM(gMethods));
 }
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp
index d5f33cf..5d73101 100644
--- a/core/jni/android/graphics/Graphics.cpp
+++ b/core/jni/android/graphics/Graphics.cpp
@@ -287,21 +287,7 @@
     env->SetFloatField(obj, gPointF_yFieldID, SkScalarToFloat(r.fY));
 }
 
-// This enum must keep these int values, to match the int values
-// in the java Bitmap.Config enum.
-enum LegacyBitmapConfig {
-    kNo_LegacyBitmapConfig          = 0,
-    kA8_LegacyBitmapConfig          = 1,
-    kIndex8_LegacyBitmapConfig      = 2,
-    kRGB_565_LegacyBitmapConfig     = 3,
-    kARGB_4444_LegacyBitmapConfig   = 4,
-    kARGB_8888_LegacyBitmapConfig   = 5,
-    kRGBA_16F_LegacyBitmapConfig    = 6,
-    kHardware_LegacyBitmapConfig    = 7,
-
-    kLastEnum_LegacyBitmapConfig = kHardware_LegacyBitmapConfig
-};
-
+// See enum values in GraphicsJNI.h
 jint GraphicsJNI::colorTypeToLegacyBitmapConfig(SkColorType colorType) {
     switch (colorType) {
         case kRGBA_F16_SkColorType:
@@ -455,14 +441,14 @@
 
 sk_sp<SkColorSpace> GraphicsJNI::defaultColorSpace() {
 #ifdef ANDROID_ENABLE_LINEAR_BLENDING
-    return SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
+    return SkColorSpace::MakeSRGB();
 #else
     return nullptr;
 #endif
 }
 
 sk_sp<SkColorSpace> GraphicsJNI::linearColorSpace() {
-    return SkColorSpace::MakeNamed(SkColorSpace::kSRGBLinear_Named);
+    return SkColorSpace::MakeSRGBLinear();
 }
 
 sk_sp<SkColorSpace> GraphicsJNI::colorSpaceForType(SkColorType type) {
diff --git a/core/jni/android/graphics/GraphicsJNI.h b/core/jni/android/graphics/GraphicsJNI.h
index e899db5..8a1ef6e 100644
--- a/core/jni/android/graphics/GraphicsJNI.h
+++ b/core/jni/android/graphics/GraphicsJNI.h
@@ -24,6 +24,21 @@
 
 class GraphicsJNI {
 public:
+    // This enum must keep these int values, to match the int values
+    // in the java Bitmap.Config enum.
+    enum LegacyBitmapConfig {
+        kNo_LegacyBitmapConfig          = 0,
+        kA8_LegacyBitmapConfig          = 1,
+        kIndex8_LegacyBitmapConfig      = 2,
+        kRGB_565_LegacyBitmapConfig     = 3,
+        kARGB_4444_LegacyBitmapConfig   = 4,
+        kARGB_8888_LegacyBitmapConfig   = 5,
+        kRGBA_16F_LegacyBitmapConfig    = 6,
+        kHardware_LegacyBitmapConfig    = 7,
+
+        kLastEnum_LegacyBitmapConfig = kHardware_LegacyBitmapConfig
+    };
+
     // returns true if an exception is set (and dumps it out to the Log)
     static bool hasException(JNIEnv*);
 
diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp
index d35ffbb..989a557 100644
--- a/core/jni/android_os_HwBinder.cpp
+++ b/core/jni/android_os_HwBinder.cpp
@@ -33,6 +33,7 @@
 #include <hidl/HidlTransportSupport.h>
 #include <hwbinder/ProcessState.h>
 #include <nativehelper/ScopedLocalRef.h>
+#include <vintf/parse_string.h>
 
 #include "core_jni_helpers.h"
 
@@ -127,18 +128,23 @@
         uint32_t flags,
         TransactCallback callback) {
     JNIEnv *env = AndroidRuntime::getJNIEnv();
+    bool isOneway = (flags & TF_ONE_WAY) != 0;
+    ScopedLocalRef<jobject> replyObj(env, nullptr);
+    sp<JHwParcel> replyContext = nullptr;
 
     ScopedLocalRef<jobject> requestObj(env, JHwParcel::NewObject(env));
     JHwParcel::GetNativeContext(env, requestObj.get())->setParcel(
             const_cast<hardware::Parcel *>(&data), false /* assumeOwnership */);
 
-    ScopedLocalRef<jobject> replyObj(env, JHwParcel::NewObject(env));
 
-    sp<JHwParcel> replyContext =
-        JHwParcel::GetNativeContext(env, replyObj.get());
+    if (!isOneway) {
+        replyObj.reset(JHwParcel::NewObject(env));
 
-    replyContext->setParcel(reply, false /* assumeOwnership */);
-    replyContext->setTransactCallback(callback);
+        replyContext = JHwParcel::GetNativeContext(env, replyObj.get());
+
+        replyContext->setParcel(reply, false /* assumeOwnership */);
+        replyContext->setTransactCallback(callback);
+    }
 
     env->CallVoidMethod(
             mObject,
@@ -151,13 +157,15 @@
     if (env->ExceptionCheck()) {
         jthrowable excep = env->ExceptionOccurred();
         env->ExceptionDescribe();
+        env->ExceptionClear();
 
+        // It is illegal to call IsInstanceOf if there is a pending exception.
+        // Attempting to do so results in a JniAbort which crashes the entire process.
         if (env->IsInstanceOf(excep, gErrorClass)) {
             /* It's an error */
             LOG(ERROR) << "Forcefully exiting";
             exit(1);
         } else {
-            env->ExceptionClear();
             LOG(ERROR) << "Uncaught exception!";
         }
 
@@ -166,27 +174,29 @@
 
     status_t err = OK;
 
-    if (!replyContext->wasSent()) {
-        // The implementation never finished the transaction.
-        err = UNKNOWN_ERROR;  // XXX special error code instead?
+    if (!isOneway) {
+        if (!replyContext->wasSent()) {
+            // The implementation never finished the transaction.
+            err = UNKNOWN_ERROR;  // XXX special error code instead?
 
-        reply->setDataPosition(0 /* pos */);
+            reply->setDataPosition(0 /* pos */);
+        }
+
+        // Release all temporary storage now that scatter-gather data
+        // has been consolidated, either by calling the TransactCallback,
+        // if wasSent() == true or clearing the reply parcel (setDataOffset above).
+        replyContext->getStorage()->release(env);
+
+        // We cannot permanently pass ownership of "data" and "reply" over to their
+        // Java object wrappers (we don't own them ourselves).
+        replyContext->setParcel(
+                NULL /* parcel */, false /* assumeOwnership */);
+
     }
 
-    // Release all temporary storage now that scatter-gather data
-    // has been consolidated, either by calling the TransactCallback,
-    // if wasSent() == true or clearing the reply parcel (setDataOffset above).
-    replyContext->getStorage()->release(env);
-
-    // We cannot permanently pass ownership of "data" and "reply" over to their
-    // Java object wrappers (we don't own them ourselves).
-
     JHwParcel::GetNativeContext(env, requestObj.get())->setParcel(
             NULL /* parcel */, false /* assumeOwnership */);
 
-    replyContext->setParcel(
-            NULL /* parcel */, false /* assumeOwnership */);
-
     return err;
 }
 
@@ -293,6 +303,8 @@
         jstring ifaceNameObj,
         jstring serviceNameObj) {
 
+    using ::android::vintf::operator<<;
+
     if (ifaceNameObj == NULL) {
         jniThrowException(env, "java/lang/NullPointerException", NULL);
         return NULL;
@@ -310,27 +322,41 @@
         return NULL;
     }
 
-    const char *ifaceName = env->GetStringUTFChars(ifaceNameObj, NULL);
-    if (ifaceName == NULL) {
+    const char *ifaceNameCStr = env->GetStringUTFChars(ifaceNameObj, NULL);
+    if (ifaceNameCStr == NULL) {
         return NULL; // XXX exception already pending?
     }
-    const char *serviceName = env->GetStringUTFChars(serviceNameObj, NULL);
-    if (serviceName == NULL) {
-        env->ReleaseStringUTFChars(ifaceNameObj, ifaceName);
+    std::string ifaceName(ifaceNameCStr);
+    env->ReleaseStringUTFChars(ifaceNameObj, ifaceNameCStr);
+    ::android::hardware::hidl_string ifaceNameHStr;
+    ifaceNameHStr.setToExternal(ifaceName.c_str(), ifaceName.size());
+
+    const char *serviceNameCStr = env->GetStringUTFChars(serviceNameObj, NULL);
+    if (serviceNameCStr == NULL) {
         return NULL; // XXX exception already pending?
     }
+    std::string serviceName(serviceNameCStr);
+    env->ReleaseStringUTFChars(serviceNameObj, serviceNameCStr);
+    ::android::hardware::hidl_string serviceNameHStr;
+    serviceNameHStr.setToExternal(serviceName.c_str(), serviceName.size());
 
     LOG(INFO) << "Looking for service "
               << ifaceName
               << "/"
               << serviceName;
 
-    Return<sp<hidl::base::V1_0::IBase>> ret = manager->get(ifaceName, serviceName);
+    ::android::vintf::Transport transport =
+            ::android::hardware::getTransport(ifaceName);
+    if (   transport != ::android::vintf::Transport::EMPTY
+        && transport != ::android::vintf::Transport::HWBINDER) {
+        LOG(ERROR) << "service " << ifaceName << " declares transport method "
+                   << transport << " but framework expects "
+                   << ::android::vintf::Transport::HWBINDER;
+        signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */);
+        return NULL;
+    }
 
-    env->ReleaseStringUTFChars(ifaceNameObj, ifaceName);
-    ifaceName = NULL;
-    env->ReleaseStringUTFChars(serviceNameObj, serviceName);
-    serviceName = NULL;
+    Return<sp<hidl::base::V1_0::IBase>> ret = manager->get(ifaceNameHStr, serviceNameHStr);
 
     if (!ret.isOk()) {
         signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */);
diff --git a/core/jni/android_os_seccomp.cpp b/core/jni/android_os_seccomp.cpp
index 3f021ae..45d5061 100644
--- a/core/jni/android_os_seccomp.cpp
+++ b/core/jni/android_os_seccomp.cpp
@@ -148,7 +148,10 @@
     AllowSyscall(f, 128); // __NR_restart_syscall
 
     // b/35034743
-    AllowSyscall(f, 267); // __NR_fstatfs64
+    AllowSyscall(f, 267); // __NR_syncfs
+
+    // b/34763393
+    AllowSyscall(f, 277); // __NR_seccomp
 
     Trap(f);
 
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp
index bc5f847..4a9cd24 100644
--- a/core/jni/android_view_Surface.cpp
+++ b/core/jni/android_view_Surface.cpp
@@ -31,6 +31,7 @@
 #include <binder/Parcel.h>
 
 #include <gui/Surface.h>
+#include <gui/view/Surface.h>
 #include <gui/SurfaceControl.h>
 #include <gui/GLConsumer.h>
 
diff --git a/core/jni/include/android_runtime/android_view_Surface.h b/core/jni/include/android_runtime/android_view_Surface.h
index 1bc8521..07e29cb 100644
--- a/core/jni/include/android_runtime/android_view_Surface.h
+++ b/core/jni/include/android_runtime/android_view_Surface.h
@@ -18,6 +18,7 @@
 #define _ANDROID_VIEW_SURFACE_H
 
 #include <android/native_window.h>
+#include <system/graphics.h>
 
 #include "jni.h"
 
diff --git a/core/proto/android/providers/settings.proto b/core/proto/android/providers/settings.proto
index 7674d7a..ee50c29 100644
--- a/core/proto/android/providers/settings.proto
+++ b/core/proto/android/providers/settings.proto
@@ -328,6 +328,7 @@
     SettingProto enable_cellular_on_boot = 283;
     SettingProto max_notification_enqueue_rate = 284;
     SettingProto cell_on = 285;
+    SettingProto network_recommendations_package = 286;
 }
 
 message SecureSettingsProto {
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 7b800b3..cd02fbb 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1650,6 +1650,12 @@
     <permission android:name="android.permission.CACHE_CONTENT"
         android:protectionLevel="signature" />
 
+    <!-- Allows an application to aggressively allocate disk space.
+         <p>Not for use by third-party applications.
+    -->
+    <permission android:name="android.permission.ALLOCATE_AGGRESSIVE"
+        android:protectionLevel="signature|privileged" />
+
     <!-- ================================== -->
     <!-- Permissions for screenlock         -->
     <!-- ================================== -->
@@ -3252,6 +3258,10 @@
     <permission android:name="android.permission.MODIFY_THEME_OVERLAY"
                 android:protectionLevel="signature" />
 
+    <!-- Allows an instant app to create foreground services. -->
+    <permission android:name="android.permission.INSTANT_APP_FOREGROUND_SERVICE"
+        android:protectionLevel="signature|development|ephemeral|appop" />
+
     <application android:process="system"
                  android:persistent="true"
                  android:hasCode="false"
diff --git a/core/res/res/layout/notification_template_material_big_text.xml b/core/res/res/layout/notification_template_material_big_text.xml
index f4f783e..1aca99f 100644
--- a/core/res/res/layout/notification_template_material_big_text.xml
+++ b/core/res/res/layout/notification_template_material_big_text.xml
@@ -48,12 +48,11 @@
             <include layout="@layout/notification_template_progress" />
             <com.android.internal.widget.ImageFloatingTextView android:id="@+id/big_text"
                 android:layout_width="match_parent"
-                android:layout_height="0dp"
+                android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/notification_text_margin_top"
                 android:paddingBottom="@dimen/notification_content_margin_bottom"
                 android:textAppearance="@style/TextAppearance.Material.Notification"
                 android:singleLine="false"
-                android:layout_weight="1"
                 android:gravity="top"
                 android:visibility="gone"
                 />
diff --git a/core/res/res/layout/notification_template_material_messaging.xml b/core/res/res/layout/notification_template_material_messaging.xml
index 07b1100..b910211 100644
--- a/core/res/res/layout/notification_template_material_messaging.xml
+++ b/core/res/res/layout/notification_template_material_messaging.xml
@@ -50,8 +50,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:paddingBottom="@dimen/notification_content_margin_bottom"
-                android:spacing="@dimen/notification_messaging_spacing"
-                android:maxHeight="165dp">
+                android:spacing="@dimen/notification_messaging_spacing" >
                 <com.android.internal.widget.ImageFloatingTextView android:id="@+id/inbox_text0"
                     style="@style/Widget.Material.Notification.MessagingText"
                     />
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 46d0745..1022b13 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kaarte en navigasie"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktiwiteit"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Toestelberging"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-ontfouting"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"uur"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Stel tyd"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Voer \'n geldige tyd in"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Tik tyd in"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Skakel oor na teksmodus vir die tydinvoer."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Skakel oor na horlosiemodus vir die tydinvoer."</string>
 </resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 45206873..fd75b35 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"ካርታዎች እና ዳሰሳ"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ውጤታማነት"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"የመሣሪያ ማከማቻ"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"የዩኤስቢ ማረሚያ"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ሰዓት"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"ደቂቃ"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"ጊዜ አቀናብር"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"የሚሰራ ሰዓት ያስገቡ"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"ሰዓት ይተይቡ"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"ለጊዜ ግቤቱ ወደ የጽሑፍ ግቤት ሁነታ ቀይር።"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"ለጊዜ ግቤቱ ወደ የሰዓት ሁነታ ቀይር።"</string>
 </resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 95118c2..1f81714 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -1817,6 +1817,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"الخرائط والتنقل"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"الإنتاجية"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"السعة التخزينية للجهاز"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"‏تصحيح أخطاء USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ساعة"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"دقيقة"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"تعيين الوقت"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"يُرجى إدخال وقت صالح"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"يُرجى تحديد الوقت"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"يُرجى التبديل إلى وضع إدخال النص لإدخال الوقت."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"يُرجى التبديل إلى وضع الساعة لإدخال الوقت."</string>
 </resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index cf377b2..60c1ce5 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Xəritə və Naviqasiya"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Məhsuldarlıq"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Cihaz yaddaşı"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB sazlama"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"saat"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"dəqiqə"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Vaxtı ayarlayın"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Düzgün vaxt daxil edin"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Zamanı daxil edin"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Zamanı daxil etmək üçün mətnlə daxiletmə rejiminə keçin"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Zamanı daxil etmək üçün saat rejiminə keçin"</string>
 </resources>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index e56d938..4d88979 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -1724,6 +1724,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mape i navigacija"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivnost"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Memorijski prostor uređaja"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Otklanjanje grešaka sa USB-a"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"sat"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Podešavanje vremena"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Unesite važeće vreme"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Unesite vreme"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Pređite u režim unosa teksta radi unosa vremena."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Pređite u režim sata radi unosa vremena."</string>
 </resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 6383c39..e6c18ae 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Карты і навігацыя"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Прадукцыйнасць"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Сховішча на прыладзе"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Адладка USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"гадзіна"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"хвіліна"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Задаць час"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Увядзіце дапушчальны час"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Увядзіце час"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Пераключыцца на рэжым тэксту пры ўводзе часу."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Пераключыцца на рэжым гадзінніка пры ўводзе часу."</string>
 </resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 1238e2c..dd91b18 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Карти и навигация"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Производителност"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Хранилище на устройството"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Отстраняване на грешки през USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"час"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"минута"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Задаване на час"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Въведете валиден час"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Въведете часа"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Превключете към режима за въвеждане на текст, за да въведете часа."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Превключете към режима за часовник, за да въведете часа."</string>
 </resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 9bedf58..c137334 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"মানচিত্র ও নেভিগেশান"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"উৎপাদনশীলতা"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ডিভাইসের সঞ্চয়স্থান"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ডিবাগিং"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ঘন্টা"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"মিনিট"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"সময় সেট করুন"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"সঠিক সময় দিন"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"সময় টাইপ করুন"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"সময় ইনপুট দেওয়ার জন্য পাঠ্য ইনপুট মোডে যান।"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"সময় ইনপুট দেওয়ার জন্য ঘড়ি মোডে যান।"</string>
 </resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index 66ef19a..3f2e45e 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -1727,6 +1727,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mape i navigacija"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivnost"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Memorija uređaja"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Otklanjanje grešaka putem uređaja spojenog na USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"sat"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuta"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Postavite vrijeme"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Unesite ispravno vrijeme"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Upišite vrijeme"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Prebacite u način unosa teksta za unos vremena."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Prebacite u način rada kao sat za unos vremena."</string>
 </resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index b01f382..56a6252 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -278,7 +278,7 @@
     <string name="capability_desc_canControlMagnification" msgid="4791858203568383773">"Controla el nivell i el posicionament del zoom de la pantalla."</string>
     <string name="capability_title_canPerformGestures" msgid="7418984730362576862">"Utilitza gestos"</string>
     <string name="capability_desc_canPerformGestures" msgid="8296373021636981249">"Pot tocar, lliscar, pessigar i utilitzar altres gestos."</string>
-    <string name="capability_title_canCaptureFingerprintGestures" msgid="6309568287512278670">"Gestos amb les empremtes digitals"</string>
+    <string name="capability_title_canCaptureFingerprintGestures" msgid="6309568287512278670">"Gestos al sensor d\'empremtes digitals"</string>
     <string name="capability_desc_canCaptureFingerprintGestures" msgid="7102111919385702482">"Captura gestos realitzats en el sensor d\'empremtes digitals del dispositiu."</string>
     <string name="permlab_statusBar" msgid="7417192629601890791">"desactivar o modificar la barra d\'estat"</string>
     <string name="permdesc_statusBar" msgid="8434669549504290975">"Permet que l\'aplicació desactivi la barra d\'estat o afegeixi i elimini icones del sistema."</string>
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapes i navegació"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivitat"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Emmagatzematge del dispositiu"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Depuració USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Defineix l\'hora"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Introdueix una hora vàlida"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Escriu l\'hora"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Canvia al mode d\'introducció de text per introduir l\'hora."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Canvia al mode de rellotge per introduir l\'hora."</string>
 </resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index b8717d5..5cb7122 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapy a navigace"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivita"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Úložiště zařízení"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Ladění USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hodina"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuta"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Nastavení času"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Zadejte platný čas"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Zadejte čas"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Chcete-li zadat čas, přepněte na režim textu."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Chcete-li zadat čas, přepněte na režim hodin."</string>
 </resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index ebcd48e..9bff925 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kort og navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivitet"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Lagerplads på enheden"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-fejlretning"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"time"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Indstil klokkeslæt"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Angiv et gyldigt klokkeslæt"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Angiv klokkeslæt"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Skift til teksttilstand for at angive klokkeslæt."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Skift til urtilstand for at angive klokkeslæt."</string>
 </resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 7e31748..67d2d40f 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Karten &amp; Navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Effizienz"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Gerätespeicher"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-Fehlerbehebung"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"Stunde"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"Minute"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Uhrzeit einstellen"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Gib eine gültige Uhrzeit ein"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Uhrzeit eingeben"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"In den Texteingabemodus wechseln, um die Uhrzeit einzugeben."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"In den Uhrzeitmodus wechseln, um die Uhrzeit einzugeben."</string>
 </resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 7458e04..c8032e5 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Χάρτες και πλοήγηση"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Παραγωγικότητα"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Αποθηκευτικός χώρος συσκευής"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Εντοπισμός σφαλμάτων USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ώρα"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"λεπτό"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Ορισμός ώρας"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Εισαγάγετε μια έγκυρη ώρα"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Πληκτρολογήστε την ώρα"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Κάντε εναλλαγή στη λειτουργία εισαγωγής κειμένου, για την εισαγωγή της ώρας."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Κάντε εναλλαγή στη λειτουργία ρολογιού, για την εισαγωγή της ώρας."</string>
 </resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 107f247..0ae92b5 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Maps &amp; Navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivity"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Device storage"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB debugging"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hour"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minute"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Set time"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Enter a valid time"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Type in time"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Switch to text input mode for the time input."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Switch to clock mode for the time input."</string>
 </resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 107f247..0ae92b5 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Maps &amp; Navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivity"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Device storage"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB debugging"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hour"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minute"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Set time"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Enter a valid time"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Type in time"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Switch to text input mode for the time input."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Switch to clock mode for the time input."</string>
 </resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 107f247..0ae92b5 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Maps &amp; Navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivity"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Device storage"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB debugging"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hour"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minute"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Set time"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Enter a valid time"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Type in time"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Switch to text input mode for the time input."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Switch to clock mode for the time input."</string>
 </resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 2749b35..b9b6fc9 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapas y navegación"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productividad"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Almacenamiento del dispositivo"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Depuración por USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Establecer hora"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Ingresa una hora válida"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Ingresa la hora"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Cambia al modo de entrada de texto para ingresar la hora."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Cambia al modo de reloj para ingresar la hora."</string>
 </resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index bdb1381..9cb770c 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapas y navegación"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productividad"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Almacenamiento del dispositivo"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Depuración por USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Establecer hora"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Introduce una hora válida"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Escribe la hora"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Cambia al modo de introducción de texto para escribir la hora."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Cambia al modo de reloj para escribir la hora."</string>
 </resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 5b532b4..f77fdcf 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kaardid ja navigeerimine"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktiivsus"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Seadme salvestusruum"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB silumine"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"tund"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Kellaaja määramine"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Sisestage sobiv kellaaeg"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Sisestage kellaaeg"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Aktiveerige kellaaja sisestamiseks tekstisisestusrežiim."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Aktiveerige kellaaja sisestamiseks kellarežiim."</string>
 </resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index afb0a9c..99fafec 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapak eta nabigazioa"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktibitatea"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Gailuaren memoria"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB arazketa"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"orduak"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minutuak"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Zehaztu ordua"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Idatzi balio duen ordu bat"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Idatzi ordua"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Aldatu testu modura ordua zehazteko."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Aldatu erloju modura ordua zehazteko."</string>
 </resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 1e1c8fa..3ca8051 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"نقشه و پیمایش"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"بهره‌وری"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"حافظه دستگاه"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"‏اشکال‌زدایی USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ساعت"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"دقیقه"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"تنظیم زمان"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"زمان معتبری وارد کنید"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"زمان را تایپ کنید"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"برای وارد کردن زمان، به حالت وارد کردن نوشتار تغییر وضعیت دهید."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"برای وارد کردن زمان، به حالت ساعت تغییر وضعیت دهید."</string>
 </resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index c3c2c65..dafb9c9 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kartat ja navigointi"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Tuottavuus"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Laitteen tallennustila"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-vianetsintä"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"tunti"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuutti"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Aseta aika"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Anna kelvollinen aika."</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Kirjoita aika"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Vaihda ajan syöttämiseen tekstitilassa."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Vaihda ajan syöttämiseen kellotilassa."</string>
 </resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 7e051c9..473fc85 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Cartes et navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivité"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Mémoire de l\'appareil"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Débogage USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"heure"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minute"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Définir l\'heure"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Entrez une heure valide"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Entrez l\'heure"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Passer au mode Entrée de texte pour entrer l\'heure."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Passer au mode Horloge pour entrer l\'heure."</string>
 </resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index b8fcf28..2ad6096 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Plans et navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivité"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Mémoire de l\'appareil"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Débogage USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"heure"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minute"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Définir l\'heure"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Veuillez indiquer une heure valide"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Indiquez l\'heure"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Passer en mode saisie de texte pour la saisie de l\'heure."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Passer en mode horloge pour la saisie de l\'heure."</string>
 </resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 5d316f6..1f95bc5 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapas e navegación"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produtividade"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Almacenamento do dispositivo"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Depuración de USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Definir hora"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Introduce unha hora válida"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Escribe a hora"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Cambia ao modo de entrada de texto para introducir a hora."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Cambiar ao modo de reloxo para introducir a hora."</string>
 </resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index b5c243b..9c394cf 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -278,8 +278,8 @@
     <string name="capability_desc_canControlMagnification" msgid="4791858203568383773">"પ્રદર્શનનું ઝૂમ સ્તર અને સ્થિતિનિર્ધારણ નિયંત્રિત કરો."</string>
     <string name="capability_title_canPerformGestures" msgid="7418984730362576862">"હાવભાવ કરો"</string>
     <string name="capability_desc_canPerformGestures" msgid="8296373021636981249">"ટૅપ, સ્વાઇપ, પિંચ કરી અને અન્ય હાવભાવ કરી શકે છે."</string>
-    <string name="capability_title_canCaptureFingerprintGestures" msgid="6309568287512278670">"ફિંગરપ્રિન્ટ હાવભાવો"</string>
-    <string name="capability_desc_canCaptureFingerprintGestures" msgid="7102111919385702482">"ઉપકરણોનાં ફિંગરપ્રિન્ટ સેન્સર પર ભજવેલા હાવભાવ કૅપ્ચર કરી શકે છે."</string>
+    <string name="capability_title_canCaptureFingerprintGestures" msgid="6309568287512278670">"ફિંગરપ્રિન્ટ સંકેતો"</string>
+    <string name="capability_desc_canCaptureFingerprintGestures" msgid="7102111919385702482">"ઉપકરણોનાં ફિંગરપ્રિન્ટ સેન્સર પર ભજવેલા સંકેતો કૅપ્ચર કરી શકે છે."</string>
     <string name="permlab_statusBar" msgid="7417192629601890791">"સ્થિતિ બાર અક્ષમ કરો અથવા સંશોધિત કરો"</string>
     <string name="permdesc_statusBar" msgid="8434669549504290975">"એપ્લિકેશનને સ્થિતિ બાર અક્ષમ કરવાની અથવા સિસ્ટમ આયકન્સ ઉમેરવા અને દૂર કરવાની મંજૂરી આપે છે."</string>
     <string name="permlab_statusBarService" msgid="4826835508226139688">"સ્થિતિ બાર થાઓ"</string>
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"નકશા અને નેવિગેશન"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ઉત્પાદકતા"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ઉપકરણ સ્ટૉરેજ"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ડિબગિંગ"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"કલાક"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"મિનિટ"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"સમય સેટ કરો"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"એક માન્ય સમય દાખલ કરો"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"સમય લખો"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"સમય દાખલ કરવા માટે ટેક્સ્ટ ઇનપુટ મોડમાં સ્વિચ કરો."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"સમય દાખલ કરવા માટે ઘડિયાળ મોડમાં સ્વિચ કરો."</string>
 </resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index f2c3d43..4ac25e2 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"मानचित्र और मार्गदर्शक"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"उत्पादकता"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"डिवाइस में जगह"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB डीबग करना"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"घंटा"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"मिनट"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"समय सेट अप करें"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"मान्य समय डालें"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"समय लिखें"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"समय इनपुट के लिए लेख इनपुट मोड पर जाएं."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"समय इनपुट के लिए घड़ी मोड पर जाएं."</string>
 </resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 11864c6..d4bc343 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -1724,6 +1724,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Karte i navigacija"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivnost"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Pohrana na uređaju"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Otklanjanje pogrešaka putem USB-a"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"sat"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuta"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Postavljanje vremena"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Unesite važeće vrijeme"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Unesite vrijeme"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Prijeđite na način unosa teksta da biste unijeli vrijeme."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Prijeđite na način rada sata da biste unijeli vrijeme."</string>
 </resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 4c6d440..9fd17e5 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Térképek és navigáció"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Irodai alkalmazások"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Eszköztárhely"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-hibakeresés"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"óra"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"perc"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Idő beállítása"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Érvényes formátumban adja meg az időt"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Adja meg az időt"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Időbevitelhez váltson szövegbeviteli módba."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Időbevitelhez váltson óramódba."</string>
 </resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 276a326..51f6fe2 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Քարտեզներ և նավարկում"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Աշխատանք"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Սարքի հիշողություն"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB վրիպազերծում"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ժամ"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"րոպե"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Կարգավորել ժամը"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Մուտքագրեք վավեր ժամ"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Մուտքագրեք ժամը"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Ժամը մուտքագրելու համար միացրեք տեքստի մուտքագրման ռեժիմը:"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Ժամը մուտքագրելու համար միացրեք ժամացույցի ռեժիմը:"</string>
 </resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 839fc04..6363c6b 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Peta &amp; Navigasi"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivitas"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Penyimpanan perangkat"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Proses debug USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"jam"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"menit"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Setel waktu"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Masukkan waktu yang valid"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Ketik waktu"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Beralih ke mode masukan teks untuk masukan waktu."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Beralih ke mode jam untuk masukan waktu."</string>
 </resources>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index 1e2beb0..2085854 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kort og leiðsögn"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Aðstoð"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Geymslurými tækis"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-villuleit"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"klukkustund"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"mínúta"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Stilla tíma"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Færðu inn gildan tíma"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Færðu inn tíma"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Skipta yfir í textastillingu til að færa inn tíma."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Skipta yfir í klukkustillingu til að færa inn tíma."</string>
 </resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 0b7820e..8d0ee79b 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Maps e Navigatore"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produttività"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Memoria dispositivo"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Debug USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Imposta ora"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Inserisci un orario valido"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Digita l\'ora"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Passa alla modalità di immissione testo per inserire l\'ora."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Passa alla modalità orologio per inserire l\'ora."</string>
 </resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 4361ff2..64f76d04 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -331,7 +331,7 @@
     <string name="permdesc_persistentActivity" product="tv" msgid="5086862529499103587">"מאפשרת לאפליקציה ליצור חלקים ממנה השמורים בזיכרון באופן עקבי. הדבר עלול להגביל את הזיכרון הזמין לאפליקציות אחרות וכתוצאה מכך להאט את פעולת הטלוויזיה."</string>
     <string name="permdesc_persistentActivity" product="default" msgid="4384760047508278272">"מאפשר לאפליקציה להפוך חלקים ממנו לקבועים בזיכרון. פעולה זו עשויה להגביל את הזיכרון הזמין לאפליקציות אחרים ולהאט את פעולת הטלפון."</string>
     <string name="permlab_getPackageSize" msgid="7472921768357981986">"מדידת נפח האחסון של אפליקציות"</string>
-    <string name="permdesc_getPackageSize" msgid="3921068154420738296">"מאפשר לאפליקציה לאחזר את הקוד, הנתונים, וגודלי הקבצים השמורים שלו"</string>
+    <string name="permdesc_getPackageSize" msgid="3921068154420738296">"מאפשר לאפליקציה לאחזר את הקוד, הנתונים, וגודלי קובצי המטמון שלו"</string>
     <string name="permlab_writeSettings" msgid="2226195290955224730">"שינוי הגדרות מערכת"</string>
     <string name="permdesc_writeSettings" msgid="7775723441558907181">"מאפשר לאפליקציה לשנות את נתוני הגדרות המערכת. אפליקציות זדוניות עלולות לשבש את תצורת המערכת שלך."</string>
     <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"הפעלה בעת אתחול"</string>
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"מפות וניווט"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"פרודוקטיביות"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"שטח האחסון במכשיר"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"‏ניקוי באגים ב-USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"שעה"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"דקה"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"הגדר שעה"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"הזן שעה חוקית"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"הקלד את השעה"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"העבר למצב קלט טקסט לצורך הזנת השעה"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"העבר למצב שעון לצורך הזנת השעה"</string>
 </resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index f3a22ce..dbb4048 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"地図&ナビ"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"仕事効率化"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"端末のストレージ"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB デバッグ"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"時"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"分"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"時刻の設定"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"有効な時刻を入力してください"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"時刻を入力"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"時刻をテキストで入力するモードに切り替えます。"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"時刻を時計で入力するモードに切り替えます。"</string>
 </resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 9d3b288..5bb36b1 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"რუკები და ნავიგაცია"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"პროდუქტიულობა"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"მოწყობილობის მეხსიერება"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB გამართვა"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"საათი"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"წუთი"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"დროის დაყენება"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"შეიყვანეთ სწორი დრო"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"აკრიფეთ დრო"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"დროის შეყვანისთვის ტექსტის შეყვანის რეჟიმზე გადართვა."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"დროის შეყვანისთვის საათის რეჟიმზე გადართვა."</string>
 </resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index b168b6f..b2fbaef 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Карта және навигация"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Өнімділік"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Құрылғы жады"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB арқылы жөндеу"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"сағат"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"минут"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Уақытты реттеу"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Жарамды уақыт мәліметін енгізіңіз"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Уақытты енгізіңіз"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Уақытты енгізу үшін мәтін енгізу режиміне өтіңіз."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Уақытты енгізу үшін сағат режиміне өтіңіз."</string>
 </resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 0a57834..ffa6867 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -1695,6 +1695,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"ផែនទី និង​ការ​រុករក"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ផលិត​ភាព"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ទំហំផ្ទុកឧបករណ៍"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"ការ​កែកំហុស USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ម៉ោង"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"នាទី"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"កំណត់​ម៉ោង"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"បញ្ចូលម៉ោង​ដែល​ត្រឹមត្រូវ"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"វាយ​បញ្ចូល​ម៉ោង"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"ប្តូរ​ទៅ​មុខងារ​បញ្ចូល​អក្សរ​សម្រាប់​ការ​បញ្ចូល​ម៉ោង។"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"ប្តូរ​ទៅ​មុខងារ​នាឡិកា​សម្រាប់​ការ​បញ្ចូល​ម៉ោង។"</string>
 </resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 07400f5..1dc8a32 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -1694,6 +1694,19 @@
     <string name="app_category_maps" msgid="5878491404538024367">"ನಕ್ಷೆಗಳು ಮತ್ತು ನ್ಯಾವಿಗೇಶನ್"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ಉತ್ಪಾದಕತೆ"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ಸಾಧನ ಸಂಗ್ರಹಣೆ"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆ"</string>
+    <!-- no translation found for time_picker_hour_label (2979075098868106450) -->
+    <skip />
+    <!-- no translation found for time_picker_minute_label (5168864173796598399) -->
+    <skip />
+    <!-- no translation found for time_picker_header_text (143536825321922567) -->
+    <skip />
+    <!-- no translation found for time_picker_input_error (7574999942502513765) -->
+    <skip />
+    <!-- no translation found for time_picker_prompt_label (7588093983899966783) -->
+    <skip />
+    <!-- no translation found for time_picker_text_input_mode_description (4148166758173708199) -->
+    <skip />
+    <!-- no translation found for time_picker_radial_mode_description (4953403779779557198) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index b74094e..20e99bc 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"지도/내비게이션"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"생산성"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"기기 저장용량"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB 디버깅"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"시간"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"분"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"시간 설정"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"올바른 시간을 입력하세요."</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"시간 입력"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"시간 입력을 위해 텍스트 입력 모드로 전환합니다."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"시간 입력을 위해 시계 모드로 전환합니다."</string>
 </resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 7b1d126..4285bd6 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Карталар жана чабыттоо"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Өндүрүш категориясы"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Түзмөктүн сактагычы"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB аркылуу мүчүлүштүктөрдү оңдоо"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"саат"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"мүнөт"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Убакытты коюу"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Убакытты туура көрсөтүңүз"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Убакытты жазыңыз"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Убакытты текст киргизүү режиминде киргизиңиз."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Убакытты дубал саатынын режиминде киргизиңиз."</string>
 </resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 5d7b4c3..0facaaa 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Maps &amp; Navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ຜະລິດຕະພາບ"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ບ່ອນຈັດເກັບຂໍ້ມູນອຸປະກອນ"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"ການດີບັ໊ກຜ່ານ USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ຊົ່ວໂມງ"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"ນາທີ"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"ຕັ້ງເວລາ"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"ລະບຸເວລາທີ່ຖືກຕ້ອງ"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"ພິມເວລາໃສ່"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"ສະຫຼັບໄປໃຊ້ໂໝດປ້ອນຂໍ້ຄວາມສຳລັບການປ້ອນເວລາ."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"ສະຫຼັບໄປໃຊ້ໂໝດໂມງສຳລັບການປ້ອນເວລາ."</string>
 </resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 89ac3f2..5691706 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Žemėlapiai ir navigacija"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktyvumas"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Įrenginio saugykla"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB derinimas"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"valanda"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minutė"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Laiko nustatymas"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Įveskite tinkamą laiką"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Įveskite laiką"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Laiko įvestį pateikti perjungus į teksto įvesties režimą."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Laiko įvestį pateikti perjungus į laikrodžio režimą."</string>
 </resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 5163334..07595c1 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -1724,6 +1724,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kartes un navigācija"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivitāte"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Ierīces krātuve"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB atkļūdošana"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"stunda"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minūte"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Laika iestatīšana"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Ievadiet derīgu laiku."</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Ierakstiet laiku"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Lai ievadītu laiku, ieslēdziet teksta ievades režīmu."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Lai ievadītu laiku, ieslēdziet pulksteņa režīmu."</string>
 </resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index 66d5387..afe0fb8 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -1696,6 +1696,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Карти и навигација"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Продуктивност"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Простор на уредот"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Отстранување грешки на USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"час"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"минута"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Постави време"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Внесете важечко време"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Внесете време"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Префрлете се на режимот за внесување текст за да внесете време."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Префрлете се на режимот за часовник за да внесете време."</string>
 </resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index bb5455d..57a4a2d 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -1694,6 +1694,19 @@
     <string name="app_category_maps" msgid="5878491404538024367">"മാപ്സും നാവിഗേഷനും"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ഉല്‍‌പ്പാദനക്ഷമത"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ഉപകരണ സ്റ്റോറേജ്"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ഡീബഗ്ഗിംഗ്"</string>
+    <!-- no translation found for time_picker_hour_label (2979075098868106450) -->
+    <skip />
+    <!-- no translation found for time_picker_minute_label (5168864173796598399) -->
+    <skip />
+    <!-- no translation found for time_picker_header_text (143536825321922567) -->
+    <skip />
+    <!-- no translation found for time_picker_input_error (7574999942502513765) -->
+    <skip />
+    <!-- no translation found for time_picker_prompt_label (7588093983899966783) -->
+    <skip />
+    <!-- no translation found for time_picker_text_input_mode_description (4148166758173708199) -->
+    <skip />
+    <!-- no translation found for time_picker_radial_mode_description (4953403779779557198) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 0f7d43a..5631f1c 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -1691,6 +1691,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Газрын зураг &amp; зүг чиг"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Бүтээмж"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Төхөөрөмжийн сан"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB дебаг хийлт"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"Цаг"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"минут"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Цаг тохируулах"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Цагийг зөв оруулна уу"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Хугацааг бичнэ үү"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Цагийг оруулахын тулд текст оруулах горимд шилжүүлнэ үү."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Цагийг оруулахын тулд цагийн горимд шилжүүлнэ үү."</string>
 </resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 69cf831..73f3975 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"नकाशे आणि नेव्हिगेशन"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"उत्पादनक्षमता"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"डिव्‍हाइस संचय"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB डीबगिंग"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"तास"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"मिनिट"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"वेळ सेट करा"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"वैध वेळ प्रविष्‍ट करा"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"वेळ टाइप करा"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"वेळ इनपुटसाठी मजकूर इनपुट मोडवर स्विच करा."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"वेळ इनपुटसाठी घड्याळ मोडवर स्विच करा."</string>
 </resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index ad053b9..d7d8ca4 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Peta &amp; Navigasi"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktiviti"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Storan peranti"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Penyahpepijatan USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"jam"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minit"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Tetapkan masa"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Masukkan masa yang sah"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Taipkan masa"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Beralih ke mod input teks untuk input masa."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Beralih ke mod jam untuk input masa."</string>
 </resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 4454c2b5..4fcddfd 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"မြေပုံနှင့် ခရီးလမ်းညွှန်ချက်"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ထုတ်လုပ်နိုင်မှု"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"စက်ပစ္စည်း သိုလှောင်ခန်း"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB အမှားရှာပြင်ခြင်း"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"နာရီ"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"မိ​နစ်​"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"အချိန်သတ်မှတ်ရန်"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"မှန်ကန်သည့် အမည်တစ်ခု ထည့်ရန်"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"အချိန်ကို ရိုက်ရန်"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"အချိန်ထည့်သွင်းရန် စာသားထည့်သွင်းမှုမုဒ်သို့ ပြောင်းပါ။"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"အချိန်ထည့်သွင်းမှုအတွက် နာရီမုဒ်သို့ ပြောင်းပါ။"</string>
 </resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index d23441f..66c4cc3 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kart og navigering"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivitet"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Lagring på enheten"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-feilsøking"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"time"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minutt"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Still inn klokkeslett"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Angi et gyldig klokkeslett"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Skriv inn klokkeslett"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Bytt til tekstinndatamodus for tidsinndata."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Bytt til klokkemodus for tidsinndata."</string>
 </resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index d513ff3..92190ef 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -1699,6 +1699,19 @@
     <string name="app_category_maps" msgid="5878491404538024367">"नक्सा तथा नेभिगेसन"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"उत्पादकत्व"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"यन्त्रको भण्डारण"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB डिबग प्रक्रिया"</string>
+    <!-- no translation found for time_picker_hour_label (2979075098868106450) -->
+    <skip />
+    <!-- no translation found for time_picker_minute_label (5168864173796598399) -->
+    <skip />
+    <!-- no translation found for time_picker_header_text (143536825321922567) -->
+    <skip />
+    <!-- no translation found for time_picker_input_error (7574999942502513765) -->
+    <skip />
+    <!-- no translation found for time_picker_prompt_label (7588093983899966783) -->
+    <skip />
+    <!-- no translation found for time_picker_text_input_mode_description (4148166758173708199) -->
+    <skip />
+    <!-- no translation found for time_picker_radial_mode_description (4953403779779557198) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index f3e0274..41d77b3 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Maps en navigatie"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productiviteit"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Apparaatopslag"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-foutopsporing"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"uur"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Tijd instellen"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Geef een geldige tijd op"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Typ een tijd"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Schakel naar de tekstinvoermodus om de tijd in te voeren."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Schakel naar de klokmodus om de tijd in te voeren."</string>
 </resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 788efb8..9d723af 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"ਨਕਸ਼ੇ ਅਤੇ ਆਵਾਗੌਣ"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ਉਤਪਾਦਕਤਾ"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ਡੀਵਾਈਸ ਸਟੋਰੇਜ"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ਡੀਬੱਗਿੰਗ"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ਘੰਟਾ"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"ਮਿੰਟ"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"ਸਮਾਂ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"ਇੱਕ ਵੈਧ ਸਮਾਂ ਦਾਖਲ ਕਰੋ"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"ਸਮਾਂ ਟਾਈਪ ਕਰੋ"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"ਸਮਾਂ ਇਨਪੁੱਟ ਕਰਨ ਲਈ ਲਿਖਤ ਇਨਪੁੱਟ ਮੋਡ \'ਤੇ ਬਦਲੀ ਕਰੋ।"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"ਸਮਾਂ ਇਨਪੁੱਟ ਕਰਨ ਲਈ ਘੜੀ ਮੋਡ \'ਤੇ ਬਦਲੀ ਕਰੋ।"</string>
 </resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 3814f80..a3cfb49 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapy i nawigacja"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktywność"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Pamięć urządzenia"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Debugowanie USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"godzina"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuta"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Ustawianie godziny"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Wpisz prawidłowy czas"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Podaj czas"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Aby wprowadzić czas, włącz tryb wprowadzania tekstu."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Aby wprowadzić czas, włącz tryb zegara."</string>
 </resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index a7a763f..6ef918c 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapas e navegação"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produtividade"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Armazenamento do dispositivo"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Depuração USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Definir horário"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Informe um horário válido"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Digite o horário"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Alterne para o modo de entrada de texto para informar o horário."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Alterne para o modo de relógio para informar o horário."</string>
 </resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index b87fe9e..ac59f18 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapas e navegação"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produtividade"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Armazenamento do dispositivo"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Depuração USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Definir hora"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Introduza uma hora válida"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Introduza a hora"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Mude para o modo de introdução de texto para a introdução da hora."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Mude para o modo de relógio para a introdução da hora."</string>
 </resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index a7a763f..6ef918c 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapas e navegação"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produtividade"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Armazenamento do dispositivo"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Depuração USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Definir horário"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Informe um horário válido"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Digite o horário"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Alterne para o modo de entrada de texto para informar o horário."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Alterne para o modo de relógio para informar o horário."</string>
 </resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index b407ae0..42d2775 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -1724,6 +1724,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Hărți și navigare"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivitate"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Stocare pe dispozitiv"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Remedierea erorilor prin USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"oră"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Setați ora"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Introduceți o oră validă"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Introduceți ora"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Pentru a introduce ora, comutați la modul de introducere a textului."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Pentru a introduce ora, comutați la modul ceas."</string>
 </resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 2e2bd0b..9a82c38 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Карты и навигация"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Работа"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Хранилище устройства"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Отладка по USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ч."</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"мин."</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Время"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Указано недопустимое время."</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Введите время"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Чтобы ввести время, перейдите в режим ввода текста."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Чтобы ввести время, перейдите в режим часов."</string>
 </resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 7440888..e5fac69 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -1091,9 +1091,9 @@
     <string name="wifi_connect_alert_title" msgid="8455846016001810172">"සම්බන්ධතාවයට ඉඩ දෙන්නද?"</string>
     <string name="wifi_connect_alert_message" msgid="6451273376815958922">"යෙදුම් %1$s ක් WiFi ජාලය %2$s වෙත සම්බන්ධ කිරීමට කැමතියි"</string>
     <string name="wifi_connect_default_application" msgid="7143109390475484319">"යෙදුම"</string>
-    <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"ඍජු Wi-Fi"</string>
-    <string name="wifi_p2p_turnon_message" msgid="2909250942299627244">"ඍජු Wi-Fi ආරම්භ කරන්න. මෙය Wi-Fi සේවාදායක/හොට්ස්පොට් එක අක්‍රිය කරනු ඇත."</string>
-    <string name="wifi_p2p_failed_message" msgid="3763669677935623084">"ඍජු Wi-Fi ආරම්භ කළ නොහැක."</string>
+    <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+    <string name="wifi_p2p_turnon_message" msgid="2909250942299627244">"Wi-Fi Direct ආරම්භ කරන්න. මෙය Wi-Fi සේවාදායක/හොට්ස්පොට් එක අක්‍රිය කරනු ඇත."</string>
+    <string name="wifi_p2p_failed_message" msgid="3763669677935623084">"Wi-Fi Direct ආරම්භ කළ නොහැක."</string>
     <string name="wifi_p2p_enabled_notification_title" msgid="2068321881673734886">"Wi-Fi Direct ක්‍රියාත්මකයි"</string>
     <string name="wifi_p2p_enabled_notification_message" msgid="8064677407830620023">"සැකසීම් සඳහා තට්ටු කරන්න"</string>
     <string name="accept" msgid="1645267259272829559">"පිළිගන්න"</string>
@@ -1695,6 +1695,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"සිතියම් සහ සංචලනය"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ඵලදායිතාව"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"උපාංග ගබඩාව"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB නිදොස්කරණය"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"පැය"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"විනාඩිය"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"වේලාව සකසන්න"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"වලංගු වේලාවක් ඇතුළු කරන්න"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"වේලාව ටයිප් කරන්න"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"වේලා ආදානය සඳහා ආදාන ප්‍රකාරය වෙත මාරු වෙන්න."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"වේලා ආදානය සඳහා ඔරලෝසු ප්‍රකාරය වෙත මාරු වෙන්න."</string>
 </resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 47716da..03bb2d4 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mapy a navigácia"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivita"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Úložisko zariadenia"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Ladenie cez USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"hodina"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minúta"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Nastavenie času"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Zadajte platný čas"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Zadajte čas"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Ak chcete zadať čas, prepnite na textový režim vstupu"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Ak chcete zadať čas, prepnite na režim hodín."</string>
 </resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 13102b5..718ab5c 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Zemljevidi in navigacija"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Storilnost"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Shramba naprave"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Odpravljanje težav prek povezave USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ura"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minute"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Nastavitev ure"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Vnesite veljaven čas"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Vnesite uro"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Preklopite na način za vnašanje besedila, da vnesete čas."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Preklopite na način ure, da vnesete čas."</string>
 </resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index fd76f7d..15f0e1e 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Harta dhe navigim"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivitet"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Hapësira ruajtëse e pajisjes"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Korrigjimi i USB-së"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"orë"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minutë"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Vendos orën"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Fut një kohë të vlefshme"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Shkruaj kohën"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Kalo te modaliteti i hyrjes së tekstit për hyrjen e kohës."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Kalo te modaliteti i orës për hyrjen e kohës."</string>
 </resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 54b0fae..3edae1b 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -1724,6 +1724,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Мапе и навигација"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Продуктивност"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Меморијски простор уређаја"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Отклањање грешака са USB-а"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"сат"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"минут"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Подешавање времена"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Унесите важеће време"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Унесите време"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Пређите у режим уноса текста ради уноса времена."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Пређите у режим сата ради уноса времена."</string>
 </resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index e010b96..4c673d0 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Kartor och navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Produktivitet"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Enhetens lagringsutrymme"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB-felsökning"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"timme"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minut"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Ange tid"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Ange en giltig tid"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Ange tid"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Byt till textinmatningsläget och ange tid."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Byt till klockläget och ange tid."</string>
 </resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index c363a2216..98fcc6b 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -1691,6 +1691,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Ramani na Maelekezo"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Uzalishaji"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Hifadhi ya kifaa"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Utatuzi wa USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"saa"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"dakika"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Weka muda"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Weka muda sahihi"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Andika wakati"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Badilisha data ya wakati iwe katika hali ya maandishi."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Badilisha data ya wakati iwe katika hali ya saa ya mviringo."</string>
 </resources>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 8a70c4e..ee3a41d 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"வரைபடங்களும் வழிசெலுத்தலும்"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"உற்பத்தித்திறன்"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"சாதனச் சேமிப்பகம்"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB பிழைத்திருத்தம்"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"மணிநேரம்"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"நிமிடம்"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"நேரத்தை அமை"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"சரியான நேரத்தை உள்ளிடவும்"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"நேரத்தை உள்ளிடவும்"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"உரை உள்ளீட்டிற்காக, கடிகாரப் பயன்முறைக்கு மாற்றும்."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"நேர உள்ளீட்டிற்காக, கடிகாரப் பயன்முறைக்கு மாற்றும்."</string>
 </resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 4d22092..46c5bce 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"మ్యాప్స్ &amp; నావిగేషన్"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ఉత్పాదకత"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"పరికర నిల్వ"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB డీబగ్గింగ్"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"గంట"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"నిమిషం"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"సమయాన్ని సెట్ చేయండి"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"చెల్లుబాటు అయ్యే సమయాన్ని నమోదు చేయండి"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"సమయంలో టైప్ చేయండి"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"సమయాన్ని నమోదు చేయడం కోసం వచన నమోదు మోడ్‌కి మారండి."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"సమయాన్ని నమోదు చేయడం కోసం గడియారం మోడ్‌కు మారండి."</string>
 </resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 38dfd84..230d42a 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"แผนที่และการนำทาง"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ประสิทธิภาพการทำงาน"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"พื้นที่เก็บข้อมูลของอุปกรณ์"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"การแก้ไขข้อบกพร่อง USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ชั่วโมง"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"นาที"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"ตั้งเวลา"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"ป้อนเวลาที่ถูกต้อง"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"พิมพ์เวลา"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"สลับไปโหมดป้อนข้อความเพื่อป้อนเวลา"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"สลับไปโหมดนาฬิกาเพื่อป้อนเวลา"</string>
 </resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 06c6aa7..e59ed9d 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Mga Mapa at Navigation"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Productivity"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Storage ng device"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Pag-debug ng USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"oras"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minuto"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Itakda ang oras"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Maglagay ng wastong oras"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"I-type ang oras"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Lumipat sa pamamaraan ng pag-input ng text para sa input na oras."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Lumipat sa mode ng orasan para sa input na oras."</string>
 </resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index c6dd402..1a2bf72 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Haritalar ve Navigasyon"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Verimlilik"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Cihazdaki depolama alanı"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB üzerinden hata ayıklama"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"saat"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"dakika"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Saati ayarlayın"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Geçerli bir saat girin"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Zamanı yazın"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Zaman girişi için metin girişi moduna geçin."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Zaman girişi için saat moduna geçin."</string>
 </resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 6b5070a..913a13b 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -1362,7 +1362,7 @@
     <string name="keyboard_password_character_no_headset" msgid="2859873770886153678">"Крапка."</string>
     <string name="action_bar_home_description" msgid="5293600496601490216">"Перейти на головну"</string>
     <string name="action_bar_up_description" msgid="2237496562952152589">"Перейти вгору"</string>
-    <string name="action_menu_overflow_description" msgid="2295659037509008453">"Інші варіанти"</string>
+    <string name="action_menu_overflow_description" msgid="2295659037509008453">"Більше"</string>
     <string name="action_bar_home_description_format" msgid="7965984360903693903">"%1$s, %2$s"</string>
     <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"%1$s, %2$s, %3$s"</string>
     <string name="storage_internal" msgid="3570990907910199483">"Внутрішнє спільне сховище"</string>
@@ -1755,6 +1755,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Карти й навігація"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Продуктивність"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Пам’ять пристрою"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Налагодження USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"години"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"хвилини"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Налаштувати час"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Введіть дійсний час"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Введіть час"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Перейти в текстовий режим, щоб ввести час."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Перейти в режим годинника, щоб ввести час."</string>
 </resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 9f77dbb..82366e8 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"نقشے اور نیویگیشن"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"پروڈکٹیوٹی"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"آلہ کی اسٹوریج"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"‏USB ڈیبگ کرنا"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"گھنٹہ"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"منٹ"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"وقت سیٹ کریں"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"درست وقت درج کریں"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"وقت ٹائپ کریں"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"وقت ان پٹ کے لیے ٹیکسٹ ان پٹ وضع پر سوئچ کریں۔"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"وقت ان پٹ کے لیے گھڑی و‏ضع پر سوئچ کریں۔"</string>
 </resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 6f07869..114584c 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -1694,6 +1694,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Xaritalar va navigatsiya"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Ish va unumdorlik"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Qurilma xotirasi"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB orqali nosozliklarni tuzatish"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"soat"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"daqiqa"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Vaqtni sozlash"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Vaqt xato ko‘rsatilgan"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Vaqtni kiriting"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Vaqtni kiritish uchun matn kiritish rejimiga o‘ting."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Vaqtni kiritish uchun soat rejimiga o‘ting."</string>
 </resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index f2d9c8f..4f8e020 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Bản đồ và dẫn đường"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Sản xuất"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Bộ nhớ của thiết bị"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Gỡ lỗi USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"giờ"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"phút"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Đặt giờ"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Nhập thời gian hợp lệ"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Nhập thời gian"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Chuyển sang chế độ nhập văn bản để nhập thời gian."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Chuyển sang chế độ đồng hồ để nhập thời gian."</string>
 </resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 96eba47..af155e2 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -1693,6 +1693,19 @@
     <string name="app_category_maps" msgid="5878491404538024367">"地图和导航"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"办公"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"设备存储空间"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB 调试"</string>
+    <!-- no translation found for time_picker_hour_label (2979075098868106450) -->
+    <skip />
+    <!-- no translation found for time_picker_minute_label (5168864173796598399) -->
+    <skip />
+    <!-- no translation found for time_picker_header_text (143536825321922567) -->
+    <skip />
+    <!-- no translation found for time_picker_input_error (7574999942502513765) -->
+    <skip />
+    <!-- no translation found for time_picker_prompt_label (7588093983899966783) -->
+    <skip />
+    <!-- no translation found for time_picker_text_input_mode_description (4148166758173708199) -->
+    <skip />
+    <!-- no translation found for time_picker_radial_mode_description (4953403779779557198) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 234d45b..988a322 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"地圖和導航"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"生產力應用程式"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"裝置儲存空間"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB 偵錯"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"小時"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"分鐘"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"設定時間"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"請輸入有效的時間"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"輸入時間"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"切換至文字輸入模式即可輸入時間。"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"切換至時鐘模式即可輸入時間。"</string>
 </resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 0f0f176..31fc918 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"地圖和導航"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"生產應用"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"裝置儲存空間"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB 偵錯"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"小時"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"分鐘"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"設定時間"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"請輸入有效的時間"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"輸入時間"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"切換至文字輸入模式來輸入時間。"</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"切換至時鐘模式來輸入時間。"</string>
 </resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 938b332..1ca690c 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -1693,6 +1693,12 @@
     <string name="app_category_maps" msgid="5878491404538024367">"Amamephu nokuzula"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"Ukukhiqiza"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"Isitoreji sedivayisi"</string>
-    <!-- no translation found for adb_debugging_notification_channel_tv (5537766997350092316) -->
-    <skip />
+    <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"Ukulungisa iphutha le-USB"</string>
+    <string name="time_picker_hour_label" msgid="2979075098868106450">"ihora"</string>
+    <string name="time_picker_minute_label" msgid="5168864173796598399">"minithi"</string>
+    <string name="time_picker_header_text" msgid="143536825321922567">"Setha isikhathi"</string>
+    <string name="time_picker_input_error" msgid="7574999942502513765">"Faka igama elivumelekile"</string>
+    <string name="time_picker_prompt_label" msgid="7588093983899966783">"Thayipha isikhathi"</string>
+    <string name="time_picker_text_input_mode_description" msgid="4148166758173708199">"Shintshela kumodi yokufaka umbhalo ngokufaka isikhathi."</string>
+    <string name="time_picker_radial_mode_description" msgid="4953403779779557198">"Shintshela kumodi yewashi ngokufakwa kwesikhathi."</string>
 </resources>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 7f49f05..d8fc1d1 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -4714,16 +4714,16 @@
             <!-- No auto-sizing (default). -->
             <enum name="none" value="0" />
             <!-- Uniform horizontal and vertical scaling. -->
-            <enum name="xy" value="1" />
+            <enum name="uniform" value="1" />
         </attr>
         <!-- Specify the auto-size step size if <code>autoSizeText</code> is set to
         <code>xy</code>. The default is 1px. Overwrites
-        <code>autoSizeStepSizeSet</code> if set. -->
+        <code>autoSizePresetSizes</code> if set. -->
         <attr name="autoSizeStepGranularity" format="dimension" />
         <!-- Array of dimensions to be used in conjunction with
         <code>autoSizeText</code> set to <code>xy</code>. Overwrites
         <code>autoSizeStepGranularity</code> if set. -->
-        <attr name="autoSizeStepSizeSet"/>
+        <attr name="autoSizePresetSizes"/>
         <!-- The minimum text size constraint to be used when auto-sizing text -->
         <attr name="autoSizeMinTextSize" format="dimension" />
         <!-- The maximum text size constraint to be used when auto-sizing text -->
@@ -6975,10 +6975,32 @@
              with alphabetic keys. -->
         <attr name="alphabeticShortcut" format="string" />
 
+        <!-- The alphabetic modifier key. This is the modifier when using a keyboard
+             with alphabetic keys. The values should be kept in sync with KeyEvent -->
+        <attr name="alphabeticModifiers">
+            <flag name="META" value="0x10000" />
+            <flag name="CTRL" value="0x1000" />
+            <flag name="ALT" value="0x02" />
+            <flag name="SHIFT" value="0x1" />
+            <flag name="SYM" value="0x4" />
+            <flag name="FUNCTION" value="0x8" />
+        </attr>
+
         <!-- The numeric shortcut key.  This is the shortcut when using a numeric (e.g., 12-key)
              keyboard. -->
         <attr name="numericShortcut" format="string" />
 
+        <!-- The numeric modifier key. This is the modifier when using a numeric (e.g., 12-key)
+             keyboard. The values should be kept in sync with KeyEvent -->
+        <attr name="numericModifiers">
+            <flag name="META" value="0x10000" />
+            <flag name="CTRL" value="0x1000" />
+            <flag name="ALT" value="0x02" />
+            <flag name="SHIFT" value="0x1" />
+            <flag name="SYM" value="0x4" />
+            <flag name="FUNCTION" value="0x8" />
+        </attr>
+
         <!-- Whether the item is capable of displaying a check mark. -->
         <attr name="checkable" format="boolean" />
 
@@ -8358,7 +8380,6 @@
     </declare-styleable>
 
     <declare-styleable name="MessagingLinearLayout">
-        <attr name="maxHeight" />
         <attr name="spacing" />
     </declare-styleable>
 
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 581537d..54c392f 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1847,6 +1847,9 @@
     -->
     <fraction name="config_maximumScreenDimRatio">20%</fraction>
 
+    <!-- Minimum size of the scrollbar thumb's touch target. -->
+    <dimen name="config_minScrollbarTouchTarget">48dp</dimen>
+
     <!-- Base "touch slop" value used by ViewConfiguration as a
          movement threshold where scrolling should begin. -->
     <dimen name="config_viewConfigurationTouchSlop">8dp</dimen>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 1b48469..34659aa 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2767,7 +2767,7 @@
         <public name="tooltipText" />
         <public name="autoSizeText" />
         <public name="autoSizeStepGranularity" />
-        <public name="autoSizeStepSizeSet" />
+        <public name="autoSizePresetSizes" />
         <public name="autoSizeMinTextSize" />
         <public name="min" />
         <public name="rotationAnimation" />
@@ -2792,6 +2792,8 @@
         <public name="isolatedSplits" />
         <public name="targetSandboxVersion" />
         <public name="canCaptureFingerprintGestures" />
+        <public name="alphabeticModifiers" />
+        <public name="numericModifiers" />
     </public-group>
 
     <public-group type="style" first-id="0x010302e0">
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 19c5643..2309866 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2602,11 +2602,14 @@
     <string name="email">Email</string>
 
     <!-- Label for item in the text selection menu to trigger a Dialer app [CHAR LIMIT=20] -->
-    <string name="dial">Dial</string>
+    <string name="dial">Phone</string>
 
     <!-- Label for item in the text selection menu to trigger a Map app [CHAR LIMIT=20] -->
     <string name="map">Map</string>
 
+    <!-- Label for item in the text selection menu to trigger a Browser app [CHAR LIMIT=20] -->
+    <string name="browse">Browse</string>
+
     <!-- If the device is getting low on internal storage, a notification is shown to the user.  This is the title of that notification. -->
     <string name="low_internal_storage_view_title">Storage space running out</string>
     <!-- If the device is getting low on internal storage, a notification is shown to the user.  This is the message of that notification. -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 89269aa..1324e38 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -423,6 +423,7 @@
 
   <java-symbol type="dimen" name="accessibility_touch_slop" />
   <java-symbol type="dimen" name="alert_dialog_round_padding"/>
+  <java-symbol type="dimen" name="config_minScrollbarTouchTarget" />
   <java-symbol type="dimen" name="config_prefDialogWidth" />
   <java-symbol type="dimen" name="config_viewConfigurationTouchSlop" />
   <java-symbol type="dimen" name="config_viewMinFlingVelocity" />
@@ -482,6 +483,7 @@
   <java-symbol type="string" name="email" />
   <java-symbol type="string" name="dial" />
   <java-symbol type="string" name="map" />
+  <java-symbol type="string" name="browse" />
   <java-symbol type="string" name="textSelectionCABTitle" />
   <java-symbol type="string" name="BaMmi" />
   <java-symbol type="string" name="CLIRDefaultOffNextCallOff" />
diff --git a/core/tests/coretests/src/android/provider/SettingsTest.java b/core/tests/coretests/src/android/provider/SettingsTest.java
index 1ff2056..019f837 100644
--- a/core/tests/coretests/src/android/provider/SettingsTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsTest.java
@@ -384,7 +384,6 @@
                  Settings.Secure.AUTO_FILL_SERVICE,
                  Settings.Secure.AUTOMATIC_STORAGE_MANAGER_BYTES_CLEARED,
                  Settings.Secure.AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN,
-                 Settings.Secure.AUTOMATIC_STORAGE_MANAGER_DOWNLOADS_DAYS_TO_RETAIN,
                  Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED,
                  Settings.Secure.AUTOMATIC_STORAGE_MANAGER_LAST_RUN,
                  Settings.Secure.BACKUP_AUTO_RESTORE,
@@ -402,9 +401,6 @@
                  Settings.Secure.DISABLED_PRINT_SERVICES,
                  Settings.Secure.DISABLED_SYSTEM_INPUT_METHODS,
                  Settings.Secure.DISPLAY_DENSITY_FORCED,
-                 Settings.Secure.DOWNLOADS_BACKUP_ALLOW_METERED,  // Candidate?
-                 Settings.Secure.DOWNLOADS_BACKUP_CHARGING_ONLY, // Candidate?
-                 Settings.Secure.DOWNLOADS_BACKUP_ENABLED, // Candidate?
                  Settings.Secure.DOZE_ALWAYS_ON,
                  Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION,
                  Settings.Secure.ENABLED_NOTIFICATION_ASSISTANT,
diff --git a/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodSubtypeSwitchingControllerTest.java b/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodSubtypeSwitchingControllerTest.java
index dc75417..686f75b 100644
--- a/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodSubtypeSwitchingControllerTest.java
+++ b/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodSubtypeSwitchingControllerTest.java
@@ -364,39 +364,62 @@
     public void testImeSubtypeListComparator() throws Exception {
         {
             final List<ImeSubtypeListItem> items = Arrays.asList(
-                    createDummyItem("X", "A", "en_US", 0, "en_US"),
-                    createDummyItem("X", "A", "en", 1, "en_US"),
-                    createDummyItem("X", "A", "ja", 2, "en_US"),
+                    // Subtypes of IME "X".
+                    // Subtypes that has the same locale of the system's.
+                    createDummyItem("X", "E", "en_US", 0, "en_US"),
                     createDummyItem("X", "Z", "en_US", 3, "en_US"),
-                    createDummyItem("X", "Z", "en", 4, "en_US"),
-                    createDummyItem("X", "Z", "ja", 5, "en_US"),
                     createDummyItem("X", "", "en_US", 6, "en_US"),
+                    // Subtypes that has the same language of the system's.
+                    createDummyItem("X", "E", "en", 1, "en_US"),
+                    createDummyItem("X", "Z", "en", 4, "en_US"),
                     createDummyItem("X", "", "en", 7, "en_US"),
+                    // Subtypes that has different language than the system's.
+                    createDummyItem("X", "A", "hi_IN", 27, "en_US"),
+                    createDummyItem("X", "E", "ja", 2, "en_US"),
+                    createDummyItem("X", "Z", "ja", 5, "en_US"),
                     createDummyItem("X", "", "ja", 8, "en_US"),
-                    createDummyItem("Y", "A", "en_US", 9, "en_US"),
-                    createDummyItem("Y", "A", "en", 10, "en_US"),
-                    createDummyItem("Y", "A", "ja", 11, "en_US"),
+
+                    // Subtypes of IME "Y".
+                    // Subtypes that has the same locale of the system's.
+                    createDummyItem("Y", "E", "en_US", 9, "en_US"),
                     createDummyItem("Y", "Z", "en_US", 12, "en_US"),
-                    createDummyItem("Y", "Z", "en", 13, "en_US"),
-                    createDummyItem("Y", "Z", "ja", 14, "en_US"),
                     createDummyItem("Y", "", "en_US", 15, "en_US"),
+                    // Subtypes that has the same language of the system's.
+                    createDummyItem("Y", "E", "en", 10, "en_US"),
+                    createDummyItem("Y", "Z", "en", 13, "en_US"),
                     createDummyItem("Y", "", "en", 16, "en_US"),
+                    // Subtypes that has different language than the system's.
+                    createDummyItem("Y", "A", "hi_IN", 28, "en_US"),
+                    createDummyItem("Y", "E", "ja", 11, "en_US"),
+                    createDummyItem("Y", "Z", "ja", 14, "en_US"),
                     createDummyItem("Y", "", "ja", 17, "en_US"),
-                    createDummyItem("", "A", "en_US", 18, "en_US"),
-                    createDummyItem("", "A", "en", 19, "en_US"),
-                    createDummyItem("", "A", "ja", 20, "en_US"),
+
+                    // Subtypes of IME "".
+                    // Subtypes that has the same locale of the system's.
+                    createDummyItem("", "E", "en_US", 18, "en_US"),
                     createDummyItem("", "Z", "en_US", 21, "en_US"),
-                    createDummyItem("", "Z", "en", 22, "en_US"),
-                    createDummyItem("", "Z", "ja", 23, "en_US"),
                     createDummyItem("", "", "en_US", 24, "en_US"),
+                    // Subtypes that has the same language of the system's.
+                    createDummyItem("", "E", "en", 19, "en_US"),
+                    createDummyItem("", "Z", "en", 22, "en_US"),
                     createDummyItem("", "", "en", 25, "en_US"),
+                    // Subtypes that has different language than the system's.
+                    createDummyItem("", "A", "hi_IN", 29, "en_US"),
+                    createDummyItem("", "E", "ja", 20, "en_US"),
+                    createDummyItem("", "Z", "ja", 23, "en_US"),
                     createDummyItem("", "", "ja", 26, "en_US"));
 
+            // Ensure {@link java.lang.Comparable#compareTo} contracts are satisfied.
             for (int i = 0; i < items.size(); ++i) {
-                assertEquals(0, items.get(i).compareTo(items.get(i)));
+                final ImeSubtypeListItem item1 = items.get(i);
+                // Ensures sgn(x.compareTo(y)) == -sgn(y.compareTo(x)).
+                assertTrue(item1 + " has the same order of itself", item1.compareTo(item1) == 0);
+                // Ensures (x.compareTo(y) > 0 && y.compareTo(z) > 0) implies x.compareTo(z) > 0.
                 for (int j = i + 1; j < items.size(); ++j) {
-                    assertTrue(items.get(i).compareTo(items.get(j)) < 0);
-                    assertTrue(items.get(j).compareTo(items.get(i)) > 0);
+                    final ImeSubtypeListItem item2 = items.get(j);
+                    // Ensures sgn(x.compareTo(y)) == -sgn(y.compareTo(x)).
+                    assertTrue(item1 + " is less than " + item2, item1.compareTo(item2) < 0);
+                    assertTrue(item2 + " is greater than " + item1, item2.compareTo(item1) > 0);
                 }
             }
         }
@@ -404,11 +427,14 @@
         {
             // Following two items have the same priority.
             final ImeSubtypeListItem nonSystemLocale1 =
-                    createDummyItem("X", "A", "ja_JP", 0, "en_us");
+                    createDummyItem("X", "A", "ja_JP", 0, "en_US");
             final ImeSubtypeListItem nonSystemLocale2 =
-                    createDummyItem("X", "A", "hi_IN", 1, "en_us");
-            assertEquals(0, nonSystemLocale1.compareTo(nonSystemLocale2));
-            assertEquals(0, nonSystemLocale2.compareTo(nonSystemLocale1));
+                    createDummyItem("X", "A", "hi_IN", 1, "en_US");
+            assertTrue(nonSystemLocale1.compareTo(nonSystemLocale2) == 0);
+            assertTrue(nonSystemLocale2.compareTo(nonSystemLocale1) == 0);
+            // But those aren't equal to each other.
+            assertFalse(nonSystemLocale1.equals(nonSystemLocale2));
+            assertFalse(nonSystemLocale2.equals(nonSystemLocale1));
         }
     }
 }
diff --git a/test-runner/tests/src/com/android/internal/util/PredicatesTest.java b/core/tests/utiltests/src/com/android/internal/util/PredicatesTest.java
similarity index 100%
rename from test-runner/tests/src/com/android/internal/util/PredicatesTest.java
rename to core/tests/utiltests/src/com/android/internal/util/PredicatesTest.java
diff --git a/data/etc/framework-sysconfig.xml b/data/etc/framework-sysconfig.xml
index 62ef25b..7fafef7 100644
--- a/data/etc/framework-sysconfig.xml
+++ b/data/etc/framework-sysconfig.xml
@@ -23,4 +23,9 @@
     <allow-implicit-broadcast action="android.intent.action.PACKAGE_CHANGED" />
     <allow-implicit-broadcast action="android.intent.action.MEDIA_SCANNER_SCAN_FILE" />
 
+    <!-- Whitelist of what components are permitted as backup data transports.  The
+         'service' attribute here is a flattened ComponentName string. -->
+    <backup-transport-whitelisted-service
+        service="android/com.android.internal.backup.LocalTransportService" />
+
 </config>
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index 9cdc660..344f3c8 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -177,6 +177,10 @@
          access while in data mode, even if they aren't in the foreground. -->
     <allow-in-data-usage-save package="com.android.providers.downloads" />
 
+    <!-- This is a core platform component that needs to freely run in the background -->
+    <allow-in-power-save package="com.android.cellbroadcastreceiver" />
+    <allow-in-power-save package="com.android.shell" />
+
     <!-- These are the packages that are white-listed to be able to run as system user -->
     <system-user-whitelisted-app package="com.android.settings" />
 
diff --git a/graphics/java/android/graphics/BitmapFactory.java b/graphics/java/android/graphics/BitmapFactory.java
index 64a726b..a3c6c6e 100644
--- a/graphics/java/android/graphics/BitmapFactory.java
+++ b/graphics/java/android/graphics/BitmapFactory.java
@@ -350,11 +350,17 @@
 
         /**
          * If known, this string is set to the mimetype of the decoded image.
-         * If not know, or there is an error, it is set to null.
+         * If not known, or there is an error, it is set to null.
          */
         public String outMimeType;
 
         /**
+         * If known, the config the decoded bitmap will have.
+         * If not known, or there is an error, it is set to null.
+         */
+        public Bitmap.Config outConfig;
+
+        /**
          * Temp storage to use for decoding.  Suggest 16K or so.
          */
         public byte[] inTempStorage;
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index 8572345..23e7305 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -677,7 +677,14 @@
      * @param rect The rect to intersect with the current clip
      * @param op How the clip is modified
      * @return true if the resulting clip is non-empty
+     *
+     * @deprecated Region.Op values other than {@link Region.Op#INTERSECT} and
+     * {@link Region.Op#DIFFERENCE} have the ability to expand the clip. The canvas clipping APIs
+     * are intended to only expand the clip as a result of a restore operation. This enables a view
+     * parent to clip a canvas to clearly define the maximal drawing area of its children. The
+     * recommended alternative calls are {@link #clipRect(RectF)} and {@link #clipOutRect(RectF)};
      */
+    @Deprecated
     public boolean clipRect(@NonNull RectF rect, @NonNull Region.Op op) {
         return nClipRect(mNativeCanvasWrapper, rect.left, rect.top, rect.right, rect.bottom,
                 op.nativeInt);
@@ -690,7 +697,14 @@
      * @param rect The rectangle to intersect with the current clip.
      * @param op How the clip is modified
      * @return true if the resulting clip is non-empty
+     *
+     * @deprecated Region.Op values other than {@link Region.Op#INTERSECT} and
+     * {@link Region.Op#DIFFERENCE} have the ability to expand the clip. The canvas clipping APIs
+     * are intended to only expand the clip as a result of a restore operation. This enables a view
+     * parent to clip a canvas to clearly define the maximal drawing area of its children. The
+     * recommended alternative calls are {@link #clipRect(Rect)} and {@link #clipOutRect(Rect)};
      */
+    @Deprecated
     public boolean clipRect(@NonNull Rect rect, @NonNull Region.Op op) {
         return nClipRect(mNativeCanvasWrapper, rect.left, rect.top, rect.right, rect.bottom,
                 op.nativeInt);
@@ -709,6 +723,18 @@
     }
 
     /**
+     * Set the clip to the difference of the current clip and the specified rectangle, which is
+     * expressed in local coordinates.
+     *
+     * @param rect The rectangle to perform a difference op with the current clip.
+     * @return true if the resulting clip is non-empty
+     */
+    public boolean clipOutRect(@NonNull RectF rect) {
+        return nClipRect(mNativeCanvasWrapper, rect.left, rect.top, rect.right, rect.bottom,
+                Region.Op.DIFFERENCE.nativeInt);
+    }
+
+    /**
      * Intersect the current clip with the specified rectangle, which is
      * expressed in local coordinates.
      *
@@ -721,6 +747,18 @@
     }
 
     /**
+     * Set the clip to the difference of the current clip and the specified rectangle, which is
+     * expressed in local coordinates.
+     *
+     * @param rect The rectangle to perform a difference op with the current clip.
+     * @return true if the resulting clip is non-empty
+     */
+    public boolean clipOutRect(@NonNull Rect rect) {
+        return nClipRect(mNativeCanvasWrapper, rect.left, rect.top, rect.right, rect.bottom,
+                Region.Op.DIFFERENCE.nativeInt);
+    }
+
+    /**
      * Modify the current clip with the specified rectangle, which is
      * expressed in local coordinates.
      *
@@ -734,7 +772,15 @@
      *               clip
      * @param op     How the clip is modified
      * @return       true if the resulting clip is non-empty
+     *
+     * @deprecated Region.Op values other than {@link Region.Op#INTERSECT} and
+     * {@link Region.Op#DIFFERENCE} have the ability to expand the clip. The canvas clipping APIs
+     * are intended to only expand the clip as a result of a restore operation. This enables a view
+     * parent to clip a canvas to clearly define the maximal drawing area of its children. The
+     * recommended alternative calls are {@link #clipRect(float,float,float,float)} and
+     * {@link #clipOutRect(float,float,float,float)};
      */
+    @Deprecated
     public boolean clipRect(float left, float top, float right, float bottom,
             @NonNull Region.Op op) {
         return nClipRect(mNativeCanvasWrapper, left, top, right, bottom, op.nativeInt);
@@ -759,6 +805,21 @@
     }
 
     /**
+     * Set the clip to the difference of the current clip and the specified rectangle, which is
+     * expressed in local coordinates.
+     *
+     * @param left   The left side of the rectangle used in the difference operation
+     * @param top    The top of the rectangle used in the difference operation
+     * @param right  The right side of the rectangle used in the difference operation
+     * @param bottom The bottom of the rectangle used in the difference operation
+     * @return       true if the resulting clip is non-empty
+     */
+    public boolean clipOutRect(float left, float top, float right, float bottom) {
+        return nClipRect(mNativeCanvasWrapper, left, top, right, bottom,
+                Region.Op.DIFFERENCE.nativeInt);
+    }
+
+    /**
      * Intersect the current clip with the specified rectangle, which is
      * expressed in local coordinates.
      *
@@ -777,12 +838,35 @@
     }
 
     /**
+     * Set the clip to the difference of the current clip and the specified rectangle, which is
+     * expressed in local coordinates.
+     *
+     * @param left   The left side of the rectangle used in the difference operation
+     * @param top    The top of the rectangle used in the difference operation
+     * @param right  The right side of the rectangle used in the difference operation
+     * @param bottom The bottom of the rectangle used in the difference operation
+     * @return       true if the resulting clip is non-empty
+     */
+    public boolean clipOutRect(int left, int top, int right, int bottom) {
+        return nClipRect(mNativeCanvasWrapper, left, top, right, bottom,
+                Region.Op.DIFFERENCE.nativeInt);
+    }
+
+    /**
         * Modify the current clip with the specified path.
      *
      * @param path The path to operate on the current clip
      * @param op   How the clip is modified
      * @return     true if the resulting is non-empty
+     *
+     * @deprecated Region.Op values other than {@link Region.Op#INTERSECT} and
+     * {@link Region.Op#DIFFERENCE} have the ability to expand the clip. The canvas clipping APIs
+     * are intended to only expand the clip as a result of a restore operation. This enables a view
+     * parent to clip a canvas to clearly define the maximal drawing area of its children. The
+     * recommended alternative calls are {@link #clipPath(Path)} and
+     * {@link #clipOutPath(Path)};
      */
+    @Deprecated
     public boolean clipPath(@NonNull Path path, @NonNull Region.Op op) {
         return nClipPath(mNativeCanvasWrapper, path.readOnlyNI(), op.nativeInt);
     }
@@ -791,13 +875,23 @@
      * Intersect the current clip with the specified path.
      *
      * @param path The path to intersect with the current clip
-     * @return     true if the resulting is non-empty
+     * @return     true if the resulting clip is non-empty
      */
     public boolean clipPath(@NonNull Path path) {
         return clipPath(path, Region.Op.INTERSECT);
     }
 
     /**
+     * Set the clip to the difference of the current clip and the specified path.
+     *
+     * @param path The path used in the difference operation
+     * @return     true if the resulting clip is non-empty
+     */
+    public boolean clipOutPath(@NonNull Path path) {
+        return clipPath(path, Region.Op.DIFFERENCE);
+    }
+
+    /**
      * Modify the current clip with the specified region. Note that unlike
      * clipRect() and clipPath() which transform their arguments by the
      * current matrix, clipRegion() assumes its argument is already in the
diff --git a/graphics/java/android/graphics/drawable/Icon.java b/graphics/java/android/graphics/drawable/Icon.java
index 9772009..60c3b1c 100644
--- a/graphics/java/android/graphics/drawable/Icon.java
+++ b/graphics/java/android/graphics/drawable/Icon.java
@@ -67,6 +67,8 @@
     public static final int TYPE_DATA     = 3;
     /** @hide */
     public static final int TYPE_URI      = 4;
+    /** @hide */
+    public static final int TYPE_BITMAP_MASKABLE      = 5;
 
     private static final int VERSION_STREAM_SERIALIZER = 1;
 
@@ -101,6 +103,7 @@
      * {@link #TYPE_RESOURCE},
      * {@link #TYPE_DATA}, or
      * {@link #TYPE_URI}.
+     * {@link #TYPE_BITMAP_MASKABLE}
      * @hide
      */
     public int getType() {
@@ -112,7 +115,7 @@
      * @hide
      */
     public Bitmap getBitmap() {
-        if (mType != TYPE_BITMAP) {
+        if (mType != TYPE_BITMAP && mType != TYPE_BITMAP_MASKABLE) {
             throw new IllegalStateException("called getBitmap() on " + this);
         }
         return (Bitmap) mObj1;
@@ -218,6 +221,7 @@
     private static final String typeToString(int x) {
         switch (x) {
             case TYPE_BITMAP: return "BITMAP";
+            case TYPE_BITMAP_MASKABLE: return "BITMAP_MASKABLE";
             case TYPE_DATA: return "DATA";
             case TYPE_RESOURCE: return "RESOURCE";
             case TYPE_URI: return "URI";
@@ -285,6 +289,9 @@
         switch (mType) {
             case TYPE_BITMAP:
                 return new BitmapDrawable(context.getResources(), getBitmap());
+            case TYPE_BITMAP_MASKABLE:
+                return new MaskableIconDrawable(null,
+                    new BitmapDrawable(context.getResources(), getBitmap()));
             case TYPE_RESOURCE:
                 if (getResources() == null) {
                     // figure out where to load resources from
@@ -388,7 +395,7 @@
      * @hide
      */
     public void convertToAshmem() {
-        if (mType == TYPE_BITMAP &&
+        if ((mType == TYPE_BITMAP || mType == TYPE_BITMAP_MASKABLE) &&
             getBitmap().isMutable() &&
             getBitmap().getAllocationByteCount() >= MIN_ASHMEM_ICON_SIZE) {
             setBitmap(getBitmap().createAshmemBitmap());
@@ -409,6 +416,7 @@
 
         switch (mType) {
             case TYPE_BITMAP:
+            case TYPE_BITMAP_MASKABLE:
                 getBitmap().compress(Bitmap.CompressFormat.PNG, 100, dataStream);
                 break;
             case TYPE_DATA:
@@ -444,6 +452,8 @@
             switch (type) {
                 case TYPE_BITMAP:
                     return createWithBitmap(BitmapFactory.decodeStream(inputStream));
+                case TYPE_BITMAP_MASKABLE:
+                    return createWithMaskableBitmap(BitmapFactory.decodeStream(inputStream));
                 case TYPE_DATA:
                     final int length = inputStream.readInt();
                     final byte[] data = new byte[length];
@@ -478,6 +488,7 @@
         }
         switch (mType) {
             case TYPE_BITMAP:
+            case TYPE_BITMAP_MASKABLE:
                 return getBitmap() == otherIcon.getBitmap();
             case TYPE_DATA:
                 return getDataLength() == otherIcon.getDataLength()
@@ -551,6 +562,20 @@
     }
 
     /**
+     * Create an Icon pointing to a bitmap in memory that follows the icon design guideline defined
+     * by {@link MaskableIconDrawable}.
+     * @param bits A valid {@link android.graphics.Bitmap} object
+     */
+    public static Icon createWithMaskableBitmap(Bitmap bits) {
+        if (bits == null) {
+            throw new IllegalArgumentException("Bitmap must not be null.");
+        }
+        final Icon rep = new Icon(TYPE_BITMAP_MASKABLE);
+        rep.setBitmap(bits);
+        return rep;
+    }
+
+    /**
      * Create an Icon pointing to a compressed bitmap stored in a byte array.
      * @param data Byte array storing compressed bitmap data of a type that
      *             {@link android.graphics.BitmapFactory}
@@ -654,6 +679,7 @@
         final StringBuilder sb = new StringBuilder("Icon(typ=").append(typeToString(mType));
         switch (mType) {
             case TYPE_BITMAP:
+            case TYPE_BITMAP_MASKABLE:
                 sb.append(" size=")
                         .append(getBitmap().getWidth())
                         .append("x")
@@ -692,7 +718,7 @@
      * Parcelable interface
      */
     public int describeContents() {
-        return (mType == TYPE_BITMAP || mType == TYPE_DATA)
+        return (mType == TYPE_BITMAP || mType == TYPE_BITMAP_MASKABLE || mType == TYPE_DATA)
                 ? Parcelable.CONTENTS_FILE_DESCRIPTOR : 0;
     }
 
@@ -702,6 +728,7 @@
         this(in.readInt());
         switch (mType) {
             case TYPE_BITMAP:
+            case TYPE_BITMAP_MASKABLE:
                 final Bitmap bits = Bitmap.CREATOR.createFromParcel(in);
                 mObj1 = bits;
                 break;
@@ -740,6 +767,7 @@
         dest.writeInt(mType);
         switch (mType) {
             case TYPE_BITMAP:
+            case TYPE_BITMAP_MASKABLE:
                 final Bitmap bits = getBitmap();
                 getBitmap().writeToParcel(dest, flags);
                 break;
diff --git a/graphics/java/android/graphics/drawable/MaskableIconDrawable.java b/graphics/java/android/graphics/drawable/MaskableIconDrawable.java
index 043f092..e4f1788a 100644
--- a/graphics/java/android/graphics/drawable/MaskableIconDrawable.java
+++ b/graphics/java/android/graphics/drawable/MaskableIconDrawable.java
@@ -20,6 +20,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.TestApi;
 import android.content.pm.ActivityInfo.Config;
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
@@ -62,17 +63,22 @@
 
     /**
      * Mask path is defined inside device configuration in following dimension: [100 x 100]
+     * @hide
      */
     public static final float MASK_SIZE = 100f;
+    private static final float SAFEZONE_SCALE = .9f;
 
     /**
-     * The view port of the layers is smaller than their intrinsic width and height by this factor.
-     *
-     * It is part of the API contract that all four sides of the layers are padded so as to provide
+     * All four sides of the layers are padded with extra inset so as to provide
      * extra content to reveal within the clip path when performing affine transformations on the
      * layers.
+     *
+     * Each layers will reserve 25% of it's width and height.
+     *
+     * As a result, the view port of the layers is smaller than their intrinsic width and height.
      */
-    public static final float DEFAULT_VIEW_PORT_SCALE = 2f / 3f;
+    private static final float EXTRA_INSET_PERCENTAGE = 1 / 4f;
+    private static final float DEFAULT_VIEW_PORT_SCALE = 1f / (1 + 2 * EXTRA_INSET_PERCENTAGE);
 
     /**
      * Clip path defined in {@link com.android.internal.R.string.config_icon_mask}.
@@ -155,12 +161,17 @@
      *
      * @param backgroundDrawable drawable that should be rendered in the background
      * @param foregroundDrawable drawable that should be rendered in the foreground
+     * @hide
      */
     public MaskableIconDrawable(Drawable backgroundDrawable,
             Drawable foregroundDrawable) {
         this((LayerState)null, null);
-        addLayer(BACKGROUND_ID, createChildDrawable(backgroundDrawable));
-        addLayer(FOREGROUND_ID, createChildDrawable(foregroundDrawable));
+        if (backgroundDrawable != null) {
+            addLayer(BACKGROUND_ID, createChildDrawable(backgroundDrawable));
+        }
+        if (foregroundDrawable != null) {
+            addLayer(FOREGROUND_ID, createChildDrawable(foregroundDrawable));
+        }
     }
 
     /**
@@ -199,6 +210,15 @@
     }
 
     /**
+     * All four sides of the layers are padded with extra inset so as to provide
+     * extra content to reveal within the clip path when performing affine transformations on the
+     * layers.
+     */
+    public static float getExtraInsetPercentage() {
+        return EXTRA_INSET_PERCENTAGE;
+    }
+
+    /**
      * @return the mask path object used to clip the drawable
      */
     public Path getIconMask() {
@@ -242,13 +262,20 @@
         int cY = bounds.centerY();
 
         for (int i = 0, count = mLayerState.N_CHILDREN; i < count; i++) {
+            final ChildDrawable r = mLayerState.mChildren[i];
+            if (r == null) {
+                continue;
+            }
+            final Drawable d = r.mDrawable;
+            if (d == null) {
+                continue;
+            }
+
             int insetWidth = (int) (bounds.width() / (DEFAULT_VIEW_PORT_SCALE * 2));
             int insetHeight = (int) (bounds.height() / (DEFAULT_VIEW_PORT_SCALE * 2));
             final Rect outRect = mTmpOutRect;
             outRect.set(cX - insetWidth, cY - insetHeight, cX + insetWidth, cY + insetHeight);
 
-            final ChildDrawable r = mLayerState.mChildren[i];
-            final Drawable d = r.mDrawable;
             d.setBounds(outRect);
         }
     }
@@ -273,6 +300,9 @@
         if (mLayersShader == null) {
             mCanvas.setBitmap(mLayersBitmap);
             for (int i = 0; i < mLayerState.N_CHILDREN; i++) {
+                if (mLayerState.mChildren[i] == null) {
+                    continue;
+                }
                 final Drawable dr = mLayerState.mChildren[i].mDrawable;
                 if (dr != null) {
                     dr.draw(mCanvas);
@@ -295,6 +325,18 @@
         outline.setConvexPath(mMask);
     }
 
+    /** @hide */
+    @TestApi
+    public Region getSafeZone() {
+        mMaskMatrix.reset();
+        mMaskMatrix.setScale(SAFEZONE_SCALE, SAFEZONE_SCALE, getBounds().centerX(), getBounds().centerY());
+        Path p = new Path();
+        mMask.transform(mMaskMatrix, p);
+        Region safezoneRegion = new Region(getBounds());
+        safezoneRegion.setPath(p, safezoneRegion);
+        return safezoneRegion;
+    }
+
     @Override
     public @Nullable Region getTransparentRegion() {
         if (mTransparentRegion.isEmpty()) {
diff --git a/graphics/tests/graphicstests/src/android/graphics/drawable/IconTest.java b/graphics/tests/graphicstests/src/android/graphics/drawable/IconTest.java
index a214b9e..50c498b 100644
--- a/graphics/tests/graphicstests/src/android/graphics/drawable/IconTest.java
+++ b/graphics/tests/graphicstests/src/android/graphics/drawable/IconTest.java
@@ -18,6 +18,7 @@
 
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
+import android.graphics.Region;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Parcel;
@@ -108,6 +109,40 @@
     }
 
     @SmallTest
+    public void testWithMaskableBitmap() throws Exception {
+        final Bitmap bm1 = Bitmap.createBitmap(150, 150, Bitmap.Config.ARGB_8888);
+
+        final Canvas can1 = new Canvas(bm1);
+        can1.drawColor(0xFFFF0000);
+
+        final Icon im1 = Icon.createWithMaskableBitmap(bm1);
+
+        final MaskableIconDrawable draw1 = (MaskableIconDrawable) im1.loadDrawable(mContext);
+
+        final Bitmap test1 = Bitmap.createBitmap(
+            (int)(draw1.getIntrinsicWidth() * (1 + 2 * MaskableIconDrawable.getExtraInsetPercentage())),
+            (int)(draw1.getIntrinsicHeight() * (1 + 2 * MaskableIconDrawable.getExtraInsetPercentage())),
+            Bitmap.Config.ARGB_8888);
+
+        draw1.setBounds(0, 0,
+            (int) (draw1.getIntrinsicWidth() * (1 + 2 * MaskableIconDrawable.getExtraInsetPercentage())),
+            (int) (draw1.getIntrinsicHeight() * (1 + 2 * MaskableIconDrawable.getExtraInsetPercentage())));
+        draw1.draw(new Canvas(test1));
+
+        final File dir = getContext().getExternalFilesDir(null);
+        L("writing temp bitmaps to %s...", dir);
+
+        bm1.compress(Bitmap.CompressFormat.PNG, 100,
+            new FileOutputStream(new File(dir, "maskable-bitmap1-original.png")));
+        test1.compress(Bitmap.CompressFormat.PNG, 100,
+            new FileOutputStream(new File(dir, "maskable-bitmap1-test.png")));
+        if (!equalBitmaps(bm1, test1, draw1.getSafeZone())) {
+            findBitmapDifferences(bm1, test1);
+            fail("maskable bitmap1 differs, check " + dir);
+        }
+    }
+
+    @SmallTest
     public void testWithBitmapResource() throws Exception {
         final Bitmap res1 = ((BitmapDrawable) getContext().getDrawable(R.drawable.landscape))
                 .getBitmap();
@@ -294,17 +329,31 @@
         printBits(aPix, w, h);
     }
     boolean equalBitmaps(Bitmap a, Bitmap b) {
+        return equalBitmaps(a, b, null);
+    }
+
+    boolean equalBitmaps(Bitmap a, Bitmap b, Region region) {
         if (a.getWidth() != b.getWidth() || a.getHeight() != b.getHeight()) return false;
-        
+
         final int w = a.getWidth();
         final int h = a.getHeight();
         int[] aPix = new int[w * h];
         int[] bPix = new int[w * h];
 
-        a.getPixels(aPix, 0, w, 0, 0, w, h);
-        b.getPixels(bPix, 0, w, 0, 0, w, h);
-
-        return Arrays.equals(aPix, bPix);
+        if (region != null) {
+            for (int i = 0; i < w; i++) {
+                for (int j = 0; j < h; j++) {
+                    if (region.contains(i, j) && a.getPixel(i, j) != b.getPixel(i, j)) {
+                        return false;
+                    }
+                }
+            }
+            return true;
+        } else {
+            a.getPixels(aPix, 0, w, 0, 0, w, h);
+            b.getPixels(bPix, 0, w, 0, 0, w, h);
+            return Arrays.equals(aPix, bPix);
+        }
     }
 
     void findBitmapDifferences(Bitmap a, Bitmap b) {
diff --git a/libs/androidfw/include/androidfw/StringPiece.h b/libs/androidfw/include/androidfw/StringPiece.h
index 8f6824b..a873d66 100644
--- a/libs/androidfw/include/androidfw/StringPiece.h
+++ b/libs/androidfw/include/androidfw/StringPiece.h
@@ -271,8 +271,36 @@
   return out.write(str.data(), str.size());
 }
 
+template <typename TChar>
+inline ::std::basic_string<TChar>& operator+=(::std::basic_string<TChar>& lhs,
+                                              const BasicStringPiece<TChar>& rhs) {
+  return lhs.append(rhs.data(), rhs.size());
+}
+
+template <typename TChar>
+inline bool operator==(const ::std::basic_string<TChar>& lhs, const BasicStringPiece<TChar>& rhs) {
+  return rhs == lhs;
+}
+
+template <typename TChar>
+inline bool operator!=(const ::std::basic_string<TChar>& lhs, const BasicStringPiece<TChar>& rhs) {
+  return rhs != lhs;
+}
+
 }  // namespace android
 
+inline ::std::ostream& operator<<(::std::ostream& out, const std::u16string& str) {
+  ssize_t utf8_len = utf16_to_utf8_length(str.data(), str.size());
+  if (utf8_len < 0) {
+    return out << "???";
+  }
+
+  std::string utf8;
+  utf8.resize(static_cast<size_t>(utf8_len));
+  utf16_to_utf8(str.data(), str.size(), &*utf8.begin(), utf8_len + 1);
+  return out << utf8;
+}
+
 namespace std {
 
 template <typename TChar>
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 692199d..ff40c8a 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -189,13 +189,11 @@
     external/harfbuzz_ng/src \
     external/freetype/include
 
-ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
-    hwui_cflags += -DANDROID_ENABLE_RENDERSCRIPT
-    hwui_c_includes += \
-        $(call intermediates-dir-for,STATIC_LIBRARIES,TARGET,) \
-        frameworks/rs/cpp \
-        frameworks/rs
-endif
+# enable RENDERSCRIPT
+hwui_c_includes += \
+    $(call intermediates-dir-for,STATIC_LIBRARIES,TARGET,) \
+    frameworks/rs/cpp \
+    frameworks/rs
 
 # ------------------------
 # static library
diff --git a/libs/hwui/DisplayList.cpp b/libs/hwui/DisplayList.cpp
index 3853356..0ff101c 100644
--- a/libs/hwui/DisplayList.cpp
+++ b/libs/hwui/DisplayList.cpp
@@ -22,6 +22,7 @@
 #include "DamageAccumulator.h"
 #include "Debug.h"
 #include "DisplayList.h"
+#include "OpDumper.h"
 #include "RecordedOp.h"
 #include "RenderNode.h"
 #include "VectorDrawable.h"
@@ -127,5 +128,17 @@
     return isDirty;
 }
 
+void DisplayList::output(std::ostream& output, uint32_t level) {
+    for (auto&& op : getOps()) {
+        OpDumper::dump(*op, output, level + 1);
+        if (op->opId == RecordedOpId::RenderNodeOp) {
+            auto rnOp = reinterpret_cast<const RenderNodeOp*>(op);
+            rnOp->renderNode->output(output, level + 1);
+        } else {
+            output << std::endl;
+        }
+    }
+}
+
 }; // namespace uirenderer
 }; // namespace android
diff --git a/libs/hwui/DisplayList.h b/libs/hwui/DisplayList.h
index ef0fd31..d22a764 100644
--- a/libs/hwui/DisplayList.h
+++ b/libs/hwui/DisplayList.h
@@ -128,6 +128,8 @@
     virtual bool prepareListAndChildren(TreeObserver& observer, TreeInfo& info, bool functorsNeedLayer,
             std::function<void(RenderNode*, TreeObserver&, TreeInfo&, bool)> childFn);
 
+    virtual void output(std::ostream& output, uint32_t level);
+
 protected:
     // allocator into which all ops and LsaVector arrays allocated
     LinearAllocator allocator;
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index 4f9a3de..ee99018 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -33,14 +33,11 @@
 
 #include <algorithm>
 #include <cutils/properties.h>
+#include <RenderScript.h>
 #include <SkGlyph.h>
 #include <SkUtils.h>
 #include <utils/Log.h>
 
-#ifdef ANDROID_ENABLE_RENDERSCRIPT
-#include <RenderScript.h>
-#endif
-
 namespace android {
 namespace uirenderer {
 
@@ -591,17 +588,12 @@
         return image;
     }
 
-#ifdef ANDROID_ENABLE_RENDERSCRIPT
     // Align buffers for renderscript usage
     if (paddedWidth & (RS_CPU_ALLOCATION_ALIGNMENT - 1)) {
         paddedWidth += RS_CPU_ALLOCATION_ALIGNMENT - paddedWidth % RS_CPU_ALLOCATION_ALIGNMENT;
     }
     int size = paddedWidth * paddedHeight;
     uint8_t* dataBuffer = (uint8_t*) memalign(RS_CPU_ALLOCATION_ALIGNMENT, size);
-#else
-    int size = paddedWidth * paddedHeight;
-    uint8_t* dataBuffer = (uint8_t*) malloc(size);
-#endif
 
     memset(dataBuffer, 0, size);
 
@@ -691,7 +683,6 @@
 
 void FontRenderer::blurImage(uint8_t** image, int32_t width, int32_t height, float radius) {
     uint32_t intRadius = Blur::convertRadiusToInt(radius);
-#ifdef ANDROID_ENABLE_RENDERSCRIPT
     if (width * height * intRadius >= RS_MIN_INPUT_CUTOFF && radius <= 25.0f) {
         uint8_t* outImage = (uint8_t*) memalign(RS_CPU_ALLOCATION_ALIGNMENT, width * height);
 
@@ -729,7 +720,6 @@
             return;
         }
     }
-#endif
 
     std::unique_ptr<float[]> gaussian(new float[2 * intRadius + 1]);
     Blur::generateGaussianWeights(gaussian.get(), radius);
diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h
index dd9c40f..329309c 100644
--- a/libs/hwui/FontRenderer.h
+++ b/libs/hwui/FontRenderer.h
@@ -34,7 +34,6 @@
 
 #include <vector>
 
-#ifdef ANDROID_ENABLE_RENDERSCRIPT
 #include "RenderScript.h"
 namespace RSC {
     class Element;
@@ -42,7 +41,6 @@
     class ScriptIntrinsicBlur;
     class sp;
 }
-#endif
 
 namespace android {
 namespace uirenderer {
@@ -201,12 +199,10 @@
     FontCacheHistoryTracker mHistoryTracker;
 #endif
 
-#ifdef ANDROID_ENABLE_RENDERSCRIPT
     // RS constructs
     RSC::sp<RSC::RS> mRs;
     RSC::sp<const RSC::Element> mRsElement;
     RSC::sp<RSC::ScriptIntrinsicBlur> mRsScript;
-#endif
 
     static void computeGaussianWeights(float* weights, int32_t radius);
     static void horizontalBlur(float* weights, int32_t radius, const uint8_t *source, uint8_t *dest,
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index f1c8232..55eeb7f 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -19,7 +19,6 @@
 #include "BakedOpRenderer.h"
 #include "DamageAccumulator.h"
 #include "Debug.h"
-#include "OpDumper.h"
 #include "RecordedOp.h"
 #include "TreeInfo.h"
 #include "utils/FatVector.h"
@@ -99,15 +98,7 @@
     properties().debugOutputProperties(output, level + 1);
 
     if (mDisplayList) {
-        for (auto&& op : mDisplayList->getOps()) {
-            OpDumper::dump(*op, output, level + 1);
-            if (op->opId == RecordedOpId::RenderNodeOp) {
-                auto rnOp = reinterpret_cast<const RenderNodeOp*>(op);
-                rnOp->renderNode->output(output, level + 1);
-            } else {
-                output << std::endl;
-            }
-        }
+        mDisplayList->output(output, level);
     }
     output << std::string(level * 2, ' ') << "/RenderNode(" << getName() << " " << this << ")";
     output << std::endl;
diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h
index a971e83..c4ae82a 100644
--- a/libs/hwui/RenderNode.h
+++ b/libs/hwui/RenderNode.h
@@ -248,6 +248,8 @@
     // Called by CanvasContext when it drops a RenderNode from being a root node
     void clearRoot();
 
+    void output(std::ostream& output, uint32_t level);
+
 private:
     void computeOrderingImpl(RenderNodeOp* opState,
             std::vector<RenderNodeOp*>* compositedChildrenOfProjectionSurface,
@@ -266,7 +268,6 @@
 
     void incParentRefCount() { mParentCount++; }
     void decParentRefCount(TreeObserver& observer, TreeInfo* info = nullptr);
-    void output(std::ostream& output, uint32_t level);
 
     String8 mName;
     sp<VirtualLightRefBase> mUserContext;
diff --git a/libs/hwui/SkiaCanvasProxy.cpp b/libs/hwui/SkiaCanvasProxy.cpp
index f32612d..20ca80b 100644
--- a/libs/hwui/SkiaCanvasProxy.cpp
+++ b/libs/hwui/SkiaCanvasProxy.cpp
@@ -103,6 +103,12 @@
     }
 }
 
+void SkiaCanvasProxy::onDrawArc(const SkRect& rect, SkScalar startAngle, SkScalar sweepAngle,
+                                bool useCenter, const SkPaint& paint) {
+    mCanvas->drawArc(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom,
+                     startAngle, sweepAngle, useCenter, paint);
+}
+
 void SkiaCanvasProxy::onDrawPath(const SkPath& path, const SkPaint& paint) {
     mCanvas->drawPath(path, paint);
 }
diff --git a/libs/hwui/SkiaCanvasProxy.h b/libs/hwui/SkiaCanvasProxy.h
index b3f6c07..3b1dd73 100644
--- a/libs/hwui/SkiaCanvasProxy.h
+++ b/libs/hwui/SkiaCanvasProxy.h
@@ -60,6 +60,8 @@
     virtual void onDrawRect(const SkRect&, const SkPaint&) override;
     virtual void onDrawRRect(const SkRRect&, const SkPaint&) override;
     virtual void onDrawPath(const SkPath& path, const SkPaint&) override;
+    virtual void onDrawArc(const SkRect&, SkScalar startAngle, SkScalar sweepAngle, bool useCenter,
+                           const SkPaint&) override;
     virtual void onDrawBitmap(const SkBitmap&, SkScalar left, SkScalar top,
                               const SkPaint*) override;
     virtual void onDrawBitmapRect(const SkBitmap&, const SkRect* src, const SkRect& dst,
diff --git a/libs/hwui/Texture.cpp b/libs/hwui/Texture.cpp
index 50af9c8..0dbd767 100644
--- a/libs/hwui/Texture.cpp
+++ b/libs/hwui/Texture.cpp
@@ -282,7 +282,7 @@
         setDefaultParams = true;
     }
 
-    sk_sp<SkColorSpace> sRGB = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
+    sk_sp<SkColorSpace> sRGB = SkColorSpace::MakeSRGB();
     bool needSRGB = bitmap.info().colorSpace() == sRGB.get();
 
     GLint internalFormat, format, type;
diff --git a/libs/hwui/VectorDrawable.cpp b/libs/hwui/VectorDrawable.cpp
index 208107f..68d3dd5 100644
--- a/libs/hwui/VectorDrawable.cpp
+++ b/libs/hwui/VectorDrawable.cpp
@@ -564,7 +564,7 @@
 #ifndef ANDROID_ENABLE_LINEAR_BLENDING
         sk_sp<SkColorSpace> colorSpace = nullptr;
 #else
-        sk_sp<SkColorSpace> colorSpace = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
+        sk_sp<SkColorSpace> colorSpace = SkColorSpace::MakeSRGB();
 #endif
         SkImageInfo info = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType, colorSpace);
         cache.bitmap = Bitmap::allocateHeapBitmap(info);
diff --git a/libs/hwui/hwui/Bitmap.cpp b/libs/hwui/hwui/Bitmap.cpp
index 3e10b36..f9730c9 100644
--- a/libs/hwui/hwui/Bitmap.cpp
+++ b/libs/hwui/hwui/Bitmap.cpp
@@ -232,7 +232,7 @@
         return nullptr;
     }
 
-    sk_sp<SkColorSpace> sRGB = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
+    sk_sp<SkColorSpace> sRGB = SkColorSpace::MakeSRGB();
     bool needSRGB = skBitmap.info().colorSpace() == sRGB.get();
     bool hasSRGB = caches.extensions().hasSRGB();
     GLint format, type, internalFormat;
@@ -324,7 +324,7 @@
     }
     SkImageInfo info = SkImageInfo::Make(graphicBuffer->getWidth(), graphicBuffer->getHeight(),
             kRGBA_8888_SkColorType, kPremul_SkAlphaType,
-            SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named));
+            SkColorSpace::MakeSRGB());
     return sk_sp<Bitmap>(new Bitmap(graphicBuffer.get(), info));
 }
 
diff --git a/libs/hwui/hwui_static_deps.mk b/libs/hwui/hwui_static_deps.mk
index f69da48..a75fd6a 100644
--- a/libs/hwui/hwui_static_deps.mk
+++ b/libs/hwui/hwui_static_deps.mk
@@ -28,6 +28,5 @@
     libminikin \
     libandroidfw
 
-ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
-    LOCAL_SHARED_LIBRARIES += libRScpp
-endif
+# enable RENDERSCRIPT
+LOCAL_SHARED_LIBRARIES += libRScpp
diff --git a/libs/hwui/pipeline/skia/DumpOpsCanvas.h b/libs/hwui/pipeline/skia/DumpOpsCanvas.h
new file mode 100644
index 0000000..34fb04c
--- /dev/null
+++ b/libs/hwui/pipeline/skia/DumpOpsCanvas.h
@@ -0,0 +1,185 @@
+/*
+ * Copyright (C) 2017 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.
+ */
+
+#pragma once
+
+#include "SkiaDisplayList.h"
+
+namespace android {
+namespace uirenderer {
+namespace skiapipeline {
+
+/**
+ * DumpOpsCanvas prints drawing ops from a SkiaDisplayList into a std::ostream. Children render
+ * nodes are walked recursively and their drawing ops are printed as well.
+ */
+class DumpOpsCanvas : public SkCanvas {
+public:
+    DumpOpsCanvas(std::ostream& output, int level, SkiaDisplayList& displayList)
+            : mOutput(output)
+            , mLevel(level)
+            , mDisplayList(displayList)
+            , mIdent((level + 1) * 2, ' ') {
+    }
+
+protected:
+    void onClipRect(const SkRect& rect, SkClipOp, ClipEdgeStyle) override {
+        mOutput << mIdent << "clipRect" << std::endl;
+    }
+
+    void onClipRRect(const SkRRect& rrect, SkClipOp, ClipEdgeStyle) override {
+        mOutput << mIdent << "clipRRect" << std::endl;
+    }
+
+    void onClipPath(const SkPath& path, SkClipOp, ClipEdgeStyle) override {
+        mOutput << mIdent << "clipPath" << std::endl;
+    }
+
+    void onClipRegion(const SkRegion& deviceRgn, SkClipOp) override {
+        mOutput << mIdent << "clipRegion" << std::endl;
+    }
+
+    void onDrawPaint(const SkPaint&) override {
+        mOutput << mIdent << "drawPaint" << std::endl;
+    }
+
+    void onDrawPath(const SkPath&, const SkPaint&) override {
+        mOutput << mIdent << "drawPath" << std::endl;
+    }
+
+    void onDrawRect(const SkRect&, const SkPaint&) override {
+        mOutput << mIdent << "drawRect" << std::endl;
+    }
+
+    void onDrawRegion(const SkRegion&, const SkPaint&) override {
+        mOutput << mIdent << "drawRegion" << std::endl;
+    }
+
+    void onDrawOval(const SkRect&, const SkPaint&) override {
+        mOutput << mIdent << "drawOval" << std::endl;
+    }
+
+    void onDrawArc(const SkRect&, SkScalar, SkScalar, bool, const SkPaint&) override {
+        mOutput << mIdent << "drawArc" << std::endl;
+    }
+
+    void onDrawRRect(const SkRRect&, const SkPaint&) override {
+        mOutput << mIdent << "drawRRect" << std::endl;
+    }
+
+    void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override {
+        mOutput << mIdent << "drawDRRect" << std::endl;
+    }
+
+    void onDrawText(const void*, size_t, SkScalar, SkScalar, const SkPaint&) override {
+        mOutput << mIdent << "drawText" << std::endl;
+    }
+
+    void onDrawPosText(const void*, size_t, const SkPoint[], const SkPaint&) override {
+        mOutput << mIdent << "drawPosText" << std::endl;
+    }
+
+    void onDrawPosTextH(const void*, size_t, const SkScalar[], SkScalar,
+            const SkPaint&) override {
+        mOutput << mIdent << "drawPosTextH" << std::endl;
+    }
+
+    void onDrawTextOnPath(const void*, size_t, const SkPath&, const SkMatrix*,
+            const SkPaint&) override {
+        mOutput << mIdent << "drawTextOnPath" << std::endl;
+    }
+
+    void onDrawTextRSXform(const void*, size_t, const SkRSXform[], const SkRect*,
+            const SkPaint&) override {
+        mOutput << mIdent << "drawTextRSXform" << std::endl;
+    }
+
+    void onDrawTextBlob(const SkTextBlob*, SkScalar,SkScalar, const SkPaint&) override {
+        mOutput << mIdent << "drawTextBlob" << std::endl;
+    }
+
+    void onDrawImage(const SkImage*, SkScalar dx, SkScalar dy, const SkPaint*) override {
+        mOutput << mIdent << "drawImage" << std::endl;
+    }
+
+    void onDrawImageNine(const SkImage*, const SkIRect& center, const SkRect& dst,
+            const SkPaint*) override {
+        mOutput << mIdent << "drawImageNine" << std::endl;
+    }
+
+    void onDrawImageRect(const SkImage*, const SkRect*, const SkRect&, const SkPaint*,
+            SrcRectConstraint) override {
+        mOutput << mIdent << "drawImageRect" << std::endl;
+    }
+
+    void onDrawImageLattice(const SkImage*, const Lattice& lattice, const SkRect& dst,
+            const SkPaint*) override {
+        mOutput << mIdent << "drawImageLattice" << std::endl;
+    }
+
+    void onDrawPoints(SkCanvas::PointMode, size_t, const SkPoint[], const SkPaint&) override {
+        mOutput << mIdent << "drawPoints" << std::endl;
+    }
+
+    void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) override {
+        mOutput << mIdent << "drawPicture" << std::endl;
+    }
+
+    void onDrawDrawable(SkDrawable* drawable, const SkMatrix*) override {
+        mOutput << mIdent;
+        auto renderNodeDrawable = getRenderNodeDrawable(drawable);
+        if (nullptr != renderNodeDrawable) {
+            mOutput << std::string(mLevel * 2, ' ') << "drawRenderNode";
+            renderNodeDrawable->getRenderNode()->output(mOutput, mLevel + 1);
+            return;
+        }
+        auto glFunctorDrawable = getGLFunctorDrawable(drawable);
+        if (nullptr != glFunctorDrawable) {
+            mOutput << std::string(mLevel * 2, ' ') << "drawGLFunctorDrawable" << std::endl;
+            return;
+        }
+
+        mOutput << std::string(mLevel * 2, ' ') << "drawDrawable" << std::endl;
+    }
+
+private:
+    RenderNodeDrawable* getRenderNodeDrawable(SkDrawable* drawable) {
+         for (auto& child : mDisplayList.mChildNodes) {
+            if (drawable == &child) {
+                return &child;
+            }
+         }
+         return nullptr;
+    }
+
+    GLFunctorDrawable* getGLFunctorDrawable(SkDrawable* drawable) {
+         for (auto& child : mDisplayList.mChildFunctors) {
+            if (drawable == &child) {
+                return &child;
+            }
+         }
+         return nullptr;
+    }
+
+    std::ostream& mOutput;
+    int mLevel;
+    SkiaDisplayList& mDisplayList;
+    std::string mIdent;
+};
+
+}; // namespace skiapipeline
+}; // namespace uirenderer
+}; // namespace android
diff --git a/libs/hwui/pipeline/skia/SkiaDisplayList.cpp b/libs/hwui/pipeline/skia/SkiaDisplayList.cpp
index 36d02ecb..b4babcb 100644
--- a/libs/hwui/pipeline/skia/SkiaDisplayList.cpp
+++ b/libs/hwui/pipeline/skia/SkiaDisplayList.cpp
@@ -18,6 +18,7 @@
 
 #include "renderthread/CanvasContext.h"
 #include "VectorDrawable.h"
+#include "DumpOpsCanvas.h"
 
 #include <SkImagePriv.h>
 
@@ -116,6 +117,11 @@
     new (&allocator) LinearAllocator();
 }
 
+void SkiaDisplayList::output(std::ostream& output, uint32_t level) {
+    DumpOpsCanvas canvas(output, level, *this);
+    mDrawable->draw(&canvas, nullptr);
+}
+
 }; // namespace skiapipeline
 }; // namespace uirenderer
 }; // namespace android
diff --git a/libs/hwui/pipeline/skia/SkiaDisplayList.h b/libs/hwui/pipeline/skia/SkiaDisplayList.h
index 2a01330..439b999 100644
--- a/libs/hwui/pipeline/skia/SkiaDisplayList.h
+++ b/libs/hwui/pipeline/skia/SkiaDisplayList.h
@@ -126,6 +126,8 @@
      */
     inline bool containsProjectionReceiver() const { return mProjectionReceiver; }
 
+    void output(std::ostream& output, uint32_t level) override;
+
     /**
      * We use std::deque here because (1) we need to iterate through these
      * elements and (2) mDrawable holds pointers to the elements, so they cannot
diff --git a/libs/hwui/tests/unit/SkiaBehaviorTests.cpp b/libs/hwui/tests/unit/SkiaBehaviorTests.cpp
index f32d97a..03e6b7f 100644
--- a/libs/hwui/tests/unit/SkiaBehaviorTests.cpp
+++ b/libs/hwui/tests/unit/SkiaBehaviorTests.cpp
@@ -93,7 +93,7 @@
 }
 
 TEST(SkiaBehavior, srgbColorSpaceIsSingleton) {
-    sk_sp<SkColorSpace> sRGB1 = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
-    sk_sp<SkColorSpace> sRGB2 = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
+    sk_sp<SkColorSpace> sRGB1 = SkColorSpace::MakeSRGB();
+    sk_sp<SkColorSpace> sRGB2 = SkColorSpace::MakeSRGB();
     ASSERT_EQ(sRGB1.get(), sRGB2.get());
 }
diff --git a/libs/hwui/utils/TestWindowContext.cpp b/libs/hwui/utils/TestWindowContext.cpp
index 79fc864..ecad7be 100644
--- a/libs/hwui/utils/TestWindowContext.cpp
+++ b/libs/hwui/utils/TestWindowContext.cpp
@@ -109,7 +109,7 @@
     }
 
     bool capturePixels(SkBitmap* bmp) {
-        sk_sp<SkColorSpace> colorSpace = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
+        sk_sp<SkColorSpace> colorSpace = SkColorSpace::MakeSRGB();
         SkImageInfo destinationConfig =
             SkImageInfo::Make(mSize.width(), mSize.height(),
                               kRGBA_8888_SkColorType, kPremul_SkAlphaType, colorSpace);
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index 3e88450..7a6499d 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -910,7 +910,7 @@
      * not start another recording session during recording.
      *
      * @throws IllegalStateException if it is called before
-     * prepare().
+     * prepare() or when the camera is already in use by another app.
      */
     public native void start() throws IllegalStateException;
 
diff --git a/native/android/Android.mk b/native/android/Android.mk
index f510b48..f8405ef 100644
--- a/native/android/Android.mk
+++ b/native/android/Android.mk
@@ -12,10 +12,12 @@
     choreographer.cpp \
     configuration.cpp \
     hardware_buffer.cpp \
+    hardware_buffer_jni.cpp \
     input.cpp \
     looper.cpp \
     native_activity.cpp \
     native_window.cpp \
+    native_window_jni.cpp \
     net.c \
     obb.cpp \
     sensor.cpp \
diff --git a/native/android/hardware_buffer.cpp b/native/android/hardware_buffer.cpp
index e5e928d..77ebd52 100644
--- a/native/android/hardware_buffer.cpp
+++ b/native/android/hardware_buffer.cpp
@@ -16,24 +16,25 @@
 
 #define LOG_TAG "AHardwareBuffer"
 
-#include <android/hardware_buffer_jni.h>
+#include <android/hardware_buffer.h>
 
 #include <errno.h>
 #include <sys/socket.h>
 
 #include <memory>
 
-#include <android_runtime/android_hardware_HardwareBuffer.h>
-#include <binder/Binder.h>
-#include <binder/Parcel.h>
-#include <binder/IServiceManager.h>
 #include <cutils/native_handle.h>
+
+#include <utils/Log.h>
+
+#include <ui/GraphicBuffer.h>
+
+#include <binder/IServiceManager.h>
 #include <gui/ISurfaceComposer.h>
 #include <gui/IGraphicBufferAlloc.h>
-#include <hardware/gralloc1.h>
-#include <ui/GraphicBuffer.h>
-#include <utils/Flattenable.h>
-#include <utils/Log.h>
+
+#include <android_runtime/android_hardware_HardwareBuffer.h>
+
 
 static constexpr int kDataBufferSize = 64 * sizeof(int);  // 64 ints
 
@@ -299,19 +300,3 @@
     const GraphicBuffer* gbuffer = AHardwareBuffer_to_GraphicBuffer(buffer);
     return gbuffer->handle;
 }
-
-// ----------------------------------------------------------------------------
-// JNI functions
-// ----------------------------------------------------------------------------
-
-AHardwareBuffer* AHardwareBuffer_fromHardwareBuffer(JNIEnv* env,
-        jobject hardwareBufferObj) {
-    return android_hardware_HardwareBuffer_getNativeHardwareBuffer(env,
-            hardwareBufferObj);
-}
-
-jobject AHardwareBuffer_toHardwareBuffer(JNIEnv* env,
-        AHardwareBuffer* hardwareBuffer) {
-    return android_hardware_HardwareBuffer_createFromAHardwareBuffer(env,
-            hardwareBuffer);
-}
diff --git a/native/android/hardware_buffer_jni.cpp b/native/android/hardware_buffer_jni.cpp
new file mode 100644
index 0000000..06b0782
--- /dev/null
+++ b/native/android/hardware_buffer_jni.cpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "AHardwareBuffer"
+
+#include <android/hardware_buffer_jni.h>
+
+#include <android_runtime/android_hardware_HardwareBuffer.h>
+
+using namespace android;
+
+AHardwareBuffer* AHardwareBuffer_fromHardwareBuffer(JNIEnv* env, jobject hardwareBufferObj) {
+    return android_hardware_HardwareBuffer_getNativeHardwareBuffer(env, hardwareBufferObj);
+}
+
+jobject AHardwareBuffer_toHardwareBuffer(JNIEnv* env, AHardwareBuffer* hardwareBuffer) {
+    return android_hardware_HardwareBuffer_createFromAHardwareBuffer(env, hardwareBuffer);
+}
diff --git a/native/android/native_window.cpp b/native/android/native_window.cpp
index ca0c9028..8c080d7 100644
--- a/native/android/native_window.cpp
+++ b/native/android/native_window.cpp
@@ -15,22 +15,9 @@
  */
 
 #define LOG_TAG "Surface"
-#include <utils/Log.h>
 
-#include <android/native_window_jni.h>
-#include <gui/Surface.h>
-#include <android_runtime/android_view_Surface.h>
-#include <android_runtime/android_graphics_SurfaceTexture.h>
-
-using namespace android;
-
-ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface) {
-    sp<ANativeWindow> win = android_view_Surface_getNativeWindow(env, surface);
-    if (win != NULL) {
-        win->incStrong((void*)ANativeWindow_acquire);
-    }
-    return win.get();
-}
+#include <android/native_window.h>
+#include <system/window.h>
 
 void ANativeWindow_acquire(ANativeWindow* window) {
     window->incStrong((void*)ANativeWindow_acquire);
diff --git a/native/android/native_window_jni.cpp b/native/android/native_window_jni.cpp
new file mode 100644
index 0000000..dc30405
--- /dev/null
+++ b/native/android/native_window_jni.cpp
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "Surface"
+
+#include <android/native_window_jni.h>
+#include <android/native_window.h>
+#include <system/window.h>
+
+#include <utils/StrongPointer.h>
+
+#include <android_runtime/android_view_Surface.h>
+
+using namespace android;
+
+ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface) {
+    sp<ANativeWindow> win = android_view_Surface_getNativeWindow(env, surface);
+    if (win != NULL) {
+        win->incStrong((void*)ANativeWindow_fromSurface);
+    }
+    return win.get();
+}
diff --git a/packages/Keyguard/Android.mk b/packages/Keyguard/Android.mk
deleted file mode 100644
index 38cf559..0000000
--- a/packages/Keyguard/Android.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (C) 2013 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := SystemUI-tags
-
-LOCAL_SRC_FILES := src/com/android/systemui/EventLogTags.logtags
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-# ------------------
-
-include $(CLEAR_VARS)
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-subdir-Iaidl-files)
-
-LOCAL_MODULE := Keyguard
-
-LOCAL_CERTIFICATE := platform
-
-LOCAL_JAVA_LIBRARIES := SettingsLib
-
-LOCAL_STATIC_JAVA_LIBRARIES = SystemUI-tags
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_JAR_EXCLUDE_FILES := none
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-#include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/packages/Keyguard/res/values-af/strings.xml b/packages/Keyguard/res/values-af/strings.xml
deleted file mode 100644
index a338165..0000000
--- a/packages/Keyguard/res/values-af/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Voer PIN-kode in"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Voer SIM PUK- en nuwe PIN-kode in"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK-kode"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nuwe SIM PIN-kode"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Raak om wagwoord in te voer"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Voer wagwoord in om te ontsluit"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Voer PIN in om te ontsluit"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Verkeerde PIN-kode."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Gelaai"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Laai tans"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Laai tans vinnig"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Laai tans stadig"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Koppel jou herlaaier."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Druk kieslys om te ontsluit."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Netwerk gesluit"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Geen SIM-kaart nie"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Geen SIM-kaart in tablet nie."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Geen SIM-kaart in foon nie."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Steek \'n SIM-kaart in."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Die SIM-kaart is weg of nie leesbaar nie. Steek \'n SIM-kaart in."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Onbruikbare SIM-kaart."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Jou SIM-kaart is permanent gedeaktiveer.\n Kontak jou draadlose diensverskaffer vir \'n ander SIM-kaart."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kaart is gesluit."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kaart is PUK-geslote."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ontsluit tans SIM-kaart…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-area"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-PIN-area"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-PUK-area"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Volgende wekker gestel vir <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Vee uit"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Invoersleutel"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Het jy die patroon vergeet?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Verkeerde patroon"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Verkeerde wagwoord"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Verkeerde PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Probeer weer oor <xliff:g id="NUMBER">%d</xliff:g> sekondes."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Teken jou patroon"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Voer SIM-PIN in"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Voer SIM se PIN vir \"<xliff:g id="CARRIER">%1$s</xliff:g>\" in"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Voer PIN in"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Voer wagwoord in"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM is nou gedeaktiveer. Voer PUK-kode in om voort te gaan. Kontak diensverskaffer vir details."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" is nou gedeaktiveer. Voer die PUK-kode in om voort te gaan. Kontak die diensverskaffer vir besonderhede."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Voer die gewenste PIN-kode in"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Bevestig gewenste PIN-kode"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Ontsluit tans SIM-kaart…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Tik \'n PIN in wat 4 tot 8 syfers lank is."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-kode moet 8 of meer syfers wees."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Voer weer die korrekte PUK-kode in. Herhaalde pogings sal die SIM permanent deaktiveer."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-kodes stem nie ooreen nie"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Te veel patroonpogings"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Jy het jou PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerd ingetik. \n\nProbeer weer oor <xliff:g id="NUMBER_1">%2$d</xliff:g> sekondes."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Jy het <xliff:g id="NUMBER_0">%1$d</xliff:g> keer jou wagwoord verkeerdelik getik. \n\nProbeer weer oor <xliff:g id="NUMBER_1">%2$d</xliff:g> sekondes."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Jy het jou ontsluitpatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerdelik geteken. \n\nProbeer weer oor <xliff:g id="NUMBER_1">%2$d</xliff:g> sekondes."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Jy het die tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerd probeer ontsluit. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings sal hierdie tablet teruggestel word, wat al sy data sal uitvee."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Jy het die foon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerd probeer ontsluit. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings sal hierdie foon teruggestel word, wat al sy data sal uitvee."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Jy het die tablet <xliff:g id="NUMBER">%d</xliff:g> keer verkeerd probeer ontsluit. Hierdie tablet sal teruggestel word, wat al sy data sal uitvee."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Jy het die foon <xliff:g id="NUMBER">%d</xliff:g> keer verkeerd probeer ontsluit. Hierdie foon sal teruggestel word, wat al sy data sal uitvee."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Jy het die tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerd probeer ontsluit. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings sal hierdie gebruiker verwyder word, wat alle gebruikerdata sal uitvee."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Jy het die foon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerd probeer ontsluit. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings sal hierdie gebruiker verwyder word, wat alle gebruikerdata sal uitvee."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Jy het die tablet <xliff:g id="NUMBER">%d</xliff:g> keer verkeerd probeer ontsluit. Hierdie gebruiker sal verwyder word, wat alle gebruikerdata sal uitvee."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Jy het die foon <xliff:g id="NUMBER">%d</xliff:g> keer verkeerd probeer ontsluit. Hierdie gebruiker sal verwyder word, wat alle gebruikerdata sal uitvee."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Jy het die tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerd probeer ontsluit. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings sal die werkprofiel verwyder word, wat alle profieldata sal uitvee."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Jy het die foon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerd probeer ontsluit. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings sal die werkprofiel verwyder word, wat alle profieldata sal uitvee."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Jy het die tablet <xliff:g id="NUMBER">%d</xliff:g> keer verkeerd probeer ontsluit. Die werkprofiel sal verwyder word, wat alle profieldata sal uitvee."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Jy het die foon <xliff:g id="NUMBER">%d</xliff:g> keer verkeerd probeer ontsluit. Die werkprofiel sal verwyder word, wat alle profieldata sal uitvee."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Jy het jou ontsluitpatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerdelik geteken. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings, sal jy gevra word om jou tablet te ontsluit deur middel van \'n e-posrekening.\n\n Probeer weer oor <xliff:g id="NUMBER_2">%3$d</xliff:g> sekondes."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Jy het jou ontsluitpatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerdelik geteken. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings, sal jy gevra word om jou foon te ontsluit deur middel van \'n e-posrekening.\n\n Probeer weer oor <xliff:g id="NUMBER_2">%3$d</xliff:g> sekondes."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Verkeerde SIM PIN-kode, jy sal nou jou diensverskaffer moet kontak om jou toestel te ontsluit."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Verkeerde SIM-PIN-kode. Jy het <xliff:g id="NUMBER_1">%d</xliff:g> pogings oor.</item>
-      <item quantity="one">Verkeerde SIM-PIN-kode. Jy het <xliff:g id="NUMBER_0">%d</xliff:g> poging oor voordat jy jou diensverskaffer moet kontak om jou toestel te ontsluit.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM is onbruikbaar. Kontak jou diensverskaffer."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Verkeerde SIM-PUK-kode. Jy het <xliff:g id="NUMBER_1">%d</xliff:g> pogings oor voordat SIM permanent onbruikbaar word.</item>
-      <item quantity="one">Verkeerde SIM-PUK-kode. Jy het <xliff:g id="NUMBER_0">%d</xliff:g> poging oor voordat SIM permanent onbruikbaar word.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN-bewerking het misluk!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK-bewerking het misluk!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kode is aanvaar!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Geen diens nie."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Wissel invoermetode"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Vliegtuigmodus"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Patroon word vereis nadat toestel herbegin het"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN word vereis nadat toestel herbegin het"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Wagwoord word vereis nadat toestel herbegin het"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Patroon word vir bykomende sekuriteit vereis"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN word vir bykomende sekuriteit vereis"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Wagwoord word vir bykomende sekuriteit vereis"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Patroon word vereis wanneer jy profiele wissel"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN word vereis wanneer jy profiele wissel"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Wagwoord word vereis wanneer jy profiele wissel"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Toesteladministrateur het toestel gesluit"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Toestel is handmatig gesluit"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Toestel is <xliff:g id="NUMBER_1">%d</xliff:g> uur lank nie ontsluit nie. Bevestig patroon.</item>
-      <item quantity="one">Toestel is <xliff:g id="NUMBER_0">%d</xliff:g> uur lank nie ontsluit nie. Bevestig patroon.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Toestel is <xliff:g id="NUMBER_1">%d</xliff:g> uur lank nie ontsluit nie. Bevestig PIN.</item>
-      <item quantity="one">Toestel is <xliff:g id="NUMBER_0">%d</xliff:g> uur lank nie ontsluit nie. Bevestig PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Toestel is <xliff:g id="NUMBER_1">%d</xliff:g> uur lank nie ontsluit nie. Bevestig wagwoord.</item>
-      <item quantity="one">Toestel is <xliff:g id="NUMBER_0">%d</xliff:g> uur lank nie ontsluit nie. Bevestig wagwoord.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nie herken nie"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-am/strings.xml b/packages/Keyguard/res/values-am/strings.xml
deleted file mode 100644
index 67fdc32..0000000
--- a/packages/Keyguard/res/values-am/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"ፒን ኮድ ተይብ"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"የሲም PUK እና አዲሱን ፒን ኮድ ይተይቡ"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"የሲም PUK ኮድ"</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">"ለመክፈት ፒን ተይብ"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"ትክክል ያልሆነ ፒን  ኮድ።"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ባትሪ ሞልቷል"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ኃይል በመሙላት ላይ"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"ኃይል በፍጥነት በመሙላት ላይ"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"ኃይል በዝግታ በመሙላት ላይ"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"የኃይል መሙያዎን ይሰኩ።"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"ለመክፈት ምናሌውን ይጫኑ።"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"አውታረ መረብ ተቆልፏል"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"ምንም ሲም ካርድ የለም"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"በጡባዊ ውስጥ ምንም ሲም ካርድ የለም።"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"በስልኩ ውስጥ ምንም ሲም ካርድ የለም።"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ሲም ካርድ ያስገቡ።"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"ሲም ካርዱ ጠፍቷል ወይም መነበብ አይችልም። እባክዎ ሲም ሲም ካርድ ያስገቡ።"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"የማይሰራ ሲም ካርድ።"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"ሲም ካርድዎ እስከመጨረሻው ተሰናክሏል።\n ሌላ ሲም ካርድ ለማግኘት ከገመድ አልባ አገልግሎት አቅራቢዎ ጋር ይገናኙ።"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ሲም ካርድ ተዘግቷል።"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ሲም ካርድ በፒዩኬ ተዘግቷል።"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ሲም ካርዱን በመክፈት ላይ…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"የፒን አካባቢ"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"የሲም ፒን አካባቢ"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"የሲም PUK አካባቢ"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ቀጣዩ ማንቂያ ለ<xliff:g id="ALARM">%1$s</xliff:g> ተዘጋጅቷል"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ሰርዝ"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"አስገባ"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ስርዓተ ጥለቱን እርሳ"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"የተሳሳተ ስርዓተ ጥለት"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"የተሳሳተ ይለፍ ቃል"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"የተሳሳተ ፒን"</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">"የሲም ፒን ያስገቡ"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"የ«<xliff:g id="CARRIER">%1$s</xliff:g>» ሲም ፒን ያስገቡ"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"ፒን ያስገቡ"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"የይለፍ ቃል ያስገቡ"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"ሲም አሁን ተሰናክሏል። ለመቀጠል የPUK ኮድ ያስገቡ። ለዝርዝር ድምጸ ተያያዥ ሞደምን ያግኙ።"</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"ሲም «<xliff:g id="CARRIER">%1$s</xliff:g>» አሁን ተሰናክሏል። ለመቀጠል የፒዩኬ ኮድ ያስገቡ። ዝርዝር መረጃን ለማግኘት የተንቀሳቃሽ ስልክ አገልግሎት አቅራቢውን ያነጋግሩ።"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"የተፈለገውን የፒን ኮድ ያስገቡ"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"የተፈለገውን የፒን ኮድ ያረጋግጡ"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"ሲም ካርዱን በመክፈት ላይ…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"ከ4 እስከ 8 ቁጥሮች የያዘ ፒን ይተይቡ።"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"የPUK ኮድ 8 ወይም ከዚያ በላይ ቁጥሮች ሊኖረው ይገባል።"</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"ትክክለኛውን የPUK ኮድ እንደገና ያስገቡ። ተደጋጋሚ ሙከራዎች ሲም ካርዱን እስከመጨረሻው ያሰናክሉታል።"</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"ፒን ኮዶች አይገጣጠሙም"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"በጣም ብዙ የስርዓተ ጥለት ሙከራዎች"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"ፒንዎን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ በትክክል አልተየቡም። \n\nበ<xliff:g id="NUMBER_1">%2$d</xliff:g> ሰኮንዶች ውስጥ እንደገና ይሞክሩ።"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"የይለፍ ቃልዎን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ ትክክል ባልሆነ መንገድ ተይበዋል።\n\nበ<xliff:g id="NUMBER_1">%2$d</xliff:g> ሰኮንዶች ውስጥ እንደገና ይሞክሩ።"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"የመክፈቻ ስርዓተ ጥለትዎን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ በትክክል አልሳሉትም። \n\n ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ሰከንዶች በኋላ እንደገና ይሞክሩ።"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"ጡባዊውን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ ይህ ስልክ ዳግም ይጀመራል፣ ይህም ሁሉንም ውሂቡን ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"ስልኩን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ ይህ ስልክ ዳግም ይጀመራል፣ ይህም ሁሉንም ውሂቡን ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"ጡባዊውን <xliff:g id="NUMBER">%d</xliff:g> ጊዜ ትክክል ባልሆነ ሁኔታ ለማስከፈት ሞክረዋል። ስልኩ ዳግም ይጀመራል፣ ይህም ሁሉንም ውሂቡን ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"ስልኩን <xliff:g id="NUMBER">%d</xliff:g> ጊዜ ትክክል ባልሆነ ሁኔታ ለማስከፈት ሞክረዋል። ስልኩ ዳግም ይጀመራል፣ ይህም ሁሉንም ውሂቡን ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"ጡባዊውን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ ይህ ተጠቃሚ ይወገዳል፣ ይህም ሁሉንም የተጠቃሚ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"ስልኩን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ ይህ ተጠቃሚ ይወገዳል፣ ይህም ሁሉንም የተጠቃሚ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"ጡባዊውን <xliff:g id="NUMBER">%d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ይህ ተጠቃሚ ይወገዳል፣ ይህም ሁሉንም የተጠቃሚ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"ስልኩን <xliff:g id="NUMBER">%d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ይህ ተጠቃሚ ይወገዳል፣ ይህም ሁሉንም የተጠቃሚ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"ጡባዊውን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ የስራ መገለጫው ይወገዳል፣ ይህም ሁሉንም የመገለጫ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"ስልኩን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ የስራ መገለጫው ይወገዳል፣ ይህም ሁሉንም የመገለጫ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"ጡባዊውን <xliff:g id="NUMBER">%d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። የስራ መገለጫው ይወገዳል፣ ይህም ሁሉንም የመገለጫ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"ስልኩን <xliff:g id="NUMBER">%d</xliff:g> ጊዜ ትክክል ባልሆነ መልኩ ለማስከፈት ሞክረዋል። የስራ መገለጫው ይወገዳል፣ ይህም ሁሉንም የመገለጫ ውሂብ ይሰርዛል።"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"የመክፈቻ ስርዓተ ጥለቱን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ በትክክል አልሳሉትም። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ የኢሜይል መለያ ተጠቅመው ጡባዊ ቱኮዎን እንዲከፍቱ ይጠየቃሉ።\n\n ከ<xliff:g id="NUMBER_2">%3$d</xliff:g> ከሰከንዶች በኋላ እንደገና ይሞክሩ።"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"የመክፈቻ ስርዓተ ጥለቱን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ በትክክል አልሳሉትም። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ የኢሜይል መለያ ተጠቅመው ስልክዎን እንዲከፍቱ ይጠየቃሉ።\n\nእባክዎ ከ<xliff:g id="NUMBER_2">%3$d</xliff:g> ሰከንዶች በኋላ እንደገና ይሞክሩ።"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"ልክ ያልሆነ የሲም ኮድ። አሁን መሳሪያዎን ለማስከፈት ድምጸ ተያያዥ ሞደምዎን ማግኘት አለብዎ።"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">ልክ ያልሆነ የሲም ፒን ኮድ፣ <xliff:g id="NUMBER_1">%d</xliff:g> ሙከራዎች ይቀርዎታል።</item>
-      <item quantity="other">ልክ ያልሆነ የሲም ፒን ኮድ፣ <xliff:g id="NUMBER_1">%d</xliff:g> ሙከራዎች ይቀርዎታል።</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"ሲሙ ጥቅም ላይ መዋል እይችልም። የእርስዎን ድምጸ ተያያዥ ሞደም ያግኙ።"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">ልክ ያልሆነ የሲም PUK ኮድ፣ ሲም ካርድዎ በቋሚነት ጥቅም ላይ መዋል የማይችል ሊሆን <xliff:g id="NUMBER_1">%d</xliff:g> ሙከራዎች ይቀሩዎታል።</item>
-      <item quantity="other">ልክ ያልሆነ የሲም PUK ኮድ፣ ሲም ካርድዎ በቋሚነት ጥቅም ላይ መዋል የማይችል ሊሆን <xliff:g id="NUMBER_1">%d</xliff:g> ሙከራዎች ይቀሩዎታል።</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"የሲም ፒን ክወና አልተሳካም!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"የሲም PUK ክወና አልተሳካም!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"ኮዱ ተቀባይነት አግኝቷል!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"ከአገልግሎት መስጫ ክልል ውጪ።"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"የግቤት ስልት ቀይር"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"የአውሮፕላን ሁነታ"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"መሣሪያ ዳግም ከጀመረ በኋላ ሥርዓተ ጥለት ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"መሣሪያ ዳግም ከጀመረ በኋላ ፒን ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"መሣሪያ ዳግም ከጀመረ በኋላ የይለፍ ቃል ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"ሥርዓተ ጥለት ለተጨማሪ ደህንነት ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"ፒን ለተጨማሪ ደህንነት ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"የይለፍ ቃል ለተጨማሪ ደህንነት ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"መገለጫዎችን በሚቀያይሯቸው ጊዜ ሥርዓተ ጥለት ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"መገለጫዎችን በሚቀያይሯቸው ፒን ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"መገለጫዎችን በሚቀያይሯቸው ጊዜ የይለፍ ቃል ያስፈልጋል"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"የመሣሪያ አስተዳዳሪ መሣሪያውን ቆልፏል"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"መሣሪያ በእጅ ተቆልፏል"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">መሳሪያው ለ<xliff:g id="NUMBER_1">%d</xliff:g>ሰዓቶች አልተከፈተም ነበር። ስርዓተ ጥለት ያረጋግጡ።</item>
-      <item quantity="other">መሳሪያው ለ<xliff:g id="NUMBER_1">%d</xliff:g>ሰዓቶች አልተከፈተም ነበር። ስርዓተ ጥለት ያረጋግጡ።</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">መሳሪያው ለ<xliff:g id="NUMBER_1">%d</xliff:g> ሰዓቶች አልተከፈተም ነበር። ፒን ያረጋግጡ።</item>
-      <item quantity="other">መሳሪያው ለ<xliff:g id="NUMBER_1">%d</xliff:g> ሰዓቶች አልተከፈተም ነበር። ፒን ያረጋግጡ።</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">መሳሪያው ለ<xliff:g id="NUMBER_1">%d</xliff:g> ሰዓቶች አልተከፈተም ነበር። የይለፍ ቃል ያረጋግጡ።</item>
-      <item quantity="other">መሳሪያው ለ<xliff:g id="NUMBER_1">%d</xliff:g> ሰዓቶች አልተከፈተም ነበር። የይለፍ ቃል ያረጋግጡ።</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"አልታወቀም"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ar/strings.xml b/packages/Keyguard/res/values-ar/strings.xml
deleted file mode 100644
index 8438699..0000000
--- a/packages/Keyguard/res/values-ar/strings.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"‏اكتب رمز رمز PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"‏أدخل رمز PUK لبطاقة SIM ورمز \"رقم التعريف الشخصي\" الجديد"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"‏رمز PUK لبطاقة SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"‏رمز \"رقم تعريف شخصي\" جديد لبطاقة SIM"</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_wrong_pin_code" msgid="2422225591006134936">"‏رمز PIN غير صحيح."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"تم الشحن"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"جارٍ الشحن"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"الشحن سريعًا"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"الشحن ببطء"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"توصيل جهاز الشحن."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"اضغط على \"القائمة\" لإلغاء القفل."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"الشبكة مؤمّنة"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"‏ليست هناك شريحة SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"‏ليست هناك شريحة SIM في الجهاز اللوحي."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"‏ليست هناك شريحة SIM في الهاتف."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"‏أدخل شريحة SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"‏شريحة SIM مفقودة أو غير قابلة للقراءة. أدخل شريحة SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"‏شريحة SIM غير قابلة للاستخدام."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"‏تم تعطيل شريحة SIM بشكل دائم.\n اتصل بمقدم خدمة اللاسلكي للحصول على شريحة SIM أخرى."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"‏شريحة SIM مؤمّنة."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏شريحة SIM مؤمّنة بكود PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"‏جارٍ إلغاء تأمين شريحة SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"منطقة رقم التعريف الشخصي"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"‏منطقة رقم التعريف الشخصي لبطاقة SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏منطقة PUK لبطاقة SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"تم ضبط التنبيه التالي على <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"حذف"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"نسيت النقش"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"نقش خاطئ"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"كلمة مرور خاطئة"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"رقم تعريف شخصي خاطئ"</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">"‏أدخل رمز PIN لبطاقة SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"‏إدخال رقم التعريف الشخصي لبطاقة SIM التابعة للمشغل \"<xliff:g id="CARRIER">%1$s</xliff:g>\"."</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"‏SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" معطلة الآن. أدخل رمز PUK للمتابعة. واتصل بمشغل شبكة الجوال لمعرفة التفاصيل."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"‏إدخال رمز رمز PIN المراد"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"‏تأكيد رمز رمز PIN المراد"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"‏جارٍ إلغاء تأمين شريحة SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"اكتب  رقم التعريف الشخصي المكون من ٤ إلى ٨ أرقام."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"‏يجب أن يتضمن رمز PUK‏ ۸ أرقام أو أكثر."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"‏لقد كتبت رمز PIN بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. \n\nأعد المحاولة خلال <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانية."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"لقد كتبت كلمة المرور بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. \n\nأعد المحاولة خلال <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانية."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"لقد رسمت نقش إلغاء التأمين بطريقة غير صحيحة <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. \n\nأعد المحاولة خلال <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانية."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"أخطأت في محاولة إلغاء قفل الجهاز اللوحي <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إعادة تعيين هذا الجهاز والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"أخطأت في محاولة إلغاء قفل الهاتف <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إعادة تعيين هذا الهاتف والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"أخطأت في محاولة إلغاء قفل الجهاز اللوحي <xliff:g id="NUMBER">%d</xliff:g> من المرات. ستتم إعادة تعيين هذا الجهاز والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"أخطأت في محاولة إلغاء قفل الهاتف <xliff:g id="NUMBER">%d</xliff:g> من المرات. ستتم إعادة تعيين هذا الهاتف والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"أخطأت في محاولة إلغاء قفل الجهاز اللوحي <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إزالة هذا المستخدم والتي بدورها تحذف جميع بيانات المستخدم."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"أخطأت في محاولة إلغاء قفل الهاتف <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إزالة هذا المستخدم والتي بدورها تحذف جميع بيانات المستخدم."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"أخطأت في محاولة إلغاء قفل الجهاز اللوحي <xliff:g id="NUMBER">%d</xliff:g> من المرات. ستتم إزالة المستخدم والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"أخطأت في محاولة إلغاء قفل الهاتف <xliff:g id="NUMBER">%d</xliff:g> من المرات. ستتم إزالة المستخدم والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"أخطأت في محاولة إلغاء قفل الجهاز اللوحي <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إزالة الملف الشخصي للعمل والتي بدورها تحذف جميع بيانات الملف الشخصي."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"أخطأت في محاولة إلغاء قفل الهاتف <xliff:g id="NUMBER_0">%1$d</xliff:g> من المرات. بعد <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستتم إزالة الملف الشخصي للعمل والتي بدورها تحذف جميع بيانات الملف الشخصي."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"أخطأت في محاولة إلغاء قفل الجهاز اللوحي <xliff:g id="NUMBER">%d</xliff:g> من المرات. ستتم إزالة الملف الشخصي للعمل والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"أخطأت في محاولة إلغاء قفل الهاتف <xliff:g id="NUMBER">%d</xliff:g> من المرات. ستتم إزالة الملف الشخصي للعمل والتي بدورها تحذف جميع بياناته."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"لقد رسمت نقش إلغاء التأمين بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستطالَب بإلغاء تأمين الجهاز اللوحي باستخدام معلومات حساب بريد إلكتروني.\n\n أعد المحاولة خلال <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"لقد رسمت نقش إلغاء التأمين بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الهاتف باستخدام حساب بريد إلكتروني لإلغاء تأمين الهاتف.\n\n أعد المحاولة خلال <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"‏رمز \"رقم التعريف الشخصي\" لبطاقة SIM غير صحيح، ويلزمك الاتصال الآن بمشغّل شبكة الجوّال لإلغاء قفل الجهاز."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="zero">‏رمز رقم التعريف الشخصي لبطاقة SIM غير صحيح، ولم تتبق لديك أية محاولات (<xliff:g id="NUMBER_1">%d</xliff:g>).</item>
-      <item quantity="two">‏رمز رقم التعريف الشخصي لبطاقة SIM غير صحيح، ويتبقى لديك محاولتان (<xliff:g id="NUMBER_1">%d</xliff:g>).</item>
-      <item quantity="few">‏رمز رقم التعريف الشخصي لبطاقة SIM غير صحيح، ويتبقى لديك <xliff:g id="NUMBER_1">%d</xliff:g> محاولات.</item>
-      <item quantity="many">‏رمز رقم التعريف الشخصي لبطاقة SIM غير صحيح، ويتبقى لديك <xliff:g id="NUMBER_1">%d</xliff:g> محاولة.</item>
-      <item quantity="other">‏رمز رقم التعريف الشخصي\" لبطاقة SIM غير صحيح، ويتبقى لديك <xliff:g id="NUMBER_1">%d</xliff:g> من المحاولات.</item>
-      <item quantity="one">‏رمز رقم التعريف الشخصي لبطاقة SIM غير صحيح، ويتبقى لديك محاولة واحدة (<xliff:g id="NUMBER_0">%d</xliff:g>) يتعين عليك بعدها الاتصال بمشغّل شبكة الجوّال لإلغاء قفل الجهاز.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"‏شريحة SIM غير صالحة للاستخدام. يُرجى الاتصال بمشغّل شبكة الجوّال."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="zero">‏رمز PUK لشريحة SIM غير صحيح، ولم تتبق لديك أية محاولات (<xliff:g id="NUMBER_1">%d</xliff:g>) تصبح بعدها شريحة SIM غير صالحة للاستخدام بشكل دائم.</item>
-      <item quantity="two">‏رمز PUK لشريحة SIM غير صحيح، ويتبقى لديك محاولتان (<xliff:g id="NUMBER_1">%d</xliff:g>) تصبح بعدها شريحة SIM غير صالحة للاستخدام بشكل دائم.</item>
-      <item quantity="few">‏رمز PUK لشريحة SIM غير صحيح، ويتبقى لديك <xliff:g id="NUMBER_1">%d</xliff:g> محاولات تصبح بعدها شريحة SIM غير صالحة للاستخدام بشكل دائم.</item>
-      <item quantity="many">‏رمز PUK لشريحة SIM غير صحيح، ويتبقى لديك <xliff:g id="NUMBER_1">%d</xliff:g> محاولة تصبح بعدها شريحة SIM غير صالحة للاستخدام بشكل دائم.</item>
-      <item quantity="other">‏رمز PUK لشريحة SIM غير صحيح، ويتبقى لديك <xliff:g id="NUMBER_1">%d</xliff:g> من المحاولات تصبح بعدها شريحة SIM غير صالحة للاستخدام بشكل دائم.</item>
-      <item quantity="one">‏رمز PUK لشريحة SIM غير صحيح، ويتبقى لديك محاولة واحدة (<xliff:g id="NUMBER_0">%d</xliff:g>) تصبح بعدها شريحة SIM غير صالحة للاستخدام بشكل دائم.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"‏أخفقت عملية \"رقم التعريف الشخصي\" لبطاقة SIM!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"‏أخفقت عملية PUK لبطاقة SIM!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"تم قبول الرمز!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"لا تتوفر خدمة"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"تبديل أسلوب الإدخال"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"وضع الطائرة"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"يجب رسم النقش بعد إعادة تشغيل الجهاز."</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"يجب إدخال رقم التعريف الشخصي بعد إعادة تشغيل الجهاز."</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"يجب إدخال كلمة المرور بعد إعادة تشغيل الجهاز."</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"يجب رسم النقش لمزيد من الأمان."</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"يجب إدخال رقم التعريف الشخصي لمزيد من الأمان."</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"يجب إدخال كلمة المرور لمزيد من الأمان."</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"يجب رسم النقش عند تبديل الملفات الشخصية."</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"يجب إدخال رقم التعريف الشخصي عند تبديل الملفات الشخصية."</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"يجب إدخال كلمة المرور عند تبديل الملفات الشخصية."</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"تم حظر الجهاز بواسطة المسؤول"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"تم حظر الجهاز يدويًا"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="zero">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> من الساعات. تأكيد النقش.</item>
-      <item quantity="two">لم يتم إلغاء تأمين الجهاز لمدة ساعتين (<xliff:g id="NUMBER_1">%d</xliff:g>). تأكيد النقش.</item>
-      <item quantity="few">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> ساعات. تأكيد النقش.</item>
-      <item quantity="many">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> ساعة. تأكيد النقش.</item>
-      <item quantity="other">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> من الساعات. تأكيد النقش.</item>
-      <item quantity="one">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_0">%d</xliff:g> ساعة. تأكيد النقش.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="zero">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> من الساعات. تأكيد رقم التعريف الشخصي.</item>
-      <item quantity="two">لم يتم إلغاء تأمين الجهاز لمدة ساعتين (<xliff:g id="NUMBER_1">%d</xliff:g>). تأكيد رقم التعريف الشخصي.</item>
-      <item quantity="few">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> ساعات. تأكيد رقم التعريف الشخصي.</item>
-      <item quantity="many">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> ساعة. تأكيد رقم التعريف الشخصي.</item>
-      <item quantity="other">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> من الساعات. تأكيد رقم التعريف الشخصي.</item>
-      <item quantity="one">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_0">%d</xliff:g> ساعة. تأكيد رقم التعريف الشخصي.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="zero">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> من الساعات. تأكيد كلمة المرور.</item>
-      <item quantity="two">لم يتم إلغاء تأمين الجهاز لمدة ساعتين (<xliff:g id="NUMBER_1">%d</xliff:g>). تأكيد كلمة المرور.</item>
-      <item quantity="few">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> ساعات. تأكيد كلمة المرور.</item>
-      <item quantity="many">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> ساعة. تأكيد كلمة المرور.</item>
-      <item quantity="other">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_1">%d</xliff:g> من الساعات. تأكيد كلمة المرور.</item>
-      <item quantity="one">لم يتم إلغاء تأمين الجهاز لمدة <xliff:g id="NUMBER_0">%d</xliff:g> ساعة. تأكيد كلمة المرور.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"لم يتم التعرف عليها"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-az/strings.xml b/packages/Keyguard/res/values-az/strings.xml
deleted file mode 100644
index c7a8091..0000000
--- a/packages/Keyguard/res/values-az/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Klaviatura kilidi"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PİN kodu daxil edin"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK və yeni PIN kodu yazın"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK kodu"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Yeni SIM PIN kodu"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Şifrə daxil etmək üçün toxunun"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Kilidi açmaq üçün parol yazın"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Kilidi açmaq üçün PIN daxil edin"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Yanlış PIN kodu."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Dolmuş"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Enerji doldurulur"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Enerji sürətlə dolur"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Enerji yavaş dolur"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Elektrikə qoşun."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Kilidi açmaq üçün Menyu düyməsinə baxın."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Şəbəkə kilidləndi"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SİM kart yoxdur"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Planşetdə SİM kart yoxdur.."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Telefonda SİM kart yoxdu."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM kartı daxil edin."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SİM kart yoxdur və ya oxuna bilinmir. SİM kart daxil edin."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Yararsız SIM kart."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Sizin SİM kartınız daimi olaraq deaktivləşib.\n Başqa SİM kart üçün simsiz xidmət provayderinizə müraciət edin."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kart kilidlənib."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SİM kart PUK ilə kilidlənib."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SİM kartın kilidi açılır..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN sahəsi"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN sahəsi"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK sahəsi"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Növbəti alarm vaxtı: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Sil"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Daxil olun"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Şablonu unutmuşam"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Yanlış Model"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Yanlış Şifrə"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN səhvdir"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"<xliff:g id="NUMBER">%d</xliff:g> saniyə sonra yenidən cəhd edin."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Şablonunuzu çəkin"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM PIN kodu daxil edin"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" üçün SIM PIN daxil edin"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"PİN kodu daxil edin"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Parol daxil edin"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM indi deaktivdir. Davam etmək üçün PUK kodu daxil edin. Əlavə məlumat üçün operatora müraciət edin."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" indi qeyri-aktiv edilib. Davam etmək üçün PUK kodu daxil edin. Təfərrüatlar üçün operatorunuzla əlaqə saxlayın."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"İstədiyiniz PİN kodu daxil edin"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"İstədiyiniz PIN kodu təsdiqləyin"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SİM kartın kilidi açılır..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4-dən 8-ə qədər rəqəmi olan PIN yazın."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kod 8 rəqəm və ya daha çox olmalıdır."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Düzgün PUK kodu yenidən daxil edin. Təkrarlanan cəhdlər SIM\'i birdəfəlik sıradan çıxaracaq."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodları uyğun deyil"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Həddindən çox cəhd edildi!"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN kodunuzu <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə yanlış daxil etdiniz.\n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> saniyə ərzində yenidən yoxlayın"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Şifrənizi <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə yanlış daxil etdiniz. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> saniyə ərzində yenidən yoxlayın."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Modelinizi <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə yanlış çəkmisiniz.\n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> saniyə ərzində yenidən yoxlayın"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Siz <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə planşetinizin kilidini açmaq üçün yanlış cəhdlər etdiniz. Daha <xliff:g id="NUMBER_1">%2$d</xliff:g> uğursuz cəhddən sonra bu planşet ilkin vəziyyətinə bərpa olunacaq və ondakı bütün məlumatlar silinəcəkdir."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Siz <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə telefonunuzun kilidini açmaq üçün yanlış cəhdlər etdiniz. Daha <xliff:g id="NUMBER_1">%2$d</xliff:g> uğursuz cəhddən sonra bu telefon ilkin vəziyyətinə bərpa olunacaq və ondakı bütün məlumatlar silinəcəkdir."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Siz <xliff:g id="NUMBER">%d</xliff:g> dəfə planşetinizin kilidini açmaq üçün yanlış cəhdlər etdiniz. Bu planşet ilkin vəziyyətinə bərpa olunacaq və ondakı bütün məlumatlar silinəcəkdir."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Siz <xliff:g id="NUMBER">%d</xliff:g> dəfə telefonunuzun kilidini açmaq üçün yanlış cəhdlər etdiniz. Bu telefon ilkin vəziyyətinə bərpa olunacaq və ondakı bütün məlumatlar silinəcəkdir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Siz <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə planşetinizin kilidini açmaq üçün yanlış cəhdlər etdiniz. Daha <xliff:g id="NUMBER_1">%2$d</xliff:g> uğursuz cəhddən sonra bütün istifadəçi məlumatlarını siləcək bu istifadəçi silinəcəkdir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Siz <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə telefonunuzun kilidini açmaq üçün yanlış cəhdlər etdiniz. Daha <xliff:g id="NUMBER_1">%2$d</xliff:g> uğursuz cəhddən sonra bütün istifadəçi məlumatlarını siləcək bu istifadəçi silinəcəkdir."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Siz <xliff:g id="NUMBER">%d</xliff:g> dəfə planşetinizin kilidini açmaq üçün yanlış cəhdlər etdiniz. Bu istifadəçi və istifadəçi ilə bağlı bütün məlumatlar silinəcəkdir."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Siz <xliff:g id="NUMBER">%d</xliff:g> dəfə telefonunuzun kilidini açmaq üçün yanlış cəhdlər etdiniz. Bu istifadəçi və istifadəçi ilə bağlı bütün məlumatlar silinəcəkdir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Siz <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə planşetinizin kilidini açmaq üçün yanlış cəhdlər etdiniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> uğursuz cəhddən sonra bütün profil məlumatlarını siləcək iş profili silinəcəkdir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Siz <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə telefonunuzun kilidini açmaq üçün yanlış cəhdlər etdiniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> uğursuz cəhddən sonra bütün profil məlumatlarını siləcək iş profili silinəcəkdir."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Siz <xliff:g id="NUMBER">%d</xliff:g> dəfə planşetinizin kilidini açmaq üçün yanlış cəhdlər etdiniz. Bütün profil məlumatlarınızı siləcək iş profili silinəcəkdir."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Siz <xliff:g id="NUMBER">%d</xliff:g> dəfə telefonunuzun kilidini açmaq üçün yanlış cəhdlər etdiniz. Bütün profil məlumatlarınızı siləcək iş profili silinəcəkdir."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Siz kilidi açmaq üçün şablonu <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə səhv çəkdiniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> daha uğursuz cəhddən sonra planşetinizin kilidini e-poçt hesabınızla açmaq tələb olunacaq.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> saniyə ərzində bir daha yoxlayın."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Siz artıq modeli <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə yanlış daxil etmisiniz.<xliff:g id="NUMBER_1">%2$d</xliff:g> dəfə də yanlış daxil etsəniz, telefonun kilidinin açılması üçün elektron poçt ünvanınız tələb olunacaq.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> saniyə ərzində yenidən cəhd edin."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Yanlış SIM PIN kodu  cihazınızın açılması üçün operatorunuzla indi əlaqə saxlamalısınız."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Yanlış SIM PIN kodu, <xliff:g id="NUMBER_1">%d</xliff:g> cəhdiniz qalır.</item>
-      <item quantity="one">Yanlış SIM PIN kodu, cihazınızı kiliddən çıxarmaq üçün operatorunuzla əlaqə saxlamadan öncə <xliff:g id="NUMBER_0">%d</xliff:g> cəhdiniz qalır.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM yararsızdır. Operatorunuzla əlaqə saxlayın."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Yanlış SIM PUK kodu, SIM kartınızın daimi olaraq yararsız olmasından öncə <xliff:g id="NUMBER_1">%d</xliff:g> cəhdiniz qalır.</item>
-      <item quantity="one">Yanlış SIM PUK kodu, SIM kartınızın daimi olaraq yararsız olmasından öncə <xliff:g id="NUMBER_0">%d</xliff:g> cəhdiniz qalır.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN əməliyyatı alınmadı!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK əməliyyatı alınmadı!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kod Qəbul Edildi!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Xidmət yoxdur."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Daxiletmə metoduna keçin"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Təyyarə rejimi"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Cihaz söndürülüb yandırılandan sonra qrafik açar tələb olunur"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Cihaz yeniden başladıqdan sonra PIN tələb olunur"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Cihaz yeniden başladıqdan sonra parol tələb olunur"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Əlavə güvənlik üçün qrafik açar gərəkdir"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Əlavə təhlükəsizlik üçün PIN tələb olunur"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Əlavə təhlükəsizlik üçün parol tələb olunur"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Profillər arasında keçid edərkən qrafik açar tələb olunur"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Profillər arasında keçid edərkən PIN kod tələb olunur"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Profillər arasında keçid edərkən parol tələb olunur"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Cihaz administratoru cihazı kilidlədi"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Cihaz əl ilə kilidləndi"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Cihaz <xliff:g id="NUMBER_1">%d</xliff:g> saat kiliddən çıxarılmayıb. Nümunə kodu təsdiq edin.</item>
-      <item quantity="one">Cihaz <xliff:g id="NUMBER_0">%d</xliff:g> saat kiliddən çıxarılmayıb. Nümunə kodu təsdiq edin.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Cihaz<xliff:g id="NUMBER_1">%d</xliff:g> saat kiliddən çıxarılmayıb. PIN kodunu təsdiq edin.</item>
-      <item quantity="one">Cihaz <xliff:g id="NUMBER_0">%d</xliff:g> saat kiliddən çıxarılmayıb. PIN kodunu təsdiq edin.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Cihaz<xliff:g id="NUMBER_1">%d</xliff:g> saat kiliddən çıxarılmayıb. Parolu təsdiq edin.</item>
-      <item quantity="one">Cihaz <xliff:g id="NUMBER_0">%d</xliff:g> saat kiliddən çıxarılmayıb. Parolu təsdiq edin.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Tanınmır"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-b+sr+Latn/strings.xml b/packages/Keyguard/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index 8006125..0000000
--- a/packages/Keyguard/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Zaštita tastera"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Unesite PIN kôd"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Unesite SIM PUK kôd i novi PIN kôd"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK kôd"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Novi SIM PIN kôd"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Dodirnite da biste uneli lozinku"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Otkucajte lozinku da biste otključali"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Unesite PIN za otključavanje"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"PIN kôd je netačan."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Napunjeno"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Punjenje"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Brzo se puni"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Sporo se puni"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Povežite punjač."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Pritisnite Meni da biste otključali."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Mreža je zaključana"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nema SIM kartice"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"U tabletu nema SIM kartice."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"U telefonu nema SIM kartice."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Umetnite SIM karticu."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM kartica nedostaje ili ne može da se pročita. Umetnite SIM karticu."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM kartica je neupotrebljiva."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM kartica je trajno onemogućena.\n Obratite se dobavljaču usluge bežične mreže da biste dobili drugu SIM karticu."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kartica je zaključana."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kartica je zaključana PUK kodom."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Otključavanje SIM kartice…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Oblast za PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Oblast za PIN za SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Oblast za PUK za SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Sledeći alarm je podešen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Izbriši"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zaboravljeni šablon"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Pogrešan šablon"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Pogrešna lozinka"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Pogrešan PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Probajte ponovo za <xliff:g id="NUMBER">%d</xliff:g> sekunde(i)."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Nacrtajte šablon"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Unesite PIN SIM kartice"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Unesite PIN za SIM „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Unesite PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Unesite lozinku"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM kartica je sada onemogućena. Unesite PUK kôd da biste nastavili. Za detalje kontaktirajte operatera."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM „<xliff:g id="CARRIER">%1$s</xliff:g>“ je sada onemogućen. Unesite PUK kôd da biste nastavili. Kontaktirajte operatera za detalje."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Unesite željeni PIN kôd"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potvrdite željeni PIN kôd"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Otključavanje SIM kartice…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Unesite PIN koji ima od 4 do 8 brojeva."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kôd treba da ima 8 ili više brojeva."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Ponovo unesite ispravni PUK kôd. Ponovljeni pokušaji će trajno onemogućiti SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodovi se ne podudaraju"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Previše pokušaja unosa šablona"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Uneli ste netačni PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Uneli ste netačnu lozinku <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Pogrešno ste pokušali da otključate tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> put(a). Imate još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaj(a), nakon čega se tablet resetuje i svi podaci sa njega brišu."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Pogrešno ste pokušali da otključate telefon <xliff:g id="NUMBER_0">%1$d</xliff:g> put(a). Imate još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaj(a), nakon čega se telefon resetuje i svi podaci sa njega brišu."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Pogrešno ste pokušali da otključate tablet <xliff:g id="NUMBER">%d</xliff:g> put(a). Tablet će biti resetovan i svi podaci sa njega će biti izbrisani."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Pogrešno ste pokušali da otključate telefon <xliff:g id="NUMBER">%d</xliff:g> put(a). Telefon će biti resetovan i svi podaci sa njega će biti izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Pogrešno ste pokušali da otključate tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> put(a). Imate još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaj(a), nakon čega se ovaj korisnik uklanja i svi podaci korisnika brišu."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Pogrešno ste pokušali da otključate telefon <xliff:g id="NUMBER_0">%1$d</xliff:g> put(a). Imate još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaj(a), nakon čega se ovaj korisnik uklanja i svi podaci korisnika brišu."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Pogrešno ste pokušali da otključate tablet <xliff:g id="NUMBER">%d</xliff:g> put(a). Ovaj korisnik će biti uklonjen i svi podaci korisnika će biti izbrisani."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Pogrešno ste pokušali da otključate telefon <xliff:g id="NUMBER">%d</xliff:g> put(a). Ovaj korisnik će biti uklonjen i svi podaci korisnika će biti izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Pogrešno ste pokušali da otključate tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> put(a). Imate još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaj(a), nakon čega se poslovni profil uklanja i svi podaci sa profila brišu."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Pogrešno ste pokušali da otključate telefon <xliff:g id="NUMBER_0">%1$d</xliff:g> put(a). Imate još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaj(a), nakon čega se poslovni profil uklanja i svi podaci sa profila brišu."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Pogrešno ste pokušali da otključate tablet <xliff:g id="NUMBER">%d</xliff:g> put(a). Poslovni profil će biti uklonjen i svi podaci sa njega će biti izbrisani."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Pogrešno ste pokušali da otključate telefon <xliff:g id="NUMBER">%d</xliff:g> put(a). Poslovni profil će biti uklonjen i svi podaci sa njega će biti izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću naloga e-pošte.\n\nProbajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde(i)."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću naloga e-pošte.\n\nProbajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde(i)."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Netačan SIM PIN kôd. Sada morate da kontaktirate mobilnog operatera da biste otključali uređaj."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Netačan SIM PIN kôd. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaj.</item>
-      <item quantity="few">Netačan SIM PIN kôd. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja.</item>
-      <item quantity="other">Netačan SIM PIN kôd. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM kartica je neupotrebljiva. Kontaktirajte mobilnog operatera."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Netačan SIM PUK kôd. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaj pre nego što SIM kartica postane trajno neupotrebljiva.</item>
-      <item quantity="few">Netačan SIM PUK kôd. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja pre nego što SIM kartica postane trajno neupotrebljiva.</item>
-      <item quantity="other">Netačan SIM PUK kôd. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja pre nego što SIM kartica postane trajno neupotrebljiva.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Radnja sa SIM PIN kodom nije uspela!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Radnja sa SIM PUK kodom nije uspela!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kôd je prihvaćen!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Oflajn ste."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Promeni metod unosa"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Režim rada u avionu"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Treba da unesete šablon kada se uređaj ponovo pokrene"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Treba da unesete PIN kada se uređaj ponovo pokrene"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Treba da uneste lozinku kada se uređaj ponovo pokrene"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Treba da unesete šablon radi dodatne bezbednosti"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Treba da unesete PIN radi dodatne bezbednosti"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Treba da unesete lozinku radi dodatne bezbednosti"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Treba da unesete šablon kada prelazite sa jednog profila na drugi"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Treba da unesete PIN kada prelazite sa jednog profila na drugi"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Treba da unesete lozinku kada prelazite sa jednog profila na drugi"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Administrator uređaja je zaključao uređaj"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Uređaj je ručno zaključan"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite šablon.</item>
-      <item quantity="few">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite šablon.</item>
-      <item quantity="other">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite šablon.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite PIN.</item>
-      <item quantity="few">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite PIN.</item>
-      <item quantity="other">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite lozinku.</item>
-      <item quantity="few">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite lozinku.</item>
-      <item quantity="other">Niste otključali uređaj <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite lozinku.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nije prepoznat"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-be/strings.xml b/packages/Keyguard/res/values-be/strings.xml
deleted file mode 100644
index f357961..0000000
--- a/packages/Keyguard/res/values-be/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Увядзіце PIN-код"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Увядзіце PUK-код і новы PIN-код SIM-карты"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-код SIM-карты"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Новы PIN-код SIM-карты"</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_wrong_pin_code" msgid="2422225591006134936">"Няправільны PIN-код."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Зараджаны"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Зарадка"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Зараджаецца хутка"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Зараджаецца павольна"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Падключыце зарадную прыладу."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Націсніце кнопку \"Меню\", каб разблакіраваць."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Сетка заблакiраваная"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Няма SIM-карты"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"У планшэце няма SIM-карты."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"У тэлефоне няма SIM-карты."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Устаўце SIM-карту."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-карта адсутнічае ці не чытаецца. Устаўце SIM-карту."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM-карту немагчыма выкарыстоўваць."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Ваша SIM-карта была адключана назаўсёды.\n Звяжыцеся з аператарам бесправадной сувязі, каб атрымаць іншую SIM-карту."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карта заблакiраваная."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-карта заблакiравана PUK-кодам."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Разблакiраванне SIM-карты..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Поле для PIN-кода"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Поле для PIN-кода SIM-карты"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Поле для PUK-кода SIM-карты"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Наступны будзільнік пастаўлены на <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Выдаліць"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забылі ключ"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Няправільны ўзор"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Няправiльны пароль"</string>
-    <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">"Увядзіце PIN-код SIM-карты"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Увядзіце PIN-код SIM-карты «<xliff:g id="CARRIER">%1$s</xliff:g>»"</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-код, каб працягнуць. Звяжыцеся са сваiм аператарам, каб атрымаць дадатковую iнфармацыю."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-карта «<xliff:g id="CARRIER">%1$s</xliff:g>» зараз адключана. Увядзіце PUK-код, каб працягнуць. Каб атрымаць дадатковую iнфармацыю, звяжыцеся з аператарам."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Увядзіце жаданы PIN-код"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Пацвердзіце жадан PIN-код"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Разблакiроўка SIM-карты..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Увядзіце PIN-код, які змяшчае ад 4 да 8 лічбаў."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-код павінен утрымлiваць 8 лiчбаў і больш."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Вы няправільна ўвялі PIN-код пэўную колькасць разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\nПаўтарыце спробу праз <xliff:g id="NUMBER_1">%2$d</xliff:g> с."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Вы няправільна ўвялі пароль пэўную колькасць разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\nПаўтарыце спробу праз <xliff:g id="NUMBER_1">%2$d</xliff:g> с."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Вы няправільна ўвялі графічны ключ разблакiроўкi пэўную колькасць разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\nПаўтарыце спробу праз <xliff:g id="NUMBER_1">%2$d</xliff:g> с."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Вы не змаглі разблакіраваць планшэт столькі разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькіх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) ён будзе скінуты да заводскіх налад, гэта прывядзе да выдалення ўсіх даных."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Вы не змаглі разблакіраваць тэлефон столькі разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькіх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) ён будзе скінуты да заводскіх налад, гэта прывядзе да выдалення ўсіх даных."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Вы не змаглі разблакіраваць планшэт столькі разоў: <xliff:g id="NUMBER">%d</xliff:g>. Цяпер ён будзе скінуты да заводскіх налад, гэты прывядзе да выдалення ўсіх даных."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Вы не змаглі разблакіраваць тэлефон столькі разоў: <xliff:g id="NUMBER">%d</xliff:g>. Цяпер ён будзе скінуты да заводскіх налад, гэты прывядзе да выдалення ўсіх даных."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Вы не змаглі разблакіраваць планшэт столькі разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькіх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) гэты карыстальнік будзе выдалены, гэта прывядзе да выдалення ўсіх карыстальніцкіх даных."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Вы не змаглі разблакіраваць тэлефон столькі разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькіх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) гэты карыстальнік будзе выдалены, гэта прывядзе да выдалення ўсіх карыстальніцкіх даных."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Вы не змаглі разблакіраваць планшэт столькі разоў: <xliff:g id="NUMBER">%d</xliff:g>. Гэты карыстальнік будзе выдалены, гэта прывядзе да выдалення ўсіх карыстальніцкіх даных."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Вы не змаглі разблакіраваць тэлефон столькі разоў: <xliff:g id="NUMBER">%d</xliff:g>. Гэты карыстальнік будзе выдалены, гэта прывядзе да выдалення ўсіх карыстальніцкіх даных."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Вы не змаглі разблакіраваць планшэт столькі разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькіх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) працоўны профіль будзе выдалены, гэта прывядзе да выдалення ўсіх даных у профілі."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Вы не змаглі разблакіраваць тэлефон столькі разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькіх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) працоўны профіль будзе выдалены, гэта прывядзе да выдалення ўсіх даных у профілі."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Вы не змаглі разблакіраваць планшэт столькі разоў: <xliff:g id="NUMBER">%d</xliff:g>. Працоўны профіль будзе выдалены, гэта прывядзе да выдалення ўсіх даных у профілі."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Вы не змаглі разблакіраваць тэлефон столькі разоў: <xliff:g id="NUMBER">%d</xliff:g>. Працоўны профіль будзе выдалены, гэта прывядзе да выдалення ўсіх даных у профілі."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Вы няправільна ўвялі графічны ключ разблакiроўкi пэўную колькасць разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькiх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) вам будзе прапанавана разблакiраваць тэлефон, увайшоўшы ў Google.\n\n Паўтарыце спробу праз <xliff:g id="NUMBER_2">%3$d</xliff:g> с."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Вы няправільна ўвялі графічны ключ разблакiроўкi пэўную колькасць разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькiх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) вам будзе прапанавана разблакiраваць тэлефон, увайшоўшы ў Google.\n\n Паўтарыце спробу праз <xliff:g id="NUMBER_2">%3$d</xliff:g> с."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Няправільны PIN-код SIM-карты, цяпер вы павінны звязацца з аператарам для разблакіроўкі прылады."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Няправільны PIN-код SIM-карты, у вас засталася <xliff:g id="NUMBER_1">%d</xliff:g> спроба.</item>
-      <item quantity="few">Няправільны PIN-код SIM-карты, у вас засталося <xliff:g id="NUMBER_1">%d</xliff:g> спробы.</item>
-      <item quantity="many">Няправільны PIN-код SIM-карты, у вас засталося <xliff:g id="NUMBER_1">%d</xliff:g> спроб.</item>
-      <item quantity="other">Няправільны PIN-код SIM-карты, у вас засталося <xliff:g id="NUMBER_1">%d</xliff:g> спробы.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-карта не прыдатная для выкарыстання. Звяжыцеся з аператарам."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Няправільны PUK-код SIM-карты, у вас засталася <xliff:g id="NUMBER_1">%d</xliff:g> спроба перад тым, як SIM-карта перастане працаваць назаўжды.</item>
-      <item quantity="few">Няправільны PUK-код SIM-карты, у вас засталося <xliff:g id="NUMBER_1">%d</xliff:g> спробы перад тым, як SIM-карта перастане працаваць назаўжды.</item>
-      <item quantity="many">Няправільны PUK-код SIM-карты, у вас засталося <xliff:g id="NUMBER_1">%d</xliff:g> спроб перад тым, як SIM-карта перастане працаваць назаўжды.</item>
-      <item quantity="other">Няправільны PUK-код SIM-карты, у вас засталося <xliff:g id="NUMBER_1">%d</xliff:g> спробы перад тым, як SIM-карта перастане працаваць назаўжды.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Разблакіраваць SIM-карту PIN-кодам не атрымалася!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Разблакіраваць SIM-карту PUK-кодам не атрымалася!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Код прыняты!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Не абслугоўваецца."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Пераключэнне рэжыму ўводу"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Рэжым палёту"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Пасля перазапуску прылады патрабуецца ўзор"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Пасля перазапуску прылады патрабуецца PIN-код"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Пасля перазапуску прылады патрабуецца пароль"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Для забеспячэння дадатковай бяспекі патрабуецца ўзор"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Для забеспячэння дадатковай бяспекі патрабуецца PIN-код"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Для забеспячэння дадатковай бяспекі патрабуецца пароль"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Пры пераключэнні профіляў патрабуецца ўзор"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Пры пераключэнні профіляў патрабуецца PIN-код"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Пры пераключэнні профіляў патрабуецца пароль"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Адміністратар прылады заблакіраваў прыладу"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Прылада была заблакіравана ўручную"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзіны. Увядзіце ўзор.</item>
-      <item quantity="few">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзін. Увядзіце ўзор.</item>
-      <item quantity="many">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзін. Увядзіце ўзор.</item>
-      <item quantity="other">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзіны. Увядзіце ўзор.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзіны. Увядзіце PIN-код.</item>
-      <item quantity="few">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзін. Увядзіце PIN-код.</item>
-      <item quantity="many">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзін. Увядзіце PIN-код.</item>
-      <item quantity="other">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзіны. Увядзіце PIN-код.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзіны. Увядзіце пароль.</item>
-      <item quantity="few">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзін. Увядзіце пароль.</item>
-      <item quantity="many">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзін. Увядзіце пароль.</item>
-      <item quantity="other">Прылада не была разблакіравана на працягу <xliff:g id="NUMBER_1">%d</xliff:g> гадзіны. Увядзіце пароль.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не распазнаны"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-bg/strings.xml b/packages/Keyguard/res/values-bg/strings.xml
deleted file mode 100644
index 988e97f..0000000
--- a/packages/Keyguard/res/values-bg/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Въведете ПИН кода"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Въведете PUK за SIM картата и новия ПИН код"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK код за SIM картата"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Нов ПИН код за SIM картата"</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">"Въведете ПИН, за да отключите"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Неправилен ПИН код."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Заредена"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Зарежда се"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Зарежда се бързо"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Зарежда се бавно"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Свържете зарядното си устройство."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Натиснете иконата за меню, за да отключите."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Мрежата е заключена"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Няма SIM карта"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"В таблета няма SIM карта."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"В телефона няма SIM карта."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Поставете SIM карта."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM картата липсва или е нечетима. Поставете SIM карта."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Неизползваема SIM карта."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM картата ви е деактивирана за постоянно.\nЗа да получите друга, се свържете с доставчика на безжичната си услуга."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM картата е заключена."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картата е заключена с PUK код."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM картата се отключва…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Област за ПИН кода"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Област за ПИН кода на SIM картата"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Област за PUK кода на SIM картата"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Следващият будилник е зададен за <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Изтриване"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забравена фигура"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Грешна фигура"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Грешна парола"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Грешен ПИН код"</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 картата"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Въведете ПИН кода на SIM картата за „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Въведете ПИН код"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Въведете паролата"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM картата вече е деактивирана. Въведете PUK кода, за да продължите. Свържете се с оператора за подробности."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM картата „<xliff:g id="CARRIER">%1$s</xliff:g>“ вече е деактивирана. Въведете PUK код, за да продължите. За подробности се свържете с оператора си."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Въведете желания ПИН код"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Потвърдете желания ПИН код"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM картата се отключва…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Въведете ПИН код с четири до осем цифри."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK кодът трябва да е с 8 или повече цифри."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Въведете отново правилния PUK код. Многократните опити ще деактивират за постоянно SIM картата."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"ПИН кодовете не съвпадат"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Опитите за фигурата са твърде много"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Въведохте неправилно ПИН кода си <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. \n\nОпитайте отново след <xliff:g id="NUMBER_1">%2$d</xliff:g> секунди."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Въведохте неправилно паролата си <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. \n\nОпитайте отново след <xliff:g id="NUMBER_1">%2$d</xliff:g> секунди."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Начертахте неправилно фигурата си за отключване <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. \n\nОпитайте отново след <xliff:g id="NUMBER_1">%2$d</xliff:g> секунди."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Неправилно опитахте да отключите таблета <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита той ще бъде нулиран, при което ще се изтрият всичките му данни."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Неправилно опитахте да отключите телефона <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита той ще бъде нулиран, при което ще се изтрият всичките му данни."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Неправилно опитахте да отключите таблета <xliff:g id="NUMBER">%d</xliff:g> пъти. Той ще бъде нулиран, при което ще се изтрият всичките му данни."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Неправилно опитахте да отключите телефона <xliff:g id="NUMBER">%d</xliff:g> пъти. Той ще бъде нулиран, при което ще се изтрият всичките му данни."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Неправилно опитахте да отключите таблета <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита този потребител ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Неправилно опитахте да отключите телефона <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита този потребител ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Неправилно опитахте да отключите таблета <xliff:g id="NUMBER">%d</xliff:g> пъти. Този потребител ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Неправилно опитахте да отключите телефона <xliff:g id="NUMBER">%d</xliff:g> пъти. Този потребител ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Неправилно опитахте да отключите таблета <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита служебният потребителски профил ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Неправилно опитахте да отключите телефона <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита служебният потребителски профил ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Неправилно опитахте да отключите таблета <xliff:g id="NUMBER">%d</xliff:g> пъти. Служебният потребителски профил ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Неправилно опитахте да отключите телефона <xliff:g id="NUMBER">%d</xliff:g> пъти. Служебният потребителски профил ще бъде премахнат, при което ще се изтрият всички данни за него."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Начертахте неправилно фигурата си за отключване <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита ще бъдете помолени да отключите таблета посредством имейл адрес.\n\n Опитайте отново след <xliff:g id="NUMBER_2">%3$d</xliff:g> секунди."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Начертахте неправилно фигурата си за отключване <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита ще бъдете помолени да отключите телефона посредством имейл адрес.\n\n Опитайте отново след <xliff:g id="NUMBER_2">%3$d</xliff:g> секунди."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Неправилен ПИН код за SIM картата – сега трябва да се свържете с оператора си, за да отключите устройството."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Неправилен ПИН код за SIM картата – остават ви <xliff:g id="NUMBER_1">%d</xliff:g> опита.</item>
-      <item quantity="one">Неправилен ПИН код за SIM картата – остава ви <xliff:g id="NUMBER_0">%d</xliff:g> опит, преди да трябва да се свържете с оператора си, за да отключите устройството.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM картата е неизползваема. Свържете се с оператора си."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Неправилен PUK код за SIM картата – остават ви <xliff:g id="NUMBER_1">%d</xliff:g> опита, преди тя да стане неизползваема завинаги.</item>
-      <item quantity="one">Неправилен PUK код за SIM картата – остава ви <xliff:g id="NUMBER_0">%d</xliff:g> опит, преди тя да стане неизползваема завинаги.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Операцията с ПИН кода за SIM картата не бе успешна!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Операцията с PUK кода за SIM картата не бе успешна!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Кодът е приет!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Няма покритие."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Превключване на метода на въвеждане"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Самолетен режим"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"След рестартиране на устройството се изисква фигура"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"След рестартиране на устройството се изисква ПИН код"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"След рестартиране на устройството се изисква парола"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"За допълнителна сигурност се изисква фигура"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"За допълнителна сигурност се изисква ПИН код"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"За допълнителна сигурност се изисква парола"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"При превключване между потребителските профили се изисква фигура"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"При превключване между потребителските профили се изисква ПИН код"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"При превключване между потребителските профили се изисква парола"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Устройството е заключено от администратора му"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Устройството бе заключено ръчно"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Устройството не е отключвано от <xliff:g id="NUMBER_1">%d</xliff:g> часа. Потвърдете фигурата.</item>
-      <item quantity="one">Устройството не е отключвано от <xliff:g id="NUMBER_0">%d</xliff:g> час. Потвърдете фигурата.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Устройството не е отключвано от <xliff:g id="NUMBER_1">%d</xliff:g> часа. Потвърдете ПИН кода.</item>
-      <item quantity="one">Устройството не е отключвано от <xliff:g id="NUMBER_0">%d</xliff:g> час. Потвърдете ПИН кода.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Устройството не е отключвано от <xliff:g id="NUMBER_1">%d</xliff:g> часа. Потвърдете паролата.</item>
-      <item quantity="one">Устройството не е отключвано от <xliff:g id="NUMBER_0">%d</xliff:g> час. Потвърдете паролата.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не е разпознато"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-bn/strings.xml b/packages/Keyguard/res/values-bn/strings.xml
deleted file mode 100644
index 64c01bb..0000000
--- a/packages/Keyguard/res/values-bn/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"পিন কোড লিখুন"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"সিম PUK এবং নতুন পিন কোড লিখুন"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"সিম PUK কোড"</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">"আনলক করতে পিন লিখুন"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"ভুল পিন কোড৷"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"চার্জ হয়েছে"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"চার্জ হচ্ছে"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"দ্রুত চার্জ হচ্ছে"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"ধীরে ধীরে চার্জ হচ্ছে"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"আপনার চার্জার সংযুক্ত করুন৷"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"আনলক করতে মেনু টিপুন৷"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"নেটওয়ার্ক লক হয়েছে"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"কোনো সিম কার্ড নেই"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ট্যাবলেটের মধ্যে কোনো সিম কার্ড নেই৷"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ফোনের মধ্যে কোনো সিম কার্ড নেই৷"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"একটি সিম কার্ড ঢোকান৷"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"সিম কার্ডটি অনুপস্থিত বা পাঠযোগ্য নয়৷ একটি সিম কার্ড ঢোকান৷"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"অব্যবহারযোগ্য সিম কার্ড৷"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"আপনার সিম কার্ড স্থায়ীভাবে অক্ষম করা হয়েছে৷\n অন্য একটি সিম কার্ড পেতে আপনার ওয়্যারলেস পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন৷"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"সিম কার্ড লক করা আছে৷"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"সিম কার্ডটি PUK কোড দিয়ে লক করা আছে৷"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"সিম কার্ড আনলক করা হচ্ছে…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"পিন অঞ্চল"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"সিম পিন অঞ্চল"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"সিম PUK অঞ্চল"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> এ পরবর্তী অ্যালার্ম সেট করা হয়েছে"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"মুছুন"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"প্যাটার্ন ভুলে গেছেন"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"ভুল প্যাটার্ন"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"ভুল পাসওয়ার্ড"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"ভুল পিন"</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">"সিম পিন লিখুন"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" এর জন্য সিম পিন লিখুন"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"পিন লিখুন"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"পাসওয়ার্ড লিখুন"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"সিম এখন অক্ষম করা হয়েছে৷ অবিরত থাকতে PUK কোডটি লিখুন৷ বিশদ বিবরণের জন্য ক্যারিয়ারের সাথে যোগাযোগ করুন৷"</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"সিম \"<xliff:g id="CARRIER">%1$s</xliff:g>\" এখন অক্ষম করা হয়েছে৷ চালিয়ে যেতে PUK কোড লিখুন৷ বিস্তারিত জানার জন্য ক্যারিয়ারের সাথে যোগাযোগ করুন৷"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"কাঙ্ক্ষিত পিন কোড লিখুন"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"কাঙ্ক্ষিত পিন কোড নিশ্চিত করুন"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"সিম কার্ড আনলক করা হচ্ছে…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"৪ থেকে ৮টি সংখ্যার একটি পিন লিখুন৷"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK কোডটিকে ৮টি বা তার বেশি সংখ্য বিশিষ্ট হতে হবে৷"</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"সঠিক PUK কোড পুনরায় লিখুন৷ বার বার প্রচেষ্টা করা হলে তা স্থায়ীভাবে সিমটিকে অক্ষম করে দেবে৷"</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"পিন কোডগুলি মিলছে না"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"বিভিন্ন প্যাটার্নের সাহায্যে খুব বেশি বার প্রচেষ্টা করা হয়ে গেছে"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"আপনি আপনার পাসওয়ার্ড <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল টাইপ করেছেন৷ \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"আপনি আপনার পাসওয়ার্ড <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল টাইপ করেছেন৷ \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"আপনি আপনার আনলকের প্যাটার্ন আঁকার ক্ষেত্রে <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করেছেন৷ \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"আপনি <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করে ট্যাবলেট আনলক করার চেষ্টা করেছেন৷ <xliff:g id="NUMBER_1">%2$d</xliff:g>টি অসফল প্রচেষ্টার পরে, এই ট্যাবলেটটিকে পুনরায় সেট করা হবে যা এটির সমস্ত ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"আপনি <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করে ফোন আনলক করার চেষ্টা করেছেন৷ <xliff:g id="NUMBER_1">%2$d</xliff:g>টি অসফল প্রচেষ্টার পরে, এই ফোনটিকে পুনরায় সেট করা হবে যা এটির সমস্ত ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"আপনি <xliff:g id="NUMBER">%d</xliff:g> বার ভুল করে ট্যাবলেট আনলক করার চেষ্টা করেছেন৷ এই ট্যাবলেটটিকে পুনরায় সেট করা হবে যা এটির সমস্ত ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"আপনি <xliff:g id="NUMBER">%d</xliff:g> বার ভুল করে ফোন আনলক করার চেষ্টা করেছেন৷ এই ফোনটিকে পুনরায় সেট করা হবে যা এটির সমস্ত ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"আপনি <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করে ট্যাবলেট আনলক করার চেষ্টা করেছেন৷ <xliff:g id="NUMBER_1">%2$d</xliff:g>টি অসফল প্রচেষ্টার পরে, এই ব্যবহারকারীকে সরানো হবে যা সমস্ত ব্যবহারকারীর ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"আপনি <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করে ফোন আনলক করার চেষ্টা করেছেন৷ <xliff:g id="NUMBER_1">%2$d</xliff:g>টি অসফল প্রচেষ্টার পরে, এই ব্যবহারকারীকে সরানো হবে যা সমস্ত ব্যবহারকারীর ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"আপনি <xliff:g id="NUMBER">%d</xliff:g> বার ভুল করে ট্যাবলেটটি আনলক করার চেষ্টা করেছেন৷ এই ব্যবহারকারীকে সরানো হবে যা সমস্ত ব্যবহারকারীর ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"আপনি <xliff:g id="NUMBER">%d</xliff:g> বার ভুল করে ফোনটি আনলক করার চেষ্টা করেছেন৷ এই ব্যবহারকারীকে সরানো হবে যা সমস্ত ব্যবহারকারীর ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"আপনি <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করে ট্যাবলেট আনলক করার চেষ্টা করেছেন৷ <xliff:g id="NUMBER_1">%2$d</xliff:g>টি অসফল প্রচেষ্টার পরে, কাজের প্রোফাইল সরানো হবে যা সমস্ত প্রোফাইল ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"আপনি <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করে ফোন আনলক করার চেষ্টা করেছেন৷ <xliff:g id="NUMBER_1">%2$d</xliff:g>টি অসফল প্রচেষ্টার পরে, কাজের প্রোফাইল সরানো হবে যা সমস্ত প্রোফাইল ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"আপনি <xliff:g id="NUMBER">%d</xliff:g> বার ভুল করে ট্যাবলেটটি আনলক করার চেষ্টা করেছেন৷ কাজের প্রোফাইল সরানো হবে যা সমস্ত প্রোফাইল ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"আপনি <xliff:g id="NUMBER">%d</xliff:g> বার ভুল করে ফোনটি আনলক করার চেষ্টা করেছেন৷ কাজের প্রোফাইল সরানো হবে যা সমস্ত প্রোফাইল ডেটা মুছে ফেলবে৷"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"আপনি আপনার আনলকের প্যাটার্ন আঁকার ক্ষেত্রে <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করেছেন৷ আর <xliff:g id="NUMBER_1">%2$d</xliff:g> বার অসফল প্রচেষ্টা করা হলে আপনাকে একটি ইমেল অ্যাকাউন্ট মারফত আপনার ট্যাবলেট আনলক করতে বলা হবে৷\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"আপনি আপনার আনলকের প্যাটার্ন আঁকার ক্ষেত্রে <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করেছেন৷ আর <xliff:g id="NUMBER_1">%2$d</xliff:g> বার অসফল প্রচেষ্টা করা হলে আপনাকে একটি ইমেল অ্যাকাউন্ট মারফত আপনার ফোন আনলক করতে বলা হবে৷\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"ভুল সিম পিন কোড, আপনার ডিভাইসটি আনলক করতে এখন আপনাকে অবশ্যই আপনার ক্যারিয়ারের সাথে যোগাযোগ করতে হবে৷"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">ভুল সিম পিন কোড, আপনার কাছে আর <xliff:g id="NUMBER_1">%d</xliff:g>টি প্রচেষ্টা বাকি রয়েছে৷</item>
-      <item quantity="other">ভুল সিম পিন কোড, আপনার কাছে আর <xliff:g id="NUMBER_1">%d</xliff:g>টি প্রচেষ্টা বাকি রয়েছে৷</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIMটি ব্যবহারের অযোগ্য৷ আপনার ক্যারিয়ারের সাথে যোগাযোগ করুন৷"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">ভুল সিম PUK কোড, আপনার কাছে আর <xliff:g id="NUMBER_1">%d</xliff:g>টি প্রচেষ্টা বাকি রয়েছে এটির পরেই আপনার সিম স্থায়ীভাবে অব্যবহারযোগ্য হবে৷</item>
-      <item quantity="other">ভুল সিম PUK কোড, আপনার কাছে আর <xliff:g id="NUMBER_1">%d</xliff:g>টি প্রচেষ্টা বাকি রয়েছে এটির পরেই আপনার সিম স্থায়ীভাবে অব্যবহারযোগ্য হবে৷</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"সিম পিন ক্রিয়াকলাপটি ব্যর্থ হয়েছে!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"সিম PUK ক্রিয়াকলাপটি ব্যর্থ হয়েছে!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"কোড স্বীকৃত হয়েছে!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"কোনো পরিষেবা নেই৷"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ইনপুট পদ্ধতি পাল্টান"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"বিমান মোড"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ডিভাইস পুনরায় আরম্ভ করার পর প্যাটার্নের প্রয়োজন হবে"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ডিভাইস পুনরায় আরম্ভ করার পর পিন এর প্রয়োজন হবে"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ডিভাইস পুনরায় আরম্ভ করার পর পাসওয়ার্ডের প্রয়োজন হবে"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"অতিরিক্ত সুরক্ষার জন্য প্যাটার্ন প্রয়োজন"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"অতিরিক্ত সুরক্ষার জন্য পিন প্রয়োজন"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"অতিরিক্ত সুরক্ষার জন্য পাসওয়ার্ড প্রয়োজন"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"যখন আপনি প্রোফাইলগুলি পাল্টাবেন তখন প্যাটার্নের প্রয়োজন হবে"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"যখন আপনি প্রোফাইলগুলি পাল্টাবেন তখন পিন এর প্রয়োজন হবে"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"যখন আপনি প্রোফাইলগুলি পাল্টাবেন তখন পাসওয়ার্ডের প্রয়োজন হবে"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"ডিভাইস প্রশাসক ডিভাইসটিকে লক করেছেন"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"ডিভাইসটিকে নিজের হাতে লক করা হয়েছে"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">ডিভাইস <xliff:g id="NUMBER_1">%d</xliff:g> ঘন্টার জন্য আনলক করা হয়নি। প্যাটার্ন নিশ্চিত করুন।</item>
-      <item quantity="other">ডিভাইস <xliff:g id="NUMBER_1">%d</xliff:g> ঘন্টার জন্য আনলক করা হয়নি। প্যাটার্ন নিশ্চিত করুন।</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">ডিভাইস <xliff:g id="NUMBER_1">%d</xliff:g> ঘন্টার জন্য আনলক করা হয়নি। পিন নিশ্চিত করুন৷</item>
-      <item quantity="other">ডিভাইস <xliff:g id="NUMBER_1">%d</xliff:g> ঘন্টার জন্য আনলক করা হয়নি। পিন নিশ্চিত করুন৷</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">ডিভাইস <xliff:g id="NUMBER_1">%d</xliff:g> ঘন্টার জন্য আনলক করা হয়নি। পাসওয়ার্ড নিশ্চিত করুন৷</item>
-      <item quantity="other">ডিভাইস <xliff:g id="NUMBER_1">%d</xliff:g> ঘন্টার জন্য আনলক করা হয়নি। পাসওয়ার্ড নিশ্চিত করুন৷</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"স্বীকৃত নয়"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-bs/strings.xml b/packages/Keyguard/res/values-bs/strings.xml
deleted file mode 100644
index b8ff2a9..0000000
--- a/packages/Keyguard/res/values-bs/strings.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Čuvar tastature"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Unesite PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Unesite SIM PUK i novi PIN kôd"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK kôd"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Novi SIM PIN kôd"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Dodirnite za unos lozinke"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Unesite lozinku za otključavanje tipkovnice"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Unesite PIN za otključavanje tipkovnice"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Pogrešan PIN."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Napunjeno"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Punjenje"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Brzo punjenje"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Sporo punjenje"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Povežite na punjač."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Pritisnite meni da otključate."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Mreža je zaključana"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nema SIM kartice"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Nema SIM kartice u tabletu."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Nema SIM kartice u telefonu."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Umetnite SIM karticu."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM kartica nedostaje ili se ne može pročitati. Umetnite SIM karticu."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Neupotrebljiva SIM kartica."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Vaša SIM kartica je trajno onemogućena. \n Obratite se svom pružaocu bežičnih usluga za drugu SIM karticu."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kartica je zaključana."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kartica je zaključana PUK kodom."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Otključavanje SIM kartice…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Prostor za PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Prostor za SIM PIN"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Prostor za SIM PUK"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Sljedeći alarm je podešen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Izbriši"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Potvrdi"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zaboravili ste uzorak?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Pogrešan uzorak"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Pogrešna lozinka"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Pogrešan PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Broj sekundi do sljedećeg pokušaja: <xliff:g id="NUMBER">%d</xliff:g>."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Nacrtajte obrazac"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Unesite PIN za SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Unesite SIM PIN za \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Unesite PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Unesite lozinku"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM je sada onemogućen. Unesite PUK kôd da nastavite. Obratite se operateru za detalje."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM operator \"<xliff:g id="CARRIER">%1$s</xliff:g>\" je sada isključen. Unesite PUK kôd da nastavite. Za više detalja obratite se operateru."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Unesite željeni PIN kôd"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potvrdi željeni PIN kôd"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Otključavanje SIM kartice…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Unesite PIN koji sadrži od 4 do 8 brojeva."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kôd treba da sadrži 8 brojeva ili više."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Ponovo unesite ispravan PUK kôd. Ponovljeni pokušaji će trajno onemogućiti SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodovi se ne poklapaju"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Previše pokušaja otključavanja pomoću uzorka"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Pogrešno ste unijeli PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nBroj sekundi do sljedećeg pokušaja: <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Pogrešno ste unijeli lozinku <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nBroj sekundi do sljedećeg pokušaja: <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Pogrešno ste nacrtali uzorak <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nBroj sekundi do sljedećeg pokušaja: <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Pokušali ste <xliff:g id="NUMBER_0">%1$d</xliff:g> puta neispravno otključati tablet. U slučaju još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, tablet će biti vraćen na fabričke postavke a svi podaci će biti izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Pokušali ste <xliff:g id="NUMBER_0">%1$d</xliff:g> puta neispravno otključati telefon. U slučaju još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, telefon će biti vraćen na fabričke postavke a svi podaci će biti izbrisani."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Pokušali ste <xliff:g id="NUMBER">%d</xliff:g> puta neispravno otključati tablet. Tablet će sada biti vraćen na fabričke postavke a svi podaci će biti izbrisani."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Pokušali ste <xliff:g id="NUMBER">%d</xliff:g> puta neispravno otključati telefon. Telefon će sada biti vraćen na fabričke postavke a svi podaci će biti izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Pokušali ste <xliff:g id="NUMBER_0">%1$d</xliff:g> puta neispravno otključati tablet. U slučaju još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, ovaj korisnik će biti uklonjen a svi podaci korisnika bit će izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Pokušali ste <xliff:g id="NUMBER_0">%1$d</xliff:g> puta neispravno otključati telefon. U slučaju još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, ovaj korisnik će biti uklonjen a svi podaci korisnika bit će izbrisani."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Pokušali ste <xliff:g id="NUMBER">%d</xliff:g> puta neispravno otključati tablet. Korisnik će biti uklonjen a svi podaci korisnika bit će izbrisani."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Pokušali ste <xliff:g id="NUMBER">%d</xliff:g> puta neispravno otključati telefon. Korisnik će biti uklonjen a svi podaci korisnika bit će izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Pokušali ste <xliff:g id="NUMBER_0">%1$d</xliff:g> puta neispravno otključati tablet. U slučaju još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, poslovni profil će biti uklonjen a svi podaci s profila bit će izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Pokušali ste <xliff:g id="NUMBER_0">%1$d</xliff:g> puta neispravno otključati telefon. U slučaju još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, poslovni profil će biti uklonjen a svi podaci s profila bit će izbrisani."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Pokušali ste <xliff:g id="NUMBER">%d</xliff:g> puta neispravno otključati tablet. Poslovni profil će biti uklonjen a svi podaci s profila bit će izbrisani."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Pokušali ste <xliff:g id="NUMBER">%d</xliff:g> puta neispravno otključati telefon. Poslovni profil će biti uklonjen a svi podaci s profila bit će izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Pogrešno ste nacrtali uzorak za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Ako napravite još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, od vas će se tražiti da otključate tablet pomoću e-pošte. \n\n Pokušajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sek."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Pogrešno ste nacrtali uzorak za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Ako napravite još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, od vas će se tražiti da otključate telefon pomoću e-pošte. \n\n Pokušajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sek."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Pogrešan PIN kôd za SIM. Morate obratiti svom operateru za otključavanje uređaja."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">PIN kôd za SIM karticu je netačan. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaj.</item>
-      <item quantity="few">PIN kôd za SIM karticu je netačan. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja.</item>
-      <item quantity="other">PIN kôd za SIM karticu je netačan. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM je neupotrebljiv. Obratite se svom operateru."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">PUK kôd za SIM karticu je netačan. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaj prije nego SIM kartica postane trajno neupotrebljiva.</item>
-      <item quantity="few">PUK kôd za SIM karticu je netačan. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja prije nego SIM kartica postane trajno neupotrebljiva.</item>
-      <item quantity="other">PUK kôd za SIM karticu je netačan. Imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja prije nego SIM kartica postane trajno neupotrebljiva.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Korištenje PIN-a za SIM nije uspjelo!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Korištenje PUK-a za SIM nije uspjelo!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kôd je prihvaćen"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Nema usluge."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Promijeni način unosa"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Način rada u avionu"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Potreban je uzorak nakon ponovnog pokretanja uređaja"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Potreban je PIN nakon ponovnog pokretanja uređaja"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Potrebna je lozinka nakon ponovnog pokretanja uređaja"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Uzorak je potreban radi dodatne sigurnosti"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN je potreban radi dodatne sigurnosti"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Lozinka je potrebna radi dodatne sigurnosti"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Potreban je uzorak nakon prelaska na drugi profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Potreban je PIN nakon prelaska na drugi profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Potrebna je lozinka nakon prelaska na drugi profil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Administrator je zaključao uređaj."</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Uređaj je ručno zaključan"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite obrazac.</item>
-      <item quantity="few">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite obrazac.</item>
-      <item quantity="other">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite obrazac.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite PIN.</item>
-      <item quantity="few">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite PIN.</item>
-      <item quantity="other">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite lozinku.</item>
-      <item quantity="few">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite lozinku.</item>
-      <item quantity="other">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite lozinku.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nije prepoznat"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ca/strings.xml b/packages/Keyguard/res/values-ca/strings.xml
deleted file mode 100644
index 9207e0e..0000000
--- a/packages/Keyguard/res/values-ca/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Bloqueig de teclat"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Introdueix el codi PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Escriu el PUK de la SIM i el codi PIN nou."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Codi PUK de la SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Codi PIN de la SIM nou"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Toca per introduir contrasenya"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Introdueix la contrasenya per desbloquejar"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Introdueix la contrasenya per desbloquejar"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Codi PIN incorrecte."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Carregada"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Carregant"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"S\'està carregant ràpidament"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"S\'està carregant lentament"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Connecta el carregador."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Prem Menú per desbloquejar."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Xarxa bloquejada"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"No hi ha cap targeta SIM."</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"No hi ha cap targeta SIM a la tauleta."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"No hi ha cap targeta SIM al telèfon."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insereix una targeta SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Falta la targeta SIM o no es pot llegir. Insereix-ne una."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Targeta SIM no utilitzable."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"La targeta SIM s\'ha desactivat permanentment.\n Contacta amb el teu proveïdor de serveis sense fil per obtenir-ne una altra."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La targeta SIM està bloquejada."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La targeta SIM està bloquejada pel PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"S\'està desbloquejant la targeta SIM..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zona del PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zona del PIN de la SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zona del PUK de la SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"S\'ha definit la pròxima alarma per a les: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Suprimeix"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Retorn"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patró oblidat"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Patró incorrecte"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Contrasenya incorrecta"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN incorrecte"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Torna-ho a provar d\'aquí a <xliff:g id="NUMBER">%d</xliff:g> segons."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Dibuixa el patró"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introdueix el PIN de la SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Introdueix el PIN de la SIM de <xliff:g id="CARRIER">%1$s</xliff:g>."</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Introdueix el PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Introdueix la contrasenya"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"La SIM està desactivada. Introdueix el codi PUK per continuar. Contacta amb l\'operador de telefonia mòbil per obtenir detalls."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"La SIM de <xliff:g id="CARRIER">%1$s</xliff:g> està desactivada. Introdueix el codi PUK per continuar. Contacta amb l\'operador de telefonia mòbil per obtenir més informació."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Introdueix el codi PIN"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirma el codi PIN"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"S\'està desbloquejant la targeta SIM..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Escriu un PIN que tingui de 4 a 8 números."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"El codi PUK ha de tenir 8 números o més."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Torna a introduir el codi PUK correcte. Els intents repetits faran que es desactivi la SIM de manera permanent."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Els codis PIN no coincideixen"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Massa intents incorrectes"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Has escrit malament el PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. \n\nTorna-ho a provar d\'aquí a <xliff:g id="NUMBER_1">%2$d</xliff:g> segons."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Has escrit malament la contrasenya <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. \n\nTorna-ho a provar d\'aquí a <xliff:g id="NUMBER_1">%2$d</xliff:g> segons."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Has dibuixat el patró de desbloqueig de manera incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. \n\nTorna-ho a provar d\'aquí a <xliff:g id="NUMBER_1">%2$d</xliff:g> segons."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Has provat de desbloquejar la tauleta incorrectament <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. Et queden <xliff:g id="NUMBER_1">%2$d</xliff:g> intents més. Si no ho fas bé, la tauleta es restablirà i se n\'esborraran totes les dades."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Has provat de desbloquejar el telèfon incorrectament <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. Et queden <xliff:g id="NUMBER_1">%2$d</xliff:g> intents més. Si no ho fas bé, el telèfon es restablirà i se n\'esborraran totes les dades."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Has provat de desbloquejar la tauleta incorrectament <xliff:g id="NUMBER">%d</xliff:g> vegades. La tauleta es restablirà i se n\'esborraran totes les dades."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Has provat de desbloquejar el telèfon incorrectament <xliff:g id="NUMBER">%d</xliff:g> vegades. El telèfon es restablirà i se n\'esborraran totes les dades."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Has provat de desbloquejar la tauleta incorrectament <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. Et queden <xliff:g id="NUMBER_1">%2$d</xliff:g> intents més. Si no ho fas bé, l\'usuari se suprimirà, juntament amb totes les seves dades."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Has provat de desbloquejar el telèfon incorrectament <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. Et queden <xliff:g id="NUMBER_1">%2$d</xliff:g> intents més. Si no ho fas bé, l\'usuari se suprimirà, juntament amb totes les seves dades."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Has provat de desbloquejar la tauleta incorrectament <xliff:g id="NUMBER">%d</xliff:g> vegades. L\'usuari se suprimirà, juntament amb totes les seves dades."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Has provat de desbloquejar el telèfon incorrectament <xliff:g id="NUMBER">%d</xliff:g> vegades. L\'usuari se suprimirà, juntament amb totes les seves dades."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Has provat de desbloquejar la tauleta incorrectament <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. Et queden <xliff:g id="NUMBER_1">%2$d</xliff:g> intents més. Si no ho fas bé, el perfil professional se suprimirà, juntament amb totes les dades que contingui."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Has provat de desbloquejar el telèfon incorrectament <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades. Et queden <xliff:g id="NUMBER_1">%2$d</xliff:g> intents més. Si no ho fas bé, el perfil professional se suprimirà, juntament amb totes les dades que contingui."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Has provat de desbloquejar la tauleta incorrectament <xliff:g id="NUMBER">%d</xliff:g> vegades. El perfil professional se suprimirà, juntament amb totes les dades que contingui."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Has provat de desbloquejar el telèfon incorrectament <xliff:g id="NUMBER">%d</xliff:g> vegades. El perfil professional se suprimirà, juntament amb totes les dades que contingui."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Has dibuixat el patró de desbloqueig <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades de manera incorrecta. Si falles <xliff:g id="NUMBER_1">%2$d</xliff:g> vegades més, se\'t demanarà que desbloquegis la tauleta amb un compte de correu electrònic.\n\n Torna-ho a provar d\'aquí a <xliff:g id="NUMBER_2">%3$d</xliff:g> segons."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Has dibuixat el patró de desbloqueig <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades de manera incorrecta. Si falles <xliff:g id="NUMBER_1">%2$d</xliff:g> vegades més, se\'t demanarà que desbloquegis el telèfon amb un compte de correu electrònic.\n\n Torna-ho a provar d\'aquí a <xliff:g id="NUMBER_2">%3$d</xliff:g> segons."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"El codi PIN de la SIM no és correcte. Has de contactar amb l\'operador de telefonia mòbil per desbloquejar el dispositiu."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">El codi PIN de la SIM no és correcte. Et queden <xliff:g id="NUMBER_1">%d</xliff:g> intents.</item>
-      <item quantity="one">El codi PIN de la SIM no és correcte. Et queda <xliff:g id="NUMBER_0">%d</xliff:g> intent; si no l\'encertes, contacta amb l\'operador de telefonia mòbil per desbloquejar el dispositiu.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"La SIM no es pot utilitzar. Contacta amb l\'operador de telefonia mòbil."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">El codi PUK de la SIM no és correcte. Et queden <xliff:g id="NUMBER_1">%d</xliff:g> intents; si no l\'encertes, la SIM no es podrà tornar a fer servir.</item>
-      <item quantity="one">El codi PUK de la SIM no és correcte. Et queda <xliff:g id="NUMBER_0">%d</xliff:g> intent; si no l\'encertes, la SIM no es podrà tornar a fer servir.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Hi ha hagut un problema en l\'operació del PIN de la SIM."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Hi ha hagut un problema en l\'operació del PUK de la SIM."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"S\'ha acceptat el codi."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Sense servei."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Canvia el mètode d\'introducció"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Mode d\'avió"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Cal introduir el patró quan es reinicia el dispositiu"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Cal introduir el PIN quan es reinicia el dispositiu"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Cal introduir la contrasenya quan es reinicia el dispositiu"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Cal introduir el patró per disposar de més seguretat"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Cal introduir el PIN per disposar de més seguretat"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Cal introduir la contrasenya per disposar de més seguretat"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Cal introduir el patró en canviar de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Cal introduir el PIN en canviar de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Cal introduir la contrasenya en canviar de perfil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"L\'administrador ha bloquejat el dispositiu"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"El dispositiu s\'ha bloquejat manualment"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Fa <xliff:g id="NUMBER_1">%d</xliff:g> hores que no es desbloqueja el dispositiu. Confirma el patró.</item>
-      <item quantity="one">Fa <xliff:g id="NUMBER_0">%d</xliff:g> hora que no es desbloqueja el dispositiu. Confirma el patró.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Fa <xliff:g id="NUMBER_1">%d</xliff:g> hores que no es desbloqueja el dispositiu. Confirma el PIN.</item>
-      <item quantity="one">Fa <xliff:g id="NUMBER_0">%d</xliff:g> hora que no es desbloqueja el dispositiu. Confirma el PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Fa <xliff:g id="NUMBER_1">%d</xliff:g> hores que no es desbloqueja el dispositiu. Confirma la contrasenya.</item>
-      <item quantity="one">Fa <xliff:g id="NUMBER_0">%d</xliff:g> hora que no es desbloqueja el dispositiu. Confirma la contrasenya.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"No s\'ha reconegut"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-cs/strings.xml b/packages/Keyguard/res/values-cs/strings.xml
deleted file mode 100644
index aa7115d..0000000
--- a/packages/Keyguard/res/values-cs/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Uzamčení kláves"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Zadejte kód PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Zadejte kód PUK SIM karty a nový kód PIN."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Kód PUK SIM karty"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nový kód PIN SIM karty"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Dotykem zadáte heslo"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Zadejte heslo pro odemknutí"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Zadejte kód PIN pro odemknutí"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Nesprávný kód PIN."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Nabito"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Nabíjení"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Rychlé nabíjení"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Pomalé nabíjení"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Připojte dobíjecí zařízení."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Telefon odemknete stisknutím tlačítka Menu."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Síť je blokována"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Není vložena SIM karta."</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"V tabletu není SIM karta."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"V telefonu není SIM karta."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Vložte SIM kartu."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM karta chybí nebo je nečitelná. Vložte SIM kartu."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Nepoužitelná SIM karta."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karta je zablokována."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karta je zablokována pomocí kódu PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Odblokování SIM karty…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Oblast kódu PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Oblast kódu PIN SIM karty"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Oblast kódu PUK SIM karty"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Další budík je nastaven na <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Smazat"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zapomenuté gesto"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávné gesto"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Nesprávné heslo"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Nesprávný kód PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Zkuste to znovu za <xliff:g id="NUMBER">%d</xliff:g> s."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Nakreslete gesto"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Zadejte kód PIN SIM karty"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Zadejte PIN SIM karty <xliff:g id="CARRIER">%1$s</xliff:g>."</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Zadejte kód PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Zadejte heslo"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM karta byla deaktivována. Chcete-li pokračovat, je třeba zadat kód PUK. Podrobné informace získáte od operátora."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM karta <xliff:g id="CARRIER">%1$s</xliff:g> je nyní zakázána. Chcete-li pokračovat, zadejte kód PUK. Podrobnosti vám poskytne operátor."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Zadejte požadovaný kód PIN."</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potvrďte požadovaný kód PIN."</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Odblokování SIM karty..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Zadejte kód PIN o délce 4–8 číslic."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Minimální délka kódu PUK je 8 číslic."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Znovu zadejte správný kód PUK. Opakovanými pokusy SIM kartu trvale deaktivujete."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kódy PIN se neshodují."</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Příliš mnoho pokusů o nakreslení gesta"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Již <xliff:g id="NUMBER_0">%1$d</xliff:g>krát jste zadali nesprávný kód PIN. \n\nZkuste to znovu za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Již <xliff:g id="NUMBER_0">%1$d</xliff:g>krát jste nesprávně zadali heslo. \n\nZkuste to znovu za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Již <xliff:g id="NUMBER_0">%1$d</xliff:g>krát jste zadali nesprávné bezpečnostní gesto. \n\nZkuste to znovu za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Již jste se <xliff:g id="NUMBER_0">%1$d</xliff:g>krát pokusili odemknout tablet nesprávným způsobem. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech bude tablet resetován, čímž se z něj smažou všechna data."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Již jste se <xliff:g id="NUMBER_0">%1$d</xliff:g>krát pokusili odemknout telefon nesprávným způsobem. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech bude telefon resetován, čímž se z něj smažou všechna data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Již jste se <xliff:g id="NUMBER">%d</xliff:g>krát pokusili odemknout tablet nesprávným způsobem. Tablet bude resetován, čímž z něj budou smazána všechna data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Již jste se <xliff:g id="NUMBER">%d</xliff:g>krát pokusili odemknout telefon nesprávným způsobem. Telefon bude resetován, čímž z něj budou smazána všechna data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Již jste se <xliff:g id="NUMBER_0">%1$d</xliff:g>krát pokusili odemknout tablet nesprávným způsobem. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech bude tento uživatel odstraněn, čímž se smažou všechna jeho data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Již jste se <xliff:g id="NUMBER_0">%1$d</xliff:g>krát pokusili odemknout telefon nesprávným způsobem. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech bude tento uživatel odstraněn, čímž se smažou všechna jeho data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Již jste se <xliff:g id="NUMBER">%d</xliff:g>krát pokusili odemknout tablet nesprávným způsobem. Uživatel bude odstraněn, čímž budou smazána všechna jeho data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Již jste se <xliff:g id="NUMBER">%d</xliff:g>krát pokusili odemknout telefon nesprávným způsobem. Uživatel bude odstraněn, čímž budou smazána všechna jeho data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Již jste se <xliff:g id="NUMBER_0">%1$d</xliff:g>krát pokusili odemknout tablet nesprávným způsobem. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech bude pracovní profil odstraněn, čímž se smažou všechna jeho data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Již jste se <xliff:g id="NUMBER_0">%1$d</xliff:g>krát pokusili odemknout telefon nesprávným způsobem. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech bude pracovní profil odstraněn, čímž se smažou všechna jeho data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Již jste se <xliff:g id="NUMBER">%d</xliff:g>krát pokusili odemknout tablet nesprávným způsobem. Pracovní profil bude odstraněn, čímž budou smazána všechna jeho data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Již jste se <xliff:g id="NUMBER">%d</xliff:g>krát pokusili odemknout telefon nesprávným způsobem. Pracovní profil bude odstraněn, čímž budou smazána všechna jeho data."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Již <xliff:g id="NUMBER_0">%1$d</xliff:g>krát jste nesprávně nakreslili své heslo odemknutí. Po <xliff:g id="NUMBER_1">%2$d</xliff:g>dalších neúspěšných pokusech budete požádáni o odemčení tabletu pomocí e-mailového účtu.\n\n Zkuste to znovu za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Již <xliff:g id="NUMBER_0">%1$d</xliff:g>krát jste nesprávně nakreslili své heslo odemknutí. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech budete požádáni o odemčení telefonu pomocí e-mailového účtu.\n\n Zkuste to znovu za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Zadali jste nesprávný kód PIN SIM karty. Nyní musíte za účelem odemknutí zařízení kontaktovat svého operátora."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="few">Zadali jste nesprávný kód PIN SIM karty. Máte ještě <xliff:g id="NUMBER_1">%d</xliff:g> pokusy.</item>
-      <item quantity="many">Zadali jste nesprávný kód PIN SIM karty. Máte ještě <xliff:g id="NUMBER_1">%d</xliff:g> pokusu.</item>
-      <item quantity="other">Zadali jste nesprávný kód PIN SIM karty. Máte ještě <xliff:g id="NUMBER_1">%d</xliff:g> pokusů.</item>
-      <item quantity="one">Zadali jste nesprávný PIN SIM karty. Zbývá <xliff:g id="NUMBER_0">%d</xliff:g> pokus, poté bude muset zařízení odemknout operátor.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM kartu nelze použít. Kontaktujte operátora."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="few">Nesprávný kód PUK SIM karty. Máte ještě <xliff:g id="NUMBER_1">%d</xliff:g> pokusy, poté bude SIM karta natrvalo zablokována.</item>
-      <item quantity="many">Nesprávný kód PUK SIM karty. Máte ještě <xliff:g id="NUMBER_1">%d</xliff:g> pokusu, poté bude SIM karta natrvalo zablokována.</item>
-      <item quantity="other">Nesprávný kód PUK SIM karty. Máte ještě <xliff:g id="NUMBER_1">%d</xliff:g> pokusů, poté bude SIM karta natrvalo zablokována.</item>
-      <item quantity="one">Nesprávný kód PUK SIM karty. Máte ještě <xliff:g id="NUMBER_0">%d</xliff:g> pokus, poté bude SIM karta natrvalo zablokována.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Operace pomocí kódu PIN SIM karty se nezdařila!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operace pomocí kódu PUK SIM karty se nezdařila!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kód byl přijat."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Žádný signál."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Přepnout metodu zadávání"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Režim Letadlo"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Po restartování zařízení je vyžadováno gesto"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Po restartování zařízení je vyžadován kód PIN"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Po restartování zařízení je vyžadováno heslo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Za účelem zvýšení zabezpečení je vyžadováno gesto"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Za účelem zvýšení zabezpečení je vyžadován kód PIN"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Za účelem zvýšení zabezpečení je vyžadováno heslo"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Po přepnutí profilů je vyžadováno gesto"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Po přepnutí profilů je vyžadován kód PIN"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Po přepnutí profilů je vyžadováno heslo"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Správce zařízení toto zařízení uzamkl"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Zařízení bylo ručně uzamčeno"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="few">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodiny nebylo odemknuto. Potvrďte gesto.</item>
-      <item quantity="many">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodiny nebylo odemknuto. Potvrďte gesto.</item>
-      <item quantity="other">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodin nebylo odemknuto. Potvrďte gesto.</item>
-      <item quantity="one">Zařízení již <xliff:g id="NUMBER_0">%d</xliff:g> hodinu nebylo odemknuto. Potvrďte gesto.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="few">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodiny nebylo odemknuto. Potvrďte PIN.</item>
-      <item quantity="many">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodiny nebylo odemknuto. Potvrďte PIN.</item>
-      <item quantity="other">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodin nebylo odemknuto. Potvrďte PIN.</item>
-      <item quantity="one">Zařízení již <xliff:g id="NUMBER_0">%d</xliff:g> hodinu nebylo odemknuto. Potvrďte PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="few">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodiny nebylo odemknuto. Potvrďte heslo.</item>
-      <item quantity="many">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodiny nebylo odemknuto. Potvrďte heslo.</item>
-      <item quantity="other">Zařízení již <xliff:g id="NUMBER_1">%d</xliff:g> hodin nebylo odemknuto. Potvrďte heslo.</item>
-      <item quantity="one">Zařízení již <xliff:g id="NUMBER_0">%d</xliff:g> hodinu nebylo odemknuto. Potvrďte heslo.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nerozpoznáno"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-da/strings.xml b/packages/Keyguard/res/values-da/strings.xml
deleted file mode 100644
index 0fb7416..0000000
--- a/packages/Keyguard/res/values-da/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Tastaturlås"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Indtast pinkode"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Indtast PUK-koden til SIM-kortet og den nye pinkode"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-kode til SIM-kort"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Ny pinkode til SIM-kortet"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Tryk for at angive adgangskode"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Indtast adgangskoden for at låse op"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Indtast pinkode for at låse op"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Forkert pinkode."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Opladet"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Oplader"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Oplader hurtigt"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Oplader langsomt"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Tilslut din oplader."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Tryk på Menu for at låse op."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Netværket er låst"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Intet SIM-kort"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Der er ikke noget SIM-kort i tabletten."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Der er ikke noget SIM-kort i telefonen."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Indsæt et SIM-kort."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-kortet mangler eller kan ikke læses. Indsæt et SIM-kort."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Ubrugeligt SIM-kort."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Dit SIM-kort er blevet permanent deaktiveret.\nKontakt din tjenesteudbyder for at få et nyt SIM-kort."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortet er låst."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kort er låst med PUK-koden."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-kortet låses op…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Område for pinkoden"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Område for pinkoden til simkortet"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Område for PUK-koden til simkortet"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Næste alarm er indstillet til <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Slet"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Angiv"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Glemt mønster"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Forkert mønster"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Forkert adgangskode"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Forkert pinkode"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Prøv igen om <xliff:g id="NUMBER">%d</xliff:g> sekunder."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Tegn dit mønster"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Indtast pinkode til SIM-kort"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Indtast SIM-pinkoden for \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Indtast pinkode"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Angiv adgangskode"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-kortet er nu deaktiveret. Indtast PUK-koden for at fortsætte. Kontakt mobiloperatøren for at få flere oplysninger."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-kortet fra \"<xliff:g id="CARRIER">%1$s</xliff:g>\" er nu deaktiveret. Indtast PUK-koden for at fortsætte. Kontakt mobilselskabet for at få flere oplysninger."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Indtast den ønskede pinkode"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Bekræft den ønskede pinkode"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM-kortet låses op…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Indtast en pinkode på mellem 4 og 8 tal."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-koden skal være på 8 tal eller mere."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Indtast den korrekte PUK-kode. Gentagne forsøg vil permanent deaktivere SIM-kortet."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Pinkoderne stemmer ikke overens"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"For mange forsøg på at tegne mønstret korrekt"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Du har indtastet en forkert pinkode <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. \n\nPrøv igen om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Du har indtastet din adgangskode forkert <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. \n\nPrøv igen om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Du har tegnet dit oplåsningsmønster forkert <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. \n\nPrøv igen om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Du har forsøgt at låse tabletten forkert op <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter endnu <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykkede forsøg nulstilles denne tablet, hvilket vil slette alle dens data."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Du har forsøgt at låse telefonen forkert op <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter endnu <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykkede forsøg nulstilles denne telefon, hvilket vil slette alle dens data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Du har forsøgt at låse tabletten forkert op <xliff:g id="NUMBER">%d</xliff:g> gange. Tabletten nulstilles, hvilket vil slette alle dens data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Du har forsøgt at låse telefonen forkert op <xliff:g id="NUMBER">%d</xliff:g> gange. Telefonen nulstilles, hvilket vil slette alle dens data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Du har forsøgt at låse tabletten forkert op <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter endnu <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykkede forsøg fjernes denne bruger, hvilket vil slette alle brugerdata."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Du har forsøgt at låse telefonen forkert op <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter endnu <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykkede forsøg fjernes denne bruger, hvilket vil slette alle brugerdata."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Du har forsøgt at låse tabletten forkert op <xliff:g id="NUMBER">%d</xliff:g> gange. Brugeren fjernes, hvilket vil slette alle brugerdata."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Du har forsøgt at låse telefonen forkert op <xliff:g id="NUMBER">%d</xliff:g> gange. Brugeren fjernes, hvilket vil slette alle brugerdata."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Du har forsøgt at låse tabletten forkert op <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter endnu <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykkede forsøg fjernes arbejdsprofilen, hvilket vil slette alle profildata."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Du har forsøgt at låse telefonen forkert op <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter endnu <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykkede forsøg fjernes arbejdsprofilen, hvilket vil slette alle profildata."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Du har forsøgt at låse tabletten forkert op <xliff:g id="NUMBER">%d</xliff:g> gange. Arbejdsprofilen fjernes, hvilket vil slette alle profildata."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Du har forsøgt at låse telefonen forkert op <xliff:g id="NUMBER">%d</xliff:g> gange. Arbejdsprofilen fjernes, hvilket vil slette alle profildata."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Du har tegnet dit oplåsningsmønster forkert <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> yderligere mislykkede forsøg vil du blive bedt om at låse din tablet op ved hjælp af en e-mailkonto\n\n Prøv igen om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Du har tegnet dit oplåsningsmønster forkert <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> yderligere mislykkede forsøg til vil du blive bedt om at låse din telefon op ved hjælp af en e-mailkonto.\n\n Prøv igen om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Forkert pinkode til SIM-kort. Du skal nu kontakte dit mobilselskab for at låse din enhed op."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Forkert pinkode til SIM-kort. Du har <xliff:g id="NUMBER_1">%d</xliff:g> forsøg tilbage.</item>
-      <item quantity="other">Forkert pinkode til SIM-kort. Du har <xliff:g id="NUMBER_1">%d</xliff:g> forsøg tilbage.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-kortet er ubrugeligt. Kontakt dit mobilselskab."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Forkert PUK-kode til SIM-kort. Du har <xliff:g id="NUMBER_1">%d</xliff:g> forsøg tilbage, før SIM-kortet bliver permanent ubrugeligt.</item>
-      <item quantity="other">Forkert PUK-kode til SIM-kort. Du har <xliff:g id="NUMBER_1">%d</xliff:g> forsøg tilbage, før SIM-kortet bliver permanent ubrugeligt.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Pinkoden til SIM-kortet blev afvist."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"PUK-koden til SIM-kortet blev afvist."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Koden blev accepteret."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ingen dækning."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Skift indtastningsmetode"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Flytilstand"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Du skal angive et mønster efter genstart af enheden"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Der skal indtaste en pinkode efter genstart af enheden"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Du skal indtaste en adgangskode efter genstart af enheden"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Der kræves et mønster som ekstra beskyttelse"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Der kræves en pinkode som ekstra beskyttelse"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Der kræves en adgangskode som ekstra beskyttelse"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Du skal angive et mønster, når du skifter profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Du skal indtaste en pinkode, når du skifter profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Du skal indtaste en adgangskode, når du skifter profil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Enhedsadministratoren har låst enheden"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Enheden blev låst manuelt"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Enheden blev sidst låst op for <xliff:g id="NUMBER_1">%d</xliff:g> timer siden. Bekræft mønsteret.</item>
-      <item quantity="other">Enheden blev sidst låst op for <xliff:g id="NUMBER_1">%d</xliff:g> timer siden. Bekræft mønsteret.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Enheden blev sidst låst op for <xliff:g id="NUMBER_1">%d</xliff:g> timer siden. Bekræft pinkoden.</item>
-      <item quantity="other">Enheden blev sidst låst op for <xliff:g id="NUMBER_1">%d</xliff:g> timer siden. Bekræft pinkoden.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Enheden blev sidst låst op for <xliff:g id="NUMBER_1">%d</xliff:g> timer siden. Bekræft adgangskoden.</item>
-      <item quantity="other">Enheden blev sidst låst op for <xliff:g id="NUMBER_1">%d</xliff:g> timer siden. Bekræft adgangskoden.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ikke genkendt"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-de/strings.xml b/packages/Keyguard/res/values-de/strings.xml
deleted file mode 100644
index a519ce8..0000000
--- a/packages/Keyguard/res/values-de/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PIN-Code eingeben"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Gib den PUK-Code der SIM-Karte und den neuen PIN-Code ein."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-Code der SIM-Karte"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Neuer PIN-Code der SIM-Karte"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Zur Passworteingabe berühren"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Passwort zum Entsperren eingeben"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"PIN zum Entsperren eingeben"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Falscher PIN-Code"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Aufgeladen"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Wird aufgeladen"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Schnelles Aufladen"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Langsames Aufladen"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Bitte Ladegerät anschließen"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Zum Entsperren die Menütaste drücken"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Netzwerk gesperrt"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Keine SIM-Karte"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Keine SIM-Karte im Tablet"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Keine SIM-Karte im Telefon"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Lege eine SIM-Karte ein."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-Karte fehlt oder ist nicht lesbar. Bitte lege eine SIM-Karte ein."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM-Karte unbrauchbar"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Deine SIM-Karte wurde dauerhaft deaktiviert.\n Wende dich an deinen Mobilfunkanbieter, um eine andere SIM-Karte zu erhalten."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-Karte ist gesperrt."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-Karte ist gesperrt. PUK-Eingabe erforderlich."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-Karte wird entsperrt…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-Bereich"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-PIN-Bereich"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-PUK-Bereich"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nächster Wecker gestellt für <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Löschen"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Eingabetaste"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Muster vergessen"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Falsches Muster"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Falsches Passwort"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Falsche PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Versuche es in <xliff:g id="NUMBER">%d</xliff:g> Sekunden erneut."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Muster zeichnen"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM-PIN eingeben"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"SIM-PIN für \"<xliff:g id="CARRIER">%1$s</xliff:g>\" eingeben"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"PIN eingeben"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Passwort eingeben"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Die SIM-Karte ist jetzt deaktiviert. Gib den PUK-Code ein, um fortzufahren. Weitere Informationen erhältst du von deinem Mobilfunkanbieter."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Die SIM-Karte \"<xliff:g id="CARRIER">%1$s</xliff:g>\" ist jetzt deaktiviert. Gib den PUK-Code ein, um fortzufahren. Weitere Informationen erhältst du von deinem Mobilfunkanbieter."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Gewünschten PIN-Code eingeben"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Gewünschten PIN-Code bestätigen"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM-Karte wird entsperrt…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Gib eine 4- bis 8-stellige PIN ein."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Der PUK-Code muss mindestens 8 Ziffern betragen."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Gib den richtigen PUK-Code ein. Bei wiederholten Versuchen wird die SIM-Karte dauerhaft deaktiviert."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-Codes stimmen nicht überein"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Zu viele Musterversuche"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Du hast deine PIN <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal falsch eingegeben.\n\nVersuche es in <xliff:g id="NUMBER_1">%2$d</xliff:g> Sekunden erneut."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Du hast dein Passwort <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal falsch eingegeben.\n\nVersuche es in <xliff:g id="NUMBER_1">%2$d</xliff:g> Sekunden erneut."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Du hast dein Entsperrungsmuster <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal falsch gezeichnet. \n\nVersuche es in <xliff:g id="NUMBER_1">%2$d</xliff:g> Sekunden erneut."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Du hast <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal erfolglos versucht, das Tablet zu entsperren. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wird dieses Tablet zurückgesetzt. Dadurch werden alle Gerätedaten gelöscht."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Du hast <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal erfolglos versucht, das Telefon zu entsperren. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wird dieses Telefon zurückgesetzt. Dadurch werden alle Gerätedaten gelöscht."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Du hast <xliff:g id="NUMBER">%d</xliff:g>-mal erfolglos versucht, das Tablet zu entsperren. Dieses Tablet wird nun zurückgesetzt und alle Gerätedaten werden gelöscht."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Du hast <xliff:g id="NUMBER">%d</xliff:g>-mal erfolglos versucht, das Telefon zu entsperren. Dieses Telefon wird nun zurückgesetzt und alle Gerätedaten werden gelöscht."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Du hast <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal erfolglos versucht, das Tablet zu entsperren. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wird dieser Nutzer entfernt. Dadurch werden alle Nutzerdaten gelöscht."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Du hast <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal erfolglos versucht, das Telefon zu entsperren. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wird dieser Nutzer entfernt. Dadurch werden alle Nutzerdaten gelöscht."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Du hast <xliff:g id="NUMBER">%d</xliff:g>-mal erfolglos versucht, das Tablet zu entsperren. Dieser Nutzer wird nun entfernt und alle Nutzerdaten werden gelöscht."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Du hast <xliff:g id="NUMBER">%d</xliff:g>-mal erfolglos versucht, das Telefon zu entsperren. Dieser Nutzer wird nun entfernt und alle Nutzerdaten werden gelöscht."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Du hast <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal erfolglos versucht, das Tablet zu entsperren. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wird das Arbeitsprofil entfernt. Dadurch werden alle Profildaten gelöscht."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Du hast <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal erfolglos versucht, das Telefon zu entsperren. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wird das Arbeitsprofil entfernt. Dadurch werden alle Profildaten gelöscht."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Du hast <xliff:g id="NUMBER">%d</xliff:g>-mal erfolglos versucht, das Tablet zu entsperren. Das Arbeitsprofil wird nun entfernt und alle Profildaten werden gelöscht."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Du hast <xliff:g id="NUMBER">%d</xliff:g>-mal erfolglos versucht, das Telefon zu entsperren. Das Arbeitsprofil wird nun entfernt und alle Profildaten werden gelöscht."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Du hast dein Entsperrungsmuster <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wirst du aufgefordert, dein Tablet mithilfe eines E-Mail-Kontos zu entsperren.\n\n Versuche es in <xliff:g id="NUMBER_2">%3$d</xliff:g> Sekunden erneut."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Du hast dein Entsperrungsmuster <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wirst du aufgefordert, dein Telefon mithilfe eines E-Mail-Kontos zu entsperren.\n\n Versuche es in <xliff:g id="NUMBER_2">%3$d</xliff:g> Sekunden erneut."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Falscher PIN-Code der SIM-Karte. Bitte wende dich an deinen Mobilfunkanbieter, damit er dein Gerät entsperrt."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Falscher PIN-Code der SIM-Karte. Du hast noch <xliff:g id="NUMBER_1">%d</xliff:g> Versuche.</item>
-      <item quantity="one">Falscher PIN-Code der SIM-Karte. Du hast noch <xliff:g id="NUMBER_0">%d</xliff:g> Versuch, bevor du das Gerät von deinem Mobilfunkanbieter entsperren lassen musst.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Die SIM-Karte kann nicht verwendet werden. Bitte wende dich an deinen Mobilfunkanbieter."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Falscher PUK-Code der SIM-Karte. Du hast noch <xliff:g id="NUMBER_1">%d</xliff:g> Versuche, bevor deine SIM-Karte endgültig gesperrt wird.</item>
-      <item quantity="one">Falscher PUK-Code der SIM-Karte. Du hast noch <xliff:g id="NUMBER_0">%d</xliff:g> Versuch, bevor deine SIM-Karte endgültig gesperrt wird.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Fehler beim Entsperren mit der PIN der SIM-Karte"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Fehler beim Entsperren mithilfe des PUK-Codes der SIM-Karte"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Code akzeptiert"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Kein Dienst"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Eingabemethode wechseln"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Flugmodus"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Nach dem Neustart des Geräts ist die Eingabe des Musters erforderlich."</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Nach dem Neustart des Geräts ist die Eingabe der PIN erforderlich."</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Nach dem Neustart des Geräts ist die Eingabe des Passworts erforderlich."</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Zur Verbesserung der Sicherheit ist ein Muster erforderlich."</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Zur Verbesserung der Sicherheit ist eine PIN erforderlich."</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Zur Verbesserung der Sicherheit ist ein Passwort erforderlich."</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Beim Profilwechsel ist die Eingabe des Musters erforderlich."</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Beim Profilwechsel ist die Eingabe der PIN erforderlich."</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Beim Profilwechsel ist die Eingabe des Passworts erforderlich."</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Gerät von Geräteadministrator gesperrt"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Gerät manuell gesperrt"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Das Gerät wurde seit <xliff:g id="NUMBER_1">%d</xliff:g> Stunden nicht mehr entsperrt. Bestätige das Muster.</item>
-      <item quantity="one">Das Gerät wurde seit <xliff:g id="NUMBER_0">%d</xliff:g> Stunde nicht mehr entsperrt. Bestätige das Muster.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Das Gerät wurde seit <xliff:g id="NUMBER_1">%d</xliff:g> Stunden nicht mehr entsperrt. Bestätige die PIN.</item>
-      <item quantity="one">Das Gerät wurde seit <xliff:g id="NUMBER_0">%d</xliff:g> Stunde nicht mehr entsperrt. Bestätige die PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Das Gerät wurde seit <xliff:g id="NUMBER_1">%d</xliff:g> Stunden nicht mehr entsperrt. Bestätige das Passwort.</item>
-      <item quantity="one">Das Gerät wurde seit <xliff:g id="NUMBER_0">%d</xliff:g> Stunde nicht mehr entsperrt. Bestätige das Passwort.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nicht erkannt"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-el/strings.xml b/packages/Keyguard/res/values-el/strings.xml
deleted file mode 100644
index d969266..0000000
--- a/packages/Keyguard/res/values-el/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Πληκτρολογήστε τον κωδικό αριθμό PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Πληκτρολογήστε τον κωδικό PUK της κάρτας SIM και τον νέο κωδικό PIN"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Κωδικός PUK κάρτας SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Νέος κώδικας αριθμού PIN της κάρτας SIM"</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_wrong_pin_code" msgid="2422225591006134936">"Λανθασμένος κωδικός PIN."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Φορτίστηκε"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Φόρτιση"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Ταχύτατη φόρτιση"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Αργή φόρτιση"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Συνδέστε τον φορτιστή."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Πατήστε \"Μενού\" για ξεκλείδωμα."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Το δίκτυο κλειδώθηκε"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Δεν υπάρχει κάρτα SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Δεν υπάρχει κάρτα SIM στο tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Δεν υπάρχει κάρτα SIM στο τηλέφωνο."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Τοποθετήστε μια κάρτα SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Η κάρτα SIM δεν υπάρχει ή δεν είναι δυνατή η ανάγνωσή της. Τοποθετήστε μια κάρτα SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Η κάρτα SIM δεν μπορεί να χρησιμοποιηθεί."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Η κάρτα SIM έχει απενεργοποιηθεί οριστικά.\n Επικοινωνήστε με τον παροχέα υπηρεσιών ασύρματου δικτύου για να λάβετε μια νέα κάρτα SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Η κάρτα SIM είναι κλειδωμένη."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Η κάρτα SIM είναι κλειδωμένη με κωδικό PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ξεκλείδωμα κάρτας SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Περιοχή PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Περιοχή PIN SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Περιοχή PUK SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Το επόμενο ξυπνητήρι ορίστηκε στις <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Διαγραφή"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ξεχάσατε το μοτίβο"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Λάθος μοτίβο"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Λανθασμένος κωδικός πρόσβασης"</string>
-    <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">"Εισαγωγή PIN SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Εισάγετε τον αριθμό PIN της SIM για \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Η SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" έχει απενεργοποιηθεί. Εισάγετε τον κωδικό PUK για συνέχεια. Επικοινωνήστε με το φορέα κινητής τηλεφωνίας για λεπτομέρειες."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Εισαγάγετε τον απαιτούμενο κωδικό PIN"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Επιβεβαιώστε τον απαιτούμενο κωδικό PIN"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Ξεκλείδωμα κάρτας SIM..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Πληκτρολογήστε έναν αριθμό PIN που να αποτελείται από 4 έως 8 αριθμούς."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Ο κωδικός PUK θα πρέπει να περιέχει τουλάχιστον 8 αριθμούς."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Έχετε πληκτρολογήσει εσφαλμένα τον κωδικό σας PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές. \n\nΔοκιμάστε ξανά σε <xliff:g id="NUMBER_1">%2$d</xliff:g> δευτερόλεπτα."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Έχετε πληκτρολογήσει τον κωδικό πρόσβασης εσφαλμένα <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές. \n\nΔοκιμάστε ξανά σε <xliff:g id="NUMBER_1">%2$d</xliff:g> δευτερόλεπτα."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Σχεδιάσατε εσφαλμένα το μοτίβο ξεκλειδώματος <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές. \n\nΔοκιμάστε ξανά σε <xliff:g id="NUMBER_1">%2$d</xliff:g> δευτερόλετπα."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Δοκιμάσατε να ξεκλειδώσετε το tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές χωρίς επιτυχία. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ακόμα ανεπιτυχείς δοκιμές, αυτό το tablet θα ρυθμιστεί εκ νέου, και έτσι θα διαγραφούν όλα τα δεδομένα του."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Δοκιμάσατε να ξεκλειδώσετε το τηλέφωνο <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές χωρίς επιτυχία. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ακόμα ανεπιτυχείς δοκιμές, αυτό το τηλέφωνο θα ρυθμιστεί εκ νέου, και έτσι θα διαγραφούν όλα τα δεδομένα του."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Δοκιμάσατε να ξεκλειδώσετε αυτό το tablet <xliff:g id="NUMBER">%d</xliff:g> φορές χωρίς επιτυχία. Αυτό το tablet θα ρυθμιστεί εκ νέου, και έτσι θα διαγραφούν όλα τα δεδομένα του."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Δοκιμάσατε να ξεκλειδώσετε το τηλέφωνο <xliff:g id="NUMBER">%d</xliff:g> φορές χωρίς επιτυχία. Αυτό το τηλέφωνο θα ρυθμιστεί εκ νέου, και έτσι θα διαγραφούν όλα τα δεδομένα του."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Δοκιμάσατε να ξεκλειδώσετε το tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές χωρίς επιτυχία. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ακόμα ανεπιτυχείς δοκιμές, αυτός ο χρήστης θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα χρήστη."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Δοκιμάσατε να ξεκλειδώσετε το τηλέφωνο <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές χωρίς επιτυχία. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ακόμα ανεπιτυχείς δοκιμές, αυτός ο χρήστης θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα χρήστη."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Δοκιμάσατε να ξεκλειδώσετε το tablet <xliff:g id="NUMBER">%d</xliff:g> φορές χωρίς επιτυχία. Αυτός ο χρήστης θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα χρήστη."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Δοκιμάσατε να ξεκλειδώσετε το τηλέφωνο <xliff:g id="NUMBER">%d</xliff:g> φορές χωρίς επιτυχία. Αυτός ο χρήστης θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα χρήστη."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Δοκιμάσατε να ξεκλειδώσετε το tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές χωρίς επιτυχία. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ακόμα ανεπιτυχείς δοκιμές, το προφίλ εργασίας θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα προφίλ."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Δοκιμάσατε να ξεκλειδώσετε το τηλέφωνο <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές χωρίς επιτυχία. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ακόμα ανεπιτυχείς δοκιμές, το προφίλ εργασίας θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα προφίλ."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Δοκιμάσατε να ξεκλειδώσετε το tablet <xliff:g id="NUMBER">%d</xliff:g> φορές χωρίς επιτυχία. Το προφίλ εργασίας θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα προφίλ."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Δοκιμάσατε να ξεκλειδώσετε το τηλέφωνο <xliff:g id="NUMBER">%d</xliff:g> φορές χωρίς επιτυχία. Το προφίλ εργασίας θα καταργηθεί, και έτσι θα διαγραφούν όλα τα δεδομένα προφίλ."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Σχεδιάσατε το μοτίβο ξεκλειδώματος εσφαλμένα <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ανεπιτυχείς προσπάθειες ακόμη, θα σας ζητηθεί να ξεκλειδώσετε το tablet σας με τη χρήση ενός λογαριασμού ηλεκτρονικού ταχυδρομείου.\n\n Δοκιμάστε να συνδεθείτε ξανά σε <xliff:g id="NUMBER_2">%3$d</xliff:g> δευτερόλεπτα."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Σχεδιάσατε το μοτίβο ξεκλειδώματος εσφαλμένα <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ανεπιτυχείς προσπάθειες ακόμη, θα σας ζητηθεί να ξεκλειδώσετε το τηλέφωνό σας με τη χρήση ενός λογαριασμού ηλεκτρονικού ταχυδρομείου.\n\n Δοκιμάστε ξανά σε <xliff:g id="NUMBER_2">%3$d</xliff:g> δευτερόλεπτα."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Λανθασμένος κωδικός PIN κάρτας SIM. Θα πρέπει να επικοινωνήσετε με τον πάροχο κινητής τηλεφωνίας σας για να ξεκλειδώσετε τη συσκευή σας."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Λανθασμένος κωδικός PIN κάρτας SIM. Απομένουν άλλες <xliff:g id="NUMBER_1">%d</xliff:g> προσπάθειες. </item>
-      <item quantity="one">Λανθασμένος κωδικός PIN κάρτας SIM. Απομένει άλλη <xliff:g id="NUMBER_0">%d</xliff:g> προσπάθεια. Στη συνέχεια, θα πρέπει να επικοινωνήσετε με τον πάροχο κινητής τηλεφωνίας σας για να ξεκλειδώσετε τη συσκευή σας.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Η κάρτα SIM δεν μπορεί να χρησιμοποιηθεί. Επικοινωνήστε με τον πάροχο κινητής τηλεφωνίας σας."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Λανθασμένος κωδικός PUK κάρτας SIM. Απομένουν άλλες <xliff:g id="NUMBER_1">%d</xliff:g> προσπάθειες προτού να μην είναι πλέον δυνατή η χρήση της κάρτας SIM.</item>
-      <item quantity="one">Λανθασμένος κωδικός PUK κάρτας SIM. Απομένει άλλη <xliff:g id="NUMBER_0">%d</xliff:g> προσπάθεια προτού να μην είναι πλέον δυνατή η χρήση της κάρτας SIM.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Αποτυχία λειτουργίας κωδικού PIN κάρτας SIM!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Αποτυχία λειτουργίας κωδικού PUK κάρτας SIM!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Αποδεκτός κωδικός!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Καμία υπηρεσία."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Εναλλαγή μεθόδου εισαγωγής"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Λειτουργία πτήσης"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Απαιτείται μοτίβο μετά την επανεκκίνηση της συσκευής"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Απαιτείται PIN μετά την επανεκκίνηση της συσκευής"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Απαιτείται κωδικός πρόσβασης μετά την επανεκκίνηση της συσκευής"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Απαιτείται μοτίβο για πρόσθετη ασφάλεια"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Απαιτείται PIN για πρόσθετη ασφάλεια"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Απαιτείται κωδικός πρόσβασης για πρόσθετη ασφάλεια"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Απαιτείται μοτίβο κατά την εναλλαγή προφίλ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Απαιτείται PIN κατά την εναλλαγή προφίλ"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Απαιτείται κωδικός πρόσβασης κατά την εναλλαγή προφίλ"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Η συσκευή κλειδώθηκε από το διαχειριστή της"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Η συσκευή κλειδώθηκε με μη αυτόματο τρόπο"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Η συσκευή δεν έχει ξεκλειδωθεί για <xliff:g id="NUMBER_1">%d</xliff:g> ώρες. Επιβεβαιώστε το μοτίβο.</item>
-      <item quantity="one">Η συσκευή δεν έχει ξεκλειδωθεί για <xliff:g id="NUMBER_0">%d</xliff:g> ώρα. Επιβεβαιώστε το μοτίβο.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Η συσκευή δεν έχει ξεκλειδωθεί για <xliff:g id="NUMBER_1">%d</xliff:g> ώρες. Επιβεβαιώστε τον αριθμό PIN.</item>
-      <item quantity="one">Η συσκευή δεν έχει ξεκλειδωθεί για <xliff:g id="NUMBER_0">%d</xliff:g> ώρα. Επιβεβαιώστε τον αριθμό PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Η συσκευή δεν έχει ξεκλειδωθεί για <xliff:g id="NUMBER_1">%d</xliff:g> ώρες. Επιβεβαίωση κωδικού πρόσβασης.</item>
-      <item quantity="one">Η συσκευή δεν έχει ξεκλειδωθεί για <xliff:g id="NUMBER_0">%d</xliff:g> ώρα. Επιβεβαίωση κωδικού πρόσβασης.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Δεν αναγνωρίστηκε"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-en-rAU/strings.xml b/packages/Keyguard/res/values-en-rAU/strings.xml
deleted file mode 100644
index 9ecd979..0000000
--- a/packages/Keyguard/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Type PIN code"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Type SIM PUK and new PIN code"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK code"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"New SIM PIN code"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Touch to type password"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Type password to unlock"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Type PIN to unlock"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Incorrect PIN code."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Charged"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Charging"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Charging rapidly"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Charging slowly"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Connect your charger."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Press Menu to unlock."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Network locked"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"No SIM card"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"No SIM card in tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"No SIM card in phone."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insert a SIM card."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"The SIM card is missing or not readable. Insert a SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Unusable SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM card is locked."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM card is PUK-locked."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Unlocking SIM card…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN area"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN area"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK area"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Next alarm set for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Wrong PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Try again in <xliff:g id="NUMBER">%d</xliff:g> seconds."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Draw your pattern"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Enter SIM PIN"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Enter SIM PIN for \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Enter PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Enter Password"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM is now disabled. Enter PUK code to continue. Contact carrier for details."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" is now disabled. Enter PUK code to continue. Contact operator for details."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Enter desired PIN code"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirm desired PIN code"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Unlocking SIM card…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Type a PIN that is 4 to 8 numbers."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK code should be 8 numbers or more."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Re-enter the correct PUK code. Repeated attempts will permanently disable the SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN codes do not match"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Too many pattern attempts"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"You have incorrectly typed your PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"You have incorrectly typed your password <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this tablet will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this phone will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. This tablet will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. This phone will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. This user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. This user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, the work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, the work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. The work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. The work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your tablet using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Incorrect SIM PIN code; you must now contact your operator to unlock your device."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts.</item>
-      <item quantity="one">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_0">%d</xliff:g> remaining attempt before you must contact your operator to unlock your device.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM is unusable. Contact your operator."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Incorrect SIM PUK code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts before SIM becomes permanently unusable.</item>
-      <item quantity="one">Incorrect SIM PUK code, you have <xliff:g id="NUMBER_0">%d</xliff:g> remaining attempt before SIM becomes permanently unusable.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN operation failed!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK operation failed!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Code accepted"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"No service."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Switch input method"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Aeroplane mode"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Pattern required after device restarts"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN required after device restarts"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Password required after device restarts"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Pattern required for additional security"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN required for additional security"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Password required for additional security"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Pattern required when you switch profiles"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN required when you switch profiles"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Password required when you switch profiles"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Device administrator locked device"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Device was locked manually"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm pattern.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm pattern.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm PIN.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm password.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm password.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Not recognised"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-en-rGB/strings.xml b/packages/Keyguard/res/values-en-rGB/strings.xml
deleted file mode 100644
index 9ecd979..0000000
--- a/packages/Keyguard/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Type PIN code"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Type SIM PUK and new PIN code"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK code"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"New SIM PIN code"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Touch to type password"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Type password to unlock"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Type PIN to unlock"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Incorrect PIN code."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Charged"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Charging"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Charging rapidly"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Charging slowly"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Connect your charger."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Press Menu to unlock."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Network locked"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"No SIM card"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"No SIM card in tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"No SIM card in phone."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insert a SIM card."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"The SIM card is missing or not readable. Insert a SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Unusable SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM card is locked."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM card is PUK-locked."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Unlocking SIM card…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN area"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN area"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK area"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Next alarm set for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Wrong PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Try again in <xliff:g id="NUMBER">%d</xliff:g> seconds."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Draw your pattern"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Enter SIM PIN"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Enter SIM PIN for \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Enter PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Enter Password"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM is now disabled. Enter PUK code to continue. Contact carrier for details."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" is now disabled. Enter PUK code to continue. Contact operator for details."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Enter desired PIN code"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirm desired PIN code"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Unlocking SIM card…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Type a PIN that is 4 to 8 numbers."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK code should be 8 numbers or more."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Re-enter the correct PUK code. Repeated attempts will permanently disable the SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN codes do not match"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Too many pattern attempts"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"You have incorrectly typed your PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"You have incorrectly typed your password <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this tablet will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this phone will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. This tablet will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. This phone will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. This user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. This user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, the work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, the work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. The work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. The work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your tablet using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Incorrect SIM PIN code; you must now contact your operator to unlock your device."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts.</item>
-      <item quantity="one">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_0">%d</xliff:g> remaining attempt before you must contact your operator to unlock your device.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM is unusable. Contact your operator."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Incorrect SIM PUK code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts before SIM becomes permanently unusable.</item>
-      <item quantity="one">Incorrect SIM PUK code, you have <xliff:g id="NUMBER_0">%d</xliff:g> remaining attempt before SIM becomes permanently unusable.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN operation failed!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK operation failed!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Code accepted"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"No service."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Switch input method"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Aeroplane mode"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Pattern required after device restarts"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN required after device restarts"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Password required after device restarts"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Pattern required for additional security"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN required for additional security"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Password required for additional security"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Pattern required when you switch profiles"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN required when you switch profiles"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Password required when you switch profiles"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Device administrator locked device"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Device was locked manually"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm pattern.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm pattern.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm PIN.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm password.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm password.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Not recognised"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-en-rIN/strings.xml b/packages/Keyguard/res/values-en-rIN/strings.xml
deleted file mode 100644
index 9ecd979..0000000
--- a/packages/Keyguard/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Type PIN code"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Type SIM PUK and new PIN code"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK code"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"New SIM PIN code"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Touch to type password"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Type password to unlock"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Type PIN to unlock"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Incorrect PIN code."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Charged"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Charging"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Charging rapidly"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Charging slowly"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Connect your charger."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Press Menu to unlock."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Network locked"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"No SIM card"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"No SIM card in tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"No SIM card in phone."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insert a SIM card."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"The SIM card is missing or not readable. Insert a SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Unusable SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM card is locked."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM card is PUK-locked."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Unlocking SIM card…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN area"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN area"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK area"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Next alarm set for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Wrong PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Try again in <xliff:g id="NUMBER">%d</xliff:g> seconds."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Draw your pattern"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Enter SIM PIN"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Enter SIM PIN for \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Enter PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Enter Password"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM is now disabled. Enter PUK code to continue. Contact carrier for details."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" is now disabled. Enter PUK code to continue. Contact operator for details."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Enter desired PIN code"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirm desired PIN code"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Unlocking SIM card…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Type a PIN that is 4 to 8 numbers."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK code should be 8 numbers or more."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Re-enter the correct PUK code. Repeated attempts will permanently disable the SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN codes do not match"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Too many pattern attempts"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"You have incorrectly typed your PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"You have incorrectly typed your password <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this tablet will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this phone will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. This tablet will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. This phone will be reset, which will delete all its data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, this user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. This user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. This user will be removed, which will delete all user data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, the work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, the work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"You have incorrectly attempted to unlock the tablet <xliff:g id="NUMBER">%d</xliff:g> times. The work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"You have incorrectly attempted to unlock the phone <xliff:g id="NUMBER">%d</xliff:g> times. The work profile will be removed, which will delete all profile data."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your tablet using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Incorrect SIM PIN code; you must now contact your operator to unlock your device."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts.</item>
-      <item quantity="one">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_0">%d</xliff:g> remaining attempt before you must contact your operator to unlock your device.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM is unusable. Contact your operator."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Incorrect SIM PUK code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts before SIM becomes permanently unusable.</item>
-      <item quantity="one">Incorrect SIM PUK code, you have <xliff:g id="NUMBER_0">%d</xliff:g> remaining attempt before SIM becomes permanently unusable.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN operation failed!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK operation failed!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Code accepted"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"No service."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Switch input method"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Aeroplane mode"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Pattern required after device restarts"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN required after device restarts"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Password required after device restarts"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Pattern required for additional security"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN required for additional security"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Password required for additional security"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Pattern required when you switch profiles"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN required when you switch profiles"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Password required when you switch profiles"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Device administrator locked device"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Device was locked manually"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm pattern.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm pattern.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm PIN.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Device hasn\'t been unlocked for <xliff:g id="NUMBER_1">%d</xliff:g> hours. Confirm password.</item>
-      <item quantity="one">Device hasn\'t been unlocked for <xliff:g id="NUMBER_0">%d</xliff:g> hour. Confirm password.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Not recognised"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-es-rUS/strings.xml b/packages/Keyguard/res/values-es-rUS/strings.xml
deleted file mode 100644
index 61f5c0d..0000000
--- a/packages/Keyguard/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Bloqueo de teclado"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Ingresa el código PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Escribe el código PUK de la tarjeta SIM y un nuevo código PIN."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Código PUK de la tarjeta SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nuevo código PIN de la tarjeta SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Toca para ingresar la contraseña"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Ingresar contraseña para desbloquear"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Ingresa el PIN para desbloquear"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Código PIN incorrecto"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Cargada"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Cargando"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Carga rápida"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Carga lenta"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Conecta tu cargador."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Presiona Menú para desbloquear."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Bloqueada para la red"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"No se insertó ninguna tarjeta SIM."</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"No se insertó ninguna tarjeta SIM en la tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"No se insertó ninguna tarjeta SIM en el dispositivo."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Inserta una tarjeta SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Falta la tarjeta SIM o esta no se puede leer. Inserta una tarjeta SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Tarjeta SIM inutilizable"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Tu tarjeta SIM se inhabilitó de forma permanente.\n Comunícate con tu proveedor de servicios inalámbricos para obtener otra tarjeta SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La tarjeta SIM está bloqueada."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La tarjeta SIM está bloqueada por código PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando tarjeta SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área de PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área de PIN de SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área de PUK de SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próxima alarma establecida: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eliminar"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Ingresar"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Olvidaste el patrón?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Patrón incorrecto"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Contraseña incorrecta"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN incorrecto"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Vuelve a intentarlo en <xliff:g id="NUMBER">%d</xliff:g> segundos."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Dibuja tu patrón."</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Ingresa el PIN de la tarjeta SIM."</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Ingresa el PIN de la tarjeta SIM para \"<xliff:g id="CARRIER">%1$s</xliff:g>\"."</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Ingresa el PIN."</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Ingresa tu contraseña."</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"La tarjeta SIM está inhabilitada. Para continuar, ingresa el código PUK. Si quieres obtener más información, ponte en contacto con el proveedor."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"La tarjeta SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" está inhabilitada. Para continuar, ingresa el código PUK. Para obtener más información, comunícate con el proveedor."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Ingresa el código PIN deseado"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirmar código PIN deseado"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Desbloqueando tarjeta SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Escribe un PIN que tenga de cuatro a ocho números."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"El código PUK debe tener ocho números como mínimo."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Vuelve a ingresar el código PUK correcto. Si ingresas un código incorrecto varias veces, se inhabilitará la tarjeta SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Los códigos PIN no coinciden."</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Demasiados intentos incorrectos de ingresar el patrón"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Escribiste incorrectamente tu PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nVuelve a intentarlo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Escribiste incorrectamente tu contraseña <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nVuelve a intentarlo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Dibujaste incorrectamente tu patrón de desbloqueo <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nVuelve a intentarlo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Intentaste desbloquear la tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de manera incorrecta. Después de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se restablecerá la tablet y se perderán todos los datos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Intentaste desbloquear el teléfono <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de manera incorrecta. Después de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se restablecerá el teléfono y se perderán todos los datos."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Intentaste desbloquear la tablet <xliff:g id="NUMBER">%d</xliff:g> veces de manera incorrecta. Se restablecerá la tablet y se perderán todos los datos."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Intentaste desbloquear el teléfono <xliff:g id="NUMBER">%d</xliff:g> veces de manera incorrecta. Se restablecerá el teléfono y se perderán todos los datos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Intentaste desbloquear la tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de manera incorrecta. Después de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará el usuario y se perderán todos los datos de usuario."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Intentaste desbloquear el teléfono <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de manera incorrecta. Después de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará el usuario y se perderán todos los datos de usuario."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Intentaste desbloquear la tablet <xliff:g id="NUMBER">%d</xliff:g> veces de manera incorrecta. Se eliminará el usuario y se perderán todos los datos de usuario."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Intentaste desbloquear el teléfono <xliff:g id="NUMBER">%d</xliff:g> veces de manera incorrecta. Se eliminará el usuario y se perderán todos los datos de usuario."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Intentaste desbloquear la tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de manera incorrecta. Después de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará el perfil de trabajo y se perderán todos los datos de perfil."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Intentaste desbloquear el teléfono <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de manera incorrecta. Después de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará el perfil de trabajo y se perderán todos los datos de perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Intentaste desbloquear la tablet <xliff:g id="NUMBER">%d</xliff:g> veces de manera incorrecta. Se eliminará el perfil de trabajo y se perderán todos los datos de perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Intentaste desbloquear el teléfono <xliff:g id="NUMBER">%d</xliff:g> veces de manera incorrecta. Se eliminará el perfil de trabajo y se perderán todos los datos de perfil."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Dibujaste incorrectamente tu patrón de desbloqueo <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Luego de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se te solicitará que desbloquees tu tablet mediante el uso de una cuenta de correo.\n\n Vuelve a intentarlo en <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Dibujaste incorrectamente tu patrón de desbloqueo <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Luego de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se te solicitará que desbloquees tu dispositivo mediante el uso de una cuenta de correo.\n\n Vuelve a intentarlo en <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"El código PIN de la tarjeta SIM es incorrecto. Debes comunicarte con el proveedor para desbloquear el dispositivo."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">El código PIN de la tarjeta SIM es incorrecto. Tienes <xliff:g id="NUMBER_1">%d</xliff:g> intentos más.</item>
-      <item quantity="one">El código PIN de la tarjeta SIM es incorrecto. Tienes <xliff:g id="NUMBER_0">%d</xliff:g> intento más antes de que debas comunicarte con el proveedor para desbloquear el dispositivo.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"La tarjeta SIM no se puede utilizar. Comunícate con el proveedor."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">El código PUK de la tarjeta SIM es incorrecto. Tienes <xliff:g id="NUMBER_1">%d</xliff:g> intentos más antes de que la tarjeta SIM quede inutilizable de forma permanente.</item>
-      <item quantity="one">El código PUK de la tarjeta SIM es incorrecto. Tienes <xliff:g id="NUMBER_0">%d</xliff:g> intento más antes de que la tarjeta SIM quede inutilizable de forma permanente.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Error al desbloquear la tarjeta SIM con el PIN"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Error al desbloquear la tarjeta SIM con el PUK"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Código aceptado"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Sin servicio"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Cambiar método de entrada"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modo de avión"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Se requiere el patrón después de reiniciar el dispositivo"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Se requiere el PIN después de reiniciar el dispositivo"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Se requiere la contraseña después de reiniciar el dispositivo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Se requiere el patrón por razones de seguridad"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Se requiere el PIN por razones de seguridad"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Se requiere la contraseña por razones de seguridad"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Se requiere el patrón al cambiar de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Se requiere el PIN al cambiar de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Se requiere la contraseña al cambiar de perfil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"El administrador bloqueó el dispositivo"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"El dispositivo se bloqueó manualmente"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Hace <xliff:g id="NUMBER_1">%d</xliff:g> horas que no se desbloquea el dispositivo. Confirma el patrón.</item>
-      <item quantity="one">Hace <xliff:g id="NUMBER_0">%d</xliff:g> hora que no se desbloquea el dispositivo. Confirma el patrón.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Hace <xliff:g id="NUMBER_1">%d</xliff:g> horas que no se desbloquea el dispositivo. Confirma el PIN.</item>
-      <item quantity="one">Hace <xliff:g id="NUMBER_0">%d</xliff:g> hora que no se desbloquea el dispositivo. Confirma el PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Hace <xliff:g id="NUMBER_1">%d</xliff:g> horas que no se desbloquea el dispositivo. Confirma la contraseña.</item>
-      <item quantity="one">Hace <xliff:g id="NUMBER_0">%d</xliff:g> hora que no se desbloquea el dispositivo. Confirma la contraseña.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"No reconocido"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-es/strings.xml b/packages/Keyguard/res/values-es/strings.xml
deleted file mode 100644
index 3ef737c..0000000
--- a/packages/Keyguard/res/values-es/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Bloqueo"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Introduce el código PIN."</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Escribe el PUK de la tarjeta SIM y un nuevo código PIN"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Código PUK de la tarjeta SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nuevo código PIN de tarjeta SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Toca para introducir contraseña"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Introduce la contraseña para desbloquear."</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Introduce el código PIN para desbloquear."</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Código PIN incorrecto"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Cargado"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Cargando"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Cargando rápidamente"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Cargando lentamente"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Conecta el cargador."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Ve al menú para desbloquear la pantalla."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Bloqueada para la red"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"No hay tarjeta SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"No se ha insertado ninguna tarjeta SIM en el tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"No se ha insertado ninguna tarjeta SIM en el teléfono."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Inserta una tarjeta SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Tarjeta SIM inutilizable"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Tu tarjeta SIM se ha inhabilitado permanentemente.\n Para obtener otra, ponte en contacto con tu proveedor de servicios de telefonía."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La tarjeta SIM está bloqueada."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La tarjeta SIM está bloqueada con el código PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando tarjeta SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área de PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área de PIN de SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área de PUK de SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próxima alarma: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eliminar"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Intro"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Has olvidado el patrón?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"El patrón es incorrecto"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Contraseña incorrecta"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN incorrecto"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Inténtalo de nuevo en <xliff:g id="NUMBER">%d</xliff:g> segundos."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Dibuja tu patrón de desbloqueo."</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introduce el PIN de la tarjeta SIM."</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Introduce el PIN de la SIM de <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Introduce el PIN."</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Escribe tu contraseña."</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"La tarjeta SIM está inhabilitada. Para continuar, introduce el código PUK. Si quieres obtener más información, ponte en contacto con el operador"</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"La SIM de <xliff:g id="CARRIER">%1$s</xliff:g> está inhabilitada. Introduce el código PUK para continuar. Ponte en contacto con el operador para obtener más información."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Introduce el código PIN deseado"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirma el código PIN"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Desbloqueando tarjeta SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Introduce un código PIN con una longitud comprendida entre cuatro y ocho dígitos."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"El código PUK debe tener ocho números como mínimo."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Vuelve a introducir el código PUK correcto. Si introduces un código incorrecto varias veces, se inhabilitará la tarjeta SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Los códigos PIN no coinciden."</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Demasiados intentos incorrectos de crear el patrón"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Has introducido un código PIN incorrecto <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nInténtalo de nuevo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Has introducido una contraseña incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nInténtalo de nuevo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Has fallado <xliff:g id="NUMBER_0">%1$d</xliff:g> veces al dibujar tu patrón de desbloqueo. \n\nInténtalo de nuevo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Has intentado desbloquear el tablet de forma incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Si se producen <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se restablecerá el tablet, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Has intentado desbloquear el teléfono de forma incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Si se producen <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se restablecerá el teléfono, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Has intentado desbloquear el tablet de forma incorrecta <xliff:g id="NUMBER">%d</xliff:g> veces. Este tablet se eliminará, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Has intentado desbloquear el teléfono de forma incorrecta <xliff:g id="NUMBER">%d</xliff:g> veces. Este teléfono se eliminará, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Has intentado desbloquear el tablet de forma incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Si se producen <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará a este usuario, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Has intentado desbloquear el teléfono de forma incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Si se producen <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará a este usuario, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Has intentado desbloquear el tablet de forma incorrecta <xliff:g id="NUMBER">%d</xliff:g> veces. Este usuario se eliminará, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Has intentado desbloquear el teléfono de forma incorrecta <xliff:g id="NUMBER">%d</xliff:g> veces. Este usuario se eliminará, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Has intentado desbloquear el tablet de forma incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Si se producen <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará el perfil de trabajo, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Has intentado desbloquear el teléfono de forma incorrecta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Si se producen <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se eliminará el perfil de trabajo, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Has intentado desbloquear el tablet de forma incorrecta <xliff:g id="NUMBER">%d</xliff:g> veces. El perfil de trabajo se eliminará, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Has intentado desbloquear el teléfono de forma incorrecta <xliff:g id="NUMBER">%d</xliff:g> veces. El perfil de trabajo se eliminará, lo que borrará todos sus datos."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Has fallado <xliff:g id="NUMBER_0">%1$d</xliff:g> veces al dibujar el patrón de desbloqueo. Si fallas otras <xliff:g id="NUMBER_1">%2$d</xliff:g> veces, deberás usar una cuenta de correo electrónico para desbloquear el tablet.\n\n Inténtalo de nuevo en <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Has fallado <xliff:g id="NUMBER_0">%1$d</xliff:g> veces al dibujar el patrón de desbloqueo. Si fallas otras <xliff:g id="NUMBER_1">%2$d</xliff:g> veces, deberás usar una cuenta de correo electrónico para desbloquear el teléfono.\n\n Inténtalo de nuevo en <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Código PIN de la tarjeta SIM incorrecto. Debes ponerte en contacto con tu operador para desbloquear el dispositivo."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Código PIN de la tarjeta SIM incorrecto. Te quedan <xliff:g id="NUMBER_1">%d</xliff:g> intentos.</item>
-      <item quantity="one">Código PIN de la tarjeta SIM incorrecto. Te queda <xliff:g id="NUMBER_0">%d</xliff:g> intento para tener que ponerte en contacto con tu operador para desbloquear el dispositivo.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"La tarjeta SIM no se puede utilizar. Ponte en contacto con tu operador."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Código PUK de la tarjeta SIM incorrecto. Te quedan <xliff:g id="NUMBER_1">%d</xliff:g> intentos para que la tarjeta SIM no se pueda utilizar de forma permanente.</item>
-      <item quantity="one">Código PUK de la tarjeta SIM incorrecto. Te queda <xliff:g id="NUMBER_0">%d</xliff:g> intento para que la tarjeta SIM no se pueda utilizar de forma permanente.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Error al intentar desbloquear la tarjeta SIM con el código PIN"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Error al intentar desbloquear la tarjeta SIM con el código PUK"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Código aceptado"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Sin servicio"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Cambiar método de introducción"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modo avión"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Debes introducir el patrón después de reiniciar el dispositivo"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Debes introducir el PIN después de reiniciar el dispositivo"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Debes introducir la contraseña después de reiniciar el dispositivo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Debes introducir el patrón como medida de seguridad adicional"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Debes introducir el PIN como medida de seguridad adicional"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Debes introducir la contraseña como medida de seguridad adicional"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Debes introducir el patrón cuando cambies de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Debes introducir el PIN cuando cambies de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Debes introducir la contraseña cuando cambies de perfil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Un administrador ha bloqueado el dispositivo"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"El dispositivo se ha bloqueado manualmente"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">El dispositivo no se ha desbloqueado durante <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirma el patrón.</item>
-      <item quantity="one">El dispositivo no se ha desbloqueado durante <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirma el patrón.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">El dispositivo no se ha desbloqueado durante <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirma el PIN.</item>
-      <item quantity="one">El dispositivo no se ha desbloqueado durante <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirma el PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">El dispositivo no se ha desbloqueado durante <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirma la contraseña.</item>
-      <item quantity="one">El dispositivo no se ha desbloqueado durante <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirma la contraseña.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"No reconocido"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-et/strings.xml b/packages/Keyguard/res/values-et/strings.xml
deleted file mode 100644
index 47b6332..0000000
--- a/packages/Keyguard/res/values-et/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Klahvilukk"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Sisestage PIN-kood"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Sisestage SIM-i PUK- ja uus PIN-kood"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM-i PUK-kood"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Uus SIM-i PIN-kood"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Puudutage parooli sisestamiseks"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Avamiseks sisestage parool"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Avamiseks sisestage PIN-kood"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Vale PIN-kood."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Laetud"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Laadimine"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Kiiresti laadimine"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Aeglaselt laadimine"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Ühendage laadija."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Avamiseks vajutage menüüklahvi."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Võrk on suletud"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM-kaarti pole"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Tahvelarvutis pole SIM-kaarti."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Telefonis pole SIM-kaarti."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Sisestage SIM-kaart."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-kaart puudub või on loetamatu. Sisestage SIM-kaart."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Kasutamiskõlbmatu SIM-kaart."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM-kaart on jäädavalt keelatud.\n Uue SIM-kaardi saamiseks võtke ühendust oma mobiilsideoperaatoriga."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kaart on lukus."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kaart on PUK-lukus."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-kaardi avamine ..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-koodi ala"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-kaardi PIN-koodi ala"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-kaardi PUK-koodi ala"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Järgmine alarm on määratud ajaks <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Kustuta"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Sisestusklahv"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unustasin mustri"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Vale muster"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Vale parool"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Vale PIN-kood"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Proovige uuesti <xliff:g id="NUMBER">%d</xliff:g> sekundi pärast."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Joonistage oma muster"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Sisestage SIM-i PIN-kood"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Sisestage SIM-kaardi PIN-kood operaatori „<xliff:g id="CARRIER">%1$s</xliff:g>” puhul"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Sisestage PIN-kood"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Sisestage parool"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM on nüüd keelatud. Jätkamiseks sisestage PUK-kood. Üksikasju küsige operaatorilt."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-kaart „<xliff:g id="CARRIER">%1$s</xliff:g>” on nüüd keelatud. Jätkamiseks sisestage PUK-kood. Üksikasjade saamiseks võtke ühendust operaatoriga."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Sisestage soovitud PIN-kood"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Kinnitage soovitud PIN-kood"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM-kaardi avamine ..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Sisestage 4–8-numbriline PIN-kood."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-koodi pikkus peab olema vähemalt 8 numbrit."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Sisestage uuesti õige PUK-kood. Korduvkatsete korral keelatakse SIM jäädavalt."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-koodid ei ole vastavuses"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Liiga palju mustrikatseid"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Olete PIN-koodi <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti sisestanud.\n\nProovige <xliff:g id="NUMBER_1">%2$d</xliff:g> sekundi pärast uuesti."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Olete parooli <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti sisestanud. \n\nProovige uuesti <xliff:g id="NUMBER_1">%2$d</xliff:g> sekundi pärast."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Joonistasite oma avamismustri <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti.\n\nProovige <xliff:g id="NUMBER_1">%2$d</xliff:g> sekundi pärast uuesti."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Olete püüdnud <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti tahvelarvutit avada. Pärast <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset tahvelarvuti lähtestatakse ja kõik selle andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Olete püüdnud <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti telefoni avada. Pärast <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset telefon lähtestatakse ja kõik selle andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Olete püüdnud <xliff:g id="NUMBER">%d</xliff:g> korda valesti tahvelarvutit avada. Tahvelarvuti lähtestatakse ja kõik selle andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Olete püüdnud <xliff:g id="NUMBER">%d</xliff:g> korda valesti telefoni avada. Telefon lähtestatakse ja kõik selle andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Olete püüdnud <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti tahvelarvutit avada. Pärast <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset kasutaja eemaldatakse ja kõik kasutaja andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Olete püüdnud <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti telefoni avada. Pärast <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset kasutaja eemaldatakse ja kõik kasutaja andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Olete püüdnud <xliff:g id="NUMBER">%d</xliff:g> korda valesti tahvelarvutit avada. Kasutaja eemaldatakse ja kõik kasutaja andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Olete püüdnud <xliff:g id="NUMBER">%d</xliff:g> korda valesti telefoni avada. Kasutaja eemaldatakse ja kõik kasutaja andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Olete püüdnud <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti tahvelarvutit avada. Pärast <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset tööprofiil eemaldatakse ja kõik profiili andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Olete püüdnud <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti telefoni avada. Pärast <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset tööprofiil eemaldatakse ja kõik profiili andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Olete püüdnud <xliff:g id="NUMBER">%d</xliff:g> korda valesti tahvelarvutit avada. Tööprofiil eemaldatakse ja kõik profiili andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Olete püüdnud <xliff:g id="NUMBER">%d</xliff:g> korda valesti telefoni avada. Tööprofiil eemaldatakse ja kõik profiili andmed kustutatakse."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Joonistasite oma avamismustri <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti. Pärast veel <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset palutakse teil tahvelarvuti avada meilikontoga.\n\n Proovige uuesti <xliff:g id="NUMBER_2">%3$d</xliff:g> sekundi pärast."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Joonistasite oma avamismustri <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti. Pärast veel <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset palutakse teil telefon avada meilikontoga.\n\n Proovige uuesti <xliff:g id="NUMBER_2">%3$d</xliff:g> sekundi pärast."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Vale SIM-i PIN-kood, seadme avamiseks peate nüüd ühendust võtma oma operaatoriga."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Vale SIM-kaardi PIN-kood, teil on jäänud veel <xliff:g id="NUMBER_1">%d</xliff:g> katset.</item>
-      <item quantity="one">Vale SIM-kaardi PIN-kood, teil on jäänud veel <xliff:g id="NUMBER_0">%d</xliff:g> katse enne, kui peate seadme avamiseks operaatoriga ühendust võtma.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM ei ole kasutatav. Võtke ühendust operaatoriga."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Vale SIM-kaardi PUK-kood, teil on jäänud veel <xliff:g id="NUMBER_1">%d</xliff:g> katset enne, kui SIM-kaart püsivalt lukustatakse.</item>
-      <item quantity="one">Vale SIM-kaardi PUK-kood, teil on jäänud veel <xliff:g id="NUMBER_0">%d</xliff:g> katse enne, kui SIM-kaart püsivalt lukustatakse.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM-i PIN-koodi toiming ebaõnnestus."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM-i PUK-koodi toiming ebaõnnestus."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kood on õige."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Teenus puudub."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Vaheta sisestusmeetodit"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Lennukirežiim"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Pärast seadme taaskäivitamist tuleb sisestada muster"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Pärast seadme taaskäivitamist tuleb sisestada PIN-kood"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Pärast seadme taaskäivitamist tuleb sisestada parool"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Lisaturvalisuse huvides tuleb sisestada muster"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Lisaturvalisuse huvides tuleb sisestada PIN-kood"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Lisaturvalisuse huvides tuleb sisestada parool"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Profiilide vahetamisel tuleb sisestada muster"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Profiilide vahetamisel tuleb sisestada PIN-kood"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Profiilide vahetamisel tuleb sisestada parool"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Seadme administraator lukustas seadme"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Seade lukustati käsitsi"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Seadet pole avatud <xliff:g id="NUMBER_1">%d</xliff:g> tundi. Kinnitage muster.</item>
-      <item quantity="one">Seadet pole avatud <xliff:g id="NUMBER_0">%d</xliff:g> tund. Kinnitage muster.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Seadet pole avatud <xliff:g id="NUMBER_1">%d</xliff:g> tundi. Kinnitage PIN-kood.</item>
-      <item quantity="one">Seadet pole avatud <xliff:g id="NUMBER_0">%d</xliff:g> tund. Kinnitage PIN-kood.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Seadet pole avatud <xliff:g id="NUMBER_1">%d</xliff:g> tundi. Kinnitage parool.</item>
-      <item quantity="one">Seadet pole avatud <xliff:g id="NUMBER_0">%d</xliff:g> tund. Kinnitage parool.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ei tuvastatud"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-eu/strings.xml b/packages/Keyguard/res/values-eu/strings.xml
deleted file mode 100644
index 5f4abce..0000000
--- a/packages/Keyguard/res/values-eu/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Teklatu-babeslea"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Idatzi PIN kodea"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Idatzi SIM txartelaren PUK kodea eta PIN kode berria"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM txartelaren PUK kodea"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"SIM txartelaren PIN kode berria"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Pasahitza idazteko, ukitu hau"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Idatzi desblokeatzeko pasahitza"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Idatzi desblokeatzeko PIN kodea"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"PIN kode okerra."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Kargatuta"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Kargatzen"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Bizkor kargatzen"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Motel kargatzen"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Konektatu kargagailura."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Desblokeatzeko, sakatu Menua."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Sarea blokeatuta"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Ez dago SIM txartelik"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Tabletak ez du SIM txartelik."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Telefonoak ez du SIM txartelik."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Sartu SIM txartela."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM txartela falta da edo ezin da irakurri. Sartu SIM txartel bat."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM txartela erabilgaitza da."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM txartela behin betiko desgaitu zaizu.\n Beste SIM txartel bat lortzeko, jarri telefonia-zerbitzuen hornitzailearekin harremanetan."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM txartela blokeatuta dago."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM txartela PUK bidez blokeatuta dago."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM txartela desblokeatzen…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN kodearen eremua"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM txartelaren PIN kodearen eremua"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM txartelaren PUK kodearen eremua"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Hurrengo alarmak ordu honetan joko du: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ezabatu"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Sartu"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Eredua ahaztu zaizu"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Eredu okerra"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Pasahitz okerra"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN okerra"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Saiatu berriro <xliff:g id="NUMBER">%d</xliff:g> segundo barru."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Marraztu eredua"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Idatzi SIMaren PIN kodea"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Idatzi \"<xliff:g id="CARRIER">%1$s</xliff:g>\" operadorearen SIM txartelaren PIN kodea"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Idatzi PINa"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Idatzi pasahitza"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIMa desgaitu egin da. Jarraitzeko, idatzi PUK kodea. Xehetasunak lortzeko, jarri operadorearekin harremanetan."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" SIM txartela desgaitu egin da. Jarraitzeko, idatzi PUK kodea. Xehetasunak jakiteko, jarri operadorearekin harremanetan."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Idatzi erabili nahi duzun PIN kodea"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Berretsi erabili nahi duzun PIN kodea"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM txartela desblokeatzen…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Idatzi 4 eta 8 zenbaki arteko PINa."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUKak 8 zenbaki izan behar ditu gutxienez."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Idatzi berriro PUK kode zuzena. Hainbat saiakera oker eginez gero, betirako desgaituko da SIMa."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodeak ez datoz bat"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Eredua marrazteko saiakera gehiegi egin dira"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PINa oker idatzi duzu <xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz. \n\nSaiatu berriro <xliff:g id="NUMBER_1">%2$d</xliff:g> segundo barru."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Pasahitza oker idatzi duzu <xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz. \n\nSaiatu berriro <xliff:g id="NUMBER_1">%2$d</xliff:g> segundo barru."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Desblokeatzeko eredua oker marraztu duzu <xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz. \n\nSaiatu berriro <xliff:g id="NUMBER_1">%2$d</xliff:g> segundo barru."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"<xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz huts egiten baduzu, tableta berrezarri egingo da eta, ondorioz, datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"<xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz huts egiten baduzu, telefonoa berrezarri egingo da eta, ondorioz, datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"<xliff:g id="NUMBER">%d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Tableta berrezarri egingo da eta, ondorioz, datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"<xliff:g id="NUMBER">%d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Telefonoa berrezarri egingo da eta, ondorioz, datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"<xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz saiatu zara tableta desblokeatzen, baina huts egin duzu denetan. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz huts egiten baduzu, erabiltzailea kendu egingo da eta, ondorioz, erabiltzailearen datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"<xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz huts egiten baduzu, erabiltzailea kendu egingo da eta, ondorioz, erabiltzailearen datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"<xliff:g id="NUMBER">%d</xliff:g> aldiz saiatu zara tableta desblokeatzen, baina huts egin duzu denetan. Erabiltzailea kendu egingo da eta, ondorioz, erabiltzailearen datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"<xliff:g id="NUMBER">%d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Erabiltzailea kendu egingo da eta, ondorioz, erabiltzailearen datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"<xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz saiatu zara tableta desblokeatzen, baina huts egin duzu denetan. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz huts egiten baduzu, laneko profila kendu egingo da eta, ondorioz, profileko datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"<xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz huts egiten baduzu, laneko profila kendu egingo da eta, ondorioz, profileko datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"<xliff:g id="NUMBER">%d</xliff:g> aldiz saiatu zara tableta desblokeatzen, baina huts egin duzu denetan. Laneko profila kendu egingo da eta, ondorioz, profileko datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"<xliff:g id="NUMBER">%d</xliff:g> aldiz saiatu zara telefonoa desblokeatzen, baina huts egin duzu denetan. Laneko profila kendu egingo da eta, ondorioz, profileko datu guztiak ezabatuko dira."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Desblokeatzeko eredua oker marraztu duzu <xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz oker marrazten baduzu, tableta posta-kontu baten bidez desblokeatzeko eskatuko dizugu.\n\n Saiatu berriro <xliff:g id="NUMBER_2">%3$d</xliff:g> segundo barru."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Desblokeatzeko eredua oker marraztu duzu <xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz oker marrazten baduzu, telefonoa posta-kontu baten bidez desblokeatzeko eskatuko dizugu.\n\n Saiatu berriro <xliff:g id="NUMBER_2">%3$d</xliff:g> segundo barru."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM txartelaren PIN kodea okerra da. Gailua desblokeatzeko, jarri operadorearekin harremanetan."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM txartelaren PIN kodea okerra da. <xliff:g id="NUMBER_1">%d</xliff:g> saiakera geratzen zaizkizu gailua desblokeatzeko.</item>
-      <item quantity="one">SIM txartelaren PIN kodea okerra da. <xliff:g id="NUMBER_0">%d</xliff:g> saiakera geratzen zaizu gailua desblokeatzeko.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM txartela erabilgaitza da. Jarri operadorearekin harremanetan."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM txartelaren PUK kodea okerra da. <xliff:g id="NUMBER_1">%d</xliff:g> saiakera geratzen zaizkizu SIM txartela betiko erabilgaitz geratu aurretik.</item>
-      <item quantity="one">SIM txartelaren PUK kodea okerra da. <xliff:g id="NUMBER_0">%d</xliff:g> saiakera geratzen zaizu SIM txartela betiko erabilgaitz geratu aurretik.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM txartelaren PIN eragiketak huts egin du!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM txartelaren PUK eragiketak huts egin du!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kodea onartu da!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Zerbitzurik gabe."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Aldatu idazketa-metodoa"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Hegaldi modua"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Eredua marraztu beharko duzu gailua berrabiarazten denean"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN kodea idatzi beharko duzu gailua berrabiarazten denean"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Pasahitza idatzi beharko duzu gailua berrabiarazten denean"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Segurtasun handiagoa izateko, eredua behar da"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Segurtasun handiagoa izateko, PIN kodea behar da"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Segurtasun handiagoa izateko, pasahitza behar da"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Eredua marraztu beharko duzu profilez aldatzen baduzu"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN kodea idatzi beharko duzu profilez aldatzen baduzu"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Pasahitza idatzi beharko duzu profilez aldatzen baduzu"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Gailua blokeatu du administratzaileak"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Gailua blokeatu da eskuz"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Gailua ez da desblokeatu <xliff:g id="NUMBER_1">%d</xliff:g> orduz. Berretsi eredua.</item>
-      <item quantity="one">Gailua ez da desblokeatu <xliff:g id="NUMBER_0">%d</xliff:g> orduz. Berretsi eredua.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Gailua ez da desblokeatu <xliff:g id="NUMBER_1">%d</xliff:g> orduz. Berretsi PIN kodea.</item>
-      <item quantity="one">Gailua ez da desblokeatu <xliff:g id="NUMBER_0">%d</xliff:g> orduz. Berretsi PIN kodea.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Gailua ez da desblokeatu <xliff:g id="NUMBER_1">%d</xliff:g> orduz. Berretsi pasahitza.</item>
-      <item quantity="one">Gailua ez da desblokeatu <xliff:g id="NUMBER_0">%d</xliff:g> orduz. Berretsi pasahitza.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ez da ezagutzen"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-fa/strings.xml b/packages/Keyguard/res/values-fa/strings.xml
deleted file mode 100644
index 40952e2..0000000
--- a/packages/Keyguard/res/values-fa/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"پین کد را وارد کنید"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"‏PUK سیم کارت و کد پین جدید را تایپ کنید"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"‏کد PUK سیم کارت"</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">"برای بازکردن قفل، پین را تایپ کنید"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"پین کد اشتباه است."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"شارژ شد"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"در حال شارژ شدن"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"شارژ سریع"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"شارژ آهسته"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"شارژر خود را وصل کنید."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"برای بازگشایی قفل روی منو فشار دهید."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"شبکه قفل شد"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"سیم کارت موجود نیست"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"سیم کارتی در رایانه لوحی نیست."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"سیم کارت در تلفن نیست."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"سیم کارت را وارد کنید."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"سیم کارت موجود نیست یا قابل خواندن نیست. یک سیم کارت وارد کنید."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"سیم کارت غیرقابل استفاده است."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"‏سیم کارت شما به‌طور دائم غیر فعال شده است. \nبرای داشتن سیم کارت دیگر با ارائه‎دهنده سرویس بی‎سیم خود تماس بگیرید."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"سیم کارت قفل شد."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏سیم کارت با PUK قفل شده است."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"درحال بازگشایی قفل سیم کارت..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"قسمت پین"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"قسمت پین سیم‌کارت"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏قسمت PUK سیم‌کارت"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"هشدار بعدی برای <xliff:g id="ALARM">%1$s</xliff:g> تنظیم شد"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"الگو را فراموش کرده‌اید"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"الگوی اشتباه"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"گذرواژه اشتباه"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"پین اشتباه"</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">"پین سیم کارت را وارد کنید"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"پین سیم‌کارت «<xliff:g id="CARRIER">%1$s</xliff:g>» را وارد کنید"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"پین را وارد کنید"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"گذرواژه را وارد کنید"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"اکنون سیم کارت غیرفعال است. پین کد را برای ادامه وارد کنید. برای جزئیات با شرکت مخابراتی خود تماس بگیرید."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"‏اکنون سیم‌کارت «<xliff:g id="CARRIER">%1$s</xliff:g>» غیرفعال شده است. برای ادامه دادن، کد PUK را وارد کنید. برای اطلاع از جزئیات با شرکت مخابراتی تماس بگیرید."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"پین کد دلخواه را وارد کنید"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"تأیید پین کد دلخواه"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"بازگشایی قفل سیم کارت..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"یک پین ۴ تا ۸ رقمی را تایپ کنید."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"پین کد باید ۸ عدد یا بیشتر باشد."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"پین کد صحیح را دوباره وارد کنید. تلاش‌های مکرر به‌طور دائم سیم کارت را غیرفعال خواهد کرد."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"پین کدها منطبق نیستند"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"‏تلاش‎های زیادی برای کشیدن الگو صورت گرفته است"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"پین خود را <xliff:g id="NUMBER_0">%1$d</xliff:g> بار اشتباه تایپ کردید. \n\nپس از <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانیه دوباره امتحان کنید."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"گذرواژه خود را <xliff:g id="NUMBER_0">%1$d</xliff:g> بار اشتباه تایپ کردید. \n\nپس از <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانیه دوباره امتحان کنید."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%1$d</xliff:g> بار اشتباه کشیدید. \n\nلطفاً پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> ثانیه دوباره امتحان کنید."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"<xliff:g id="NUMBER_0">%1$d</xliff:g> تلاش ناموفق برای باز کردن قفل رایانه لوحی داشته‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق دیگر، این رایانه لوحی بازنشانی می‌شود که با آن کل اطلاعاتش حذف می‌شود."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"<xliff:g id="NUMBER_0">%1$d</xliff:g> تلاش ناموفق برای باز کردن قفل تلفن داشته‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق دیگر، تلفن بازنشانی می‌شود که با آن کل اطلاعاتش حذف می‌شود."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"<xliff:g id="NUMBER">%d</xliff:g> تلاش ناموفق برای باز کردن قفل رایانه لوحی داشته‌اید. این رایانه لوحی بازنشانی می‌شود که با آن همه اطلاعاتش حذف می‌شود."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"<xliff:g id="NUMBER">%d</xliff:g> تلاش ناموفق برای باز کردن قفل تلفن داشته‌اید. این تلفن بازنشانی می‌شود که با آن همه اطلاعاتش حذف می‌شود."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"<xliff:g id="NUMBER_0">%1$d</xliff:g> تلاش ناموفق برای باز کردن قفل رایانه لوحی داشته‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق دیگر، این کاربر حذف می‌شود که با آن کل اطلاعات کاربر حذف می‌شود."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"<xliff:g id="NUMBER_0">%1$d</xliff:g> تلاش ناموفق برای باز کردن قفل تلفن داشته‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق دیگر، این کاربر حذف می‌شود که با آن کل اطلاعات کاربر حذف می‌شود."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"<xliff:g id="NUMBER">%d</xliff:g> تلاش ناموفق برای باز کردن قفل رایانه لوحی داشته‌اید. این کاربر حذف می‌شود که با آن همه اطلاعات کاربر حذف می‌شود."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"<xliff:g id="NUMBER">%d</xliff:g> تلاش ناموفق برای باز کردن قفل تلفن داشته‌اید. این کاربر حذف می‌شود که با آن همه اطلاعات کاربر حذف می‌شود."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"<xliff:g id="NUMBER_0">%1$d</xliff:g> تلاش ناموفق برای باز کردن قفل رایانه لوحی داشته‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق دیگر، نمایه کار حذف می‌شود که با آن کل اطلاعات نمایه حذف می‌شود."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"<xliff:g id="NUMBER_0">%1$d</xliff:g> تلاش ناموفق برای باز کردن قفل تلفن داشته‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق دیگر، نمایه کار حذف می‌شود که با آن کل اطلاعات نمایه حذف می‌شود."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"<xliff:g id="NUMBER">%d</xliff:g> تلاش ناموفق برای باز کردن قفل رایانه لوحی داشته‌اید. نمایه کار حذف می‌شود که با آن همه اطلاعات نمایه حذف می‌شود."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"<xliff:g id="NUMBER">%d</xliff:g> تلاش ناموفق برای باز کردن قفل تلفن داشته‌اید. نمایه کار حذف می‌شود که با آن همه اطلاعات نمایه حذف می‌شود."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"‏شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%1$d</xliff:g> بار اشتباه کشیده‎اید. بعد از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق، از شما خواسته می‎شود که با استفاده از یک حساب رایانامه قفل رایانه لوحی خود را باز کنید.\n\n لطفاً پس از <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانیه دوباره امتحان کنید."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"‏شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%1$d</xliff:g> بار اشتباه کشیده‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق، از شما خواسته می‎شود که با استفاده از یک حساب رایانامه قفل تلفن خود را باز کنید.\n\n لطفاً پس از <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانیه دوباره امتحان کنید."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"کد پین سیم کارت اشتباه است، اکنون برای گشودن قفل دستگاهتان باید با شرکت مخابراتی تماس بگیرید."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">کد پین سیم‌کارت اشتباه است، <xliff:g id="NUMBER_1">%d</xliff:g> بار دیگر می‌توانید تلاش کنید.</item>
-      <item quantity="other">کد پین سیم‌کارت اشتباه است، <xliff:g id="NUMBER_1">%d</xliff:g> بار دیگر می‌توانید تلاش کنید.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"سیم کارت غیر قابل استفاده است. با شرکت مخابراتی‌تان تماس بگیرید."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">‏کد PUK سیم‌کارت اشتباه است، <xliff:g id="NUMBER_1">%d</xliff:g> بار دیگر می‌توانید تلاش کنید و پس از آن سیم‌کارت به صورت دائم غیر قابل استفاده می‌شود.</item>
-      <item quantity="other">‏کد PUK سیم‌کارت اشتباه است، <xliff:g id="NUMBER_1">%d</xliff:g> بار دیگر می‌توانید تلاش کنید و پس از آن سیم‌کارت به صورت دائم غیر قابل استفاده می‌شود.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"عملیات پین سیم کارت ناموفق بود!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"‏عملیات PUK سیم کارت ناموفق بود!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"کد پذیرفته شد!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"خدماتی وجود ندارد."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"تغییر روش ورودی"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"حالت هواپیما"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"بعد از بازنشانی دستگاه باید الگو وارد شود"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"بعد از بازنشانی دستگاه باید پین وارد شود"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"بعد از بازنشانی دستگاه باید گذرواژه وارد شود"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"برای ایمنی بیشتر باید الگو وارد شود"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"برای ایمنی بیشتر باید پین وارد شود"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"برای ایمنی بیشتر باید گذرواژه وارد شود"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"بعد از تغییر نمایه‌ها باید الگو وارد شود"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"بعد از تغییر نمایه‌ها باید پین وارد شود"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"بعد از تغییر نمایه‌ها باید گذرواژه وارد شود"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"سرپرست دستگاه آن را قفل کرده است"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"دستگاه به‌صورت دستی قفل شده است"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">قفل دستگاه به مدت <xliff:g id="NUMBER_1">%d</xliff:g> ساعت باز نشده است. الگو را تأیید کنید.</item>
-      <item quantity="other">قفل دستگاه به مدت <xliff:g id="NUMBER_1">%d</xliff:g> ساعت باز نشده است. الگو را تأیید کنید.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">قفل دستگاه به مدت <xliff:g id="NUMBER_1">%d</xliff:g> ساعت باز نشده است. پین را تأیید کنید.</item>
-      <item quantity="other">قفل دستگاه به مدت <xliff:g id="NUMBER_1">%d</xliff:g> ساعت باز نشده است. پین را تأیید کنید.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">قفل دستگاه به مدت <xliff:g id="NUMBER_1">%d</xliff:g> ساعت باز نشده است. گذرواژه را تأیید کنید.</item>
-      <item quantity="other">قفل دستگاه به مدت <xliff:g id="NUMBER_1">%d</xliff:g> ساعت باز نشده است. گذرواژه را تأیید کنید.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"شناخته نشد"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-fi/strings.xml b/packages/Keyguard/res/values-fi/strings.xml
deleted file mode 100644
index a1b96ca..0000000
--- a/packages/Keyguard/res/values-fi/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Näppäinvahti"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Anna PIN-koodi"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Anna SIM-kortin PUK-koodi ja uusi PIN-koodi"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM-kortin PUK-koodi"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Uusi SIM-kortin PIN-koodi"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Kosketa ja anna salasana"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Poista lukitus antamalla salasana"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Poista lukitus antamalla PIN-koodi"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"PIN-koodi väärin."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Täynnä"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Ladataan"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Nopea lataus"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Hidas lataus"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Kytke laturi."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Poista lukitus painamalla Valikko-painiketta."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Verkko lukittu"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Ei SIM-korttia"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Tablet-laitteessa ei ole SIM-korttia."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Puhelimessa ei ole SIM-korttia."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Aseta SIM-kortti."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-korttia ei löydy tai sitä ei voi lukea. Aseta SIM-kortti."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM-kortti ei kelpaa."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM-kortti on poistettu pysyvästi käytöstä.\n Ota yhteyttä operaattoriisi ja hanki uusi SIM-kortti."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortti on lukittu."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortti on PUK-lukittu."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-kortin lukitusta poistetaan…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-koodin alue"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-kortin PIN-koodin alue"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-kortin PUK-koodin alue"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Seuraava hälytys asetettu: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Poista"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unohtunut kuvio"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Väärä kuvio"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Väärä salasana"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Väärä PIN-koodi"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Yritä uudelleen <xliff:g id="NUMBER">%d</xliff:g> sekunnin kuluttua."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Piirrä kuvio"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Anna SIM-kortin PIN-koodi"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Anna operaattorin <xliff:g id="CARRIER">%1$s</xliff:g> SIM-kortin PIN-koodi"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Anna PIN-koodi"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Anna salasana"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-kortti on nyt poistettu käytöstä. Jatka antamalla PUK-koodi. Saat lisätietoja ottamalla yhteyttä operaattoriin."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Operaattorin <xliff:g id="CARRIER">%1$s</xliff:g> SIM-kortti on nyt lukittu. Jatka antamalla PUK-koodi. Saat lisätietoja operaattoriltasi."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Anna haluamasi PIN-koodi"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Vahvista haluamasi PIN-koodi"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM-kortin lukitusta poistetaan…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Anna 4–8-numeroinen PIN-koodi."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-koodissa tulee olla vähintään 8 numeroa."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Anna uudelleen oikea PUK-koodi. Jos teet liian monta yritystä, SIM-kortti poistetaan käytöstä pysyvästi."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-koodit eivät täsmää"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Liikaa kuvionpiirtoyrityksiä"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Olet kirjoittanut PIN-koodin väärin <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. \n\nYritä uudelleen <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunnin kuluttua."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Olet kirjoittanut salasanan väärin <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. \n\nYritä uudelleen <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunnin kuluttua."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Olet piirtänyt lukituksenpoistokuvion väärin <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. \n\nYritä uudelleen <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunnin kuluttua."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Yritit avata tabletin lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos teet vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> epäonnistunutta yritystä, tämä tabletti nollataan ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Yritit avata puhelimen lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos teet vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> epäonnistunutta yritystä, tämä puhelin nollataan ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Yritit avata tabletin lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER">%d</xliff:g> kertaa. Tämä tabletti nollataan ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Yritit avata puhelimen lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER">%d</xliff:g> kertaa. Tämä puhelin nollataan ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Yritit avata tabletin lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos teet vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> epäonnistunutta yritystä, tämä käyttäjä ja kaikki käyttäjän tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Yritit avata puhelimen lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos teet vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> epäonnistunutta yritystä, tämä käyttäjä ja kaikki käyttäjän tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Yritit avata tabletin lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER">%d</xliff:g> kertaa. Tämä käyttäjä ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Yritit avata puhelimen lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER">%d</xliff:g> kertaa. Tämä käyttäjä ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Yritit avata tabletin lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos teet vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> epäonnistunutta yritystä, työprofiili ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Yritit avata puhelimen lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos teet vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> epäonnistunutta yritystä, työprofiili ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Yritit avata tabletin lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER">%d</xliff:g> kertaa. Työprofiili ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Yritit avata puhelimen lukituksen virheellisillä tiedoilla <xliff:g id="NUMBER">%d</xliff:g> kertaa. Työprofiili ja kaikki sen tiedot poistetaan."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Piirsit lukituksenpoistokuvion väärin <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos piirrät kuvion väärin vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> kertaa, sinua pyydetään poistamaan tablet-laitteesi lukitus sähköpostitilin avulla.\n\n Yritä uudelleen <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunnin kuluttua."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Piirsit lukituksenpoistokuvion väärin <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos piirrät kuvion väärin vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> kertaa, sinua pyydetään poistamaan puhelimesi lukitus sähköpostitilin avulla.\n\n Yritä uudelleen <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunnin kuluttua."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Virheellinen SIM-kortin PIN-koodi. Sinun on nyt otettava yhteys operaattoriin laitteen lukituksen avaamiseksi."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Virheellinen SIM-kortin PIN-koodi. Sinulla on <xliff:g id="NUMBER_1">%d</xliff:g> yritystä jäljellä.</item>
-      <item quantity="one">Virheellinen SIM-kortin PIN-koodi. Sinulla on <xliff:g id="NUMBER_0">%d</xliff:g> yritys jäljellä, ennen kuin sinun on otettava yhteyttä operaattoriin laitteen lukituksen avaamiseksi.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-kortti on käyttökelvoton. Ota yhteys operaattoriin."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Virheellinen SIM-kortin PUK-koodi. Sinulla on <xliff:g id="NUMBER_1">%d</xliff:g> yritystä jäljellä, ennen kuin SIM-kortista tulee pysyvästi käyttökelvoton.</item>
-      <item quantity="one">Virheellinen SIM-kortin PUK-koodi. Sinulla on <xliff:g id="NUMBER_0">%d</xliff:g> yritys jäljellä, ennen kuin SIM-kortista tulee pysyvästi käyttökelvoton.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM-kortin PIN-toiminto epäonnistui!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM-kortin PUK-toiminto epäonnistui!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Koodi hyväksytty!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ei yhteyttä."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Vaihda syöttötapaa."</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Lentokonetila"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Kuvio vaaditaan laitteen uudelleenkäynnistyksen jälkeen."</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN-koodi vaaditaan laitteen uudelleenkäynnistyksen jälkeen."</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Salasana vaaditaan laitteen uudelleenkäynnistyksen jälkeen."</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Kuvio vaaditaan suojauksen parantamiseksi."</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN-koodi vaaditaan suojauksen parantamiseksi."</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Salasana vaaditaan suojauksen parantamiseksi."</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Kuvio vaaditaan profiilia vaihdettaessa."</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN-koodi vaaditaan profiilia vaihdettaessa."</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Salasana vaaditaan profiilia vaihdettaessa."</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Laitteen järjestelmänvalvoja on lukinnut laitteen."</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Laite lukittiin manuaalisesti."</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Laitteen lukitusta ei ole avattu <xliff:g id="NUMBER_1">%d</xliff:g> tuntiin. Vahvista kuvio.</item>
-      <item quantity="one">Laitteen lukitusta ei ole avattu <xliff:g id="NUMBER_0">%d</xliff:g> tuntiin. Vahvista kuvio.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Laitteen lukitusta ei ole avattu <xliff:g id="NUMBER_1">%d</xliff:g> tuntiin. Vahvista PIN-koodi.</item>
-      <item quantity="one">Laitteen lukitusta ei ole avattu <xliff:g id="NUMBER_0">%d</xliff:g> tuntiin. Vahvista PIN-koodi.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Laitteen lukitusta ei ole avattu <xliff:g id="NUMBER_1">%d</xliff:g> tuntiin. Vahvista salasana.</item>
-      <item quantity="one">Laitteen lukitusta ei ole avattu <xliff:g id="NUMBER_0">%d</xliff:g> tuntiin. Vahvista salasana.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ei tunnistettu"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-fr-rCA/strings.xml b/packages/Keyguard/res/values-fr-rCA/strings.xml
deleted file mode 100644
index d920415..0000000
--- a/packages/Keyguard/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Verrouillage du clavier"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Saisissez le NIP."</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Entrez le code PUK et le nouveau NIP de la carte SIM"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Code PUK de la carte SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nouveau NIP de la carte SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Appuyer pour saisir mot passe"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Saisissez le mot de passe pour déverrouiller le clavier."</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Saisissez le NIP pour déverrouiller le clavier."</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"NIP erroné."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Chargé"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Charge en cours..."</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Charge rapide"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Charge lente"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Branchez votre chargeur."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Appuyez sur \"Menu\" pour déverrouiller l\'appareil."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Réseau verrouillé"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Aucune carte SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Aucune carte SIM n\'est insérée dans la tablette."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Aucune carte SIM n\'est insérée dans le téléphone."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insérez une carte SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Carte SIM absente ou illisible. Veuillez insérer une carte SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Carte SIM inutilisable."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"La carte SIM est verrouillée."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La carte SIM est verrouillée par clé PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Déverrouillage de la carte SIM en cours…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zone du NIP"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zone du NIP de la carte SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zone du code PUK de la carte SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Heure de la prochaine alarme : <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Supprimer"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Entrée"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Mot de passe incorrect."</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"NIP incorrect."</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Réessayez dans <xliff:g id="NUMBER">%d</xliff:g> secondes."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Dessinez votre schéma."</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Saisissez le NIP de la carte SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Entrez le NIP de la carte SIM pour « <xliff:g id="CARRIER">%1$s</xliff:g> »"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Saisissez le NIP."</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Saisissez votre mot de passe."</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"La carte SIM est maintenant désactivée. Saisissez le code PUK pour continuer. Contactez votre opérateur pour en savoir plus."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Le carte SIM « <xliff:g id="CARRIER">%1$s</xliff:g> » est maintenant désactivée. Entrez le code PUK pour continuer.  Pour obtenir plus de détails, communiquez avec le fournisseur de services."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Saisir le NIP souhaité"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirmer le NIP souhaité"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Déblocage de la carte SIM en cours…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Saisissez un NIP comprenant entre quatre et huit chiffres"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Le code PUK doit contenir au moins 8 chiffres."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Veuillez saisir de nouveau le code PUK correct. Des tentatives répétées désactivent définitivement la carte SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Les codes PIN ne correspondent pas."</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Trop de tentatives."</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Vous avez saisi un NIP incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. \n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Vous avez saisi un mot de passe incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. \n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises.\n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), cette tablette sera réinitialisée, ce qui entraînera la suppression de toutes les données qu\'elle contient."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), le téléphone sera réinitialisé, ce qui entraînera la suppression de toutes les données qu\'il contient."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cette tablette sera réinitialisée, ce qui entraîne la suppression de toutes les données qu\'elle contient."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Ce téléphone sera réinitialisé, ce qui entraîne la suppression de toutes les données qu\'il contient."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), cet utilisateur sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), cet utilisateur sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cet utilisateur sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cet utilisateur sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), le profil professionnel sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), le profil professionnel sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre tablette à l\'aide d\'un compte de messagerie électronique.\n\n Veuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre téléphone à l\'aide d\'un compte de messagerie électronique.\n\n Veuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"NIP de carte SIM incorrect. Vous devez maintenant communiquer avec votre fournisseur de services pour déverrouiller votre appareil."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Le NIP de la carte SIM incorrect. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentative.</item>
-      <item quantity="other">Le NIP de la carte SIM incorrect. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentatives.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"La carte SIM est inutilisable. Communiquez avec votre fournisseur de services."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Le code PUK de la carte SIM est incorrect. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentative avant que votre carte SIM devienne définitivement inutilisable.</item>
-      <item quantity="other">Le code PUK de la carte SIM est incorrect. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentatives avant que votre carte SIM devienne définitivement inutilisable.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Le déverrouillage par NIP de la carte SIM a échoué."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Le déverrouillage de la carte SIM par code PUK a échoué."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Code accepté"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Aucun service"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Changer de méthode d\'entrée"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Mode Avion"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Le schéma est exigé après le redémarrage de l\'appareil"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Le NIP est exigé après le redémarrage de l\'appareil"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Le mot de passe est exigé après le redémarrage de l\'appareil"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Le schéma est exigé pour plus de sécurité"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Le NIP est exigé pour plus de sécurité"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Le mot de passe est exigé pour plus de sécurité"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Le schéma est exigé lorsque vous changez de profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Le NIP est exigé lorsque vous changez de profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Le mot de passe est exigé lorsque vous changez de profil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"L\'administrateur de l\'appareil l\'a verrouillé"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"L\'appareil a été verrouillé manuellement"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heure. Confirmez le schéma.</item>
-      <item quantity="other">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heures. Confirmez le schéma.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heure. Confirmez le NIP.</item>
-      <item quantity="other">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heures. Confirmez le NIP.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heure. Confirmez le mot de passe.</item>
-      <item quantity="other">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heures. Confirmez le mot de passe.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Doigt non reconnu"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-fr/strings.xml b/packages/Keyguard/res/values-fr/strings.xml
deleted file mode 100644
index 8615b99..0000000
--- a/packages/Keyguard/res/values-fr/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Protection des touches"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Saisissez le code PIN."</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Saisissez la clé PUK et le nouveau code PIN de la carte SIM."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Clé PUK de la carte SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nouveau code PIN de la carte SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Appuyez pour saisir mot passe"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Saisissez le mot de passe pour déverrouiller le clavier."</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Saisissez le code PIN pour déverrouiller le clavier."</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Le code PIN est erroné."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Chargé"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Batterie en charge…"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Rechargement rapide en cours…"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Rechargement lent…"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Branchez votre chargeur."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Appuyez sur \"Menu\" pour déverrouiller l\'appareil."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Réseau verrouillé"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Aucune carte SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Aucune carte SIM n\'est insérée dans la tablette."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Aucune carte SIM n\'est insérée dans le téléphone."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insérez une carte SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Carte SIM absente ou illisible. Veuillez insérer une carte SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Carte SIM inutilisable."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"La carte SIM est verrouillée."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La carte SIM est verrouillée par clé PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Déverrouillage de la carte SIM en cours…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Champ du code PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Champ du code PIN de la carte SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Champ du code PUK de la carte SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Prochaine alarme définie à <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Supprimer"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Entrée"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Mot de passe incorrect."</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Code PIN incorrect."</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Réessayez dans <xliff:g id="NUMBER">%d</xliff:g> secondes."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Dessinez votre schéma."</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Saisissez le code PIN de la carte SIM."</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Saisissez le code PIN de la carte SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\"."</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Saisissez le code PIN."</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Saisissez votre mot de passe."</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"La carte SIM est maintenant désactivée. Saisissez le code PUK pour continuer. Contactez votre opérateur pour en savoir plus."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"La carte SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" est maintenant désactivée. Pour continuer, saisissez la clé PUK. Contactez votre opérateur pour en savoir plus."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Saisir le code PIN souhaité"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirmer le code PIN souhaité"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Déblocage de la carte SIM en cours…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Veuillez saisir un code PIN comprenant entre quatre et huit chiffres."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Le code PUK doit contenir au moins 8 chiffres."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Veuillez saisir de nouveau le code PUK correct. Des tentatives répétées désactivent définitivement la carte SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Les codes PIN ne correspondent pas."</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Trop de tentatives."</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Vous avez saisi un code PIN incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. \n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Vous avez saisi un mot de passe incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. \n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises.\n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Vous avez tenté de déverrouiller la tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, cette tablette sera réinitialisée et toutes les données qu\'elle contient seront supprimées."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Vous avez tenté de déverrouiller le téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, ce téléphone sera réinitialisé et toutes les données qu\'il contient seront supprimées."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Vous avez tenté de déverrouiller la tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cette tablette va être réinitialisée et toutes les données qu\'elle contient seront supprimées."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Vous avez tenté de déverrouiller le téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Ce téléphone va être réinitialisé et toutes les données qu\'il contient seront supprimées."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Vous avez tenté de déverrouiller la tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, ce compte utilisateur et toutes les données associées seront supprimés."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Vous avez tenté de déverrouiller le téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, ce compte utilisateur et toutes les données associées seront supprimés."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Vous avez tenté de déverrouiller la tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Ce compte utilisateur et toutes les données associées vont être supprimés."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Vous avez tenté de déverrouiller le téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Ce compte utilisateur et toutes les données associées vont être supprimés."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Vous avez tenté de déverrouiller la tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, le profil professionnel et toutes les données associées seront supprimés."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Vous avez tenté de déverrouiller le téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, le profil professionnel et toutes les données associées seront supprimés."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Vous avez tenté de déverrouiller la tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel et toutes les données associées vont être supprimés."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Vous avez tenté de déverrouiller le téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel et toutes les données associées vont être supprimés."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre tablette à l\'aide d\'un compte de messagerie électronique.\n\n Veuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre téléphone à l\'aide d\'un compte de messagerie électronique.\n\n Veuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Code PIN de la carte SIM incorrect. Vous devez désormais contacter votre opérateur pour déverrouiller votre appareil."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Code PIN de la carte SIM erroné. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentative.</item>
-      <item quantity="other">Code PIN de la carte SIM erroné. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentatives.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"La carte SIM est inutilisable. Veuillez contacter votre opérateur."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Clé PUK de la carte SIM erronée. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentative avant que votre carte SIM ne devienne définitivement inutilisable.</item>
-      <item quantity="other">Clé PUK de la carte SIM erronée. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentatives avant que votre carte SIM ne devienne définitivement inutilisable.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Échec du déverrouillage à l\'aide du code PIN de la carte SIM."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Échec du déverrouillage à l\'aide de la clé PUK de la carte SIM."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Code accepté."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Aucun service"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Changer le mode de saisie"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Mode Avion"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Veuillez saisir le schéma après le redémarrage de l\'appareil."</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Veuillez saisir le code d\'accès après le redémarrage de l\'appareil."</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Veuillez saisir le mot de passe après le redémarrage de l\'appareil."</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Veuillez saisir le schéma pour renforcer la sécurité."</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Veuillez saisir le code d\'accès pour renforcer la sécurité."</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Veuillez saisir le mot de passe pour renforcer la sécurité."</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Veuillez saisir le schéma lorsque vous changez de profil."</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Veuillez saisir le code d\'accès lorsque vous changez de profil."</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Veuillez saisir le mot de passe lorsque vous changez de profil."</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Appareil verrouillé par l\'administrateur"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Appareil verrouillé manuellement"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heure. Confirmez le schéma.</item>
-      <item quantity="other">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heures. Confirmez le schéma.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heure. Confirmez le code d\'accès.</item>
-      <item quantity="other">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heures. Confirmez le code d\'accès.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heure. Confirmez le mot de passe.</item>
-      <item quantity="other">L\'appareil n\'a pas été déverrouillé depuis <xliff:g id="NUMBER_1">%d</xliff:g> heures. Confirmez le mot de passe.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Non reconnu"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-gl/strings.xml b/packages/Keyguard/res/values-gl/strings.xml
deleted file mode 100644
index a894fc5..0000000
--- a/packages/Keyguard/res/values-gl/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Bloqueo de teclado"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Escribe o código PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Escribe o PUK da SIM e o código PIN novo"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Código PUK da SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Código PIN da SIM novo"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Toca e escribe o contrasinal"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Escribe o contrasinal para desbloquear"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Escribe o PIN para desbloquear"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Código PIN incorrecto"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Cargado"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Cargando"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Cargando rapidamente"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Cargando lentamente"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Conecta o cargador."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Preme Menú para desbloquear."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Bloqueada pola rede"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Non hai ningunha tarxeta SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Non hai ningunha tarxeta SIM na tableta."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Non hai ningunha tarxeta SIM no teléfono."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insire unha tarxeta SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Falta a tarxeta SIM ou non se pode ler. Insire unha tarxeta SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Tarxeta SIM inutilizable"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"A túa tarxeta SIM desactivouse permanentemente.\n Ponte en contacto co teu fornecedor de servizos de telefonía para obter outra tarxeta SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"A tarxeta SIM está bloqueada."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"A tarxeta SIM está bloqueada mediante un PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando tarxeta SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN da tarxeta SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK da tarxeta SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próxima alarma definida para <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eliminar"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Intro"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueciches o padrón"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrón incorrecto"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Contrasinal incorrecto"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN incorrecto"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Téntao de novo en <xliff:g id="NUMBER">%d</xliff:g> segundos."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Debuxa o teu padrón"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introduce o PIN da tarxeta SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Introduce o PIN da SIM para \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Introduce o PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Insire o teu contrasinal"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Agora a tarxeta SIM está desactivada. Introduce o código PUK para continuar. Ponte en contacto co operador para obter información detallada."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Agora a SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" está desactivada. Introduce o código PUK para continuar. Ponte en contacto co operador para obter máis información."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Introduce o código PIN desexado"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirma o código PIN desexado"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Desbloqueando tarxeta SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Escribe un PIN que teña entre 4 e 8 números."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"O código PUK debe ter 8 números como mínimo."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Volve introducir o código PUK correcto. Se realizas intentos repetidos é posible que se desactive a tarxeta SIM permanentemente."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Os códigos PIN non coinciden"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Tentaches debuxar o padrón moitas veces"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Introduciches o PIN incorrectamente <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nTéntao de novo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Introduciches o contrasinal incorrectamente <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nTéntao de novo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Debuxaches incorrectamente o padrón de desbloqueo <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. \n\nTéntao de novo en <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Tentaches desbloquear a tableta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de forma incorrecta. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, restablecerase a tableta e, por conseguinte, eliminaranse todos os seus datos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Tentaches desbloquear o teléfono <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de forma incorrecta. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, restablecerase o teléfono e, por conseguinte, eliminaranse todos os seus datos."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Tentaches desbloquear a tableta <xliff:g id="NUMBER">%d</xliff:g> veces de forma incorrecta. Restablecerase a tableta e, por conseguinte, eliminaranse todos os seus datos."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Tentaches desbloquear o teléfono <xliff:g id="NUMBER">%d</xliff:g> veces de forma incorrecta. Restablecerase o teléfono e, por conseguinte, eliminaranse todos os seus datos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Tentaches desbloquear a tableta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de forma incorrecta. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, eliminarase este usuario e, por conseguinte, todos os datos do usuario."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Tentaches desbloquear o teléfono <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de forma incorrecta. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, eliminarase este usuario e, por conseguinte, todos os datos do usuario."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Tentaches desbloquear a tableta <xliff:g id="NUMBER">%d</xliff:g> veces de forma incorrecta. Eliminarase este usuario e, por conseguinte, todos os datos do usuario."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Tentaches desbloquear o teléfono <xliff:g id="NUMBER">%d</xliff:g> veces de forma incorrecta. Eliminarase este usuario e, por conseguinte, todos os datos do usuario."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Tentaches desbloquear a tableta <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de forma incorrecta. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, eliminarase o perfil de traballo e, por conseguinte, todos os datos do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Tentaches desbloquear o teléfono <xliff:g id="NUMBER_0">%1$d</xliff:g> veces de forma incorrecta. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, eliminarase o perfil de traballo e, por conseguinte, todos os datos do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Tentaches desbloquear a tableta <xliff:g id="NUMBER">%d</xliff:g> veces de forma incorrecta. Eliminarase o perfil de traballo e, por conseguinte, todos os datos do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Tentaches desbloquear o teléfono <xliff:g id="NUMBER">%d</xliff:g> veces de forma incorrecta. Eliminarase o perfil de traballo e, por conseguinte, todos os datos do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Debuxaches o padrón de desbloqueo incorrectamente <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, terás que desbloquear a tableta a través dunha unha conta de correo electrónico.\n\n Téntao de novo dentro de <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Debuxaches o padrón de desbloqueo incorrectamente <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, terás que desbloquear o teléfono a través dunha conta de correo electrónico.\n\n Téntao de novo dentro de <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"O código PIN da SIM non é correcto. Agora debes contactar co teu operador para desbloquear o dispositivo."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">O código PIN da SIM é incorrecto. Quédanche <xliff:g id="NUMBER_1">%d</xliff:g> intentos.</item>
-      <item quantity="one">O código PIN da SIM é incorrecto. Quédache <xliff:g id="NUMBER_0">%d</xliff:g> intento antes de que teñas que contactar co operador para desbloquear o dispositivo.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"A SIM está inutilizable. Contacta co teu operador."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">O código PUK da SIM é incorrecto. Quédanche <xliff:g id="NUMBER_1">%d</xliff:g> intentos antes de que a SIM quede inutilizable para sempre.</item>
-      <item quantity="one">O código PUK da SIM é incorrecto. Quédache <xliff:g id="NUMBER_0">%d</xliff:g> intento antes de que a SIM quede inutilizable para sempre.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Erro ao tentar desbloquear a tarxeta SIM co código PIN."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Erro ao tentar desbloquar a tarxeta SIM co código PUK."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Código aceptado"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Non hai servizo."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Cambiar de método de entrada"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modo avión"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"É necesario o padrón despois do reinicio do dispositivo"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"É necesario o PIN despois do reinicio do dispositivo"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"É necesario o contrasinal despois do reinicio do dispositivo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"É necesario o padrón para obter seguranza adicional"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"É necesario o PIN para obter seguranza adicional"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"É necesario o contrasinal para obter seguranza adicional"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"É necesario o padrón para cambiar os perfís"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"É necesario o PIN para cambiar os perfís"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"É necesario o contrasinal para cambiar os perfís"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"O administrador do dispositivo bloqueouno"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"O dispositivo bloqueouse manualmente"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">O dispositivo non se desbloqueou durante <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirma o padrón.</item>
-      <item quantity="one">O dispositivo non se desbloqueou durante <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirma o padrón.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">O dispositivo non se desbloqueou durante <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirma o PIN.</item>
-      <item quantity="one">O dispositivo non se desbloqueou durante <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirma o PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">O dispositivo non se desbloqueou durante <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirma o contrasinal.</item>
-      <item quantity="one">O dispositivo non se desbloqueou durante <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirma o contrasinal.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Non se recoñece"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-gu/strings.xml b/packages/Keyguard/res/values-gu/strings.xml
deleted file mode 100644
index d288b3f..0000000
--- a/packages/Keyguard/res/values-gu/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK અને નવો PIN કોડ લખો"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK કોડ"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"નવો SIM PIN કોડ"</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_wrong_pin_code" msgid="2422225591006134936">"ખોટો PIN કોડ."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ચાર્જ થયું"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ચાર્જ થઈ રહ્યું છે"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"ઝડપથી ચાર્જિંગ થઇ રહી છે"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"ધીમેથી ચાર્જિંગ થઇ રહી છે"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"તમારું ચાર્જર કનેક્ટ કરો."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"અનલૉક કરવા માટે મેનૂ દબાવો."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"નેટવર્ક લૉક થયું"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"કોઈ SIM કાર્ડ નથી"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ટેબ્લેટમાં SIM કાર્ડ નથી."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ફોનમાં SIM કાર્ડ નથી."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"એક SIM કાર્ડ દાખલ કરો."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM કાર્ડ ખૂટે છે અથવા વાંચન યોગ્ય નથી. SIM કાર્ડ દાખલ કરો."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"બિનઉપયોગી SIM કાર્ડ."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"તમારું SIM કાર્ડ કાયમીરૂપે અક્ષમ કરવામાં આવ્યું છે.\n બીજા SIM કાર્ડ માટે તમારા વાયરલેસ સેવા પ્રદાતાનો સંપર્ક કરો."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM કાર્ડ લૉક કરેલ છે."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM કાર્ડ, PUK-લૉક કરેલ છે."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM કાર્ડ અનલૉક કરી રહ્યાં છે…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ક્ષેત્ર"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ક્ષેત્ર"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ક્ષેત્ર"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> માટે આગલો એલાર્મ સેટ કર્યો"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"કાઢી નાખો"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"દાખલ કરો"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"પેટર્ન ભૂલી ગયાં"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"ખોટી પેટર્ન"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"ખોટો પાસવર્ડ"</string>
-    <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_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" માટે 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" હવે અક્ષમ છે. ચાલુ રાખવા માટે PUK કોડ દાખલ કરો. વિગતો માટે કેરીઅરનો સંપર્ક કરો."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"જોઈતો PIN કોડ દાખલ કરો"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"જોઈતા PIN કોડની પુષ્ટિ કરો"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM કાર્ડ અનલૉક કરી રહ્યાં છે…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"એક PIN લખો જે 4 થી 8 સંખ્યાનો છે."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK કોડ 8 અથવા વધુ નંબર્સનો હોવો જોઈએ."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"તમે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે તમારો PIN લખ્યો છે. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> સેકંડમાં ફરીથી પ્રયાસ કરો."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"તમે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે તમારો પાસવર્ડ લખ્યો છે. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> સેકંડમાં ફરીથી પ્રયાસ કરો."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"તમે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે તમારી અનલૉક પેટર્ન દોરી. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> સેકંડમાં ફરીથી પ્રયાસ કરો."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"તમે ટેબ્લેટને અનલૉક કરવા માટે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે પ્રયાસ કર્યો. <xliff:g id="NUMBER_1">%2$d</xliff:g> વધુ અસફળ પ્રયાસો પછી, આ ટેબ્લેટ ફરીથી સેટ કરવામાં આવશે, જે તેનો તમામ ડેટા કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"તમે ફોનને અનલૉક કરવા માટે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે પ્રયાસ કર્યો. <xliff:g id="NUMBER_1">%2$d</xliff:g> વધુ અસફળ પ્રયાસ પછી, આ ફોન ફરીથી સેટ કરવામાં આવશે, જે તેનો તમામ ડેટા કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"તમે <xliff:g id="NUMBER">%d</xliff:g> વખત ખોટી રીતે ટેબ્લેટને અનલૉક કરવાનો પ્રયાસ કર્યો. આ ટેબ્લેટ ફરીથી સેટ થશે, જે તેનો તમામ ડેટા કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"તમે <xliff:g id="NUMBER">%d</xliff:g> વખત ખોટી રીતે ફોનને અનલૉક કરવાનો પ્રયાસ કર્યો. આ ફોન ફરીથી સેટ થશે, જે તેનો તમામ ડેટા કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"તમે ટેબ્લેટને અનલૉક કરવા માટે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે પ્રયાસ કર્યો. <xliff:g id="NUMBER_1">%2$d</xliff:g> વધુ અસફળ પ્રયાસો પછી, આ વપરાશકર્તાને દૂર કરવામાં આવશે, જે તમામ વપરાશકર્તા ડેટાને કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"તમે ફોનને અનલૉક કરવા માટે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે પ્રયાસ કર્યો. <xliff:g id="NUMBER_1">%2$d</xliff:g> વધુ અસફળ પ્રયાસ પછી, આ વપરાશકર્તા દૂર કરવામાં આવશે, જે તમામ વપરાશકર્તા ડેટા કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"તમે <xliff:g id="NUMBER">%d</xliff:g> વખત ખોટી રીતે ટેબ્લેટને અનલૉક કરવાનો પ્રયાસ કર્યો. આ વપરાશકર્તાને દૂર કરવામાં આવશે, જે તમામ વપરાશકર્તા ડેટાને કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"તમે <xliff:g id="NUMBER">%d</xliff:g> વખત ખોટી રીતે ફોનને અનલૉક કરવાનો પ્રયાસ કર્યો. આ વપરાશકર્તાને દૂર કરવામાં આવશે, જે તમામ વપરાશકર્તા ડેટાને કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"તમે ટેબ્લેટને અનલૉક કરવાનો <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે પ્રયાસ કર્યો છે. હજી <xliff:g id="NUMBER_1">%2$d</xliff:g> અસફળ પ્રયાસ પછી, કાર્ય પ્રોફાઇલ દૂર કરવામાં આવશે, જે તમામ પ્રોફાઇલ ડેટાને કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"તમે ફોનને અનલૉક કરવાનો <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે પ્રયાસ કર્યો છે. હજી <xliff:g id="NUMBER_1">%2$d</xliff:g> અસફળ પ્રયાસ પછી, કાર્ય પ્રોફાઇલ દૂર કરવામાં આવશે, જે તમામ પ્રોફાઇલ ડેટાને કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"તમે <xliff:g id="NUMBER">%d</xliff:g> વખત ખોટી રીતે ટેબ્લેટને અનલૉક કરવાનો પ્રયાસ કર્યો. કાર્ય પ્રોફાઇલ દૂર કરવામાં આવશે, જે તમામ પ્રોફાઇલ ડેટાને કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"તમે <xliff:g id="NUMBER">%d</xliff:g> વખત ખોટી રીતે ફોનને અનલૉક કરવાનો પ્રયાસ કર્યો. કાર્ય પ્રોફાઇલ દૂર કરવામાં આવશે, જે તમામ પ્રોફાઇલ ડેટાને કાઢી નાખશે."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"તમે <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે અનલૉક પેટર્ન દોરી છે. વધુ <xliff:g id="NUMBER_1">%2$d</xliff:g> વખત અસફળ પ્રયાસો પછી, તમને એક ઇમેઇલ એકાઉન્ટનો ઉપયોગ કરીને તમારા ટેબ્લેટને અનલૉક કરવા માટે પૂછવામાં આવશે.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> સેકંડમાં ફરી પ્રયાસ કરો."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"તમે તમારી અનલૉક પેટર્ન <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે દોરી. હજી <xliff:g id="NUMBER_1">%2$d</xliff:g> અસફળ પ્રયાસ પછી, તમને ઇમેઇલ એકાઉન્ટનો ઉપયોગ કરીને ફોનને અનલૉક કરવાનું કહેવામાં આવશે.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> સેકંડમાં ફરીથી પ્રયાસ કરો."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"ખોટો SIM PIN કોડ, તમારે હવે તમારું ઉપકરણ અનલૉક કરવા માટે તમારા કેરિઅરનો સંપર્ક કરવો આવશ્યક છે."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">ખોટો SIM PIN કોડ, તમારી પાસે <xliff:g id="NUMBER_1">%d</xliff:g> પ્રયાસ બાકી છે.</item>
-      <item quantity="other">ખોટો SIM PIN કોડ, તમારી પાસે <xliff:g id="NUMBER_1">%d</xliff:g> પ્રયાસ બાકી છે.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM અનુપયોગી છે. તમારા કેરીઅરનો સંપર્ક કરો."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">ખોટો SIM PUK કોડ, SIM કાયમી રીતે અનુપયોગી બની જાય તે પહેલા તમારી પાસે <xliff:g id="NUMBER_1">%d</xliff:g> પ્રયાસ બાકી છે.</item>
-      <item quantity="other">ખોટો SIM PUK કોડ, SIM કાયમી રીતે અનુપયોગી બની જાય તે પહેલા તમારી પાસે <xliff:g id="NUMBER_1">%d</xliff:g> પ્રયાસ બાકી છે.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN ઑપરેશન નિષ્ફળ થયું!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK ઓપરેશન નિષ્ફળ થયું!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"કોડ સ્વીકાર્યો!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"કોઈ સેવા ."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ઇનપુટ પદ્ધતિ સ્વિચ કરો"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"એરપ્લેન મોડ"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ઉપકરણ પુનઃપ્રારંભ થાય તે પછી પેટર્ન જરૂરી છે"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ઉપકરણ પુનઃપ્રારંભ થાય તે પછી PIN જરૂરી છે"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ઉપકરણ પુનઃપ્રારંભ થાય તે પછી પાસવર્ડ જરૂરી છે"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"વધારાની સુરક્ષા માટે પેટર્ન જરૂરી છે"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"વધારાની સુરક્ષા માટે PIN જરૂરી છે"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"વધારાની સુરક્ષા માટે પાસવર્ડ જરૂરી છે"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"જ્યારે તમે પ્રોફાઇલ્સ સ્વિચ કરો ત્યારે પેટર્ન જરૂરી છે"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"જ્યારે તમે પ્રોફાઇલ્સ સ્વિચ કરો ત્યારે PIN જરૂરી છે"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"જ્યારે તમે પ્રોફાઇલ્સ સ્વિચ કરો ત્યારે પાસવર્ડ જરૂરી છે"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"ઉપકરણ વ્યવસ્થાપકે ઉપકરણ લૉક કર્યું"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"ઉપકરણ મેન્યુઅલી લૉક કર્યું હતું"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">ઉપકરણ <xliff:g id="NUMBER_1">%d</xliff:g> કલાક માટે અનલૉક કરવામાં આવ્યું નથી. પેટર્નની પુષ્ટિ કરો.</item>
-      <item quantity="other">ઉપકરણ <xliff:g id="NUMBER_1">%d</xliff:g> કલાક માટે અનલૉક કરવામાં આવ્યું નથી. પેટર્નની પુષ્ટિ કરો.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">ઉપકરણ <xliff:g id="NUMBER_1">%d</xliff:g> કલાક માટે અનલૉક કરવામાં આવ્યું નથી. PIN ની પુષ્ટિ કરો.</item>
-      <item quantity="other">ઉપકરણ <xliff:g id="NUMBER_1">%d</xliff:g> કલાક માટે અનલૉક કરવામાં આવ્યું નથી. PIN ની પુષ્ટિ કરો.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">ઉપકરણ <xliff:g id="NUMBER_1">%d</xliff:g> કલાક માટે અનલૉક કરવામાં આવ્યું નથી. પાસવર્ડની પુષ્ટિ કરો.</item>
-      <item quantity="other">ઉપકરણ <xliff:g id="NUMBER_1">%d</xliff:g> કલાક માટે અનલૉક કરવામાં આવ્યું નથી. પાસવર્ડની પુષ્ટિ કરો.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ઓળખાયેલ નથી"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-hi/strings.xml b/packages/Keyguard/res/values-hi/strings.xml
deleted file mode 100644
index bf36312..0000000
--- a/packages/Keyguard/res/values-hi/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"पिन कोड लिखें"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"सिम PUK और नया PIN कोड लिखें"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"सिम PUK कोड"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"नया सिम PIN कोड"</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">"अनलॉक करने के लिए पिन लिखें"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"गलत पिन कोड."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"चार्ज हो गई है"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"चार्ज हो रहा है"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"तेज़ी से चार्ज हो रही है"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"धीमे चार्ज हो रही है"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"अपना चार्जर कनेक्‍ट करें."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"अनलॉक करने के लिए मेनू दबाएं."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"नेटवर्क लॉक किया गया"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"कोई सिम कार्ड नहीं है"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"टेबलेट में कोई सिम कार्ड नहीं है."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"फ़ोन में कोई सिम कार्ड नहीं है."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"सिम कार्ड डालें."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"सिम कार्ड गुम है या पढ़ने योग्‍य नहीं है. सिम कार्ड डालें."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"अनुपयोगी सिम कार्ड."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"आपका सिम कार्ड स्‍थायी रूप से अक्षम कर दिया गया है.\n दूसरे सिम कार्ड के लिए अपने वायरलेस सेवा प्रदाता से संपर्क करें."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"सिम कार्ड लॉक है."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"सिम कार्ड PUK द्वारा लॉक किया हुआ है."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"सिम कार्ड अनलॉक हो रहा है…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"पिन क्षेत्र"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"सिम पिन क्षेत्र"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"सिम पिइउके क्षेत्र"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"अगला अलार्म <xliff:g id="ALARM">%1$s</xliff:g> के लिए सेट किया गया"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"हटाएं"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"आकार भूल गए"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत आकार"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"गलत पासवर्ड"</string>
-    <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">"सिम PIN डालें"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" के लिए सिम पिन डालें"</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">"सिम अब अक्षम हो गई है. जारी रखने के लिए PUK कोड डालें. विवरण के लिए कैरियर से संपर्क करें."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"सिम \"<xliff:g id="CARRIER">%1$s</xliff:g>\" अब अक्षम हो गई है. जारी रखने के लिए PUK कोड डालें. विवरण के लिए कैरियर से संपर्क करें."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"इच्छित पिन कोड डालें"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"इच्छित पिन कोड की दुबारा पूछें"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"सिम कार्ड अनलॉक कर रहा है…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"ऐसा PIN लिखें, जो 4 से 8 अंकों का हो."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK कोड 8 या अधिक संख्या वाला होना चाहिए."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"सही PUK कोड पुन: डालें. बार-बार प्रयास करने से सिम स्थायी रूप से अक्षम हो जाएगी."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"पिन कोड का मिलान नहीं होता"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"बहुत अधिक आकार प्रयास"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"आप अपना PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से लिख चुके हैं. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकंड में पुन: प्रयास करें."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"आप अपना पासवर्ड <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से लिख चुके हैं. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकंड में पुन: प्रयास करें."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"आपने अपना अनलॉक आकार <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से आरेखित किया है. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकंड में पुन: प्रयास करें."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"आपने टैबलेट को अनलॉक करने के लिए <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से प्रयास किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, इस टैबलेट को रीसेट कर दिया जाएगा, जिससे सभी उपयोगकर्ता डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"आपने फ़ोन को अनलॉक करने के लिए <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से प्रयास किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, इस फ़ोन को रीसेट कर दिया जाएगा, जिससे सभी उपयोगकर्ता डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"आपने टैबलेट को अनलॉक करने के लिए <xliff:g id="NUMBER">%d</xliff:g> बार गलत तरीके से प्रयास किया है. इस टैबलेट को रीसेट कर दिया जाएगा, जिससे उसका सभी डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"आपने फ़ोन को अनलॉक करने के लिए <xliff:g id="NUMBER">%d</xliff:g> बार गलत तरीके से प्रयास किया है. इस फ़ोन को रीसेट कर दिया जाएगा, जिससे उसका सभी डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"आपने टैबलेट को अनलॉक करने के लिए <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से प्रयास किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, इस उपयोगकर्ता को निकाल दिया जाएगा, जिससे सभी उपयोगकर्ता डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"आपने फ़ोन को अनलॉक करने के लिए <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से प्रयास किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, इस उपयोगकर्ता को निकाल दिया जाएगा, जिससे सभी उपयोगकर्ता डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"आपने टैबलेट को अनलॉक करने के लिए <xliff:g id="NUMBER">%d</xliff:g> बार गलत तरीके से प्रयास किया है. इस उपयोगकर्ता को निकाल दिया जाएगा, जिससे सभी उपयोगकर्ता डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"आपने फ़ोन को अनलॉक करने के लिए <xliff:g id="NUMBER">%d</xliff:g> बार गलत तरीके से प्रयास किया है. इस उपयोगकर्ता को निकाल दिया जाएगा, जिससे सभी उपयोगकर्ता डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"आपने टैबलेट को अनलॉक करने के लिए <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से प्रयास किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, कार्य प्रोफ़ाइल को निकाल दिया जाएगा, जिससे सभी प्रोफ़ाइल डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"आपके डिवाइस ने फ़ोन को अनलॉक करने के लिए <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से प्रयास किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, कार्य प्रोफ़ाइल को निकाल दिया जाएगा, जिससे सभी प्रोफ़ाइल डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"आपने टैबलेट को अनलॉक करने के लिए <xliff:g id="NUMBER">%d</xliff:g> बार गलत तरीके से प्रयास किया है. कार्य प्रोफ़ाइल को निकाल दिया जाएगा, जिससे सभी प्रोफ़ाइल डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"आपने फ़ोन को अनलॉक करने के लिए <xliff:g id="NUMBER">%d</xliff:g> बार गलत तरीके से प्रयास किया है. कार्य प्रोफ़ाइल को निकाल दिया जाएगा, जिससे सभी प्रोफ़ाइल डेटा हट जाएगा."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"आपने अपने अनलॉक आकार को <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से आरेखित किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, आपसे अपने टेबलेट को किसी ईमेल खाते के उपयोग से अनलॉक करने के लिए कहा जाएगा.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकंड में पुन: प्रयास करें."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"आपने अपने अनलॉक आकार को <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से आरेखित किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, आपसे अपने फ़ोन को किसी ईमेल खाते का उपयोग करके अनलॉक करने के लिए कहा जाएगा.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकंड में पुन: प्रयास करें."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"गलत सिम PIN कोड अपने डिवाइस को अनलॉक करने के लिए अब आपको अपने वाहक से संपर्क करना होगा."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">गलत सिम PIN कोड, आपके पास <xliff:g id="NUMBER_1">%d</xliff:g> प्रयास शेष हैं.</item>
-      <item quantity="other">गलत सिम PIN कोड, आपके पास <xliff:g id="NUMBER_1">%d</xliff:g> प्रयास शेष हैं.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"सिम अनुपयोगी है. अपने वाहक से संपर्क करें."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">गलत सिम PUK कोड, सिम के स्थायी रूप से अनुपयोगी हो जाने से पहले आपके पास <xliff:g id="NUMBER_1">%d</xliff:g> प्रयास शेष हैं.</item>
-      <item quantity="other">गलत सिम PUK कोड, सिम के स्थायी रूप से अनुपयोगी हो जाने से पहले आपके पास <xliff:g id="NUMBER_1">%d</xliff:g> प्रयास शेष हैं.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"सिम PIN की कार्यवाही विफल रही!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"सिम PUK की कार्यवाही विफल रही!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"कोड स्वीकार किया गया!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"कोई सेवा नहीं."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"इनपुट पद्धति‍ बदलें"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"हवाई जहाज़ मोड"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"डिवाइस के पुनः प्रारंभ होने पर पैटर्न की आवश्यकता होती है"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"डिवाइस के पुनः प्रारंभ होने पर पिन की आवश्यकता होती है"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"डिवाइस के पुनः प्रारंभ होने पर पासवर्ड की आवश्यकता होती है"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"अतिरिक्‍त सुरक्षा के लिए पैटर्न आवश्‍यक है"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"अतिरिक्‍त सुरक्षा के लिए पिन आवश्‍यक है"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"अतिरिक्‍त सुरक्षा के लिए पासवर्ड आवश्‍यक है"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"प्रोफ़ाइल में स्विच करते समय पैटर्न की आवश्यकता होती है"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"प्रोफ़ाइल में स्विच करते समय पिन की आवश्यकता होती है"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"प्रोफ़ाइल में स्विच करते समय पासवर्ड की आवश्यकता होती है"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"डिवाइस व्यवस्थापक ने डिवाइस को लॉक कर दिया है"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"डिवाइस को मैन्युअल रूप से लॉक किया गया था"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">डिवाइस <xliff:g id="NUMBER_1">%d</xliff:g> घंटे से अनलॉक नहीं किया गया है. पैटर्न की पुष्टि करें.</item>
-      <item quantity="other">डिवाइस <xliff:g id="NUMBER_1">%d</xliff:g> घंटे से अनलॉक नहीं किया गया है. पैटर्न की पुष्टि करें.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">डिवाइस <xliff:g id="NUMBER_1">%d</xliff:g> घंटे से अनलॉक नहीं किया गया है. पिन की पुष्‍टि करें.</item>
-      <item quantity="other">डिवाइस <xliff:g id="NUMBER_1">%d</xliff:g> घंटे से अनलॉक नहीं किया गया है. पिन की पुष्‍टि करें.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">डिवाइस <xliff:g id="NUMBER_1">%d</xliff:g> घंटे से अनलॉक नहीं किया गया है. पासवर्ड की पुष्टि करें.</item>
-      <item quantity="other">डिवाइस <xliff:g id="NUMBER_1">%d</xliff:g> घंटे से अनलॉक नहीं किया गया है. पासवर्ड की पुष्टि करें.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"पहचाना नहीं गया"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-hr/strings.xml b/packages/Keyguard/res/values-hr/strings.xml
deleted file mode 100644
index 169bc57..0000000
--- a/packages/Keyguard/res/values-hr/strings.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Zaštita tipkovnice"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Unesite PIN kôd"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Unesite PUK i novi PIN kôd SIM kartice"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK kôd SIM kartice"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Novi PIN kôd SIM kartice"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Dodirnite za tipkanje zaporke"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Unesite zaporku za otključavanje"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Unesite PIN za otključavanje"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Netočan PIN kôd."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Napunjeno"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Punjenje"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Brzo punjenje"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Sporo punjenje"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Priključite punjač."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Pritisnite Izbornik za otključavanje."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Mreža je zaključana"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nema SIM kartice"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"U tabletnom uređaju nema SIM kartice."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"U telefonu nema SIM kartice."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Umetnite SIM karticu."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM kartica nedostaje ili nije čitljiva. Umetnite SIM karticu."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Neupotrebljiva SIM kartica."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kartica je zaključana."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kartica zaključana je PUK-om."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Otključavanje SIM kartice…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Područje PIN-a"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Područje PIN-a za SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Područje PUK-a za SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Sljedeći alarm postavljen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Izbriši"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zaboravili ste obrazac"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Pogrešan obrazac"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Pogrešna zaporka"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Pogrešan PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Pokušajte ponovo za <xliff:g id="NUMBER">%d</xliff:g> s."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Iscrtajte svoj obrazac"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Unesite PIN za SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Unesite PIN za SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Unesite PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Unesite zaporku"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM je sad onemogućen. Unesite PUK kôd da biste nastavili. Kontaktirajte operatera za pojedinosti."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" sada je onemogućen. Unesite PUK kôd da biste nastavili. Obratite se mobilnom operateru za više pojedinosti."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Upišite željeni PIN kôd"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potvrdite željeni PIN kôd"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Otključavanje SIM kartice…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Unesite PIN koji ima od 4 do 8 brojeva."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kôd treba imati 8 brojeva ili više."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Ponovo unesite ispravan PUK kôd. Ponovljeni pokušaji trajno će onemogućiti SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodovi nisu jednaki"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Previše pokušaja iscrtavanja obrasca"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Netočno ste napisali PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nPokušajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Netočno ste napisali zaporku <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nPokušajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Netočno ste iscrtali obrazac za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nPokušajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"<xliff:g id="NUMBER_0">%1$d</xliff:g> put/a ste neuspješno pokušali otključati tablet. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja tablet će se vratiti na zadano, a time će se izbrisati i svi podaci na njemu."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"<xliff:g id="NUMBER_0">%1$d</xliff:g> put/a ste neuspješno pokušali otključati telefon. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja telefon će se vratiti na zadano, a time će se izbrisati i svi podaci na njemu."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"<xliff:g id="NUMBER">%d</xliff:g> put/a ste neuspješno pokušali otključati tablet. Tablet će se vratiti na zadano, a time će se izbrisati i svi podaci na njemu."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"<xliff:g id="NUMBER">%d</xliff:g> put/a ste neuspješno pokušali otključati telefon. Telefon će se vratiti na zadano, a time će se izbrisati i svi podaci na njemu."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"<xliff:g id="NUMBER_0">%1$d</xliff:g> put/a ste neuspješno pokušali otključati tablet. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja taj će se korisnik ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"<xliff:g id="NUMBER_0">%1$d</xliff:g> put/a ste neuspješno pokušali otključati telefon. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja taj će se korisnik ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"<xliff:g id="NUMBER">%d</xliff:g> put/a ste neuspješno pokušali otključati tablet. Taj će se korisnik ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"<xliff:g id="NUMBER">%d</xliff:g> put/a ste neuspješno pokušali otključati telefon. Taj će se korisnik ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"<xliff:g id="NUMBER_0">%1$d</xliff:g> put/a ste neuspješno pokušali otključati tablet. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja radni će se profil ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"<xliff:g id="NUMBER_0">%1$d</xliff:g> put/a ste neuspješno pokušali otključati telefon. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja radni će se profil ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"<xliff:g id="NUMBER">%d</xliff:g> put/a ste neuspješno pokušali otključati tablet. Radni će se profil ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"<xliff:g id="NUMBER">%d</xliff:g> put/a ste neuspješno pokušali otključati telefon. Radni će se profil ukloniti, a time će se izbrisati i svi njegovi podaci."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Netočno ste iscrtali obrazac za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Nakon još ovoliko neuspješnih pokušaja: <xliff:g id="NUMBER_1">%2$d</xliff:g> morat ćete otključati tabletno računalo pomoću računa e-pošte.\n\n Pokušajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Netočno ste iscrtali obrazac za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Nakon još ovoliko neuspješnih pokušaja: <xliff:g id="NUMBER_1">%2$d</xliff:g> morat ćete otključati telefon pomoću računa e-pošte.\n\n Pokušajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Netočan PIN kôd SIM kartice; sada morate kontaktirati svog mobilnog operatera da bi otključao vaš uređaj."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Netočan PIN kôd SIM kartice; imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaj.</item>
-      <item quantity="few">Netočan PIN kôd SIM kartice; imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja.</item>
-      <item quantity="other">Netočan PIN kôd SIM kartice; imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM kartica nije upotrebljiva. Kontaktirajte svog mobilnog operatera."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Netočan PUK kôd SIM kartice; imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaj prije nego što SIM kartica postane trajno neupotrebljiva.</item>
-      <item quantity="few">Netočan PUK kôd SIM kartice; imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja prije nego što SIM kartica postane trajno neupotrebljiva.</item>
-      <item quantity="other">Netočan PUK kôd SIM kartice; imate još <xliff:g id="NUMBER_1">%d</xliff:g> pokušaja prije nego što SIM kartica postane trajno neupotrebljiva.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Operacija PIN-a SIM kartice nije uspjela!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operacija PUK-a SIM kartice nije uspjela!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kôd je prihvaćen!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Nema usluge."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Promjena načina unosa"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Način rada u zrakoplovu"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Nakon ponovnog pokretanja uređaja morate unijeti uzorak"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Nakon ponovnog pokretanja uređaja morate unijeti PIN"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Nakon ponovnog pokretanja uređaja morate unijeti zaporku"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Unesite uzorak radi dodatne sigurnosti"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Unesite PIN radi dodatne sigurnosti"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Unesite zaporku radi dodatne sigurnosti"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Za promjenu profila morate unijeti uzorak"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Za promjenu profila morate unijeti PIN"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Za promjenu profila morate unijeti zaporku"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Administrator uređaja zaključao je uređaj"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Uređaj je ručno zaključan"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite uzorak.</item>
-      <item quantity="few">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite uzorak.</item>
-      <item quantity="other">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite uzorak.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite PIN.</item>
-      <item quantity="few">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite PIN.</item>
-      <item quantity="other">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sat. Potvrdite zaporku.</item>
-      <item quantity="few">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sata. Potvrdite zaporku.</item>
-      <item quantity="other">Uređaj nije bio otključan <xliff:g id="NUMBER_1">%d</xliff:g> sati. Potvrdite zaporku.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nije prepoznat"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-hu/strings.xml b/packages/Keyguard/res/values-hu/strings.xml
deleted file mode 100644
index bc3bf4e..0000000
--- a/packages/Keyguard/res/values-hu/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Billentyűzár"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Írja be a PIN kódot"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Írja be a SIM kártya PUK kódját, majd az új PIN kódot"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM kártya PUK kódja"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Új PIN-kód a SIM kártyához"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Érintsen jelszó megadásához"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"A feloldáshoz írja be a jelszót"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Feloldáshoz írja be a PIN kódot"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Helytelen PIN-kód."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Feltöltve"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Töltés"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Gyors töltés folyamatban"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Lassú töltés folyamatban"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Csatlakoztassa a töltőt."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"A feloldáshoz nyomja meg a Menü gombot."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"A hálózat lezárva"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nincs SIM-kártya."</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Nincs SIM-kártya a táblagépben."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Nincs SIM kártya a telefonban."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Helyezzen be egy SIM kártyát."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"A SIM kártya hiányzik vagy nem olvasható. Helyezzen be egy SIM kártyát."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"A SIM kártya nem használható."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM kártyája véglegesen le van tiltva.\n Forduljon a vezeték nélküli szolgáltatójához másik SIM kártya beszerzése érdekében."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"A SIM kártya le van zárva."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"A SIM kártya le van zárva a PUK kóddal."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM kártya feloldása..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-kód területe"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN-kód területe"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK kód területe"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"A következő ébresztés beállított ideje: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Elfelejtett minta"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Helytelen minta"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Helytelen jelszó"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Helytelen PIN-kód"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Próbálkozzon újra <xliff:g id="NUMBER">%d</xliff:g> másodperc múlva."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Rajzolja le a mintát"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Adja meg a SIM kártya PIN kódját"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Adja meg a(z) „<xliff:g id="CARRIER">%1$s</xliff:g>” SIM kártya PIN kódját."</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Adja meg a PIN kódot"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Írja be a jelszót"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"A SIM kártya le van tiltva. A folytatáshoz adja meg a PUK kódot. A részletekért vegye fel a kapcsolatot szolgáltatójával."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"A(z) „<xliff:g id="CARRIER">%1$s</xliff:g>” SIM kártyát a rendszer letiltotta. A folytatáshoz adja meg a PUK kódot. A részletekért vegye a fel a kapcsolatot szolgáltatójával."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Kívánt PIN-kód megadása"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Kívánt PIN-kód megerősítése"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM kártya feloldása..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4–8 számjegyű PIN kódot írjon be."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"A PUK kód legalább  8 számjegyből kell, hogy álljon."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Adja meg újra a helyes PUK kódot. Az ismételt próbálkozással véglegesen letiltja a SIM kártyát."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"A PIN kódok nem egyeznek."</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Túl sok mintarajzolási próbálkozás"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal helytelenül adta meg PIN kódját. \n\nPróbálja újra <xliff:g id="NUMBER_1">%2$d</xliff:g> másodperc múlva."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal helytelenül adta meg a jelszót. \n\nPróbálja újra <xliff:g id="NUMBER_1">%2$d</xliff:g> másodperc múlva."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal rosszul rajzolta le feloldási mintát. \n\nPróbálja újra <xliff:g id="NUMBER_1">%2$d</xliff:g> másodperc múlva."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal próbálkozott sikertelenül a táblagép zárolásának feloldásával. <xliff:g id="NUMBER_1">%2$d</xliff:g> további sikertelen kísérlet után a rendszer visszaállítja a táblagépet a gyári állapotba; ekkor az összes adat törlődik róla."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal próbálkozott sikertelenül a telefon zárolásának feloldásával. <xliff:g id="NUMBER_1">%2$d</xliff:g> további sikertelen kísérlet után a rendszer visszaállítja a telefont a gyári állapotba; ekkor az összes adat törlődik róla."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"<xliff:g id="NUMBER">%d</xliff:g> alkalommal próbálkozott sikertelenül a táblagép zárolásának feloldásával. A rendszer visszaállítja a táblagépet a gyári állapotba, és annak összes adata törlődik."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"<xliff:g id="NUMBER">%d</xliff:g> alkalommal próbálkozott sikertelenül a telefon zárolásának feloldásával. A rendszer visszaállítja a telefont a gyári állapotba, és annak összes adata törlődik."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal próbálkozott sikertelenül a táblagép zárolásának feloldásával. <xliff:g id="NUMBER_1">%2$d</xliff:g> további sikertelen kísérlet után a rendszer eltávolítja ezt a felhasználót; ekkor összes felhasználói adata törlődni fog."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal próbálkozott sikertelenül a telefon zárolásának feloldásával. <xliff:g id="NUMBER_1">%2$d</xliff:g> további sikertelen kísérlet után a rendszer eltávolítja ezt a felhasználót; ekkor összes felhasználói adata törlődni fog."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"<xliff:g id="NUMBER">%d</xliff:g> alkalommal próbálkozott sikertelenül a táblagép zárolásának feloldásával. A rendszer eltávolítja a felhasználót, és annak összes felhasználói adata törlődik."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"<xliff:g id="NUMBER">%d</xliff:g> alkalommal próbálkozott sikertelenül a telefon zárolásának feloldásával. A rendszer eltávolítja a felhasználót, és annak összes felhasználói adata törlődik."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal próbálkozott sikertelenül a táblagép zárolásának feloldásával. <xliff:g id="NUMBER_1">%2$d</xliff:g> további sikertelen kísérlet után a rendszer eltávolítja munkahelyi profilját; ekkor összes profiladata törlődni fog."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal próbálkozott sikertelenül a telefon zárolásának feloldásával. <xliff:g id="NUMBER_1">%2$d</xliff:g> további sikertelen kísérlet után a rendszer eltávolítja munkahelyi profilját; ekkor összes profiladata törlődni fog."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"<xliff:g id="NUMBER">%d</xliff:g> alkalommal próbálkozott sikertelenül a táblagép zárolásának feloldásával. A rendszer eltávolítja munkahelyi profilját, és összes profiladata törlődik."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"<xliff:g id="NUMBER">%d</xliff:g> alkalommal próbálkozott sikertelenül a telefon zárolásának feloldásával. A rendszer eltávolítja munkahelyi profilját, és összes profiladata törlődik."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal helytelenül rajzolta le a feloldási mintát. További <xliff:g id="NUMBER_1">%2$d</xliff:g> sikertelen kísérlet után egy e-mail fiók használatával kell feloldania a táblagépét.\n\n Kérjük, próbálja újra <xliff:g id="NUMBER_2">%3$d</xliff:g> másodperc múlva."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal helytelenül rajzolta le a feloldási mintát. További <xliff:g id="NUMBER_1">%2$d</xliff:g> sikertelen kísérlet után egy e-mail fiók használatával kell feloldania a telefonját.\n\n Kérjük, próbálja újra <xliff:g id="NUMBER_2">%3$d</xliff:g> másodperc múlva."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Helytelen PIN-kód a SIM kártyához; vegye fel a kapcsolatot szolgáltatójával az eszköz feloldásához."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">A SIM kártya PIN kódja helytelen. <xliff:g id="NUMBER_1">%d</xliff:g> próbálkozás maradt.</item>
-      <item quantity="one">A SIM kártya PIN kódja helytelen. <xliff:g id="NUMBER_0">%d</xliff:g> próbálkozás maradt. Utána a szolgáltatótól kell feloldást kérnie.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"A SIM kártya használhatatlan. Vegye fel a kapcsolatot szolgáltatójával."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Helytelen PUK kód a SIM kártyához. Még <xliff:g id="NUMBER_1">%d</xliff:g> próbálkozása van, mielőtt a SIM kártya végleg használhatatlanná válik.</item>
-      <item quantity="one">Helytelen PUK kód a SIM kártyához. Még <xliff:g id="NUMBER_0">%d</xliff:g> próbálkozása van, mielőtt a SIM kártya végleg használhatatlanná válik.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"A SIM kártya PIN-művelete sikertelen!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"A SIM kártya PUK-művelete sikertelen!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kód elfogadva."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Nincs szolgáltatás."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Beviteli mód váltása"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Repülős üzemmód"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Az eszköz újraindítását követően meg kell adni a mintát"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Az eszköz újraindítását követően meg kell adni a PIN-kódot"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Az eszköz újraindítását követően meg kell adni a jelszót"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Minta szükséges a nagyobb biztonság érdekében"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN-kód szükséges a nagyobb biztonság érdekében"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Jelszó szükséges a nagyobb biztonság érdekében"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Ha vált a profilok között, meg kell adni a mintát"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Ha vált a profilok között, meg kell adni a PIN-kódot"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Ha vált a profilok között, meg kell adni a jelszót"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Az eszközadminisztrátor lezárta az eszközt"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Az eszközt manuálisan lezárták"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Az eszköz zárolása <xliff:g id="NUMBER_1">%d</xliff:g> órája nem lett feloldva. Erősítse meg a mintát.</item>
-      <item quantity="one">Az eszköz zárolása <xliff:g id="NUMBER_0">%d</xliff:g> órája nem lett feloldva. Erősítse meg a mintát.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Az eszköz zárolása <xliff:g id="NUMBER_1">%d</xliff:g> órája nem lett feloldva. Erősítse meg a PIN kódot.</item>
-      <item quantity="one">Az eszköz zárolása <xliff:g id="NUMBER_0">%d</xliff:g> órája nem lett feloldva. Erősítse meg a PIN kódot.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Az eszköz zárolása <xliff:g id="NUMBER_1">%d</xliff:g> órája nem lett feloldva. Erősítse meg a jelszót.</item>
-      <item quantity="one">Az eszköz zárolása <xliff:g id="NUMBER_0">%d</xliff:g> órája nem lett feloldva. Erősítse meg a jelszót.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nem sikerült felismerni"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-hy/strings.xml b/packages/Keyguard/res/values-hy/strings.xml
deleted file mode 100644
index ae92f6b..0000000
--- a/packages/Keyguard/res/values-hy/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Մուտքագրեք PIN կոդը"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Մուտքագրեք SIM PUK-ը և նոր PIN կոդը"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK կոդը"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Նոր SIM PIN կոդը"</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_wrong_pin_code" msgid="2422225591006134936">"Սխալ PIN ծածկագիր:"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Լիցքավորված է"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Լիցքավորում"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Արագ լիցքավորում"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Դանդաղ լիցքավորում"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Միացրեք ձեր լիցքավորիչը:"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Ապակողպելու համար սեղմեք Ցանկը:"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Ցանցը կողպված է"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM քարտ չկա"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Գրասալիկում SIM քարտ չկա:"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Հեռախոսի մեջ SIM քարտ չկա:"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Զետեղեք SIM քարտը:"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM քարտը բացակայում է կամ չի կարող կարդացվել: Մտցրեք SIM քարտ:"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Անպիտան SIM քարտ:"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Ձեր SIM քարտը ընդմիշտ կասեցվել է:\nԿապվեք ձեր բջջային ծառայության մատակարարի հետ նոր SIM քարտ ձեռք բերելու համար:"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM քարտը կողպված է:"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM քարտը PUK-ով կողպված է:"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM քարտը ապակողպվում է..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN կոդի տարածք"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM քարտի PIN կոդի տարածք"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM քարտի PUK կոդի տարածք"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Հաջորդ զարթուցիչը դրված է <xliff:g id="ALARM">%1$s</xliff:g>-ի վրա"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ջնջել"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Մուտք"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Մոռացել եմ սխեման"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Սխալ սխեմա"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Սխալ գաղտնաբառ"</string>
-    <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_multi" msgid="7818515973197201434">"Մուտքագրեք SIM-ի PIN կոդը <xliff:g id="CARRIER">%1$s</xliff:g>-ի համար"</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"<xliff:g id="CARRIER">%1$s</xliff:g> SIM քարտն այժմ անջատված է: Շարունակելու համար մուտքագրեք PUK կոդը: Մանրամասն տեղեկություններ ստանալու համար դիմեք օպերատորին:"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Մուտքագրեք ցանկալի PIN ծածկագիրը"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Հաստատեք ցանկալի PIN ծածկագիրը"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Ապակողպում է SIM քարտը ..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Մուտքագրեք PIN, որը 4-ից 8 թիվ է:"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK կոդը պետք է լինի 8 կամ ավելի թիվ:"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Դուք <xliff:g id="NUMBER_0">%1$d</xliff:g> անգամ սխալ եք մուտքագրել ձեր PIN-ը: \n\nՓորձեք կրկին <xliff:g id="NUMBER_1">%2$d</xliff:g> վայրկյանից:"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Դուք սխալ եք մուտքագրել ձեր գաղտնաբառը <xliff:g id="NUMBER_0">%1$d</xliff:g> անգամ: \n\nՓորձեք կրկին <xliff:g id="NUMBER_1">%2$d</xliff:g> վայրկյանից:"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Դուք <xliff:g id="NUMBER_0">%1$d</xliff:g> անգամ սխալ եք հավաքել ձեր ապակողպման սխեման: \n\nՓորձեք կրկին <xliff:g id="NUMBER_1">%2$d</xliff:g> վայրկյանից:"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Դուք կատարել եք գրասալիկն ապակողպելու <xliff:g id="NUMBER_0">%1$d</xliff:g> անհաջող փորձ: Եվս <xliff:g id="NUMBER_1">%2$d</xliff:g> անհաջող փորձից հետո այս պլանշետը կվերակայվի և բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Դուք կատարել եք հեռախոսն ապակողպելու <xliff:g id="NUMBER_0">%1$d</xliff:g> անհաջող փորձ: Եվս <xliff:g id="NUMBER_1">%2$d</xliff:g> անհաջող փորձից հետո այս հեռախոսը կվերակայվի և բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Դուք կատարել եք գրասալիկն ապակողպելու <xliff:g id="NUMBER">%d</xliff:g> անհաջող փորձ: Այս պլանշետը կվերակայվի և բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Դուք կատարել եք հեռախոսն ապակողպելու <xliff:g id="NUMBER">%d</xliff:g> անհաջող փորձ: Այս հեռախոսը կվերակայվի և բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Դուք կատարել եք գրասալիկն ապակողպելու <xliff:g id="NUMBER_0">%1$d</xliff:g> անհաջող փորձ: Եվս <xliff:g id="NUMBER_1">%2$d</xliff:g> անհաջող փորձից հետո այս օգտատերը կհեռացվի և օգտատիրոջ բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Դուք կատարել եք հեռախոսն ապակողպելու <xliff:g id="NUMBER_0">%1$d</xliff:g> անհաջող փորձ: Եվս <xliff:g id="NUMBER_1">%2$d</xliff:g> անհաջող փորձից հետո այս օգտատերը կհեռացվի և օգտատիրոջ բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Դուք կատարել եք գրասալիկն ապակողպելու <xliff:g id="NUMBER">%d</xliff:g> անհաջող փորձ: Օգտատերը կհեռացվի և օգտատիրոջ բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Դուք կատարել եք հեռախոսն ապակողպելու <xliff:g id="NUMBER">%d</xliff:g> անհաջող փորձ: Օգտատերը կհեռացվի և օգտատիրոջ բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Դուք կատարել եք գրասալիկն ապակողպելու <xliff:g id="NUMBER_0">%1$d</xliff:g> անհաջող փորձ: Եվս <xliff:g id="NUMBER_1">%2$d</xliff:g> անհաջող փորձից հետո աշխատանքային պրոֆիլը կհեռացվի և պրոֆիլի բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Դուք կատարել եք հեռախոսն ապակողպելու <xliff:g id="NUMBER_0">%1$d</xliff:g> անհաջող փորձ: Եվս <xliff:g id="NUMBER_1">%2$d</xliff:g> անհաջող փորձից հետո աշխատանքային պրոֆիլը կհեռացվի և պրոֆիլի բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Դուք կատարել եք գրասալիկն ապակողպելու <xliff:g id="NUMBER">%d</xliff:g> անհաջող փորձ: Աշխատանքային պրոֆիլը կհեռացվի և պրոֆիլի բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Դուք կատարել եք հեռախոսն ապակողպելու <xliff:g id="NUMBER">%d</xliff:g> անհաջող փորձ: Աշխատանքային պրոֆիլը կհեռացվի և պրոֆիլի բոլոր տվյալները կջնջվեն:"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Դուք սխալ եք հավաքել ձեր ապակողպման սխեման <xliff:g id="NUMBER_0">%1$d</xliff:g> անգամ: Եվս <xliff:g id="NUMBER_1">%2$d</xliff:g> անհաջող փորձից հետո ձեզանից կպահանջվի ապակողպել ձեր պլանշետը` օգտագործելով էլփոստի հաշիվ:\n\n Փորձեք կրկին <xliff:g id="NUMBER_2">%3$d</xliff:g> վայրկյանից:"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Դուք <xliff:g id="NUMBER_0">%1$d</xliff:g> անգամ սխալ եք հավաքել ձեր ապակողպման նմուշը: <xliff:g id="NUMBER_1">%2$d</xliff:g> անգամից ավել անհաջող փորձերից հետո ձեզ կառաջարկվի ապակողպել ձեր հեռախոսը` օգտագործելով էլփոստի հաշիվ:\n\n Փորձեք կրկին <xliff:g id="NUMBER_2">%3$d</xliff:g> վայրկյանից:"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Սխալ SIM PIN կոդի պատճառով պետք է դիմեք ձեր օպերատորին՝ սարքն արգելաբացելու համար:"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">SIM PIN կոդը սխալ է: Մնաց <xliff:g id="NUMBER_1">%d</xliff:g> փորձ:</item>
-      <item quantity="other">SIM PIN կոդը սխալ է: Մնաց <xliff:g id="NUMBER_1">%d</xliff:g> փորձ:</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-ը հնարավոր չէ օգտագործել: Դիմեք ձեր օպերատորին:"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">SIM PUK կոդը սխալ է: Մնաց <xliff:g id="NUMBER_1">%d</xliff:g> փորձ, որից հետո SIM քարտն այլևս հնարավոր չի լինի օգտագործել:</item>
-      <item quantity="other">SIM PUK կոդը սխալ է: Մնաց <xliff:g id="NUMBER_1">%d</xliff:g> փորձ, որից հետո SIM քարտն այլևս հնարավոր չի լինի օգտագործել:</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN գործողությունը ձախողվեց:"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK գործողությունը ձախողվեց:"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Կոդն ընդունվեց:"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ծառայություն չկա:"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Փոխարկել մուտքագրման եղանակը"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Ինքնաթիռի ռեժիմ"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Սարքը վերագործարկելուց հետո անհրաժեշտ է մուտքագրել նախշը"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Սարքը վերագործարկելուց հետո անհրաժեշտ է մուտքագրել PIN կոդը"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Սարքը վերագործարկելուց հետո անհրաժեշտ է մուտքագրել գաղտնաբառը"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Անվտանգության նկատառումներից ելնելով անհրաժեշտ է մուտքագրել նախշը"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Անվտանգության նկատառումներից ելնելով անհրաժեշտ է մուտքագրել PIN կոդը"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Անվտանգության նկատառումներից ելնելով անհրաժեշտ է մուտքագրել գաղտնաբառը"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Պրոֆիլները փոխարկելիս անհրաժեշտ է մուտքագրել նախշը"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Պրոֆիլները փոխարկելիս անհրաժեշտ է մուտքագրել PIN կոդը"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Պրոֆիլները փոխարկելիս անհրաժեշտ է մուտքագրել գաղտնաբառը"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Սարքի ադմինիստրատորը կողպել է սարքը"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Սարքը կողպվել է ձեռքով"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Սարքը չի ապակողպվել <xliff:g id="NUMBER_1">%d</xliff:g> ժամվա ընթացքում: Հաստատեք նախշը:</item>
-      <item quantity="other">Սարքը չի ապակողպվել <xliff:g id="NUMBER_1">%d</xliff:g> ժամվա ընթացքում: Հաստատեք նախշը:</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Սարքը չի ապակողպվել <xliff:g id="NUMBER_1">%d</xliff:g> ժամվա ընթացքում: Հաստատեք PIN կոդը:</item>
-      <item quantity="other">Սարքը չի ապակողպվել <xliff:g id="NUMBER_1">%d</xliff:g> ժամվա ընթացքում: Հաստատեք PIN կոդը:</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Սարքը չի ապակողպվել <xliff:g id="NUMBER_1">%d</xliff:g> ժամվա ընթացքում: Հաստատեք գաղտնաբառը:</item>
-      <item quantity="other">Սարքը չի ապակողպվել <xliff:g id="NUMBER_1">%d</xliff:g> ժամվա ընթացքում: Հաստատեք գաղտնաբառը:</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Չճանաչվեց"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-in/strings.xml b/packages/Keyguard/res/values-in/strings.xml
deleted file mode 100644
index dda63a8..0000000
--- a/packages/Keyguard/res/values-in/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Ketik kode PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Ketik kode PIN baru dan PUK SIM"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Kode PUK SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Kode PIN SIM baru"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Sentuh untuk mengetikkan sandi"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Ketik sandi untuk membuka kunci"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Ketik PIN untuk membuka kunci"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Kode PIN salah."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Terisi"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Mengisi daya"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Mengisi daya dengan cepat"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Mengisi daya dengan lambat"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Hubungkan pengisi daya."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Tekan Menu untuk membuka."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Jaringan terkunci"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Tidak ada kartu SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Tidak ada kartu SIM dalam tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Tidak ada Kartu SIM di dalam ponsel."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Masukkan kartu SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Kartu SIM tidak ada atau tidak dapat dibaca. Masukkan kartu SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Kartu SIM tidak dapat digunakan."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Kartu SIM Anda telah dinonaktifkan secara permanen.\n Hubungi penyedia layanan nirkabel Anda untuk kartu SIM lain."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Kartu SIM terkunci."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Kartu SIM terkunci PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Membuka kartu SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Bidang PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Bidang PIN SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Bidang PUK SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Alarm berikutnya disetel untuk <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Hapus"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Pola?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Pola Salah"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Sandi Salah"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN Salah"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Coba lagi dalam <xliff:g id="NUMBER">%d</xliff:g> detik."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Gambar pola Anda"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Masukkan PIN SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Masukkan PIN SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Masukkan PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Masukkan Sandi"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM telah dinonaktifkan. Masukkan kode PUK untuk melanjutkan. Hubungi operator untuk keterangan selengkapnya."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" kini dinonaktifkan. Masukkan kode PUK untuk melanjutkan. Hubungi operator untuk mengetahui detailnya."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Masukkan kode PIN yang diinginkan"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Konfirmasi kode PIN yang diinginkan"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Membuka kunci kartu SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Ketik PIN yang terdiri dari 4 sampai 8 angka."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Kode PUK harus terdiri dari 8 angka atau lebih."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Masukkan kembali kode PUK yang benar. Jika berulang kali gagal, SIM akan dinonaktifkan secara permanen."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kode PIN tidak cocok"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Terlalu banyak upaya pola"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Anda telah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali salah mengetik PIN. \n\nCoba lagi dalam <xliff:g id="NUMBER_1">%2$d</xliff:g> detik."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Anda telah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali salah mengetik sandi. \n\nCoba lagi dalam <xliff:g id="NUMBER_1">%2$d</xliff:g> detik."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Anda telah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali salah menggambar pola pembuka kunci. \n\nCoba lagi dalam <xliff:g id="NUMBER_1">%2$d</xliff:g> detik."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Sudah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali Anda berupaya membuka kunci tablet dengan tidak benar. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya yang tidak berhasil, tablet ini akan disetel ulang, sehingga semua datanya akan dihapus."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Sudah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali Anda berupaya membuka kunci ponsel dengan tidak benar. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya yang tidak berhasil, ponsel ini akan disetel ulang, sehingga semua datanya akan dihapus."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Sudah <xliff:g id="NUMBER">%d</xliff:g> kali Anda berupaya membuka kunci tablet dengan tidak benar. Tablet ini akan disetel ulang, sehingga menghapus semua datanya."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Sudah <xliff:g id="NUMBER">%d</xliff:g> kali Anda berupaya membuka kunci ponsel dengan tidak benar. Ponsel ini akan disetel ulang, sehingga menghapus semua datanya."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Sudah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali Anda berupaya membuka kunci tablet dengan tidak benar. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya yang tidak berhasil, pengguna ini akan dihapus, sehingga semua data pengguna akan dihapus."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Sudah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali Anda berupaya membuka kunci ponsel dengan tidak benar. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya yang tidak berhasil, pengguna ini akan dihapus, sehingga semua data pengguna akan dihapus."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Sudah <xliff:g id="NUMBER">%d</xliff:g> kali Anda berupaya membuka kunci tablet dengan tidak benar. Pengguna ini akan dihapus, sehingga menghapus semua data pengguna."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Sudah <xliff:g id="NUMBER">%d</xliff:g> kali Anda berupaya membuka kunci ponsel dengan tidak benar. Pengguna ini akan dihapus, sehingga menghapus semua data pengguna."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Sudah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali Anda berupaya membuka kunci tablet dengan tidak benar. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya yang tidak berhasil, profil kerja akan dihapus, sehingga semua data profil akan dihapus."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Sudah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali Anda berupaya membuka kunci ponsel dengan tidak benar. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya yang tidak berhasil, profil kerja akan dihapus, sehingga semua data profil akan dihapus."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Sudah <xliff:g id="NUMBER">%d</xliff:g> kali Anda berupaya membuka kunci tablet dengan tidak benar. Profil kerja akan dihapus, sehingga menghapus semua data profil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Sudah <xliff:g id="NUMBER">%d</xliff:g> kali Anda berupaya membuka kunci ponsel dengan tidak benar. Profil kerja akan dihapus, sehingga menghapus semua data profil."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Anda telah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci tablet menggunakan akun email.\n\nCoba lagi dalam <xliff:g id="NUMBER_2">%3$d</xliff:g> detik."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Anda telah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci ponsel menggunakan akun email.\n\nCoba lagi dalam <xliff:g id="NUMBER_2">%3$d</xliff:g> detik."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Kode PIN SIM salah. Hubungi operator untuk membuka kunci perangkat."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Kode PIN SIM salah, sisa <xliff:g id="NUMBER_1">%d</xliff:g> percobaan.</item>
-      <item quantity="one">Kode PIN SIM salah, sisa <xliff:g id="NUMBER_0">%d</xliff:g> percobaan sebelum Anda harus menghubungi operator untuk membuka kunci perangkat.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM tidak dapat digunakan. Hubungi operator Anda."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Kode PUK SIM salah, sisa <xliff:g id="NUMBER_1">%d</xliff:g> percobaan sebelum SIM tidak dapat digunakan selamanya.</item>
-      <item quantity="one">Kode PUK SIM salah, sisa <xliff:g id="NUMBER_0">%d</xliff:g> percobaan sebelum SIM tidak dapat digunakan selamanya.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Operasi PIN SIM gagal!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operasi PUK SIM gagal!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kode Diterima!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Tidak ada layanan."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Beralih metode masukan"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Mode pesawat"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Pola diperlukan setelah perangkat dimulai ulang"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN diperlukan setelah perangkat dimulai ulang"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Sandi diperlukan setelah perangkat dimulai ulang"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Pola diperlukan untuk keamanan tambahan"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN diperlukan untuk keamanan tambahan"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Sandi diperlukan untuk keamanan tambahan"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Pola diperlukan jika Anda beralih profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN diperlukan jika Anda beralih profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Sandi diperlukan jika Anda beralih profil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Perangkat dikunci oleh administrator"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Perangkat dikunci secara manual"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Perangkat belum dibuka kuncinya selama <xliff:g id="NUMBER_1">%d</xliff:g> jam. Konfirmasi pola.</item>
-      <item quantity="one">Perangkat belum dibuka kuncinya selama <xliff:g id="NUMBER_0">%d</xliff:g> jam. Konfirmasi pola.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Perangkat belum dibuka kuncinya selama <xliff:g id="NUMBER_1">%d</xliff:g> jam. Konfirmasi PIN.</item>
-      <item quantity="one">Perangkat belum dibuka kuncinya selama <xliff:g id="NUMBER_0">%d</xliff:g> jam. Konfirmasi PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Perangkat belum dibuka kuncinya selama <xliff:g id="NUMBER_1">%d</xliff:g> jam. Konfirmasi sandi.</item>
-      <item quantity="one">Perangkat belum dibuka kuncinya selama <xliff:g id="NUMBER_0">%d</xliff:g> jam. Konfirmasi sandi.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Tidak dikenali"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-is/strings.xml b/packages/Keyguard/res/values-is/strings.xml
deleted file mode 100644
index 278e031..0000000
--- a/packages/Keyguard/res/values-is/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Takkavörn"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Sláðu inn PIN-númer"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Sláðu inn PUK-númer SIM-korts og nýtt PIN-númer"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-númer SIM-korts"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nýtt PIN-númer SIM-korts"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Snertu og sláðu inn aðgangsorð"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Sláðu inn aðgangsorðið til að opna"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Sláðu inn PIN-númer til að opna"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Rangt PIN-númer."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Fullhlaðið"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Í hleðslu"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Hröð hleðsla"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Hæg hleðsla"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Tengdu hleðslutækið."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Ýttu á valmyndarhnappinn til að taka úr lás."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Símkerfi læst"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Ekkert SIM-kort"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Ekkert SIM-kort í spjaldtölvunni."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Ekkert SIM-kort í símanum."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Settu SIM-kort í."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-kort vantar eða það er ekki læsilegt. Settu SIM-kort í."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Ónothæft SIM-kort."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortið er læst."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortið er PUK-læst."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Tekur SIM-kort úr lás…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-svæði"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-svæði SIM-korts"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-svæði SIM-korts"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Næsti vekjari stilltur á <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eyða"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Man ekki mynstrið"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Rangt mynstur"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Rangt aðgangsorð"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Rangt PIN-númer"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Reyndu aftur eftir <xliff:g id="NUMBER">%d</xliff:g> sekúndur."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Teiknaðu mynstrið þitt"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Sláðu inn PIN-númer SIM-kortsins"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Sláðu inn PIN-númer SIM-korts fyrir „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Sláðu inn PIN-númer"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Sláðu inn aðgangsorð"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-kortið hefur verið gert óvirkt. Sláðu inn PUK-númerið til að halda áfram. Hafðu samband við símafyrirtækið til að fá frekari upplýsingar."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-kortið „<xliff:g id="CARRIER">%1$s</xliff:g>“ hefur verið gert óvirkt. Sláðu inn PUK-númerið til að halda áfram. Hafðu samband við símafyrirtækið til að fá frekari upplýsingar."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Sláðu inn nýtt PIN-númer"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Staðfestu nýja PIN-númerið"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Opnar SIM-kort…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Sláðu in PIN-númer sem er 4 til 8 tölustafir."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-númerið verður að vera 8 tölustafir eða lengra."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Prófaðu aftur að setja inn rétt PUK-númer. Endurteknar tilraunir gera SIM-kortið varanlega óvirkt."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-númerin stemma ekki"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Of margar tilraunir til að teikna mynstur"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Þú hefur slegið inn rangt PIN-númer <xliff:g id="NUMBER_0">%1$d</xliff:g> sinnum. \n\nReyndu aftur eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> sekúndur."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Þú hefur slegið inn rangt aðgangsorð <xliff:g id="NUMBER_0">%1$d</xliff:g> sinnum. \n\nReyndu aftur eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> sekúndur."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Þú hefur teiknað rangt opnunarmynstur <xliff:g id="NUMBER_0">%1$d</xliff:g> sinnum. \n\nReyndu aftur eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> sekúndur."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Þú hefur gert <xliff:g id="NUMBER_0">%1$d</xliff:g> árangurslausar tilraunir til að opna spjaldtölvuna. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður spjaldtölvan endurstillt, með þeim afleiðingum að öllum gögnum hennar verður eytt."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Þú hefur gert <xliff:g id="NUMBER_0">%1$d</xliff:g> árangurslausar tilraunir til að opna símann. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður síminn endurstilltur, með þeim afleiðingum að öllum gögnum hans verður eytt."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Þú hefur gert <xliff:g id="NUMBER">%d</xliff:g> árangurslausar tilraunir til að opna spjaldtölvuna. Spjaldtölvan verður endurstillt, með þeim afleiðingum að öllum gögnum hennar verður eytt."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Þú hefur gert <xliff:g id="NUMBER">%d</xliff:g> árangurslausar tilraunir til að opna símann. Síminn verður endurstilltur, með þeim afleiðingum að öllum gögnum hans verður eytt."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Þú hefur gert <xliff:g id="NUMBER_0">%1$d</xliff:g> árangurslausar tilraunir til að opna spjaldtölvuna. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður notandinn fjarlægður með þeim afleiðingum að öllum notandagögnum verður eytt."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Þú hefur gert <xliff:g id="NUMBER_0">%1$d</xliff:g> árangurslausar tilraunir til að opna símann. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður notandinn fjarlægður með þeim afleiðingum að öllum notandagögnum verður eytt."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Þú hefur gert <xliff:g id="NUMBER">%d</xliff:g> árangurslausar tilraunir til að opna spjaldtölvuna. Notandinn verður fjarlægður, með þeim afleiðingum að öllum notandagögnum verður eytt."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Þú hefur gert <xliff:g id="NUMBER">%d</xliff:g> árangurslausar tilraunir til að opna símann. Notandinn verður fjarlægður, með þeim afleiðingum að öllum notandagögnum verður eytt."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Þú hefur gert <xliff:g id="NUMBER_0">%1$d</xliff:g> árangurslausar tilraunir til að opna spjaldtölvuna. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður vinnusniðið fjarlægt með þeim afleiðingum að öllum gögnum þess verður eytt."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Þú hefur gert <xliff:g id="NUMBER_0">%1$d</xliff:g> árangurslausar tilraunir til að opna símann. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður vinnusniðið fjarlægt með þeim afleiðingum að öllum gögnum þess verður eytt."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Þú hefur gert <xliff:g id="NUMBER">%d</xliff:g> árangurslausar tilraunir til að opna spjaldtölvuna. Vinnusniðið verður fjarlægt, með þeim afleiðingum að öllum gögnum þess verður eytt."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Þú hefur gert <xliff:g id="NUMBER">%d</xliff:g> árangurslausar tilraunir til að opna símann. Vinnusniðið verður fjarlægt, með þeim afleiðingum að öllum gögnum þess verður eytt."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Þú hefur teiknað rangt opnunarmynstur <xliff:g id="NUMBER_0">%1$d</xliff:g> sinnum. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður þú beðin(n) um að opna spjaldtölvuna með tölvupóstreikningi.\n\n Reyndu aftur eftir <xliff:g id="NUMBER_2">%3$d</xliff:g> sekúndur."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Þú hefur teiknað rangt opnunarmynstur <xliff:g id="NUMBER_0">%1$d</xliff:g> sinnum. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður þú beðin(n) um að opna símann með tölvupóstreikningi.\n\n Reyndu aftur eftir <xliff:g id="NUMBER_2">%3$d</xliff:g> sekúndur."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Rangt PIN-númer SIM-korts. Þú þarft núna að hafa samband við símafyrirtækið þitt til að taka tækið úr lás."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Rangt PIN-númer SIM-korts. Þú átt <xliff:g id="NUMBER_1">%d</xliff:g> tilraun eftir.</item>
-      <item quantity="other">Rangt PIN-númer SIM-korts. Þú átt <xliff:g id="NUMBER_1">%d</xliff:g> tilraunir eftir.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-kortið er ónothæft. Hafðu samband við símafyrirtækið þitt."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Rangt PUK-númer SIM-korts. Þú átt <xliff:g id="NUMBER_1">%d</xliff:g> tilraun eftir áður en SIM-kortið verður ónothæft til frambúðar.</item>
-      <item quantity="other">Rangt PUK-númer SIM-korts. Þú átt <xliff:g id="NUMBER_1">%d</xliff:g> tilraunir eftir áður en SIM-kortið verður ónothæft til frambúðar.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"PIN-aðgerð SIM-korts mistókst!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"PUK-aðgerð SIM-korts mistókst!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Númer samþykkt!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ekkert símasamband."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Skipta um innsláttaraðferð"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Flugstilling"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Mynsturs er krafist þegar tækið er endurræst"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN-númers er krafist þegar tækið er endurræst"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Aðgangsorðs er krafist þegar tækið er endurræst"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Mynsturs er krafist af öryggisástæðum"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN-númers er krafist af öryggisástæðum"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Aðgangsorðs er krafist af öryggisástæðum"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Mynsturs er krafist þegar þú skiptir um snið"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN-númers er krafist þegar þú skiptir um snið"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Aðgangsorðs er krafist þegar þú skiptir um snið"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Stjórnandi hefur læst tækinu"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Tækinu var læst handvirkt"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Tækið hefur ekki verið tekið úr lás í <xliff:g id="NUMBER_1">%d</xliff:g> klukkustund. Staðfestu mynstrið.</item>
-      <item quantity="other">Tækið hefur ekki verið tekið úr lás í <xliff:g id="NUMBER_1">%d</xliff:g> klukkustundir. Staðfestu mynstrið.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Tækið hefur ekki verið tekið úr lás í <xliff:g id="NUMBER_1">%d</xliff:g> klukkustund. Staðfestu PIN-númerið</item>
-      <item quantity="other">Tækið hefur ekki verið tekið úr lás í <xliff:g id="NUMBER_1">%d</xliff:g> klukkustundir. Staðfestu PIN-númerið</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Tækið hefur ekki verið tekið úr lás í <xliff:g id="NUMBER_1">%d</xliff:g> klukkustund. Staðfestu aðgangsorðið.</item>
-      <item quantity="other">Tækið hefur ekki verið tekið úr lás í <xliff:g id="NUMBER_1">%d</xliff:g> klukkustundir. Staðfestu aðgangsorðið.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Þekktist ekki"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-it/strings.xml b/packages/Keyguard/res/values-it/strings.xml
deleted file mode 100644
index 98bcae4..0000000
--- a/packages/Keyguard/res/values-it/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Inserisci il codice PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Digita il PUK della SIM e il nuovo codice PIN"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Codice PUK della SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nuovo PIN della SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Tocca per inserire la password"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Inserisci password per sbloccare"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Inserisci PIN per sbloccare"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Codice PIN errato."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Carico"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"In carica"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Ricarica veloce"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Ricarica lenta"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Collega il caricabatterie."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Premi Menu per sbloccare."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Rete bloccata"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nessuna scheda SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Nessuna scheda SIM presente nel tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Nessuna scheda SIM presente nel telefono."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Inserisci una scheda SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Scheda SIM mancante o non leggibile. Inserisci una scheda SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Scheda SIM inutilizzabile."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"La scheda SIM è stata disattivata definitivamente.\n Contatta il fornitore del tuo servizio wireless per ricevere un\'altra scheda SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La SIM è bloccata."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La SIM è bloccata tramite PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Sblocco scheda SIM..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Area PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Area PIN SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Area PUK SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Prossima sveglia impostata a: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Canc"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Invio"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Sequenza dimenticata"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequenza sbagliata"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Password sbagliata"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN errato"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Riprova fra <xliff:g id="NUMBER">%d</xliff:g> secondi."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Inserisci la sequenza"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Inserisci il PIN della SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Inserisci il PIN della scheda SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Inserisci PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Inserisci la password"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"La scheda SIM è disattivata. Inserisci il codice PUK per continuare. Contatta l\'operatore per avere informazioni dettagliate."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"La SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" non è attiva al momento. Inserisci il codice PUK per continuare. Contatta l\'operatore per avere informazioni dettagliate."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Inserisci il codice PIN desiderato"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Conferma il codice PIN desiderato"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Sblocco scheda SIM..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Il PIN deve essere di 4-8 numeri."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Il codice PUK dovrebbe avere almeno otto numeri."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Inserisci di nuovo il codice PUK corretto. Ripetuti tentativi comportano la disattivazione definitiva della scheda SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"I codici PIN non corrispondono"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Troppi tentativi di inserimento della sequenza"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Hai digitato il tuo PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> volte in modo errato. \n\nRiprova tra <xliff:g id="NUMBER_1">%2$d</xliff:g> secondi."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Hai digitato la tua password <xliff:g id="NUMBER_0">%1$d</xliff:g> volte in modo errato. \n\nRiprova tra <xliff:g id="NUMBER_1">%2$d</xliff:g> secondi."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"<xliff:g id="NUMBER_0">%1$d</xliff:g> tentativi errati di inserimento della sequenza di sblocco. \n\nRiprova tra <xliff:g id="NUMBER_1">%2$d</xliff:g> secondi."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Hai tentato di sbloccare il tablet senza riuscirci per <xliff:g id="NUMBER_0">%1$d</xliff:g> volte. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, il tablet verrà ripristinato e verranno quindi eliminati tutti i relativi dati."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Hai tentato di sbloccare il telefono senza riuscirci per <xliff:g id="NUMBER_0">%1$d</xliff:g> volte. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, il telefono verrà ripristinato e verranno quindi eliminati tutti i relativi dati."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Hai tentato di sbloccare il tablet senza riuscirci per <xliff:g id="NUMBER">%d</xliff:g> volte. Il tablet verrà ripristinato e verranno quindi eliminati tutti i relativi dati."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Hai tentato di sbloccare il telefono senza riuscirci per <xliff:g id="NUMBER">%d</xliff:g> volte. Il telefono verrà ripristinato e verranno quindi eliminati tutti i relativi dati."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Hai tentato di sbloccare il tablet senza riuscirci per <xliff:g id="NUMBER_0">%1$d</xliff:g> volte. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, questo utente verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Hai tentato di sbloccare il telefono senza riuscirci per <xliff:g id="NUMBER_0">%1$d</xliff:g> volte. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, questo utente verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Hai tentato di sbloccare il tablet senza riuscirci per <xliff:g id="NUMBER">%d</xliff:g> volte. Questo utente verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Hai tentato di sbloccare il telefono senza riuscirci per <xliff:g id="NUMBER">%d</xliff:g> volte. Questo utente verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Hai tentato di sbloccare il tablet senza riuscirci per <xliff:g id="NUMBER_0">%1$d</xliff:g> volte. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, il profilo di lavoro verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Hai tentato di sbloccare il telefono senza riuscirci per <xliff:g id="NUMBER_0">%1$d</xliff:g> volte. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, il profilo di lavoro verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Hai tentato di sbloccare il tablet senza riuscirci per <xliff:g id="NUMBER">%d</xliff:g> volte. Il profilo di lavoro verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Hai tentato di sbloccare il telefono senza riuscirci per <xliff:g id="NUMBER">%d</xliff:g> volte. Il profilo di lavoro verrà rimosso e verranno quindi eliminati tutti i dati associati."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"<xliff:g id="NUMBER_0">%1$d</xliff:g> tentativi errati di inserimento della sequenza di sblocco. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, ti verrà chiesto di sbloccare il tablet con un account email.\n\n Riprova tra <xliff:g id="NUMBER_2">%3$d</xliff:g> secondi."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"<xliff:g id="NUMBER_0">%1$d</xliff:g> tentativi errati di inserimento della sequenza di sblocco. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, ti verrà chiesto di sbloccare il telefono con un account email.\n\n Riprova tra <xliff:g id="NUMBER_2">%3$d</xliff:g> secondi."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Codice PIN della SIM errato. Devi contattare l\'operatore per sbloccare il dispositivo."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Codice PIN della SIM errato. Hai ancora <xliff:g id="NUMBER_1">%d</xliff:g> tentativi a disposizione.</item>
-      <item quantity="one">Codice PIN della SIM errato. Hai ancora <xliff:g id="NUMBER_0">%d</xliff:g> tentativo a disposizione, dopodiché dovrai contattare l\'operatore per sbloccare il dispositivo.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM inutilizzabile. Contatta il tuo operatore."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Codice PUK della SIM errato. Hai ancora <xliff:g id="NUMBER_1">%d</xliff:g> tentativi a disposizione prima che la SIM diventi definitivamente inutilizzabile.</item>
-      <item quantity="one">Codice PUK della SIM errato. Hai ancora <xliff:g id="NUMBER_0">%d</xliff:g> tentativo a disposizione prima che la SIM diventi definitivamente inutilizzabile.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Operazione con PIN della SIM non riuscita."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operazione con PUK della SIM non riuscita."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Codice accettato."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Nessun servizio."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Cambia metodo di immissione"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modalità aereo"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Sequenza obbligatoria dopo il riavvio del dispositivo"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN obbligatorio dopo il riavvio del dispositivo"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Password obbligatoria dopo il riavvio del dispositivo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Sequenza obbligatoria per maggiore sicurezza"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN obbligatorio per maggiore sicurezza"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Password obbligatoria per maggiore sicurezza"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Sequenza obbligatoria dopo aver cambiato profilo"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN obbligatorio dopo aver cambiato profilo"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Password obbligatoria dopo aver cambiato profilo"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"L\'amministratore del dispositivo lo ha bloccato"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Il dispositivo è stato bloccato manualmente"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Il dispositivo non viene sbloccato da <xliff:g id="NUMBER_1">%d</xliff:g> ore. Conferma la sequenza.</item>
-      <item quantity="one">Il dispositivo non viene sbloccato da <xliff:g id="NUMBER_0">%d</xliff:g> ora. Conferma la sequenza.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Il dispositivo non viene sbloccato da <xliff:g id="NUMBER_1">%d</xliff:g> ore. Conferma il PIN.</item>
-      <item quantity="one">Il dispositivo non viene sbloccato da <xliff:g id="NUMBER_0">%d</xliff:g> ora. Conferma il PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Il dispositivo non viene sbloccato da <xliff:g id="NUMBER_1">%d</xliff:g> ore. Conferma la password.</item>
-      <item quantity="one">Il dispositivo non viene sbloccato da <xliff:g id="NUMBER_0">%d</xliff:g> ora. Conferma la password.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Non riconosciuto"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-iw/strings.xml b/packages/Keyguard/res/values-iw/strings.xml
deleted file mode 100644
index 8d1ada3..0000000
--- a/packages/Keyguard/res/values-iw/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"‏הקלד קוד PUK של כרטיס SIM וקוד PIN חדש"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"‏קוד PUK של כרטיס SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"‏מספר PIN חדש של כרטיס SIM"</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_wrong_pin_code" msgid="2422225591006134936">"‏קוד PIN שגוי"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"טעון"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"טוען"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"טעינה מהירה"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"טעינה איטית"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"חבר את המטען."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"לחץ על \'תפריט\' כדי לבטל את הנעילה."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"רשת נעולה"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"‏אין כרטיס SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"‏אין כרטיס SIM בטאבלט."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"‏אין כרטיס SIM בטלפון."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"‏הכנס כרטיס SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"‏כרטיס ה-SIM חסר או שלא ניתן לקרוא אותו. הכנס כרטיס SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"‏לא ניתן להשתמש בכרטיס SIM זה."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"‏כרטיס ה-SIM שלך הושבת לצמיתות.\nפנה לספק השירות האלחוטי שלך לקבלת כרטיס SIM אחר."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"‏כרטיס ה-SIM נעול."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏כרטיס SIM נעול באמצעות PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"‏מבטל נעילה של כרטיס SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"‏אזור עבור קוד PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"‏אזור עבור קוד PIN של SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏אזור עבור קוד PUK של SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ההתראה הבאה נקבעה לשעה <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"מחק"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"שכחת את הקו"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"קו ביטול נעילה שגוי"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"סיסמה שגויה"</string>
-    <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">"‏הזן מספר PIN ל-SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"‏הזן קוד אימות של SIM עבור \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"‏ה-SIM של \"<xliff:g id="CARRIER">%1$s</xliff:g>\" מושבת כעת. הזן קוד PUK כדי להמשיך. לפרטים, פנה לספק."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"‏הזן את קוד ה-PIN הרצוי"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"‏אשר את קוד ה-PIN הרצוי"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"‏מבטל נעילה של כרטיס SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"‏הקלד מספר PIN שאורכו 4 עד 8 ספרות."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"‏קוד PUK צריך להיות בן 8 ספרות או יותר."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"‏הקלדת מספר PIN שגוי <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים. \n\nנסה שוב בעוד <xliff:g id="NUMBER_1">%2$d</xliff:g> שניות."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"הקלדת סיסמה שגויה <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים.\n\nנסה שוב בעוד <xliff:g id="NUMBER_1">%2$d</xliff:g> שניות."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים. \n\nנסה שוב בעוד <xliff:g id="NUMBER_1">%2$d</xliff:g> שניות."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"ניסית לבטל את נעילת הטאבלט <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים באופן שגוי. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, טאבלט זה יאופס וכתוצאה מכך כל הנתונים שלו יימחקו."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"ניסית לבטל את נעילת הטלפון <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים באופן שגוי. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, טלפון זה יאופס וכתוצאה מכך כל הנתונים שלו יימחקו."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"ניסית לבטל את נעילת הטאבלט <xliff:g id="NUMBER">%d</xliff:g> פעמים באופן שגוי. הטאבלט יאופס וכתוצאה מכך כל הנתונים שלו יימחקו."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"ניסית לבטל את נעילת הטלפון <xliff:g id="NUMBER">%d</xliff:g> פעמים באופן שגוי. הטלפון יאופס וכתוצאה מכך כל הנתונים שלו יימחקו."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"ניסית לבטל את נעילת הטאבלט <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים באופן שגוי. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, משתמש זה יוסר וכתוצאה מכך כל נתוני המשתמש יימחקו."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"ניסית לבטל את נעילת הטלפון <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים באופן שגוי. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, משתמש זה יוסר וכתוצאה מכך כל נתוני המשתמש יימחקו."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"ניסית לבטל את נעילת הטאבלט <xliff:g id="NUMBER">%d</xliff:g> פעמים באופן שגוי. משתמש זה יוסר וכתוצאה מכך כל נתוני המשתמש יימחקו."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"ניסית לבטל את נעילת הטלפון <xliff:g id="NUMBER">%d</xliff:g> פעמים באופן שגוי. משתמש זה יוסר וכתוצאה מכך כל נתוני המשתמש יימחקו."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"ניסית לבטל את נעילת הטאבלט <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים באופן שגוי. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, פרופיל העבודה יוסר וכתוצאה מכך כל נתוני הפרופיל יימחקו."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"ניסית לבטל את נעילת הטלפון <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים באופן שגוי. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, פרופיל העבודה יוסר וכתוצאה מכך כל נתוני הפרופיל יימחקו."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"ניסית לבטל את נעילת הטאבלט <xliff:g id="NUMBER">%d</xliff:g> פעמים באופן שגוי. פרופיל העבודה יוסר וכתוצאה מכך כל נתוני הפרופיל יימחקו."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"ניסית לבטל את נעילת הטלפון <xliff:g id="NUMBER">%d</xliff:g> פעמים באופן שגוי. פרופיל העבודה יוסר וכתוצאה מכך כל נתוני הפרופיל יימחקו."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, תתבקש לבטל את נעילת הטאבלט באמצעות חשבון אימייל‏.\n\nנסה שוב בעוד <xliff:g id="NUMBER_2">%3$d</xliff:g> שניות."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, תתבקש לבטל את נעילת הטלפון באמצעות חשבון אימייל‏.\n\nנסה שוב בעוד <xliff:g id="NUMBER_2">%3$d</xliff:g> שניות."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"‏מספר PIN שגוי של כרטיס ה-SIM. עליך ליצור כעת קשר עם הספק על מנת לבטל את נעילת המכשיר."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="two">‏קוד PIN שגוי של כרטיס SIM. נותרו לך <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות.</item>
-      <item quantity="many">‏קוד PIN שגוי של כרטיס SIM. נותרו לך <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות.</item>
-      <item quantity="other">‏קוד PIN שגוי של כרטיס SIM. נותרו לך <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות.</item>
-      <item quantity="one">‏קוד PIN שגוי של כרטיס SIM. נותר לך ניסיון <xliff:g id="NUMBER_0">%d</xliff:g> לפני שיהיה עליך ליצור קשר עם הספק כדי לבטל את נעילת המכשיר.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"‏לא ניתן להשתמש בכרטיס ה-SIM. צור קשר עם הספק."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="two">‏קוד PUK שגוי של כרטיס SIM. נותרו לך <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות לפני שכרטיס ה-SIM יינעל לצמיתות.</item>
-      <item quantity="many">‏קוד PUK שגוי של כרטיס SIM. נותרו לך <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות לפני שכרטיס ה-SIM יינעל לצמיתות.</item>
-      <item quantity="other">‏קוד PUK שגוי של כרטיס SIM. נותרו לך <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות לפני שכרטיס ה-SIM יינעל לצמיתות.</item>
-      <item quantity="one">‏קוד PUK שגוי של כרטיס SIM. נותר לך ניסיון <xliff:g id="NUMBER_0">%d</xliff:g> לפני שכרטיס ה-SIM יינעל לצמיתות.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"‏פעולת מספר ה-PIN של כרטיס ה-SIM נכשלה!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"‏פעולת קוד ה-PUK של כרטיס ה-SIM נכשלה!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"הקוד התקבל!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"אין קליטה."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"החלפת שיטת קלט"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"מצב טיסה"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"יש להזין את קו ביטול הנעילה לאחר הפעלה מחדש של המכשיר"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"‏יש להזין PIN לאחר הפעלה מחדש של המכשיר"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"יש להזין סיסמה לאחר הפעלה מחדש של המכשיר"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"יש להזין את קו ביטול הנעילה על מנת להגביר את רמת האבטחה"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"‏יש להזין PIN על מנת להגביר את רמת האבטחה"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"יש להזין סיסמה על מנת להגביר את רמת האבטחה"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"יש להזין את קו ביטול הנעילה בעת החלפת פרופילים"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"‏יש להזין את ה-PIN בעת החלפת פרופילים"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"יש להזין את הסיסמה בעת החלפת פרופילים"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"מנהל המכשיר נעל אותו"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"המכשיר ננעל באופן ידני"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="two">נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את קו ביטול הנעילה.</item>
-      <item quantity="many">נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את קו ביטול הנעילה.</item>
-      <item quantity="other">נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את קו ביטול הנעילה.</item>
-      <item quantity="one">נעילת המכשיר לא בוטלה במשך שעה <xliff:g id="NUMBER_0">%d</xliff:g>. אשר את קו ביטול הנעילה.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="two">‏נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את ה-PIN.</item>
-      <item quantity="many">‏נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את ה-PIN.</item>
-      <item quantity="other">‏נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את ה-PIN.</item>
-      <item quantity="one">‏נעילת המכשיר לא בוטלה במשך שעה <xliff:g id="NUMBER_0">%d</xliff:g>. אשר את ה-PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="two">נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את הסיסמה.</item>
-      <item quantity="many">נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את הסיסמה.</item>
-      <item quantity="other">נעילת המכשיר לא בוטלה במשך <xliff:g id="NUMBER_1">%d</xliff:g> שעות. אשר את הסיסמה.</item>
-      <item quantity="one">נעילת המכשיר לא בוטלה במשך שעה <xliff:g id="NUMBER_0">%d</xliff:g>. אשר את הסיסמה.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"לא זוהתה"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ja/strings.xml b/packages/Keyguard/res/values-ja/strings.xml
deleted file mode 100644
index c4b4c98..0000000
--- a/packages/Keyguard/res/values-ja/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"PUKと新しいPINコードを入力"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUKコード"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"新しいSIM PINコード"</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_wrong_pin_code" msgid="2422225591006134936">"PINコードが正しくありません。"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"充電完了"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"充電中"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"急速充電中"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"低速充電中"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"充電してください。"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"メニューからロックを解除できます。"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ネットワークがロックされました"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIMカードが挿入されていません"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"タブレット内にSIMカードがありません。"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"SIMカードが端末に挿入されていません。"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIMカードを挿入してください。"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIMカードが見つからないか読み取れません。SIMカードを挿入してください。"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIMカードは使用できません。"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"お使いのSIMカードは永久に無効となっています。\nワイヤレスサービスプロバイダに問い合わせて新しいSIMカードを入手してください。"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIMカードはロックされています。"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIMカードはPUKでロックされています。"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIMカードをロック解除しています…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PINエリア"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PINエリア"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUKエリア"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"次のアラームは<xliff:g id="ALARM">%1$s</xliff:g>に設定されました"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"削除"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"パターンを忘れた場合"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"パターンが正しくありません"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"パスワードが正しくありません"</string>
-    <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_multi" msgid="7818515973197201434">"「<xliff:g id="CARRIER">%1$s</xliff:g>」の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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM「<xliff:g id="CARRIER">%1$s</xliff:g>」は現在無効になっています。処理を続行するにはPUKコードを入力します。詳しくは携帯通信会社にお問い合わせください。"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"希望のPINコードを入力してください"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"希望のPINコードを確認してください"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIMカードのロック解除中…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"PINは4~8桁の数字で入力してください。"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUKコードは8桁以上の番号です。"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PINの入力を<xliff:g id="NUMBER_0">%1$d</xliff:g>回間違えました。\n\n<xliff:g id="NUMBER_1">%2$d</xliff:g>秒後にもう一度お試しください。"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"パスワードの入力を<xliff:g id="NUMBER_0">%1$d</xliff:g>回間違えました。\n\n<xliff:g id="NUMBER_1">%2$d</xliff:g>秒後にもう一度お試しください。"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ロック解除パターンの入力を<xliff:g id="NUMBER_0">%1$d</xliff:g>回間違えました。\n\n<xliff:g id="NUMBER_1">%2$d</xliff:g>秒後にもう一度お試しください。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"タブレットのロック解除に<xliff:g id="NUMBER_0">%1$d</xliff:g>回失敗しました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回失敗すると、このタブレットはリセットされ、データがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"携帯電話のロック解除に<xliff:g id="NUMBER_0">%1$d</xliff:g>回失敗しました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回失敗すると、この携帯電話はリセットされ、データがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"タブレットのロック解除に<xliff:g id="NUMBER">%d</xliff:g>回失敗しました。このタブレットはリセットされ、データがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"携帯電話のロック解除に<xliff:g id="NUMBER">%d</xliff:g>回失敗しました。この携帯電話はリセットされ、データがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"タブレットのロック解除に<xliff:g id="NUMBER_0">%1$d</xliff:g>回失敗しました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回失敗すると、このユーザーは削除され、ユーザーのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"携帯電話のロック解除に<xliff:g id="NUMBER_0">%1$d</xliff:g>回失敗しました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回失敗すると、このユーザーは削除され、ユーザーのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"タブレットのロック解除に<xliff:g id="NUMBER">%d</xliff:g>回失敗しました。このユーザーは削除され、ユーザーのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"携帯電話のロック解除に<xliff:g id="NUMBER">%d</xliff:g>回失敗しました。このユーザーは削除され、ユーザーのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"タブレットのロック解除に<xliff:g id="NUMBER_0">%1$d</xliff:g>回失敗しました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回失敗すると、仕事用プロファイルが削除され、プロファイルのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"スマートフォンのロック解除に<xliff:g id="NUMBER_0">%1$d</xliff:g>回失敗しました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回失敗すると、仕事用プロファイルが削除され、プロファイルのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"タブレットのロック解除に<xliff:g id="NUMBER">%d</xliff:g>回失敗しました。仕事用プロファイルが削除され、プロファイルのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"スマートフォンのロック解除に<xliff:g id="NUMBER">%d</xliff:g>回失敗しました。仕事用プロファイルが削除され、プロファイルのデータがすべて削除されます。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ロック解除パターンの入力を<xliff:g id="NUMBER_0">%1$d</xliff:g>回間違えました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回間違えると、タブレットのロック解除にメールアカウントが必要になります。\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g>秒後にもう一度お試しください。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ロック解除パターンの入力を<xliff:g id="NUMBER_0">%1$d</xliff:g>回間違えました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回間違えると、モバイル端末のロック解除にメールアカウントが必要になります。\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g>秒後にもう一度お試しください。"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM PINコードが無効です。お使いの端末をロック解除するには携帯通信会社にお問い合わせいただく必要があります。"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM PINコードが無効です。入力できるのはあと<xliff:g id="NUMBER_1">%d</xliff:g>回です。</item>
-      <item quantity="one">SIM PINコードが無効です。入力できるのはあと<xliff:g id="NUMBER_0">%d</xliff:g>回です。この回数を超えた場合は、携帯通信会社にお問い合わせください。</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIMは使用できません。携帯通信会社にお問い合わせください。"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUKコードが無効です。入力できるのはあと<xliff:g id="NUMBER_1">%d</xliff:g>回です。この回数を超えるとSIMは完全に使用できなくなります。</item>
-      <item quantity="one">SIM PUKコードが無効です。入力できるのはあと<xliff:g id="NUMBER_0">%d</xliff:g>回です。この回数を超えるとSIMは完全に使用できなくなります。</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN操作に失敗しました。"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK操作に失敗しました。"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"コードが承認されました。"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"通信サービスはありません。"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"入力方法の切り替え"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"機内モード"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"端末の再起動後はパターンの入力が必要となります"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"端末の再起動後は PIN の入力が必要となります"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"端末の再起動後はパスワードの入力が必要となります"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"セキュリティを強化するにはパターンが必要です"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"セキュリティを強化するには PIN が必要です"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"セキュリティを強化するにはパスワードが必要です"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"プロファイルを切り替えるにはパターンが必要です"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"プロファイルを切り替えるには PIN が必要です"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"プロファイルを切り替えるにはパスワードが必要です"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"端末管理アプリが端末をロックしました"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"端末は手動でロックされました"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">端末のロックが<xliff:g id="NUMBER_1">%d</xliff:g>時間、解除されていません。パターンを確認してください。</item>
-      <item quantity="one">端末のロックが<xliff:g id="NUMBER_0">%d</xliff:g>時間、解除されていません。パターンを確認してください。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">端末のロックが<xliff:g id="NUMBER_1">%d</xliff:g>時間、解除されていません。PINを確認してください。</item>
-      <item quantity="one">端末のロックが<xliff:g id="NUMBER_0">%d</xliff:g>時間、解除されていません。PINを確認してください。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">端末のロックが<xliff:g id="NUMBER_1">%d</xliff:g>時間、解除されていません。パスワードを確認してください。</item>
-      <item quantity="one">端末のロックが<xliff:g id="NUMBER_0">%d</xliff:g>時間、解除されていません。パスワードを確認してください。</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"認識されませんでした"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ka/strings.xml b/packages/Keyguard/res/values-ka/strings.xml
deleted file mode 100644
index 658194ff..0000000
--- a/packages/Keyguard/res/values-ka/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"აკრიფეთ PIN კოდი"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"დაბეჭდეთ SIM-ის PUK კოდი და ახალი PIN კოდი"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK კოდი"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"SIM-ის ახალი PIN-ის კოდი"</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_wrong_pin_code" msgid="2422225591006134936">"არასწორი PIN კოდი."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"დამუხტულია"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"მიმდინარეობს დატენვა"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"იმუხტება სწრაფად"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"იმუხტება ნელა"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"შეაერთეთ დამტენი."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"განბლოკვისთვის დააჭირეთ მენიუს."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ქსელი ჩაკეტილია"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM ბარათი არ არის"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ტაბლეტში არ დევს SIM ბარათი."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"არ არის SIM ბარათი ტელეფონში."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ჩადეთ SIM ბარათი."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM ბარათი არ არის ან არ იკითხება. ჩადეთ SIM ბარათი."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"არამოხმარებადი SIM ბარათი."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"თქვენი SIM ბარათი გამუდმებით გამორთული იყო.\n დაუკავშირდით თქვენი უკაბელო სერვისის პროვაიდერს სხვა SIM ბარათისთვის."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM ბარათი დაბლოკილია."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM ბარათი დაბლოკილია PUK კოდით."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"მიმდინარეობს SIM ბარათის განბლოკვა…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-ის არე"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-ის PIN-ის არე"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-ის PUK-ის არე"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"შემდეგი მაღვიძარა დაყენებულია <xliff:g id="ALARM">%1$s</xliff:g>-ზე"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"წაშლა"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"შეყვანა"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"დაგავიწყდათ ნიმუში"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"არასწორი ნიმუში"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"არასწორი პაროლი"</string>
-    <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_multi" msgid="7818515973197201434">"შეიყვანეთ \"<xliff:g id="CARRIER">%1$s</xliff:g>\" -სათვის 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" -ის SIM ახლა გამორთულია. გაგრძელებისათვის, შეიყვანეთ PUK კოდი. დეტალებისათვის მიმართეთ თქვენს პროვაიდერს."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"სასურველი PIN კოდის შეყვანა"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"სასურველი PIN კოდის დადასტურება"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM ბარათის განბლოკვა…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"აკრიფეთ PIN, რომელიც შედგება 4-დან 8 ციფრამდე."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK კოდი უნდა იყოს რვა ან მეტი ციფრისგან შემდგარი."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"თქვენ <xliff:g id="NUMBER_0">%1$d</xliff:g>-ჯერ არასწორად შეიყვანეთ PIN კოდი. \n\nსცადეთ ხელახლა <xliff:g id="NUMBER_1">%2$d</xliff:g> წამში."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"თქვენ <xliff:g id="NUMBER_0">%1$d</xliff:g>-ჯერ არასწორად დაბეჭდეთ თქვენი პაროლი. \n\nხელახლა სცადეთ <xliff:g id="NUMBER_1">%2$d</xliff:g> წამში."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"თქვენ <xliff:g id="NUMBER_0">%1$d</xliff:g>-ჯერ დახატეთ განბლოკვის ნიმუში. \n\nსცადეთ ხელახლა <xliff:g id="NUMBER_1">%2$d</xliff:g> წამში."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"თქვენ არასწორად სცადეთ ტაბლეტის განბლოკვა <xliff:g id="NUMBER_0">%1$d</xliff:g> ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი ცდის შემდეგ, ეს ტაბლეტი გადაიტვირთება, რაც წაშლის მის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"თქვენ არასწორად სცადეთ ტელეფონის განბლოკვა <xliff:g id="NUMBER_0">%1$d</xliff:g> ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი მცდელობის შემდეგ, ეს ტელეფონი გადაიტვირთება, რაც წაშლის მის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"თქვენ არასწორად სცადეთ ტაბლეტის განბლოკვა <xliff:g id="NUMBER">%d</xliff:g> ჯერ. ეს ტაბლეტი გადაიტვირთება, რაც წაშლის მის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"თქვენ არასწორად სცადეთ ტელეფონის განბლოკვა <xliff:g id="NUMBER">%d</xliff:g> ჯერ. ეს ტელეფონი გადაიტვირთება, რაც წაშლის მის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"თქვენ არასწორად სცადეთ ტაბლეტის განბლოკვა <xliff:g id="NUMBER_0">%1$d</xliff:g> ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი მცდელობის შემდეგ, ამოიშლება ეს მომხმარებელი და წაიშლება მომხმარებლის მთლიანი მონაცემი."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"თქვენ არასწორად სცადეთ ტელეფონის განბლოკვა <xliff:g id="NUMBER_0">%1$d</xliff:g> ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი მცდელობის შემდეგ, ამოიშლება ეს მომხმარებელი და წაიშლება მომხმარებლის მთლიანი მონაცემი."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"თქვენ არასწორად სცადეთ ტაბლეტის განბლოკვა <xliff:g id="NUMBER">%d</xliff:g> ჯერ. ეს მომხმარებელი ამოიშლება, რაც წაშლის მომხმარებლის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"თქვენ არასწორად სცადეთ ტელეფონის განბლოკვა <xliff:g id="NUMBER">%d</xliff:g> ჯერ. ეს მომხმარებელი ამოიშლება, რაც წაშლის მომხმარებლის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"თქვენ არასწორად სცადეთ ტაბლეტის განბლოკვა <xliff:g id="NUMBER_0">%1$d</xliff:g> ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი მცდელობის შემდეგ, ამოიშლება სამუშაო პროფილი და წაიშლება პროფილის მთლიანი მონაცემი."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"თქვენ არასწორად სცადეთ ტელეფონის განბლოკვა <xliff:g id="NUMBER_0">%1$d</xliff:g> ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი მცდელობის შემდეგ, ამოიშლება სამუშაო პროფილი და წაიშლება მთლიანი პროფილის მონაცემი."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"თქვენ არასწორად სცადეთ ტაბლეტის განბლოკვა <xliff:g id="NUMBER">%d</xliff:g> ჯერ. სამუშაო პროფილი ამოიშლება, რაც წაშლის პროფილის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"თქვენ არასწორად სცადეთ ტელეფონის განბლოკვა <xliff:g id="NUMBER">%d</xliff:g> ჯერ. სამუშაო პროფილი ამოიშლება, რაც წაშლის პროფილის მთლიან მონაცემს."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"თქვენ არასწორად დახატეთ თქვენი განბლოკვის ნიმუში <xliff:g id="NUMBER_0">%1$d</xliff:g> ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი ცდის შემდეგ მოგთხოვთ ტაბლეტის განბლოკვას ელფოსტის ანგარიშის გამოყენებით.\n\n ხელახლა სცადეთ <xliff:g id="NUMBER_2">%3$d</xliff:g> წამში."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"თქვენ არასწორად დახატეთ თქვენი განბლოკვის ნიმუში <xliff:g id="NUMBER_0">%1$d</xliff:g>-ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი ცდის შემდეგ, დაგჭირდებათ თქვენი ტელეფონის განბლოკვა ელფოსტის ანგარიშის გამოყენებით.\n\n ხელახლა სცადეთ <xliff:g id="NUMBER_2">%3$d</xliff:g> წამში."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM-ის არასწორი PIN კოდი. თქვენ ახლა მოგიწევთ მოწყობილობის განსაბლოკად მიმართოთ ოპერატორს."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM-ის PIN კოდი არასწორია. თქვენ დაგრჩათ <xliff:g id="NUMBER_1">%d</xliff:g> მცდელობა.</item>
-      <item quantity="one">SIM-ის PIN კოდი არასწორია. თქვენ დაგრჩათ <xliff:g id="NUMBER_0">%d</xliff:g> მცდელობა, სანამ მოგიწევთ თქვენი მოწყობილობის განსაბლოკად ოპერატორთან დაკავშირება.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM გამოუსადეგარია. დაუკავშირდით ოპერატორს."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM-ის PUK კოდი არასწორია. თქვენ დაგრჩათ <xliff:g id="NUMBER_1">%d</xliff:g> მცდელობა, სანამ SIM სამუდამოდ გამოუსადეგარი გახდება.</item>
-      <item quantity="one">SIM-ის PUK კოდი არასწორია. თქვენ დაგრჩათ <xliff:g id="NUMBER_0">%d</xliff:g> მცდელობა, სანამ SIM სამუდამოდ გამოუსადეგარი გახდება.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN ოპერაცია ჩაიშალა!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK ოპერაცია ჩაიშალა!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"კოდი მიღებულია!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"არ არის სერვისი."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"შეყვანის მეთოდის გადართვა"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"თვითმფრინავის რეჟიმი"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"მოწყობილობის გადატვირთვის შემდეგ საჭიროა ნიმუშის შეყვანა"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"მოწყობილობის გადატვირთვის შემდეგ საჭიროა PIN-კოდის შეყვანა"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"მოწყობილობის გადატვირთვის შემდეგ საჭიროა პაროლის შეყვანა"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"დამატებითი უსაფრთხოებისთვის, საჭიროა ნიმუშის შეყვანა"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"დამატებითი უსაფრთხოებისთვის, საჭიროა PIN-კოდის შეყვანა"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"დამატებითი უსაფრთხოებისთვის, საჭიროა პაროლის შეყვანა"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"პროფილების გადართვისას საჭიროა ნიმუშის შეყვანა"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"პროფილების გადართვისას საჭიროა PIN-კოდის შეყვანა"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"პროფილების გადართვისას საჭიროა პაროლის შეყვანა"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"მოწყობილობა ადმინისტრატორის მიერ ჩაიკეტა"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"მოწყობილობა ხელით ჩაიკეტა"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">მოწყობილობა არ განბლოკილა <xliff:g id="NUMBER_1">%d</xliff:g> საათის განმავლობაში. დაადასტურეთ ნიმუში.</item>
-      <item quantity="one">მოწყობილობა არ განბლოკილა <xliff:g id="NUMBER_0">%d</xliff:g> საათის განმავლობაში. დაადასტურეთ ნიმუში.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">მოწყობილობა არ განბლოკილა <xliff:g id="NUMBER_1">%d</xliff:g> საათის განმავლობაში. დაადასტურეთ PIN-კოდი.</item>
-      <item quantity="one">მოწყობილობა არ განბლოკილა <xliff:g id="NUMBER_0">%d</xliff:g> საათის განმავლობაში. დაადასტურეთ PIN-კოდი.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">მოწყობილობა არ განბლოკილა <xliff:g id="NUMBER_1">%d</xliff:g> საათის განმავლობაში. დაადასტურეთ პაროლი.</item>
-      <item quantity="one">მოწყობილობა არ განბლოკილა <xliff:g id="NUMBER_0">%d</xliff:g> საათის განმავლობაში. დაადასტურეთ პაროლი.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"არ არის ამოცნობილი"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-kk/strings.xml b/packages/Keyguard/res/values-kk/strings.xml
deleted file mode 100644
index 2eb3948..0000000
--- a/packages/Keyguard/res/values-kk/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK және жаңа PIN кодтарын теріңіз."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK коды"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Жаңа SIM PIN коды"</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_wrong_pin_code" msgid="2422225591006134936">"Қате PIN код"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Зарядталған"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Зарядтауда"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Тез зарядталуда"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Баяу зарядталуда"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Зарядтау құрылғысын жалғаңыз."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Ашу үшін мәзірді басыңыз."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Желі бекітулі."</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM картасы енгізілмеген."</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Планшетте SIM картасы жоқ."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Телефонда SIM картасы жоқ."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM картасын енгізіңіз."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM картасы енгізілмеген немесе ашылмайды. SIM картасына енгізіңіз."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Қолданыстан шыққан SIM картасы."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM картаңыз істен шықты. \n Сымсыз байланыс жабдықтау қызметіне хабарласып, басқа SIM картасын алыңыз."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM картасы бекітулі."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картасының PUK коды бекітілген."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM картасының бекітпесін ашуда…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN аумағы"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN аумағы"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK аумағы"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Келесі дабыл <xliff:g id="ALARM">%1$s</xliff:g> уақытына орнатылған"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Жою"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Енгізу"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Кескінді ұмытып қалу"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Қате өрнек"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Қате кілтсөз"</string>
-    <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_multi" msgid="7818515973197201434">"«<xliff:g id="CARRIER">%1$s</xliff:g>» үшін 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"«<xliff:g id="CARRIER">%1$s</xliff:g>» SIM картасы қазір өшірілген. Жалғастыру үшін PUK кодын енгізіңіз. Мәліметтер алу үшін операторға хабарласыңыз."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Қажетті PIN кодын енгізіңіз"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Қажетті PIN кодты растау"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM картаны ашу…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4-8 сандардан тұратын PIN кодты теріңіз."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK коды 8 немесе одан көп сандардан тұрады."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN кодты <xliff:g id="NUMBER_0">%1$d</xliff:g> рет қате тердіңіз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундтан кейін қайталаңыз."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Құпия сөзді <xliff:g id="NUMBER_0">%1$d</xliff:g> рет қате тердіңіз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундтан кейін қайталаңыз."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Құлыпты ашу өрнегін <xliff:g id="NUMBER_0">%1$d</xliff:g> рет қате салдыңыз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундтан кейін әрекетті қайталаңыз."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Планшет бекітпесін ашуға <xliff:g id="NUMBER_0">%1$d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Тағы <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін осы планшет қалпына келтіріліп, оның бүкіл деректері жойылады."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Телефон бекітпесін ашуға <xliff:g id="NUMBER_0">%1$d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Тағы <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін осы телефон қалпына келтіріліп, оның бүкіл деректері жойылады."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Планшет бекітпесін ашуға <xliff:g id="NUMBER">%d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Осы планшет қалпына келтіріліп, оның бүкіл деректері жойылады."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Телефон бекітпесін ашуға <xliff:g id="NUMBER">%d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Осы телефон қалпына келтіріліп, оның бүкіл деректері жойылады."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Планшет бекітпесін ашуға <xliff:g id="NUMBER_0">%1$d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Тағы <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін осы пайдаланушы жойылып, бүкіл пайдаланушы деректері жойылады."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Телефон бекітпесін ашуға <xliff:g id="NUMBER_0">%1$d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Тағы <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін осы пайдаланушы жойылып, бүкіл пайдаланушы деректері жойылады."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Планшет бекітпесін ашуға <xliff:g id="NUMBER">%d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Осы пайдаланушы жойылып, бүкіл пайдаланушы деректері жойылады."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Телефон бекітпесін ашуға <xliff:g id="NUMBER">%d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Осы пайдаланушы жойылып, бүкіл пайдаланушы деректері жойылады."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Планшет бекітпесін ашуға <xliff:g id="NUMBER_0">%1$d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Тағы <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін жұмыс профилі жойылып, бүкіл профиль деректері жойылады."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Телефон бекітпесін ашуға <xliff:g id="NUMBER_0">%1$d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Тағы <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін жұмыс профилі жойылып, бүкіл профиль деректері жойылады."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Планшет бекітпесін ашуға <xliff:g id="NUMBER">%d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Жұмыс профилі жойылып, бүкіл профиль деректері жойылады."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Телефон бекітпесін ашуға <xliff:g id="NUMBER">%d</xliff:g> рет дұрыс емес әрекет жасадыңыз. Жұмыс профилі жойылып, бүкіл профиль деректері жойылады."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Бекітпені ашу кескінін <xliff:g id="NUMBER_0">%1$d</xliff:g> рет қате сыздыңыз. After <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін планшетіңізді есептік жазба арқылы ашу өтінішін аласыз.\n\n  <xliff:g id="NUMBER_2">%3$d</xliff:g> секундтан кейін қайта әрекеттеніңіз."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Бекітпені ашу кескінін <xliff:g id="NUMBER_0">%1$d</xliff:g> рет қате сыздыңыз. <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін телефоныңызды есептік жазба арқылы ашу өтінішін аласыз. \n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундтан кейін қайта әрекеттеніңіз."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM PIN коды дұрыс емес, құрылғыны ашу үшін қызмет жабдықтаушыға  хабарласаңыз."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM PIN коды дұрыс емес, <xliff:g id="NUMBER_1">%d</xliff:g> әрекет қалды.</item>
-      <item quantity="one">SIM PIN коды дұрыс емес, операторға құрылғы бекітпесін ашуы үшін хабарласуға дейін <xliff:g id="NUMBER_0">%d</xliff:g> әрекет қалды.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM қолданыстан шыққан. Қызмет жабдықтаушыға хабарласыңыз."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUK коды дұрыс емес, SIM біржола пайдалануға жарамсыз болуына <xliff:g id="NUMBER_1">%d</xliff:g> әрекет қалды.</item>
-      <item quantity="one">SIM PUK коды дұрыс емес, SIM біржола пайдалануға жарамсыз болуына <xliff:g id="NUMBER_0">%d</xliff:g> әрекет қалды.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN жұмысы орындалмады!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK жұмысы орындалмады!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Код қабылданды!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Қызмет көрсетілмейді."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Енгізу әдісін ауыстыру"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Ұшақ режимі"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Құрылғы қайта іске қосылғаннан кейін өрнекті енгізу қажет"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Құрылғы қайта іске қосылғаннан кейін PIN кодты енгізу қажет"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Құрылғы қайта іске қосылғаннан кейін кілтсөзді енгізу қажет"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Қосымша қауіпсіздік үшін өрнекті енгізу қажет"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Қосымша қауіпсіздік үшін PIN кодты енгізу қажет"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Қосымша қауіпсіздік үшін кілтсөзді енгізу қажет"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Профильдерді ауыстырғанда өрнекті енгізу қажет"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Профильдерді ауыстырғанда PIN кодты енгізу қажет"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Профильдерді ауыстырғанда кілтсөзді енгізу қажет"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Құрылғы әкімшісі құрылғыны құлыптады"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Құрылғы қолмен құлыпталды"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Құрылғы құлпы <xliff:g id="NUMBER_1">%d</xliff:g> сағат бойы ашылмады. Өрнекті растаңыз.</item>
-      <item quantity="one">Құрылғы құлпы <xliff:g id="NUMBER_0">%d</xliff:g> сағат бойы ашылмады. Өрнекті растаңыз.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Құрылғы құлпы <xliff:g id="NUMBER_1">%d</xliff:g> сағат бойы ашылмады. PIN кодын растаңыз.</item>
-      <item quantity="one">Құрылғы құлпы <xliff:g id="NUMBER_0">%d</xliff:g> сағат бойы ашылмады. PIN кодын растаңыз.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Құрылғы құлпы <xliff:g id="NUMBER_1">%d</xliff:g> сағат бойы ашылмады. Құпия сөзді растаңыз.</item>
-      <item quantity="one">Құрылғы құлпы <xliff:g id="NUMBER_0">%d</xliff:g> сағат бойы ашылмады. Құпия сөзді растаңыз.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Анықталмаған"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-km/strings.xml b/packages/Keyguard/res/values-km/strings.xml
deleted file mode 100644
index fce46c7..0000000
--- a/packages/Keyguard/res/values-km/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"បញ្ចូល​លេខ​កូដ PUK  និង​​ PIN ថ្មី​របស់​ស៊ីម"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"លេខ​កូដ PUK ស៊ីម"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"លេខ​កូដ PIN ស៊ីម​ថ្មី"</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_wrong_pin_code" msgid="2422225591006134936">"កូដ PIN មិន​ត្រឹមត្រូវ។"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"បាន​បញ្ចូល​​ពេញ"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"កំពុង​បញ្ចូល​ថ្ម"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"សាកយ៉ាងឆាប់រហ័ស"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"សាកយឺត"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"ភ្ជាប់​ឧបករណ៍​បញ្ចូល​ថ្ម​។"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"ចុច​ម៉ឺនុយ ដើម្បី​ដោះ​សោ។"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"បណ្ដាញ​ជាប់​សោ"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"គ្មាន​ស៊ី​ម​កាត"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"គ្មាន​ស៊ី​ម​កាត​នៅ​ក្នុង​កុំព្យូទ័រ​បន្ទះ​។"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"គ្មាន​ស៊ីមកាត​ក្នុង​ទូរស័ព្ទ។"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"បញ្ចូល​​​ស៊ី​ម​កាត​។"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"បាត់​ស៊ីមកាត ឬ​មិន​អាច​អាន។ បញ្ចូល​ស៊ីម​កាត។"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"ស៊ីម​កាត​មិន​អាច​ប្រើ​បាន។"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"បាន​បិទ​ស៊ីម​កាត​របស់​អ្នក​ជា​អចិន្ត្រៃយ៍។\n ទាក់ទង​​ក្រុមហ៊ុន​ផ្ដល់​សេវាកម្ម​ឥត​ខ្សែ​សម្រាប់​ស៊ីម​កាត​ផ្សេង។"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ស៊ីម​កាត​​ជាប់​សោ។"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ស៊ីម​កាត​ជាប់​កូដ​​ PUK ។"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"កំពុង​ដោះ​សោ​ស៊ីម​កាត..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"ប្រអប់លេខសម្ងាត់"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"ប្រអប់លេខសម្ងាត់ស៊ីម"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"ប្រអប់ PUK ស៊ីម"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ការ​ជូន​ដំណឹង​បន្ទាប់​កំណត់​សម្រាប់ <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"លុប"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ភ្លេច​​លំនាំ"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"លំនាំ​មិន​ត្រឹមត្រូវ"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ"</string>
-    <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">"បញ្ចូល​កូដ PIN ស៊ីម​កាត"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"បញ្ចូលលេខកូដសម្ងាត់ស៊ីមសម្រាប់ \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</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">"ឥឡូវ​ស៊ីមកាត​ត្រូវ​បាន​បិទ។ បញ្ចូល​កូដ PUK ដើម្បី​បន្ត។ ចំពោះ​ព័ត៌មាន​លម្អិត​ទាក់ទង​ក្រុមហ៊ុន​បញ្ជូន​របស់​អ្នក។"</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"ស៊ីម \"<xliff:g id="CARRIER">%1$s</xliff:g>\" ត្រូវបានបិទដំណើរការឥឡូវនេះ។ បញ្ចូលលេខកូដ PUK ដើម្បីបន្តទំនាក់ទំនងអ្នកផ្តល់សេវាកម្មសម្រាប់ព័ត៌មានលំអិត។"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"បញ្ចូល​កូដ PIN ដែល​ចង់​បាន"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"បញ្ជាក់​កូដ PIN ដែល​ចង់​បាន"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"កំពុង​ដោះ​សោ​​ស៊ីម​កាត..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"បញ្ចូល​កូដ PIN ដែល​មាន​ពី ៤ ដល់ ៨ លេខ។"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"កូដ PUK គួរ​តែ​មាន​​ ៨ លេខ ឬ​​ច្រើន​ជាង​នេះ។"</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"បញ្ចូល​កូដ PUK ម្ដង​ទៀត។ ការ​ព្យាយាម​ដដែល​ច្រើន​ដឹង​នឹង​បិទ​ស៊ីម​កាត​ជា​អចិន្ត្រៃយ៍។"</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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"អ្នក​បាន​បញ្ចូល​កូដ PIN របស់​អ្នក​មិន​ត្រឹមត្រូវ​ចំនួន <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។\n\n ព្យាយាម​ម្ដង​ទៀត​ក្នុង​រយៈ​ពេល <xliff:g id="NUMBER_1">%2$d</xliff:g> វិនាទី។"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"អ្នក​បាន​បញ្ចូល​ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។\n\nព្យាយាម​ម្ដង​ទៀត​ក្នុង​រយៈ​ពេល <xliff:g id="NUMBER_1">%2$d</xliff:g> វិនាទី។"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"អ្នក​បាន​​គូរ​លំនាំ​ដោះ​សោ​របស់​អ្នក​មិន​ត្រឹមត្រូវ​ចំនួន <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។\n\nព្យាយាម​ម្ដង​ទៀត​ក្នុង​រយៈ​ពេល <xliff:g id="NUMBER_1">%2$d</xliff:g> វិនាទី។"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើថេប្លេតរបស់អ្នក <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់ពីការព្យាយាម <xliff:g id="NUMBER_1">%2$d</xliff:g> ដងទៀត ថេប្លេតនេះនឹងត្រូវបានកំណត់ឡើងវិញ ដែលវានឹងលុបទិន្នន័យរបស់វាទាំងអស់។"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើទូរស័ព្ទរបស់អ្នក <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់ពីការព្យាយាម <xliff:g id="NUMBER_1">%2$d</xliff:g> ដងទៀត ទូរស័ព្ទនេះនឹងត្រូវបានកំណត់ឡើងវិញ ដែលវានឹងលុបទិន្នន័យរបស់វាទាំងអស់។"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"អ្នកបានព្យាយាមដោះសមិនត្រឹមត្រូវលើថេប្លេតនេះ <xliff:g id="NUMBER">%d</xliff:g> ដង។ ថេប្លេតនេះនឹងត្រូវបានកំណត់ឡើងវិញ ដែលវានឹងលុបទិន្នន័យរបស់វាទាំងអស់។"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើទូរស័ព្ទរបស់អ្នក <xliff:g id="NUMBER">%d</xliff:g> ដង។ ទូរស័ព្ទនេះនឹងត្រូវបានកំណត់ឡើងវិញ ដែលវានឹងលុបទិន្នន័យរបស់វាទាំងអស់។"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើថេប្លេតរបស់អ្នក <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់ពីការព្យាយាម <xliff:g id="NUMBER_1">%2$d</xliff:g> ដងទៀត អ្នកប្រើនេះនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យអ្នកប្រើទាំងអស់។"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើទូរស័ព្ទរបស់អ្នក <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់ពីការព្យាយាម <xliff:g id="NUMBER_1">%2$d</xliff:g> ដងទៀត អ្នកប្រើនេះនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យអ្នកប្រើទាំងអស់។"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើថេប្លេតរបស់អ្នក <xliff:g id="NUMBER">%d</xliff:g> ដង។ អ្នកប្រើនេះនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យអ្នកប្រើទាំងអស់។"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើទូរស័ព្ទរបស់អ្នក <xliff:g id="NUMBER">%d</xliff:g> ដង។ អ្នកប្រើនេះនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យអ្នកប្រើទាំងអស់។"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើថេប្លេតរបស់អ្នក <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់ពីការព្យាយាម <xliff:g id="NUMBER_1">%2$d</xliff:g> ដងទៀត ប្រវត្តិរូបការងាររបស់អ្នកនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យប្រវត្តិរូបទាំងអស់។"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើទូរស័ព្ទរបស់អ្នក <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់ពីការព្យាយាម <xliff:g id="NUMBER_1">%2$d</xliff:g> ដងទៀត ប្រវត្តិរូបការងាររបស់អ្នកនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យប្រវត្តិរូបទាំងអស់។"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើថេប្លេតរបស់អ្នក <xliff:g id="NUMBER">%d</xliff:g> ដង។ ប្រវត្តិរូបការងាររបស់អ្នកនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យប្រវត្តិរូបទាំងអស់របស់អ្នក។"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"អ្នកបានព្យាយាមដោះសោមិនត្រឹមត្រូវលើទូរស័ព្ទរបស់អ្នក <xliff:g id="NUMBER">%d</xliff:g> ដង។ ប្រវត្តិរូបការងាររបស់អ្នកនឹងត្រូវបានដកចេញ ដែលវានឹងលុបទិន្នន័យប្រវត្តិរូបទាំងអស់របស់អ្នក។"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"អ្នក​បាន​គូរ​លំនាំ​ដោះ​សោ​មិន​ត្រឹមត្រូវ <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់​ពី​ការ​ព្យាយាម <xliff:g id="NUMBER_1">%2$d</xliff:g> ដង​មិន​ជោគជ័យ អ្នក​នឹង​ត្រូវ​បាន​ស្នើ​ឲ្យ​ដោះ​សោ​កុំព្យូទ័រ​បន្ទះ​របស់​អ្នក ដោយ​ប្រើ​គណនី​អ៊ីមែល។\n\n ព្យាយាម​ម្ដង​ទៀត​ក្នុង​រយៈ​ពេល <xliff:g id="NUMBER_2">%3$d</xliff:g> វិនាទី។"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"អ្នក​បាន​គូរ​លំនាំ​ដោះ​​សោ​របស់​អ្នក​មិន​ត្រឹមត្រូវ​ចំនួន <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់​ពី​ការ​ព្យាយាម​មិន​ជោគជ័យ​​ច្រើនជាង <xliff:g id="NUMBER_1">%2$d</xliff:g> ដង អ្នក​នឹង​ត្រូវ​បាន​​ស្នើ​ឲ្យ​ដោះ​សោ​ទូរស័ព្ទ​របស់​អ្នក​ដោយ​ប្រើ​គណនី​អ៊ីមែល។\n\n ព្យាយាម​ម្ដង​ទៀត​ក្នុង​រយៈ​ពេល <xliff:g id="NUMBER_2">%3$d</xliff:g> វិនាទី។"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"លេខ​កូដ PIN ស៊ីម​មិន​ត្រឹមត្រូវ អ្នក​ត្រូវ​ទាក់ទង​ក្រុមហ៊ុន​បញ្ជូន​របស់​អ្នក​ឥឡូវ​នេះ ដើម្បី​ដោះ​សោ​ឧបករណ៍​របស់​អ្នក។"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">លេខកូដសម្ងាត់ស៊ីមមិនត្រឹមត្រូវ អ្នកនៅសល់ការព្យាយាម <xliff:g id="NUMBER_1">%d</xliff:g> ដងទៀត</item>
-      <item quantity="one">លេខកូដសម្ងាត់ស៊ីមមិនត្រឹមត្រូវ អ្នកនៅសល់ការព្យាយាម <xliff:g id="NUMBER_0">%d</xliff:g> ដងទៀត មុនពេលពេលដែលអ្នកត្រូវទាក់ទងទៅអ្នកផ្តល់សេវាកម្មរបស់អ្នកដើម្បីដោះសោឧបករណ៍របស់អ្នក។</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"ស៊ីម​មិន​អាច​ប្រើ​បាន។ ទាក់ទង​ក្រុមហ៊ុន​បញ្ជូន​របស់​អ្នក។"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">លេខកូដ PUK ស៊ីមមិនត្រឹមត្រូវ អ្នកនៅសល់ការព្យាយាម <xliff:g id="NUMBER_1">%d</xliff:g> ដងទៀត មុនពេលស៊ីមរបស់អ្នកមិនអាចប្រើបានជាអចិន្ត្រៃយ៍។</item>
-      <item quantity="one">លេខកូដ PUK ស៊ីមមិនត្រឹមត្រូវ អ្នកនៅសល់ការព្យាយាម <xliff:g id="NUMBER_0">%d</xliff:g> ដងទៀត មុនពេលស៊ីមរបស់អ្នកមិនអាចប្រើបានជាអចិន្ត្រៃយ៍។</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"បាន​បរាជ័យ​ក្នុង​ការ​ប្រតិបត្តិ​លេខ​កូដ PIN ស៊ីម!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"បាន​បរាជ័យ​ក្នុង​ការ​ប្រតិបត្តិ​​លេខ​កូដ PUK ស៊ីម!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"បាន​ទទួល​យក​លេខ​កូដ​!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"គ្មាន​សេវា​"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ប្ដូរ​វិធីសាស្ត្រ​បញ្ចូល"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"របៀបក្នុងយន្តហោះ"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"តម្រូវឲ្យប្រើលំនាំបន្ទាប់ពីឧបករណ៍ចាប់ផ្តើមឡើងវិញ"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"តម្រូវឲ្យបញ្ចូលកូដ PIN បន្ទាប់ពីឧបករណ៍ចាប់ផ្តើមឡើងវិញ"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"តម្រូវឲ្យបញ្ចូលពាក្យសម្ងាត់បន្ទាប់ពីឧបករណ៍ចាប់ផ្តើមឡើងវិញ"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"តម្រូវឲ្យប្រើលំនាំដើម្បីទទួលបានសវុត្ថិភាពបន្ថែម"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"តម្រូវឲ្យបញ្ចូលកូដ PIN ដើម្បីទទួលបានសុវត្ថិភាពបន្ថែម"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"តម្រូវឲ្យបញ្ចូលពាក្យសម្ងាត់ដើម្បីទទួលបានសុវត្ថិភាពបន្ថែម"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"តម្រូវឲ្យប្រើលំនាំនៅពេលដែលអ្នកប្តូរប្រវត្តិរូប"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"តម្រូវឲ្យបញ្ចូលកូដ PIN នៅពេលដែលអ្នកប្តូរប្រវត្តិរូប"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"តម្រូវឲ្យបញ្ចូលពាក្យសម្ងាត់នៅពេលដែលអ្នកប្តូរប្រវត្តិរូប"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"អ្នកគ្រប់គ្រងឧបករណ៍បានចាក់សោឧបករណ៍"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"ឧបករណ៍ត្រូវបានចាក់សោដោយអ្នកប្រើផ្ទាល់"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">ឧបករណ៍មិនបានដោះសោអស់រយៈពេល <xliff:g id="NUMBER_1">%d</xliff:g> ម៉ោងហើយ។ បញ្ជាប់លំនាំ។</item>
-      <item quantity="one">ឧបករណ៍មិនបានដោះសោអស់រយៈពេល <xliff:g id="NUMBER_0">%d</xliff:g> ម៉ោងហើយ។ បញ្ជាក់លំនាំ។</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">ឧបករណ៍មិនបានដោះសោអស់រយៈពេល <xliff:g id="NUMBER_1">%d</xliff:g> ម៉ោងហើយ។ បញ្ជាក់កូដ PIN។</item>
-      <item quantity="one">ឧបករណ៍មិនបានដោះសោអស់រយៈពេល <xliff:g id="NUMBER_0">%d</xliff:g> ម៉ោងហើយ។ បញ្ជាក់កូដ PIN។</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">ឧបករណ៍មិនបានដោះសោអស់រយៈពេល <xliff:g id="NUMBER_1">%d</xliff:g> ម៉ោងហើយ។ បញ្ជាក់ពាក្យសម្ងាត់។</item>
-      <item quantity="one">ឧបករណ៍មិនបានដោះសោអស់រយៈពេល <xliff:g id="NUMBER_0">%d</xliff:g> ម៉ោងហើយ។ បញ្ជាក់ពាក្យសម្ងាត់។</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"មិនអាចសម្គាល់បានទេ"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-kn/strings.xml b/packages/Keyguard/res/values-kn/strings.xml
deleted file mode 100644
index 7bac9c6..0000000
--- a/packages/Keyguard/res/values-kn/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"ಪಿನ್‌ ಕೋಡ್‌ ಟೈಪ್‌ ಮಾಡಿ"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"ಸಿಮ್‌ PUK ಮತ್ತು ಹೊಸ ಪಿನ್‌ ಕೋಡ್ ಟೈಪ್ ಮಾಡಿ"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"ಸಿಮ್‌ PUK ಕೋಡ್"</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">"ಅನ್‌ಲಾಕ್‌ ಮಾಡಲು ಪಿನ್‌ ಟೈಪ್‌ ಮಾಡಿ"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"ತಪ್ಪಾದ ಪಿನ್‌ ಕೋಡ್."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ಚಾರ್ಜ್ ಆಗಿದೆ"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"ವೇಗವಾಗಿ ಚಾರ್ಜ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"ನಿಧಾನವಾಗಿ ಚಾರ್ಜ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"ನಿಮ್ಮ ಚಾರ್ಜರ್ ಸಂಪರ್ಕಗೊಳಿಸಿ."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಮೆನು ಕ್ಲಿಕ್ ಮಾಡಿ."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ನೆಟ್‌ವರ್ಕ್ ಲಾಕ್ ಆಗಿದೆ"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಇಲ್ಲ"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಯಾವುದೇ ಸಿಮ್‌ ಕಾರ್ಡ್ ಇಲ್ಲ."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ಪೋನ್‌ನಲ್ಲಿ ಯಾವುದೇ ಸಿಮ್‌ ಕಾರ್ಡ್ ಇಲ್ಲ."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಸೇರಿಸಿ."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಕಾಣೆಯಾಗಿದೆ ಅಥವಾ ಓದಲು ಸಾಧ್ಯವಿಲ್ಲ. ಒಂದು ಸಿಮ್‌ ಕಾರ್ಡ್ ಸೇರಿಸಿ."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"ನಿಷ್ಪ್ರಯೋಜಕ ಸಿಮ್‌ ಕಾರ್ಡ್."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"ನಿಮ್ಮ ಸಿಮ್‌ ಕಾರ್ಡ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.\n ಮತ್ತೊಂದು ಸಿಮ್‌ ಕಾರ್ಡ್‌ಗಾಗಿ ನಿಮ್ಮ ವಯರ್‌ಲೆಸ್ ಸೇವೆಯ ಪೂರೈಕೆದಾರರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಅನ್ನು PUK-ಲಾಕ್ ಮಾಡಲಾಗಿದೆ."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಅನ್‌ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"ಪಿನ್ ಪ್ರದೇಶ"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"ಸಿಮ್ ಪಿನ್ ಪ್ರದೇಶ"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"ಸಿಮ್ PUK ಪ್ರದೇಶ"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> ಗೆ ಮುಂದಿನ ಅಲಾರಮ್ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ಅಳಿಸು"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ನಮೂದಿಸು"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಮರೆತಿರುವಿರಿ"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"ತಪ್ಪು ಪ್ಯಾಟರ್ನ್"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"ತಪ್ಪು ಪಾಸ್‌ವರ್ಡ್"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"ತಪ್ಪಾದ ಪಿನ್‌"</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">"ಸಿಮ್‌ ಪಿನ್‌ ನಮೂದಿಸಿ"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" ಗೆ ಸಿಮ್ ಪಿನ್ ನಮೂದಿಸಿ"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"ಪಿನ್‌ ನಮೂದಿಸಿ"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"ಇದೀಗ ಸಿಮ್‌ ನಿಷ್ಕ್ರಿಯಗೊಂಡಿದೆ. ಮುಂದುವರೆಯಲು PUK ಕೋಡ್ ನಮೂದಿಸಿ. ವಿವರಗಳಿಗಾಗಿ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"ಸಿಮ್  \"<xliff:g id="CARRIER">%1$s</xliff:g>\" ಇದೀಗ ನಿಷ್ಕ್ರಿಯಗೊಂಡಿದೆ. ಮುಂದುವರೆಯಲು PUK ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ. ಮಾಹಿತಿಗಾಗಿ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"ಅಗತ್ಯವಿರುವ ಪಿನ್‌ ಕೋಡ್ ನಮೂದಿಸಿ"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"ಬಯಸಿರುವ ಪಿನ್‌ ಕೋಡ್ ದೃಢೀಕರಿಸಿ"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಅನ್‍ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4 ರಿಂದ 8 ಸಂಖ್ಯೆಗಳಿರುವ ಪಿನ್‌ ಟೈಪ್ ಮಾಡಿ."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK ಕೋಡ್ 8 ಸಂಖ್ಯೆಗಳು ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿರಬೇಕು."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"ಸರಿಯಾದ PUK ಕೋಡ್ ಅನ್ನು ಮರು-ನಮೂದಿಸಿ. ಸತತ ಪ್ರಯತ್ನಗಳು ಸಿಮ್‌ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"ಪಿನ್‌ ಕೋಡ್‍ಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"ಹಲವಾರು ಪ್ಯಾಟರ್ನ್ ಪ್ರಯತ್ನಗಳು"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"ನಿಮ್ಮ ಪಿನ್‌ ಅನ್ನು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಟೈಪ್ ಮಾಡಿರುವಿರಿ. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"ನಿಮ್ಮ ಪಾಸ್‍‍ವರ್ಡ್ ಅನ್ನು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಟೈಪ್ ಮಾಡಿರುವಿರಿ. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ನಿಮ್ಮ ಅನ್‍‍ಲಾಕ್ ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಚಿತ್ರಿಸಿರುವಿರಿ. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಕ್ಕೂ ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ನಂತರ, ಈ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತದೆ, ಇದು ಅದರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಕ್ಕೂ ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ನಂತರ, ಈ ಫೋನ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತದೆ, ಇದು ಅದರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER">%d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. ಈ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತದೆ, ಇದು ಅದರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER">%d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. ಈ ಫೋನ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತದೆ, ಇದು ಅದರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಕ್ಕೂ ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ನಂತರ, ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಈ ಮೂಲಕ ಬಳಕೆದಾರರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಕ್ಕೂ ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ನಂತರ, ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಈ ಮೂಲಕ ಬಳಕೆದಾರರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER">%d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಇದು ಬಳಕೆದಾರರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER">%d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಇದು ಬಳಕೆದಾರರ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಕ್ಕೂ ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ನಂತರ, ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಇದು ಎಲ್ಲ ಪ್ರೊಫೈಲ್ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಕ್ಕೂ ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ನಂತರ, ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಇದು ಎಲ್ಲ ಪ್ರೊಫೈಲ್ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER">%d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಇದು ಎಲ್ಲ ಪ್ರೊಫೈಲ್ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <xliff:g id="NUMBER">%d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಪ್ರಯತ್ನಿಸಿರುವಿರಿ. ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಇದು ಎಲ್ಲ ಪ್ರೊಫೈಲ್ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ನಿಮ್ಮ ಅನ್‍‍ಲಾಕ್ ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಡ್ರಾ ಮಾಡಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ಬಳಿಕ, ನಿಮ್ಮ ಇಮೇಲ್ ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್‌ಲಾಕ್ ಮಾಡುವಂತೆ ನಿಮ್ಮಲ್ಲಿ ಕೇಳಿಕೊಳ್ಳಲಾಗುತ್ತದೆ.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ನಿಮ್ಮ ಅನ್‍‍ಲಾಕ್ ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಡ್ರಾ ಮಾಡಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ಬಳಿಕ, ನಿಮ್ಮ ಇಮೇಲ್ ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಫೋನ್ ಅನ್‌ಲಾಕ್ ಮಾಡುವಂತೆ ನಿಮ್ಮಲ್ಲಿ ಕೇಳಿಕೊಳ್ಳಲಾಗುತ್ತದೆ.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"ಸಿಮ್‌ ಪಿನ್‌ ಕೋಡ್ ತಪ್ಪಾಗಿದೆ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು ಈ ಕೂಡಲೇ ನಿಮ್ಮ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಬೇಕು."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">ಸಿಮ್‌ ಪಿನ್ ಕೋಡ್‌ ತಪ್ಪಾಗಿದೆ, ನಿಮ್ಮಲ್ಲಿ <xliff:g id="NUMBER_1">%d</xliff:g> ಪ್ರಯತ್ನಗಳು ಬಾಕಿ ಉಳಿದಿವೆ.</item>
-      <item quantity="other">ಸಿಮ್‌ ಪಿನ್ ಕೋಡ್‌ ತಪ್ಪಾಗಿದೆ, ನಿಮ್ಮಲ್ಲಿ <xliff:g id="NUMBER_1">%d</xliff:g> ಪ್ರಯತ್ನಗಳು ಬಾಕಿ ಉಳಿದಿವೆ.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"ಸಿಮ್‌ ನಿಷ್ಪ್ರಯೋಜಕವಾಗಿದೆ. ನಿಮ್ಮ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">ತಪ್ಪಾಗಿರುವ ಸಿಮ್‌ PUK ಕೋಡ್‌, ಸಿಮ್‌ ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಪ್ರಯೋಜಕವಾಗುವುದಕ್ಕೂ ಮೊದಲು ನಿಮ್ಮಲ್ಲಿ <xliff:g id="NUMBER_1">%d</xliff:g> ಪ್ರಯತ್ನಗಳು ಬಾಕಿ ಉಳಿದಿವೆ.</item>
-      <item quantity="other">ತಪ್ಪಾಗಿರುವ ಸಿಮ್‌ PUK ಕೋಡ್‌, ಸಿಮ್‌ ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಪ್ರಯೋಜಕವಾಗುವುದಕ್ಕೂ ಮೊದಲು ನಿಮ್ಮಲ್ಲಿ <xliff:g id="NUMBER_1">%d</xliff:g> ಪ್ರಯತ್ನಗಳು ಬಾಕಿ ಉಳಿದಿವೆ.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"ಸಿಮ್‌ ಪಿನ್‌ ಕಾರ್ಯಾಚರಣೆ ವಿಫಲಗೊಂಡಿದೆ!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"ಸಿಮ್‌ PUK ಕಾರ್ಯಾಚರಣೆ ವಿಫಲಗೊಂಡಿದೆ!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"ಕೋಡ್ ಅಂಗೀಕೃತವಾಗಿದೆ!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"ಯಾವುದೇ ಸೇವೆಯಿಲ್ಲ."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ಇನ್‌ಪುಟ್‌‌ ವಿಧಾನ ಬದಲಿಸಿ"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"ಏರ್‌ಪ್ಲೇನ್ ಮೋಡ್"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ಸಾಧನ ಮರುಪ್ರಾರಂಭಗೊಂಡ ನಂತರ ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿರುತ್ತದೆ"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ಸಾಧನ ಮರುಪ್ರಾರಂಭಗೊಂಡ ನಂತರ ಪಿನ್ ಅಗತ್ಯವಿರುತ್ತದೆ"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ಸಾಧನ ಮರುಪ್ರಾರಂಭಗೊಂಡ ನಂತರ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿರುತ್ತದೆ"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಗೆ ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಗೆ ಪಿನ್ ಅಗತ್ಯವಿದೆ"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಗಾಗಿ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"ನೀವು ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿರುತ್ತದೆ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"ನೀವು ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಪಿನ್ ಅಗತ್ಯವಿರುತ್ತದೆ"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"ನೀವು ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಪಾಸ್‌ವರ್ಡ್‌ ಅಗತ್ಯವಿರುತ್ತದೆ"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"ಸಾಧನ ನಿರ್ವಾಹಕರು ಸಾಧನವನ್ನು ಲಾಕ್‌ ಮಾಡಿದ್ದಾರೆ"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"ಸಾಧನವನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಲಾಕ್‌ ಮಾಡಲಾಗಿದೆ"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">ಸಾಧನವನ್ನು <xliff:g id="NUMBER_1">%d</xliff:g> ಗಂಟೆಗಳ ಕಾಲ ಅನ್‌ಲಾಕ್‌ ಮಾಡಲಾಗಿಲ್ಲ. ನಮೂನೆಯನ್ನು ಖಚಿತಪಡಿಸಿ.</item>
-      <item quantity="other">ಸಾಧನವನ್ನು <xliff:g id="NUMBER_1">%d</xliff:g> ಗಂಟೆಗಳ ಕಾಲ ಅನ್‌ಲಾಕ್‌ ಮಾಡಲಾಗಿಲ್ಲ. ನಮೂನೆಯನ್ನು ಖಚಿತಪಡಿಸಿ.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">ಸಾಧನವನ್ನು <xliff:g id="NUMBER_1">%d</xliff:g> ಗಂಟೆಗಳ ಕಾಲ ಅನ್‌ಲಾಕ್‌ ಮಾಡಲಾಗಿಲ್ಲ. ಪಿನ್ ದೃಢೀಕರಿಸಿ.</item>
-      <item quantity="other">ಸಾಧನವನ್ನು <xliff:g id="NUMBER_1">%d</xliff:g> ಗಂಟೆಗಳ ಕಾಲ ಅನ್‌ಲಾಕ್‌ ಮಾಡಲಾಗಿಲ್ಲ. ಪಿನ್ ದೃಢೀಕರಿಸಿ.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">ಸಾಧನವನ್ನು <xliff:g id="NUMBER_1">%d</xliff:g> ಗಂಟೆಗಳ ಕಾಲ ಅನ್‌ಲಾಕ್‌ ಮಾಡಲಾಗಿಲ್ಲ. ಪಾಸ್‌ವರ್ಡ್‌ ಖಚಿತಪಡಿಸಿ.</item>
-      <item quantity="other">ಸಾಧನವನ್ನು <xliff:g id="NUMBER_1">%d</xliff:g> ಗಂಟೆಗಳ ಕಾಲ ಅನ್‌ಲಾಕ್‌ ಮಾಡಲಾಗಿಲ್ಲ. ಪಾಸ್‌ವರ್ಡ್‌ ಖಚಿತಪಡಿಸಿ.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ಗುರುತಿಸಲಾಗಿಲ್ಲ"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ko/strings.xml b/packages/Keyguard/res/values-ko/strings.xml
deleted file mode 100644
index 5d40d4d..0000000
--- a/packages/Keyguard/res/values-ko/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK 및 새 PIN 코드 입력"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK 코드"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"새 SIM PIN 코드"</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_wrong_pin_code" msgid="2422225591006134936">"PIN 코드가 잘못되었습니다."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"충전됨"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"충전 중"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"고속 충전"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"저속 충전"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"충전기를 연결하세요."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"잠금해제하려면 메뉴를 누르세요."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"네트워크 잠김"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM 카드가 없습니다."</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"태블릿에 SIM 카드가 없습니다."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"휴대전화에 SIM 카드가 없습니다."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM 카드를 삽입하세요."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM 카드가 없거나 읽을 수 없습니다. SIM 카드를 삽입하세요."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"사용할 수 없는 SIM 카드입니다."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM 카드를 완전히 사용할 수 없게 되었습니다.\n다른 SIM 카드를 사용하려면 무선 서비스 제공업체에 문의하시기 바랍니다."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM 카드가 잠겨 있습니다."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM 카드가 PUK 잠김 상태입니다."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM 카드 잠금해제 중..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 영역"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN 영역"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK 영역"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"다음 알람이 <xliff:g id="ALARM">%1$s</xliff:g>(으)로 설정되었습니다."</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete 키"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 키"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"패턴을 잊음"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"잘못된 패턴"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"잘못된 비밀번호"</string>
-    <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_multi" msgid="7818515973197201434">"\'<xliff:g id="CARRIER">%1$s</xliff:g>\'의 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"이제 SIM \'<xliff:g id="CARRIER">%1$s</xliff:g>\'을(를) 사용할 수 없습니다. 계속하려면 PUK 코드를 입력합니다. 자세한 내용은 이동통신사에 문의하세요."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"원하는 PIN 코드 입력"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"원하는 PIN 코드 확인"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM 카드 잠금해제 중..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4~8자리 숫자로 된 PIN을 입력하세요."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK 코드는 8자리 이상의 숫자여야 합니다."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN을 <xliff:g id="NUMBER_0">%1$d</xliff:g>회 잘못 입력했습니다. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g>초 후에 다시 시도해 주세요."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"비밀번호를 <xliff:g id="NUMBER_0">%1$d</xliff:g>회 잘못 입력했습니다. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g>초 후에 다시 시도해 주세요."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"잠금해제 패턴을 <xliff:g id="NUMBER_0">%1$d</xliff:g>회 잘못 그렸습니다. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g>초 후에 다시 시도해 주세요."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"태블릿 잠금 해제에 <xliff:g id="NUMBER_0">%1$d</xliff:g>번 실패했습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>번 더 실패하면 이 태블릿은 재설정되며 모든 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"휴대전화 잠금 해제에 <xliff:g id="NUMBER_0">%1$d</xliff:g>번 실패했습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>번 더 실패하면 이 휴대전화는 재설정되며 모든 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"태블릿 잠금 해제에 <xliff:g id="NUMBER">%d</xliff:g>번 실패했습니다. 이 태블릿은 재설정되며 모든 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"휴대전화 잠금 해제에 <xliff:g id="NUMBER">%d</xliff:g>번 실패했습니다. 이 휴대전화는 재설정되며 모든 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"태블릿 잠금 해제에 <xliff:g id="NUMBER_0">%1$d</xliff:g>번 실패했습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>번 더 실패하면 이 사용자는 삭제되며 모든 사용자 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"휴대전화 잠금 해제에 <xliff:g id="NUMBER_0">%1$d</xliff:g>번 실패했습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>번 더 실패하면 이 사용자는 삭제되며 모든 사용자 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"태블릿 잠금 해제에 <xliff:g id="NUMBER">%d</xliff:g>번 실패했습니다. 이 사용자는 삭제되며 모든 사용자 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"휴대전화 잠금 해제에 <xliff:g id="NUMBER">%d</xliff:g>번 실패했습니다. 이 사용자는 삭제되며 모든 사용자 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"태블릿 잠금 해제에 <xliff:g id="NUMBER_0">%1$d</xliff:g>번 실패했습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>번 더 실패하면 직장 프로필이 삭제되고 모든 프로필 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"휴대전화 잠금 해제에 <xliff:g id="NUMBER_0">%1$d</xliff:g>번 실패했습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>번 더 실패하면 직장 프로필이 삭제되고 모든 프로필 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"태블릿 잠금 해제에 <xliff:g id="NUMBER">%d</xliff:g>번 실패했습니다. 직장 프로필이 삭제되며 모든 프로필 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"휴대전화 잠금 해제에 <xliff:g id="NUMBER">%d</xliff:g>번 실패했습니다. 직장 프로필이 삭제되며 모든 프로필 데이터가 삭제됩니다."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"잠금해제 패턴을 <xliff:g id="NUMBER_0">%1$d</xliff:g>회 잘못 그렸습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>회 더 실패하면 이메일 계정을 사용하여 태블릿을 잠금해제해야 합니다.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g>초 후에 다시 시도해 주세요."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"잠금해제 패턴을 <xliff:g id="NUMBER_0">%1$d</xliff:g>회 잘못 그렸습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>회 더 실패하면 이메일 계정을 사용하여 휴대전화를 잠금해제해야 합니다.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g>초 후에 다시 시도해 주세요."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM PIN 코드가 잘못되었습니다. 이동통신사에 문의하여 기기를 잠금 해제해야 합니다."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM PIN 코드가 잘못되었습니다. <xliff:g id="NUMBER_1">%d</xliff:g>번 더 시도할 수 있습니다.</item>
-      <item quantity="one">SIM PIN 코드가 잘못되었습니다. <xliff:g id="NUMBER_0">%d</xliff:g>번 더 실패하면 이동통신사에 문의하여 기기를 잠금 해제해야 합니다.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM을 사용할 수 없습니다. 이동통신사에 문의하세요."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUK 코드가 잘못되었습니다. <xliff:g id="NUMBER_1">%d</xliff:g>번 더 실패하면 SIM을 완전히 사용할 수 없게 됩니다.</item>
-      <item quantity="one">SIM PUK 코드가 잘못되었습니다. <xliff:g id="NUMBER_0">%d</xliff:g>번 더 실패하면 SIM을 완전히 사용할 수 없게 됩니다.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN 작업이 실패했습니다."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK 작업이 실패했습니다."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"코드 승인 완료"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"서비스 불가"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"입력 방법 전환"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"비행기 모드"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"기기가 다시 시작되면 패턴이 필요합니다."</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"기기가 다시 시작되면 PIN이 필요합니다."</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"기기가 다시 시작되면 비밀번호가 필요합니다."</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"보안 강화를 위해 패턴이 필요합니다."</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"보안 강화를 위해 PIN이 필요합니다."</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"보안 강화를 위해 비밀번호가 필요합니다."</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"프로필을 전환하려면 패턴이 필요합니다."</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"프로필을 전환하려면 PIN이 필요합니다."</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"프로필을 전환하려면 비밀번호가 필요합니다."</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"기기 관리자가 기기를 잠금 설정함"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"기기가 수동으로 잠금 설정됨"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g>시간 이상 기기가 잠금 해제되지 않았습니다. 패턴을 확인하세요.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g>시간 이상 기기가 잠금 해제되지 않았습니다. 패턴을 확인하세요.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g>시간 이상 기기가 잠금 해제되지 않았습니다. PIN을 확인하세요.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g>시간 이상 기기가 잠금 해제되지 않았습니다. PIN을 확인하세요.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g>시간 이상 기기가 잠금 해제되지 않았습니다. 비밀번호를 확인하세요.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g>시간 이상 기기가 잠금 해제되지 않았습니다. 비밀번호를 확인하세요.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"인식할 수 없습니다."</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ky/strings.xml b/packages/Keyguard/res/values-ky/strings.xml
deleted file mode 100644
index a485528..0000000
--- a/packages/Keyguard/res/values-ky/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM-картанын PUK-кодун, анан жаңы PIN-кодун териңиз"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM-картанын PUK-коду"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"SIM-картанын жаңы PIN-коду"</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_wrong_pin_code" msgid="2422225591006134936">"PIN-код туура эмес."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Дүрмөттөлдү"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Кубатталууда"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Ыкчам кубатталууда"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Жай кубатталууда"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Дүрмөттөөчү түзмөктү туташтырыңыз."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Бөгөттөн чыгаруу үчүн Менюну басыңыз."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Тармак бөгөттөлгөн"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM-карта жок"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Планшетте SIM-карта жок."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Телефондо SIM-карта жок."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM-карта салыңыз."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-карта жок же ал окулбай калган. SIM-карта салыңыз."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Жараксыз SIM-карта."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Сиздин SIM-картаңыз жарактан чыгып калды.\n Башка SIM-карта алыш үчүн операторуңузга кайрылыңыз."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карта бөгөттөлгөн."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-карта PUK-бөгөттө."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-карта бөгөттөн чыгарылууда…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN аймагы"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN аймагы"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK аймагы"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Кийинки ойготкуч саат <xliff:g id="ALARM">%1$s</xliff:g> коюлган"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Жок кылуу"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Кирүү"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Үлгү унутулду"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Графикалык ачкыч туура эмес"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Сырсөз туура эмес"</string>
-    <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_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" үчүн 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Эми SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" өчүрүлдү. Улантуу үчүн PUK кодун киргизиңиз. Анын чоо-жайын билүү үчүн операторго кайрылыңыз."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Сиз каалаган PIN-кодду териңиз"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Сиз каалаган PIN-кодду ырастаңыз"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM-карта бөгөттөн чыгарылууда…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Узундугу 4төн 8ге чейинки сандан турган PIN-кодду териңиз."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-код 8 же андан көп сандан турушу керек."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Сиз PIN-кодуңузду <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес тердиңиз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундадан кийин кайталаңыз."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Сиз сырсөзүңүздү <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес тердиңиз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундадан кийин кайталаңыз."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Сиз бөгөттөн чыгаруу үлгүсүн <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес көрсөттүңүз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундадан кийин кайталаңыз."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Планшеттин кулпусун ачууда <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес аракет кылсаңыз, бул планшет баштапкы абалга келтирилип, андагы бардык дайындар жок болот."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Телефондун кулпусун ачууда <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес аракет кылсаңыз, бул телефон баштапкы абалга келтирилип, андагы бардык дайындар жок болот."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Планшеттин кулпусун ачууда <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Бул планшет баштапкы абалга келтирилип, андагы бардык дайындар жок болот."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Телефондун кулпусун ачууда <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Бул телефон баштапкы абалга келтирилип, андагы бардык дайындар жок болот."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Планшеттин кулпусун ачууда <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес аракет кылсаңыз, бул колдонуучу чыгарылып салынып, колдонуучунун бардык дайындары жок болот."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Телефондун кулпусун ачууда <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес аракет кылсаңыз, бул колдонуучу чыгарылып салынып, колдонуучунун бардык дайындары жок болот."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Планшеттин кулпусун ачууда <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Бул колдонуучу чыгарылып салынып, колдонуучунун бардык дайындары жок болот."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Телефондун кулпусун ачууда <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Бул колдонуучу чыгарылып салынып, колдонуучунун бардык дайындары жок болот."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Планшетиңиздин кулпусун ачууда <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес аракет кылсаңыз, жумуш профилиңиз чыгарылып салынып, профилдин бардык дайындары жок болот."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Телефондун кулпусун ачууда <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес аракет кылсаңыз, жумуш профилиңиз чыгарылып салынып, профилдин бардык дайындары жок болот."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Планшеттин кулпусун ачууда <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Жумуш профили чыгарылып салынып, андагы бардык дайындар жок болот."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Телефондун кулпусун ачууда <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Жумуш профили чыгарылып салынып, андагы бардык дайындар жок болот."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Сиз бөгөттөн чыгаруу үлгүсүн <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес көрсөттүңүз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, планшетиңизди эмейл эсебиңиз аркылуу бөгөттөн чыгаруу талап кылынат.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундадан кийин кайра аракеттениңиз."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Сиз бөгөттөн чыгаруу үлгүсүн <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес көрсөттүңүз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, телефонуңузду эмейл эсебиңиз аркылуу бөгөттөн чыгаруу талап кылынат.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундадан кийин кайра аракеттениңиз."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM-карта PIN-коду туура эмес. Эми түзмөктү бөгөттөн чыгарыш үчүн операторуңузга кайрылышыңыз керек."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM PIN-коду туура эмес, сизде <xliff:g id="NUMBER_1">%d</xliff:g> аракет калды.</item>
-      <item quantity="one">SIM PIN-коду туура эмес, сизде <xliff:g id="NUMBER_0">%d</xliff:g> аракет калды. Болбосо, түзмөктүн кулпусун ачуу үчүн операторуңузга кайрылышыңыз керек.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-карта жараксыз. Операторуңузга кайрылыңыз."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUK-коду туура эмес, SIM биротоло жарактан чыгаарынан мурун сизде <xliff:g id="NUMBER_1">%d</xliff:g> аракет калды.</item>
-      <item quantity="one">SIM PUK-коду туура эмес, SIM биротоло жарактан чыгаарынан мурун сизде <xliff:g id="NUMBER_0">%d</xliff:g> аракет калды.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM-картанын PIN-кодун ачуу кыйрады!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM-картанын PUK-кодун ачуу кыйрады!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Код кабыл алынды!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Байланыш жок."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Киргизүү ыкмасын өзгөртүү"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Учак режими"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Түзмөк кайра күйгүзүлгөндөн кийин графикалык ачкыч талап кылынат"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Түзмөк кайра күйгүзүлгөндөн кийин PIN код талап кылынат"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Түзмөк кайра күйгүзүлгөндөн кийин сырсөз талап кылынат"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Коопсуздукту бекемдөө үчүн графикалык ачкыч талап кылынат"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Коопсуздукту бекемдөө үчүн PIN код талап кылынат"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Коопсуздукту бекемдөө үчүн сырсөз талап кылынат"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Профилдерди которуштурганда графикалык ачкыч талап кылынат"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Профилдерди которуштурганда PIN код талап кылынат"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Профилдерди которуштурганда сырсөз талап кылынат"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Түзмөк башкаргычы түзмөктү кулпулап койду"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Түзмөк кол менен кулпуланды"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Түзмөктүн кулпусу <xliff:g id="NUMBER_1">%d</xliff:g> саат бою ачылган жок. Cүрөт үлгүсүн ырастаңыз.</item>
-      <item quantity="one">Түзмөктүн кулпусу <xliff:g id="NUMBER_0">%d</xliff:g> саат бою ачылган жок. Cүрөт үлгүсүн ырастаңыз.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Түзмөктүн кулпусу <xliff:g id="NUMBER_1">%d</xliff:g> саат бою ачылган жок. PIN\'ди ырастаңыз.</item>
-      <item quantity="one">Түзмөктүн кулпусу <xliff:g id="NUMBER_0">%d</xliff:g> саат бою ачылган жок. PIN\'ди ырастаңыз.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Түзмөктүн кулпусу <xliff:g id="NUMBER_1">%d</xliff:g> саат бою ачылган жок. Сырсөздү ырастаңыз.</item>
-      <item quantity="one">Түзмөктүн кулпусу <xliff:g id="NUMBER_0">%d</xliff:g> саат бою ачылган жок. Сырсөздү ырастаңыз.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Таанылган жок"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-lo/strings.xml b/packages/Keyguard/res/values-lo/strings.xml
deleted file mode 100644
index 29a1b56..0000000
--- a/packages/Keyguard/res/values-lo/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"ພິມລະຫັດ PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"ປະເພດ PUK ຂອງ SIM ແລະລະຫັດ PIN ໃໝ່"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"ລະຫັດ PUK ຂອງ SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"ລະຫັດ PIN ໃໝ່ຂອງ SIM"</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_wrong_pin_code" msgid="2422225591006134936">"ລະຫັດ PIN ບໍ່ຖືກຕ້ອງ."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ສາກເຕັມແລ້ວ"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ກຳລັງສາກໄຟ"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"ກຳ​ລັງ​ສາກ​ດ່ວນ"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"ກຳ​ລັງ​ສາກ​ຊ້າໆ"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"ເຊື່ອມຕໍ່ອຸປະກອນສາກຂອງທ່ານ."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"ກົດເມນູເພື່ອປົດລັອກ."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ເຄືອຂ່າຍຖືກລັອກ"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"ບໍ່ມີຊິມກາດ"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ບໍ່ມີຊິມກາດໃນແທັບເລັດ."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ບໍ່ມີຊິມກາດຢູ່ໃນໂທລະສັບ."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ໃສ່ SIM card."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"ບໍ່ພົບເຫັນຊິມກາດ ຫຼືບໍ່ສາມາດອ່ານຊິມກາດໄດ້. ກະລຸນາໃສ່ຊິມກາດໃໝ່."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM card ບໍ່ສາມາດໃຊ້ໄດ້."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM card ຂອງທ່ານຖືກປິດການນຳໃຊ້ຢ່າງຖາວອນແລ້ວ.\n ຕິດຕໍ່ຜູ່ໃຫ້ບໍລິການລະບົບຂອງທ່ານເພື່ອຂໍ SIM card ໃໝ່."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ຊິມກາດຖືກລັອກ."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ຊິມກາດຖືກລັອກດ້ວຍລະຫັດ PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ກຳລັງປົດລັອກຊິມກາດ..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"ພື້ນ​ທີ່ PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"ພື້ນ​ທີ່ PIN ຂອງ SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"ພື້ນ​ທີ່ PUK ຂອງ SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"​ໂມງ​ປຸກ​ຕໍ່​ໄປ​ຖືກ​ຕັ້ງ​ໄວ້​ເວ​ລາ <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ລຶບ"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ລືມຮູບແບບປົດລັອກ?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"ຮູບແບບຜິດ"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ"</string>
-    <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">"ໃສ່ລະຫັດ PIN ຂອງຊິມ"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"ປ້ອນ SIM PIN ສຳ​ລັບ \"<xliff:g id="CARRIER">%1$s</xliff:g>\" ເຂົ້າ​ໄປ"</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">"ຊິມຖືກປິດການນຳໃຊ້ແລ້ວ. ປ້ອນລະຫັດ PUK ເພື່ອດຳເນີນການຕໍ່. ຕິດຕໍ່ຜູ່ໃຫ້ບໍລິການສຳລັບລາຍລະອຽດ."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"ດຽວ​ນີ້ \"<xliff:g id="CARRIER">%1$s</xliff:g>\" SIM ປິດ​ໃຊ້​ງານ. ປ້ອນ​ລະ​ຫັດ PUK ເພື່ອ​ສືບ​ຕໍ່. ຕິດ​ຕໍ່​ບໍ​ລິ​ສັດ​ໃຫ້​ບໍ​ລິ​ການ ເພື່ອ​ຂໍ​ລາຍ​ລະ​ອຽດ."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"ໃສ່ລະຫັດ PIN ທີ່ຕ້ອງການ."</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"ຢືນຢັນລະຫັດ PIN ທີ່ຕ້ອງການ"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"ປົດລັອກ SIM card..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"ພິມລະຫັດ PIN ຄວາມຍາວ 4 ເຖິງ 8 ໂຕເລກ."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"ລະຫັດ PUK ຄວນມີຢ່າງໜ້ອຍ 8 ໂຕເລກ."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"ປ້ອນລະຫັດ PUK ທີ່ຖືກຕ້ອງຄືນໃໝ່. ການພະຍາຍາມໃສ່ຫຼາຍເທື່ອຈະເຮັດໃຫ້ຊິມກາດໃຊ້ບໍ່ໄດ້ຖາວອນ."</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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"ທ່ານພິມລະຫັດ PIN​ ຂອງທ່ານຜິດ <xliff:g id="NUMBER_0">%1$d</xliff:g> ເທື່ອແລ້ວ. \n\nກະລຸນາລອງໃໝ່ໃນອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ວິນາທີ."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"ທ່ານພິມລະຫັດຜິດ <xliff:g id="NUMBER_0">%1$d</xliff:g> ເທື່ອແລ້ວ. \n\nລອງໃໝ່ໃນອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ວິນາທີ."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ທ່ານແຕ້ມຮູບແບບປົດລັອກຂອງທ່ານຜິດ <xliff:g id="NUMBER_0">%1$d</xliff:g> ເທື່ອແລ້ວ. \n\nກະລຸນາລອງໃໝ່ໃນອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ວິນາທີ."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ແທັບ​ເລັດ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຄັ້ງ. ຫຼັງ​ຈາກ​ລອງ​ບໍ່​ສຳ​ເລັດ​ອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ຄັ້ງ, ແທັບ​ເລັດ​ນີ້​ຈະ​ຖືກ​ຕັ້ງ​ຄ່າ​ໃໝ່, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນ​ຂອງ​ມັນ."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ໂທ​ລະ​ສັບ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຄັ້ງ. ຫຼັງ​ຈາກ​ລອງ​ບໍ່​ສຳ​ເລັດ​ອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ຄັ້ງ, ໂທ​ລະ​ສັບ​ນີ້​ຈະ​ຖືກ​ຕັ້ງ​ຄ່າ​ໃໝ່, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນຂອງ​ມັນ."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ແທັບ​ເລັດ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER">%d</xliff:g> ຄັ້ງ. ແທັບ​ເລັດ​ນີ້​ຈະ​ຖືກ​ຕັ້ງ​ຄ່າ​ໃໝ່, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນ​ຂອງ​ມັນ."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ໂທ​ລະ​ສັບ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER">%d</xliff:g> ຄັ້ງ. ໂທ​ລະ​ສັບ​ນີ້​ຈະ​ຖືກ​ຕັ້ງ​ຄ່າ​ໃໝ່, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນ​ຂອງ​ມັນ."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ແທັບ​ເລັດ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຄັ້ງ. ຫຼັງ​ຈາກ​ລອງ​ບໍ່​ສຳ​ເລັດ​ອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ຄັ້ງ, ຜູ້​ໃຊ້​ນີ້​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນຜູ້​ໃຊ້."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ໂທ​ລະ​ສັບ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຄັ້ງ. ຫຼັງ​ຈາກ​ລອງ​ບໍ່​ສຳ​ເລັດ​ອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ຄັ້ງ, ຜູ້​ໃຊ້​ນີ້ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນຜູ້​ໃຊ້."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ແທັບ​ເລັດ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER">%d</xliff:g> ຄັ້ງ. ຜູ້​ໃຊ້​ນີ້​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນຜູ້​ໃຊ້."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ໂທ​ລະ​ສັບ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER">%d</xliff:g> ຄັ້ງ. ຜູ້​ໃຊ້​ນີ້​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນຜູ້​ໃຊ້."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ແທັບ​ເລັດ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຄັ້ງ. ຫຼັງ​ຈາກ​ລອງ​ບໍ່​ສຳ​ເລັດ​ອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ຄັ້ງ, ໂປ​ຣ​ໄຟ​ລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນ​ໂປ​ຣ​ໄຟ​ລ໌."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ໂທ​ລະ​ສັບ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຄັ້ງ. ຫຼັງ​ຈາກ​ລອງ​ບໍ່​ສຳ​ເລັດ​ອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ຄັ້ງ, ໂປ​ຣ​ໄຟ​ລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນ​ໂປ​ຣ​ໄຟ​ລ໌."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ແທັບ​ເລັດ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER">%d</xliff:g> ຄັ້ງ. ໂປ​ຣ​ໄຟ​ລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນ​ໂປ​ຣ​ໄຟ​ລ໌."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"ທ່ານ​ພະ​ຍາ​ຍາມ​ປົດ​ລ​ັອກ​ໂທ​ລະ​ສັບ​ບໍ່​ຖືກ​ຕ້ອງ <xliff:g id="NUMBER">%d</xliff:g> ຄັ້ງ. ໂປ​ຣ​ໄຟ​ລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ, ເຊິ່ງ​ຈະ​ລຶບ​ທຸກ​ຂໍ້​ມູນ​ໂປ​ຣ​ໄຟ​ລ໌."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ທ່ານແຕ້ມຮູບແບບປົດລັອກຜິດ <xliff:g id="NUMBER_0">%1$d</xliff:g> ເທື່ອແລ້ວ. ຫຼັງຈາກແຕ້ມຜິດອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ເທື່ອ, ທ່ານຈະຖືກຖາມໃຫ້ປົດລັອກແທັບເລັດຂອງທ່ານ ດ້ວຍການເຂົ້າສູ່ລະບົບໂດຍໃຊ້ອີເມວຂອງທ່ານ.\n\n ກະລຸນາລອງໃໝ່ອີກຄັ້ງໃນອີກ <xliff:g id="NUMBER_2">%3$d</xliff:g> ວິນາທີ."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ທ່ານແຕ້ມຮູບແບບປົດລັອກຂອງທ່ານຜິດ <xliff:g id="NUMBER_0">%1$d</xliff:g> ເທື່ອແລ້ວ. ຫຼັງຈາກຄວາມພະຍາຍາມອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ເທື່ອ ທ່ານຈະຖືກຖາມໃຫ້ປົດລັອກໂທລະສັບຂອງທ່ານດ້ວຍບັນຊີອີເມວ.\n\n ລອງໃໝ່ອີກຄັ້ງໃນ <xliff:g id="NUMBER_2">%3$d</xliff:g> ວິນາທີ."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"ລະຫັດ PIN ຂອງ SIM ບໍ່ຖືກຕ້ອງທ່ານຕ້ອງຕິດຕໍ່ຫາຜູ່ໃຫ້ບໍລິການ ເພື່ອປົດລັອກອຸປະກອນຂອງທ່ານ."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">ລະຫັດ SIM PIN ບໍ່ຖືກຕ້ອງ, ທ່ານຍັງພະຍາຍາມໄດ້ອີກ <xliff:g id="NUMBER_1">%d</xliff:g> ຄັ້ງ.</item>
-      <item quantity="one">ລະຫັດ PIN ຂອງ SIM ບໍ່ຖືກຕ້ອງ, ທ່ານສາມາດລອງໄດ້ອີກ <xliff:g id="NUMBER_0">%d</xliff:g> ເທື່ອກ່ອນທີ່ທ່ານຈະຕ້ອງຕິດຕໍ່ຫາຜູ່ໃຫ້ບໍລິການຂອງທ່ານ ເພື່ອປົດລັອກອຸປະກອນຂອງທ່ານ.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM ໃຊ້ບໍ່ໄດ້ແລ້ວ. ກະລຸນາຕິດຕໍ່ຫາຜູ່ໃຫ້ບໍລິການຂອງທ່ານ."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">ລະຫັດ PUK ຂອງ SIM ບໍ່ຖືກຕ້ອງ, ທ່ານສາມາດລອງໄດ້ອີກ <xliff:g id="NUMBER_1">%d</xliff:g> ເທື່ອກ່ອນທີ່ SIM ຂອງທ່ານຈະໃຊ້ບໍ່ໄດ້ຢ່າງຖາວອນ.</item>
-      <item quantity="one">ລະຫັດ PUK ຂອງ SIM ບໍ່ຖືກຕ້ອງ, ທ່ານສາມາດລອງໄດ້ອີກ <xliff:g id="NUMBER_0">%d</xliff:g> ເທື່ອກ່ອນທີ່ SIM ຂອງທ່ານຈະໃຊ້ບໍ່ໄດ້ຢ່າງຖາວອນ.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"PIN ຂອງ SIM ເຮັດວຽກລົ້ມເຫຼວ!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"PUK ຂອງ SIM ເຮັດວຽກລົ້ມເຫຼວ!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"ລະ​ຫັດ​ຖືກຕອບຮັບແລ້ວ!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"ບໍ່ມີບໍລິການ"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ສະລັບຮູບແບບການປ້ອນຂໍ້ມູນ"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"ໂໝດໃນຍົນ"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ຈຳເປັນຕ້ອງມີແບບຮູບ ຫຼັງຈາກອຸປະກອນເລີ່ມລະບົບໃໝ່"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ຈຳເປັນຕ້ອງມີ PIN ຫຼັງຈາກອຸປະກອນເລີ່ມລະບົບໃໝ່"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ຈຳເປັນຕ້ອງມີລະຫັດຜ່ານ ຫຼັງຈາກອຸປະກອນເລີ່ມລະບົບໃໝ່"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"ຈຳ​ເປັນ​ຕ້ອງ​ມີ​​ແບບຮູບເພື່ອ​ຄວາມ​ປອດ​ໄພ​ເພີ່ມ​ເຕີມ"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"ຈຳ​ເປັນ​ຕ້ອງ​ມີ PIN ​ເພື່ອ​ຄວາມ​ປອດ​ໄພ​ເພີ່ມ​ເຕີມ"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"ຈຳ​ເປັນ​ຕ້ອງ​ມີ​ລະ​ຫັດ​ຜ່ານ​ເພື່ອ​ຄວາມ​ປອດ​ໄພ​ເພີ່ມ​ເຕີມ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"ຈຳເປັນຕ້ອງມີແບບຮູບ ເມື່ອທ່ານປ່ຽນໂປຣໄຟລ໌"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"ຈຳເປັນຕ້ອງມີ PIN ເມື່ອທ່ານປ່ຽນໂປຣໄຟລ໌"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"ຈຳເປັນຕ້ອງມີລະຫັດຜ່ານ ເມື່ອທ່ານປ່ຽນໂປຣໄຟລ໌"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"ອຸປະກອນຖືກລັອກໂດຍຜູ້ເບິ່ງແຍງລະບົບ"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"ອຸປະກອນຖືກສັ່ງໃຫ້ລັອກ"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">ອຸປະກອນບໍ່ໄດ້ຖືກປົດລັອກເປັນເວລາ <xliff:g id="NUMBER_1">%d</xliff:g> ຊົ່ວໂມງ. ຢືນ​ຢັນ​​ແບບຮູບ​.</item>
-      <item quantity="one">ອຸປະກອນບໍ່ໄດ້ຖືກປົດລັອກເປັນເວລາ <xliff:g id="NUMBER_0">%d</xliff:g> ຊົ່ວໂມງ. ຢືນຢັນແບບຮູບ.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">ອຸປະກອນບໍ່ໄດ້ຖືກປົດລັອກເປັນເວລາ <xliff:g id="NUMBER_1">%d</xliff:g> ຊົ່ວໂມງ. ຢືນ​ຢັນ​ PIN</item>
-      <item quantity="one">ອຸປະກອນບໍ່ໄດ້ຖືກປົດລັອກເປັນເວລາ <xliff:g id="NUMBER_0">%d</xliff:g> ຊົ່ວໂມງ. ຢືນ​ຢັນ​ PIN</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">ອຸປະກອນບໍ່ໄດ້ຖືກປົດລັອກເປັນເວລາ <xliff:g id="NUMBER_1">%d</xliff:g> ຊົ່ວໂມງ. ຢືນຢັນລະຫັດຜ່ານ.</item>
-      <item quantity="one">ອຸປະກອນບໍ່ໄດ້ຖືກປົດລັອກເປັນເວລາ <xliff:g id="NUMBER_0">%d</xliff:g> ຊົ່ວໂມງ. ຢືນຢັນລະຫັດຜ່ານ.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ບໍ່​ຈົດ​ຈຳ​ໄດ້"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-lt/strings.xml b/packages/Keyguard/res/values-lt/strings.xml
deleted file mode 100644
index fd41efc..0000000
--- a/packages/Keyguard/res/values-lt/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Klaviatūros apsauga"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Įveskite PIN kodą"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Įveskite SIM kortelės PUK kodą ir naują PIN kodą"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM kortelės PUK kodas"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Naujas SIM kortelės PIN kodas"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Palieskite, kad įves. slaptaž."</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Jei norite atrakinti, įveskite slaptažodį"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Jei norite atrakinti, įveskite PIN kodą"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Neteisingas PIN kodas."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Įkrauta"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Kraunama"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Greitai kraunama"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Lėtai kraunama"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Prijunkite įkroviklį."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Jei norite atrakinti, paspauskite „Meniu“."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Tinklas užrakintas"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nėra SIM kortelės"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Planšetiniame kompiuteryje nėra SIM kortelės."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Telefone nėra SIM kortelės."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Įdėkite SIM kortelę."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Trūksta SIM kortelės arba ji neskaitoma. Įdėkite SIM kortelę."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Negalima naudoti SIM kortelės."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kortelė užrakinta."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kortelė užrakinta PUK kodu."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Atrakinama SIM kortelė…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN kodo sritis"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM kortelės PIN kodo sritis"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM kortelės PUK kodo sritis"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Kitas nustatytas signalas: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ištrinti"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Įvesti"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pamiršau atrakinimo piešinį"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Netinkamas atrakinimo piešinys"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Netinkamas slaptažodis"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Netinkamas PIN kodas"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Bandyti dar kartą po <xliff:g id="NUMBER">%d</xliff:g> sek."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Nupieškite atrakinimo piešinį"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Įveskite SIM PIN kodą"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Įveskite „<xliff:g id="CARRIER">%1$s</xliff:g>“ SIM kortelės PIN kodą"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Įveskite PIN kodą"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Įveskite slaptažodį"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Dabar SIM neleidžiama. Jei norite tęsti, įveskite PUK kodą. Jei reikia išsamios informacijos, susisiekite su operatoriumi."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"„<xliff:g id="CARRIER">%1$s</xliff:g>“ SIM kortelė išjungta. Jei norite tęsti, įveskite PUK kodą. Jei reikia išsamios informacijos, susisiekite su operatoriumi."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Įveskite pageidaujamą PIN kodą"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Patvirtinkite pageidaujamą PIN kodą"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Atrakinama SIM kortelė…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Įveskite PIN kodą, sudarytą iš 4–8 skaičių."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kodas turėtų būti mažiausiai 8 skaitmenų."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Pakartotinai įveskite tinkamą PUK kodą. Pakartotinai bandant SIM bus neleidžiama visam laikui."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodai neatitinka"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Per daug atrakinimo piešinių bandymų"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN kodą netinkamai įvedėte <xliff:g id="NUMBER_0">%1$d</xliff:g> k. \n\nBandykite dar kartą po <xliff:g id="NUMBER_1">%2$d</xliff:g> sek."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Neteisingai įvedėte slaptažodį <xliff:g id="NUMBER_0">%1$d</xliff:g> k. \n\nBandykite dar kartą po <xliff:g id="NUMBER_1">%2$d</xliff:g> sek."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Netinkamai nupiešėte atrakinimo piešinį <xliff:g id="NUMBER_0">%1$d</xliff:g> k. \n\nBandykite dar kartą po <xliff:g id="NUMBER_1">%2$d</xliff:g> sek."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"<xliff:g id="NUMBER_0">%1$d</xliff:g> kart. nesėkmingai bandėte atrakinti planšetinį kompiuterį. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkming. bandym. šis planšetinis kompiuteris bus nustatytas iš naujo ir visi jo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"<xliff:g id="NUMBER_0">%1$d</xliff:g> kart. nesėkmingai bandėte atrakinti telefoną. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkming. bandym. šis telefonas bus nustatytas iš naujo ir visi jo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"<xliff:g id="NUMBER">%d</xliff:g> kart. nesėkmingai bandėte atrakinti planšetinį kompiuterį. Planšetinis kompiuteris bus nustatytas iš naujo ir visi jo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"<xliff:g id="NUMBER">%d</xliff:g> kart. nesėkmingai bandėte atrakinti telefoną. Telefonas bus nustatytas iš naujo ir visi jo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"<xliff:g id="NUMBER_0">%1$d</xliff:g> kart. nesėkmingai bandėte atrakinti planšetinį kompiuterį. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkming. bandym. šis naudotojas bus pašalintas ir visi naudotojo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"<xliff:g id="NUMBER_0">%1$d</xliff:g> kart. nesėkmingai bandėte atrakinti telefoną. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkming. bandym. šis naudotojas bus pašalintas ir visi naudotojo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"<xliff:g id="NUMBER">%d</xliff:g> kart. nesėkmingai bandėte atrakinti planšetinį kompiuterį. Naudotojas bus pašalintas ir visi naudotojo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"<xliff:g id="NUMBER">%d</xliff:g> kart. nesėkmingai bandėte atrakinti telefoną. Naudotojas bus pašalintas ir visi naudotojo duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"<xliff:g id="NUMBER_0">%1$d</xliff:g> kart. nesėkmingai bandėte atrakinti planšetinį kompiuterį. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkming. bandym. darbo profilis bus pašalintas ir visi profilio duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"<xliff:g id="NUMBER_0">%1$d</xliff:g> kart. nesėkmingai bandėte atrakinti telefoną. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkming. bandym. darbo profilis bus pašalintas ir visi profilio duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"<xliff:g id="NUMBER">%d</xliff:g> kart. nesėkmingai bandėte atrakinti planšetinį kompiuterį. Darbo profilis bus pašalintas ir visi profilio duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"<xliff:g id="NUMBER">%d</xliff:g> kart. nesėkmingai bandėte atrakinti telefoną. Darbo profilis bus pašalintas ir visi profilio duomenys bus ištrinti."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Netinkamai nupiešėte atrakinimo piešinį <xliff:g id="NUMBER_0">%1$d</xliff:g> k. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkm. band. būsite paprašyti atrakinti planšetinį kompiuterį naudodami „Google“ prisijungimo duomenis.\n\n Bandykite dar kartą po <xliff:g id="NUMBER_2">%3$d</xliff:g> sek."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Netinkamai nupiešėte atrakinimo piešinį <xliff:g id="NUMBER_0">%1$d</xliff:g> k. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkm. band. būsite paprašyti atrakinti telefoną naudodami „Google“ prisijungimo duomenis.\n\n Bandykite dar kartą po <xliff:g id="NUMBER_2">%3$d</xliff:g> sek."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Netinkamas SIM kortelės PIN kodas. Reikės susisiekti su operatoriumi, kad atrakintų įrenginį."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Netinkamas SIM kortelės PIN kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymas.</item>
-      <item quantity="few">Netinkamas SIM kortelės PIN kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymai.</item>
-      <item quantity="many">Netinkamas SIM kortelės PIN kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymo.</item>
-      <item quantity="other">Netinkamas SIM kortelės PIN kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymų.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Nebegalima naudoti SIM kortelės. Susisiekite su operatoriumi."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Netinkamas SIM kortelės PUK kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymas. Tada nebegalėsite naudotis SIM kortele.</item>
-      <item quantity="few">Netinkamas SIM kortelės PUK kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymai. Tada nebegalėsite naudotis SIM kortele.</item>
-      <item quantity="many">Netinkamas SIM kortelės PUK kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymo. Tada nebegalėsite naudotis SIM kortele.</item>
-      <item quantity="other">Netinkamas SIM kortelės PUK kodas. Liko <xliff:g id="NUMBER_1">%d</xliff:g> bandymų. Tada nebegalėsite naudotis SIM kortele.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Nepavyko atlikti SIM kortelės PIN kodo operacijos."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Nepavyko atlikti SIM kortelės PUK kodo operacijos."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kodas priimtas."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Nėra paslaugos."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Perjungti įvesties metodą"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Lėktuvo režimas"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Iš naujo paleidus įrenginį būtinas atrakinimo piešinys"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Iš naujo paleidus įrenginį būtinas PIN kodas"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Iš naujo paleidus įrenginį būtinas slaptažodis"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Norint užtikrinti papildomą saugumą būtinas atrakinimo piešinys"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Norint užtikrinti papildomą saugumą būtinas PIN kodas"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Norint užtikrinti papildomą saugumą būtinas slaptažodis"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Perjungiant profilius būtinas atrakinimo piešinys"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Perjungiant profilius būtinas PIN kodas"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Perjungiant profilius būtinas slaptažodis"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Įrenginio administratorius užrakino įrenginį"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Įrenginys užrakintas neautomatiškai"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandą. Patvirtinkite atrakinimo piešinį.</item>
-      <item quantity="few">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandas. Patvirtinkite atrakinimo piešinį.</item>
-      <item quantity="many">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandos. Patvirtinkite atrakinimo piešinį.</item>
-      <item quantity="other">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandų. Patvirtinkite atrakinimo piešinį.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandą. Patvirtinkite PIN kodą.</item>
-      <item quantity="few">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandas. Patvirtinkite PIN kodą.</item>
-      <item quantity="many">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandos. Patvirtinkite PIN kodą.</item>
-      <item quantity="other">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandų. Patvirtinkite PIN kodą.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandą. Patvirtinkite slaptažodį.</item>
-      <item quantity="few">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandas. Patvirtinkite slaptažodį.</item>
-      <item quantity="many">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandos. Patvirtinkite slaptažodį.</item>
-      <item quantity="other">Įrenginys nebuvo atrakintas <xliff:g id="NUMBER_1">%d</xliff:g> valandų. Patvirtinkite slaptažodį.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Neatpažintas"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-lv/strings.xml b/packages/Keyguard/res/values-lv/strings.xml
deleted file mode 100644
index f801d64..0000000
--- a/packages/Keyguard/res/values-lv/strings.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Taustiņslēgs"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Ievadiet PIN kodu."</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Ievadiet SIM kartes PUK kodu un jaunu PIN kodu."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM kartes PUK kods"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Jauns SIM kartes PIN kods"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Pieskarieties, lai ievadītu paroli"</font>"."</string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Ievadiet paroli, lai atbloķētu."</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Lai atbloķētu, ievadiet PIN."</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"PIN kods nav pareizs."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Uzlādēts"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Notiek uzlāde"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Ātrā uzlāde"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Lēnā uzlāde"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Pievienojiet uzlādes ierīci."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Lai atbloķētu, nospiediet vienumu Izvēlne."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Tīkls ir bloķēts."</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nav SIM kartes."</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Planšetdatorā nav SIM kartes."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Tālrunī nav SIM kartes."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Ievietojiet SIM karti."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Nav SIM kartes, vai arī to nevar nolasīt. Ievietojiet SIM karti."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM karte nav lietojama."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Jūsu SIM karte ir neatgriezeniski atspējota.\nSazinieties ar savu bezvadu pakalpojumu sniedzēju, lai iegūtu citu SIM karti."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karte ir bloķēta."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karte ir bloķēta ar PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Notiek SIM kartes atbloķēšana..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN apgabals"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN apgabals"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK apgabals"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Signāls iestatīts uz: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Dzēšanas taustiņš"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Ievadīšanas taustiņš"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Aizmirsu kombināciju"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Nepareiza kombinācija"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Nepareiza parole"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Nepareizs PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Mēģiniet vēlreiz pēc <xliff:g id="NUMBER">%d</xliff:g> sekundēm."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Norādiet savu kombināciju"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Ievadiet SIM kartes PIN"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Ievadiet SIM kartes “<xliff:g id="CARRIER">%1$s</xliff:g>” PIN kodu"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Ievadiet PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Ievadiet paroli"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM karte ir atspējota. Lai turpinātu, ievadiet PUK kodu. Lai iegūtu detalizētu informāciju, sazinieties ar mobilo sakaru operatoru."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM karte “<xliff:g id="CARRIER">%1$s</xliff:g>” ir atspējota. Lai turpinātu, ievadiet PUK kodu. Lai iegūtu plašāku informāciju, sazinieties ar mobilo sakaru operatoru."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Ievadiet vēlamo PIN kodu."</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Apstipriniet vēlamo PIN."</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Notiek SIM kartes atbloķēšana..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Ievadiet PIN, kas sastāv no 4 līdz 8 cipariem."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kodam ir jābūt vismaz 8 ciparus garam."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Atkārtoti ievadiet pareizo PUK kodu. Ja vairākas reizes ievadīsiet to nepareizi, SIM karte tiks neatgriezeniski atspējota."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodi neatbilst."</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Pārāk daudz kombinācijas mēģinājumu"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Jūs nepareizi ievadījāt PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes.\n\nMēģiniet vēlreiz pēc <xliff:g id="NUMBER_1">%2$d</xliff:g> sekundēm."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Jūs nepareizi ievadījāt paroli <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes.\n\nMēģiniet vēlreiz pēc <xliff:g id="NUMBER_1">%2$d</xliff:g> sekundēm."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Jūs nepareizi norādījāt atbloķēšanas kombināciju <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes.\n\nMēģiniet vēlreiz pēc <xliff:g id="NUMBER_1">%2$d</xliff:g> sekundēm."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Jūs <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt planšetdatoru. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> nesekmīgiem mēģinājumiem šis planšetdators tiks atiestatīts, kā arī visi planšetdatora dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Jūs <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt tālruni. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> nesekmīgiem mēģinājumiem šis tālrunis tiks atiestatīts, kā arī visi tālruņa dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Jūs <xliff:g id="NUMBER">%d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt planšetdatoru. Šis planšetdators tiks atiestatīts, kā arī visi planšetdatora dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Jūs <xliff:g id="NUMBER">%d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt tālruni. Šis tālrunis tiks atiestatīts, kā arī visi tālruņa dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Jūs <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt planšetdatoru. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> nesekmīgiem mēģinājumiem šis lietotājs tiks noņemts, kā arī visi lietotāja dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Jūs <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt tālruni. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> nesekmīgiem mēģinājumiem šis lietotājs tiks noņemts, kā arī visi lietotāja dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Jūs <xliff:g id="NUMBER">%d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt planšetdatoru. Šis lietotājs tiks noņemts, kā arī visi lietotāja dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Jūs <xliff:g id="NUMBER">%d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt tālruni. Šis lietotājs tiks noņemts, kā arī visi lietotāja dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Jūs <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt planšetdatoru. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> nesekmīgiem mēģinājumiem darba profils tiks noņemts, kā arī visi profila dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Jūs <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt tālruni. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> nesekmīgiem mēģinājumiem darba profils tiks noņemts, kā arī visi profila dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Jūs <xliff:g id="NUMBER">%d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt planšetdatoru. Darba profils tiks noņemts, kā arī visi profila dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Jūs <xliff:g id="NUMBER">%d</xliff:g> reizes nesekmīgi mēģinājāt atbloķēt tālruni. Darba profils tiks noņemts, kā arī visi profila dati tiks dzēsti."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Jūs nepareizi norādījāt atbloķēšanas kombināciju <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> neveiksmīgiem mēģinājumiem planšetdators būs jāatbloķē, izmantojot e-pasta kontu.\n\nMēģiniet vēlreiz pēc <xliff:g id="NUMBER_2">%3$d</xliff:g> sekundēm."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Jūs nepareizi norādījāt atbloķēšanas kombināciju <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> neveiksmīgiem mēģinājumiem tālrunis būs jāatbloķē, izmantojot e-pasta kontu.\n\nMēģiniet vēlreiz pēc <xliff:g id="NUMBER_2">%3$d</xliff:g> sekundēm."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Nepareizs SIM kartes PIN kods. Lai atbloķētu ierīci, sazinieties ar mobilo sakaru operatoru."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="zero">Nepareizs SIM kartes PIN kods. Varat mēģināt vēl <xliff:g id="NUMBER_1">%d</xliff:g> reizes.</item>
-      <item quantity="one">Nepareizs SIM kartes PIN kods. Varat mēģināt vēl <xliff:g id="NUMBER_1">%d</xliff:g> reizi.</item>
-      <item quantity="other">Nepareizs SIM kartes PIN kods. Varat mēģināt vēl <xliff:g id="NUMBER_1">%d</xliff:g> reizes.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM karte nav izmantojama. Sazinieties ar mobilo sakaru operatoru."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="zero">Nepareizs SIM kartes PUK kods. Varat mēģināt vēl <xliff:g id="NUMBER_1">%d</xliff:g> reizes. Pēdējā mēģinājuma kļūdas gadījumā SIM karte kļūs neizmantojama.</item>
-      <item quantity="one">Nepareizs SIM kartes PUK kods. Varat mēģināt vēl <xliff:g id="NUMBER_1">%d</xliff:g> reizi. Pēdējā mēģinājuma kļūdas gadījumā SIM karte kļūs neizmantojama.</item>
-      <item quantity="other">Nepareizs SIM kartes PUK kods. Varat mēģināt vēl <xliff:g id="NUMBER_1">%d</xliff:g> reizes. Pēdējā mēģinājuma kļūdas gadījumā SIM karte kļūs neizmantojama.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM kartes PIN koda ievadīšana neizdevās."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM kartes PUK koda ievadīšana neizdevās."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kods ir pieņemts!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Nav pakalpojuma."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Pārslēgt ievades metodi"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Lidojuma režīms"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Pēc ierīces restartēšanas ir jāievada atbloķēšanas kombinācija."</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Pēc ierīces restartēšanas ir jāievada PIN kods."</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Pēc ierīces restartēšanas ir jāievada parole."</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Papildu drošībai ir nepieciešama atbloķēšanas kombinācija."</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Papildu drošībai ir nepieciešams PIN kods."</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Papildu drošībai ir nepieciešama parole."</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Pārslēdzot profilus, ir jāievada atbloķēšanas kombinācija."</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Pārslēdzot profilus, ir jāievada PIN kods."</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Pārslēdzot profilus, ir jāievada parole."</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Ierīces administratora bloķēta ierīce"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Ierīce tika bloķēta manuāli"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="zero">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundas. Apstipriniet kombināciju.</item>
-      <item quantity="one">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundu. Apstipriniet kombināciju.</item>
-      <item quantity="other">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundas. Apstipriniet kombināciju.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="zero">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundas. Apstipriniet PIN.</item>
-      <item quantity="one">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundu. Apstipriniet PIN.</item>
-      <item quantity="other">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundas. Apstipriniet PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="zero">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundas. Apstipriniet paroli.</item>
-      <item quantity="one">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundu. Apstipriniet paroli.</item>
-      <item quantity="other">Ierīce nav tikusi atbloķēta <xliff:g id="NUMBER_1">%d</xliff:g> stundas. Apstipriniet paroli.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nav atpazīts"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-mk/strings.xml b/packages/Keyguard/res/values-mk/strings.xml
deleted file mode 100644
index 9d833f0..0000000
--- a/packages/Keyguard/res/values-mk/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Впишете PIN-код"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Внеси ПУК и нов PIN код за СИМ картичката"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"ПУК код за СИМ картичка"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Нов PIN код за СИМ картичка"</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_wrong_pin_code" msgid="2422225591006134936">"Погрешен PIN код."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Наполнета"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Се полни"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Брзо полнење"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Бавно полнење"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Поврзи го полначот."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Притисни „Мени“ да се отклучи."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Мрежата е заклучена"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Нема СИМ картичка"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Во таблетот нема СИМ картичка."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Во телефонот нема СИМ картичка."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Вметни СИМ картичка."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Нема СИМ картичка или не може да прочита. Вметни СИМ картичка."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Неупотреблива СИМ картичка."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Вашата СИМ картичка е трајно оневозможена.\nКонтактирајте со вашиот оператор за безжична мрежа за друга СИМ картичка."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"СИМ картичката е заклучена."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"СИМ картичката е заклучена со ПУК."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"СИМ картичката се отклучува..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Поле за PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Поле за PIN на СИМ"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Поле за ПУК на СИМ"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Следниот аларм е поставен за <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Копче „Избриши“"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Копче „Внеси“"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборавив шема"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешна шема"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Погрешна лозинка"</string>
-    <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">"Внеси PIN на СИМ картичка"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Внесете PIN на СИМ за „<xliff:g id="CARRIER">%1$s</xliff:g>“"</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">"СИМ картичката е сега оневозможена. Внесете ПУК код за да продолжите. Контактирајте го операторот за детали."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"СИМ-картичката „<xliff:g id="CARRIER">%1$s</xliff:g>“ е сега оневозможена. Внесете ПУК за да продолжите. Контактирајте со давателот на услугата за детали."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Внеси посакуван PIN код"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Потврди го саканиот PIN код"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"СИМ картичката се отклучува..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Внесете PIN кој содржи 4-8 броеви."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"ПУК кодот треба да содржи 8 или повеќе броеви."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Повторно внесете го точниот ПУК код. Повторните обиди трајно ќе ја оневозможат СИМ картичката."</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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Погрешно сте го впишале вашиот PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. \n\nОбидете се повторно за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунди."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Погрешно сте ја впишале вашата лозинка <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. \n\nОбидете се повторно за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунди."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Погрешно сте ја употребиле вашата шема за отклучување <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. \n\nОбидете се повторно за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунди."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Неправилно се обидовте да го отклучите таблетот <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По уште <xliff:g id="NUMBER_1">%2$d</xliff:g> неправилни обиди, таблетот ќе се ресетира, со што ќе се избришат сите негови податоци."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Неправилно се обидовте да го отклучите телефонот <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По уште <xliff:g id="NUMBER_1">%2$d</xliff:g> неправилни обиди, телефонот ќе се ресетира, со што ќе се избришат сите негови податоци."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Неправилно се обидовте да го отклучите таблетот <xliff:g id="NUMBER">%d</xliff:g> пати. Овој таблет ќе се ресетира, со што ќе се избришат сите негови податоци."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Неправилно се обидовте да го отклучите телефонот <xliff:g id="NUMBER">%d</xliff:g> пати. Овој телефон ќе се ресетира, со што ќе се избришат сите негови податоци."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Неправилно се обидовте да го отклучите таблетот <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По уште <xliff:g id="NUMBER_1">%2$d</xliff:g> неправилни обиди, корисникот ќе се отстрани, со што ќе се избришат сите податоци на корисникот."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Неправилно се обидовте да го отклучите телефонот <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По уште <xliff:g id="NUMBER_1">%2$d</xliff:g> неправилни обиди, корисникот ќе се отстрани, со што ќе се избришат сите податоци на корисникот."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Неправилно се обидовте да го отклучите таблетот <xliff:g id="NUMBER">%d</xliff:g> пати. Овој корисник ќе се отстрани, со што ќе се избришат сите негови податоци."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Неправилно се обидовте да го отклучите телефонот <xliff:g id="NUMBER">%d</xliff:g> пати. Овој корисник ќе се отстрани, со што ќе се избришат сите негови податоци."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Неправилно се обидовте да го отклучите таблетот <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По уште <xliff:g id="NUMBER_1">%2$d</xliff:g> неправилни обиди, работниот профил ќе се отстрани, со што ќе се избришат сите податоци на профилот."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Неправилно се обидовте да го отклучите телефонот <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По уште <xliff:g id="NUMBER_1">%2$d</xliff:g> неправилни обиди, работниот профил ќе се отстрани, со што ќе се избришат сите податоци на профилот."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Неправилно се обидовте да го отклучите таблетот <xliff:g id="NUMBER">%d</xliff:g> пати. Работниот профил ќе се отстрани, со што ќе се избришат сите податоци на профилот."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Неправилно се обидовте да го отклучите телефонот <xliff:g id="NUMBER">%d</xliff:g> пати. Работниот профил ќе се отстрани, со што ќе се избришат сите податоци на профилот."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Погрешно сте ја употребиле вашата шема на отклучување <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни обиди, ќе побараат од вас да го отклучите таблетот со користење сметка на е-пошта.\n\n Обидете се повторно за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунди."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Погрешно сте ја употребиле вашата шема на отклучување <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни обиди, ќе побараат од вас да го отклучите телефонот со користење сметка на е-пошта.\n\n Обидете се повторно за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунди."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"PIN кодот за СИМ картичката е неточен. Контактирате со вашиот оператор да го отклучи уредот."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Погрешен PIN-код за СИМ, ви преостанува уште <xliff:g id="NUMBER_1">%d</xliff:g> обид.</item>
-      <item quantity="other">Погрешен PIN-код за СИМ, ви преостануваат уште <xliff:g id="NUMBER_1">%d</xliff:g> обиди.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SMS картичката е неупотреблива. Контактирајте со вашиот оператор."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Погрешен ПУК-код за СИМ, ви преостанува уште <xliff:g id="NUMBER_1">%d</xliff:g> обид пред СИМ-картичката да стане трајно неупотреблива.</item>
-      <item quantity="other">Погрешен ПУК-код за СИМ, ви преостануваат уште <xliff:g id="NUMBER_1">%d</xliff:g> обиди пред СИМ-картичката да стане трајно неупотреблива.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"СИМ картичката не се отклучи со PIN кодот!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"СИМ картичката не се отклучи со ПУК кодот!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Кодот е прифатен!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Нема услуга."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Префрли метод на внесување"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Режим на работа во авион"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Потребна е шема по рестартирање на уредот"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Потребен е PIN-код по рестартирање на уредот"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Потребна е лозинка по рестартирање на уредот"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Потребна е шема за дополнителна безбедност"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Потребен е PIN-код за дополнителна безбедност"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Потребна е лозинка за дополнителна безбедност"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Потребна е шема кога променувате профили"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Потребен е PIN-код кога променувате профили"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Потребна е лозинка кога променувате профили"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Администраторот на уредот го заклучил уредот"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Уредот е заклучен рачно"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Уредот не е отклучен за <xliff:g id="NUMBER_1">%d</xliff:g> час. Потврдете ја шемата.</item>
-      <item quantity="other">Уредот не е отклучен за <xliff:g id="NUMBER_1">%d</xliff:g> часа. Потврдете ја шемата.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Уредот не е отклучен за <xliff:g id="NUMBER_1">%d</xliff:g> час. Потврдете го PIN-кодот.</item>
-      <item quantity="other">Уредот не е отклучен за <xliff:g id="NUMBER_1">%d</xliff:g> часа. Потврдете го PIN-кодот.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Уредот не е отклучен за <xliff:g id="NUMBER_1">%d</xliff:g> час. Потврдете ја лозинката.</item>
-      <item quantity="other">Уредот не е отклучен за <xliff:g id="NUMBER_1">%d</xliff:g> часа. Потврдете ја лозинката.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не е препознаено"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ml/strings.xml b/packages/Keyguard/res/values-ml/strings.xml
deleted file mode 100644
index 5d93cf0..0000000
--- a/packages/Keyguard/res/values-ml/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"പിൻ കോഡ് ടൈപ്പുചെയ്യുക"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"സിം PUK-യും പുതിയ പിൻ കോഡും ടൈപ്പുചെയ്യുക"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"സിം PUK കോഡ്"</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">"അൺലോക്കുചെയ്യുന്നതിന് പിൻ ടൈപ്പുചെയ്യുക"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"പിൻ കോഡ് തെറ്റാണ്."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ചാർജായി"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ചാർജ്ജുചെയ്യുന്നു"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"വേഗത്തിൽ ചാർജുചെയ്യുന്നു"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"പതുക്കെ ചാർജുചെയ്യുന്നു"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"നിങ്ങളുടെ ചാർജ്ജർ കണക്റ്റുചെയ്യുക."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"അൺലോക്കുചെയ്യാൻ മെനു അമർത്തുക"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"നെറ്റ്‌വർക്ക് ലോക്കുചെയ്‌തു"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"സിം കാർഡില്ല"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ടാബ്‌ലെറ്റിൽ സിം കാർഡൊന്നുമില്ല."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ഫോണിൽ സിം കാർഡൊന്നുമില്ല."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ഒരു സിം കാർഡ് ചേർക്കുക."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"സിം കാർഡ് കാണുന്നില്ല അല്ലെങ്കിൽ റീഡുചെയ്യാനായില്ല. ഒരു സിം കാർഡ് ചേർക്കുക."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"ഉപയോഗശൂന്യമായ സിം കാർഡ്."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"നിങ്ങളുടെ സിം കാർഡ് ശാശ്വതമായി പ്രവർത്തനരഹിതമാക്കി.\n മറ്റൊരു സിം കാർഡിനായി നിങ്ങളുടെ വയർലെസ് സേവന ദാതാവിനെ ബന്ധപ്പെടുക."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"സിം കാർഡ് ലോക്കുചെയ്‌തു."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"സിം കാർഡ് PUK-ലോക്ക് ചെയ്‌തതാണ്."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"സിം കാർഡ് അൺലോക്കുചെയ്യുന്നു…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ഏരിയ"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ഏരിയ"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ഏരിയ"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g>-ന് അടുത്ത അലാറം സജ്ജീകരിച്ചു"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ഇല്ലാതാക്കുക"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"പാറ്റേൺ മറന്നു"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"പാറ്റേൺ തെറ്റാണ്"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"പാസ്‌വേഡ് തെറ്റാണ്"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"പിൻ തെറ്റാണ്"</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">"സിം പിൻ നൽകുക"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" എന്നതിനുള്ള SIM PIN നൽകുക"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"പിൻ നൽകുക"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"പാസ്‌വേഡ് നൽകുക"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"സിം ഇപ്പോൾ പ്രവർത്തനരഹിതമാക്കി. തുടരുന്നതിന് PUK കോഡ് നൽകുക. വിശദാംശങ്ങൾക്ക് കാരിയറെ ബന്ധപ്പെടുക."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" ഇപ്പോൾ പ്രവർത്തനരഹിതമാക്കി. തുടരുന്നതിന് PUK കോഡ് നൽകുക. വിശദാംശങ്ങൾക്ക് കാരിയറിനെ കോൺടാക്‌റ്റുചെയ്യുക."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"താൽപ്പര്യപ്പെട്ട പിൻ കോഡ് നൽകുക"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"താൽപ്പര്യപ്പെട്ട പിൻ കോഡ് സ്ഥിരീകരിക്കുക"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"സിം കാർഡ് അൺലോക്കുചെയ്യുന്നു…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4 മുതൽ 8 വരെ അക്കങ്ങളുള്ള ഒരു പിൻ നൽകുക."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK കോഡിൽ 8 അല്ലെങ്കിൽ അതിലധികം സംഖ്യകൾ ഉണ്ടായിരിക്കണം."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"ശരിയായ PUK കോഡ് വീണ്ടും നൽകുക. ആവർത്തിച്ചുള്ള ശ്രമങ്ങൾ സിം ശാശ്വതമായി പ്രവർത്തനരഹിതമാക്കും."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"പിൻ കോഡുകൾ പൊരുത്തപ്പെടുന്നില്ല"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"വളരെയധികം പാറ്റേൺ ശ്രമങ്ങൾ"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"നിങ്ങളുടെ പിൻ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി ടൈപ്പുചെയ്‌തു. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> സെക്കൻഡിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"നിങ്ങളുടെ പാസ്‌വേഡ് <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി ടൈപ്പുചെയ്‌തു. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> സെക്കൻഡിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"നിങ്ങളുടെ പാറ്റേൺ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി വരച്ചു. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> സെക്കൻഡിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g>-ൽ കൂടുതൽ പരാജയപ്പെട്ട ശ്രമങ്ങൾക്കുശേഷം, ഈ ടാബ്‌ലെറ്റ് പുനഃസജ്ജീകരിക്കുന്നതിനാൽ ഇതിന്റെ എല്ലാ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"നിങ്ങളുടെ ഫോൺ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g>-ൽ കൂടുതൽ പരാജയപ്പെട്ട ശ്രമങ്ങൾക്കുശേഷം, ഈ ഫോൺ പുനഃസജ്ജീകരിക്കുന്നതിനാൽ ഇതിന്റെ എല്ലാ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് <xliff:g id="NUMBER">%d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. ഈ ടാബ്‌ലെറ്റിനെ പുനഃസജ്ജീകരിക്കുന്നതിനാൽ അതിന്റെ എല്ലാ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"നിങ്ങളുടെ ഫോൺ <xliff:g id="NUMBER">%d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. ഈ ഫോണിനെ പുനഃസജ്ജീകരിക്കുന്നതിനാൽ അതിന്റെ എല്ലാ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g>-ൽ കൂടുതൽ പരാജയപ്പെട്ട ശ്രമങ്ങൾക്കുശേഷം, ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യും, ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ ഉപയോക്തൃ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"നിങ്ങളുടെ ഫോൺ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g>-ൽ കൂടുതൽ പരാജയപ്പെട്ട ശ്രമങ്ങൾക്കുശേഷം, ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ ഉപയോക്തൃ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് <xliff:g id="NUMBER">%d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ ഉപയോക്തൃ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"നിങ്ങളുടെ ഫോൺ <xliff:g id="NUMBER">%d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ ഉപയോക്തൃ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g>-ൽ കൂടുതൽ പരാജയപ്പെട്ട ശ്രമങ്ങൾക്കുശേഷം, ഔദ്യോഗിക പ്രൊഫൈൽ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ പ്രൊഫൈൽ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"നിങ്ങളുടെ ഫോൺ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g>-ൽ കൂടുതൽ പരാജയപ്പെട്ട ശ്രമങ്ങൾക്കുശേഷം, ഔദ്യോഗിക പ്രൊഫൈൽ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ പ്രൊഫൈൽ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"നിങ്ങളുടെ ടാബ്‌ലറ്റ് <xliff:g id="NUMBER">%d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. ഔദ്യോഗിക പ്രൊഫൈൽ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ പ്രൊഫൈൽ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"നിങ്ങളുടെ ഫോൺ <xliff:g id="NUMBER">%d</xliff:g> തവണ തെറ്റായി അൺലോക്കുചെയ്യാൻ ശ്രമിച്ചു. ഔദ്യോഗിക പ്രൊഫൈൽ നീക്കംചെയ്യുന്നതിനാൽ എല്ലാ പ്രൊഫൈൽ വിവരങ്ങളും ഇല്ലാതാക്കും."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"നിങ്ങളുടെ അൺലോക്ക് പാറ്റേൺ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി വരച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g> ശ്രമങ്ങൾ കൂടി വിജയിച്ചില്ലെങ്കിൽ, ഒരു ഇമെയിൽ അക്കൗണ്ട് ഉപയോഗിച്ച് ടാബ്‌ലെറ്റ് അൺലോക്ക് ചെയ്യാൻ നിങ്ങളോട് ആവശ്യപ്പെടും.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> സെക്കൻഡിനുള്ള വീണ്ടും ശ്രമിക്കുക."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"നിങ്ങളുടെ അൺലോക്ക് പാറ്റേൺ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി വരച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g> ശ്രമങ്ങൾ കൂടി വിജയിച്ചില്ലെങ്കിൽ, ഒരു ഇമെയിൽ അക്കൗണ്ട് ഉപയോഗിച്ച് ഫോൺ അൺലോക്ക് ചെയ്യാൻ നിങ്ങളോട് ആവശ്യപ്പെടും.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> സെക്കൻഡിനുള്ള വീണ്ടും ശ്രമിക്കുക."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"സിം പിൻ കോഡ് തെറ്റാണ്, നിങ്ങളുടെ ഉപകരണം അൺലോക്കുചെയ്യാൻ ഇപ്പോൾ നിങ്ങളുടെ കാരിയറുമായി ബന്ധപ്പെടണം."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM PIN കോഡ് തെറ്റാണ്, നിങ്ങൾക്ക് <xliff:g id="NUMBER_1">%d</xliff:g> ശ്രമങ്ങൾ കൂടി ശേഷിക്കുന്നു.</item>
-      <item quantity="one">SIM PIN കോഡ് തെറ്റാണ്, നിങ്ങളുടെ ഉപകരണം അൺലോക്കുചെയ്യാൻ കാരിയറെ ബന്ധപ്പെടേണ്ടതിന് മുമ്പായി <xliff:g id="NUMBER_0">%d</xliff:g> ശ്രമം കൂടി ശേഷിക്കുന്നു.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"സിം ഉപയോഗശൂന്യമാണ്. നിങ്ങളുടെ കാരിയറെ ബന്ധപ്പെടുക."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUK കോഡ് തെറ്റാണ്, SIM ശാശ്വതമായി ഉപയോഗശൂന്യമാകുന്നതിന് മുമ്പായി നിങ്ങൾക്ക് <xliff:g id="NUMBER_1">%d</xliff:g> ശ്രമങ്ങൾ കൂടി ശേഷിക്കുന്നു.</item>
-      <item quantity="one">SIM PUK കോഡ് തെറ്റാണ്, SIM ശാശ്വതമായി ഉപയോഗശൂന്യമാകുന്നതിന് മുമ്പായി നിങ്ങൾക്ക് <xliff:g id="NUMBER_0">%d</xliff:g> ശ്രമം കൂടി ശേഷിക്കുന്നു.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"സിം പിൻ പ്രവർത്തനം പരാജയപ്പെട്ടു!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"സിം PUK പ്രവർത്തനം പരാജയപ്പെട്ടു!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"കോഡ് അംഗികരിച്ചു!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"സേവനമൊന്നുമില്ല."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ഇൻപുട്ട് രീതി മാറുക"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"ഫ്ലൈറ്റ് മോഡ്"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ഉപകരണം പുനരാരംഭിച്ചതിന് ശേഷം പാറ്റേൺ ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ഉപകരണം പുനരാരംഭിച്ചതിന് ശേഷം പിൻ ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ഉപകരണം പുനരാരംഭിച്ചതിന് ശേഷം പാസ്‌വേഡ് ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"അധിക സുരക്ഷയ്ക്ക് പാറ്റേൺ ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"അധിക സുരക്ഷയ്ക്ക് പിൻ ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"അധിക സുരക്ഷയ്ക്ക് പാസ്‌വേഡ് ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"പ്രൊഫൈലുകൾ തമ്മിൽ മാറുമ്പോൾ പാറ്റേൺ ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"പ്രൊഫൈലുകൾ തമ്മിൽ മാറുമ്പോൾ പിൻ ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"പ്രൊഫൈലുകൾ തമ്മിൽ മാറുമ്പോൾ പാസ്‌വേഡ് ആവശ്യമാണ്"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"ഉപകരണത്തെ ഉപകരണ അഡ്മിനിസ്ട്രേറ്റർ ലോക്കുചെയ്തു"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"ഉപകരണം നേരിട്ട് ലോക്കുചെയ്തു"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">ഉപകരണം <xliff:g id="NUMBER_1">%d</xliff:g> മണിക്കൂറായി അൺലോക്ക് ചെയ്തിട്ടില്ല. പാറ്റേൺ സ്ഥിരീകരിക്കുക.</item>
-      <item quantity="one">ഉപകരണം <xliff:g id="NUMBER_0">%d</xliff:g> മണിക്കൂറായി അൺലോക്ക് ചെയ്തിട്ടില്ല. പാറ്റേൺ സ്ഥിരീകരിക്കുക.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">ഉപകരണം <xliff:g id="NUMBER_1">%d</xliff:g> മണിക്കൂറായി അൺലോക്ക് ചെയ്തിട്ടില്ല. PIN സ്ഥിരീകരിക്കുക.</item>
-      <item quantity="one">ഉപകരണം <xliff:g id="NUMBER_0">%d</xliff:g> മണിക്കൂറായി അൺലോക്ക് ചെയ്തിട്ടില്ല. PIN സ്ഥിരീകരിക്കുക.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">ഉപകരണം <xliff:g id="NUMBER_1">%d</xliff:g> മണിക്കൂറായി അൺലോക്ക് ചെയ്തിട്ടില്ല. പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക.</item>
-      <item quantity="one">ഉപകരണം <xliff:g id="NUMBER_0">%d</xliff:g> മണിക്കൂറായി അൺലോക്ക് ചെയ്തിട്ടില്ല. പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"തിരിച്ചറിഞ്ഞില്ല"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-mn/strings.xml b/packages/Keyguard/res/values-mn/strings.xml
deleted file mode 100644
index 8641e31..0000000
--- a/packages/Keyguard/res/values-mn/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</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_wrong_pin_code" msgid="2422225591006134936">"Буруу PIN код."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Цэнэглэгдэв"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Цэнэглэж байна"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Хурдан цэнэглэх"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Удаан цэнэглэх"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Цэнэглэгчээ холбоно уу."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Тайлх бол цэсийг дарна уу."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Сүлжээ түгжигдсэн"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM карт байхгүй"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Таблет SIM картгүй."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Утсанд SIM карт байхгүй."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM картыг оруулна уу."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM карт байхгүй эсвэл унших боломжгүй. SIM карт оруулна уу."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Ашиглаж болохгүй SIM карт."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Таны SIM карт бүрмөсөн идэвхгүй болов.\n Өөр SIM карт авах бол өөрийн утасгүй үйлчилгээний нийлүүлэгчтэй холбогдоно уу."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM карт түгжигдсэн."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картны PUK-түгжигдсэн."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM картны түгжээг гаргаж байна…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN талбар"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN талбар"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK талбар"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Дараагийн сэрүүлгийг <xliff:g id="ALARM">%1$s</xliff:g>-д тохируулсан"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Устгах"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Оруулах"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Хээг мартсан"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Буруу хээ"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Нууц үг буруу"</string>
-    <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_multi" msgid="7818515973197201434">"SIM-н PIN кодыг \"<xliff:g id="CARRIER">%1$s</xliff:g>\"-д оруулна уу."</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\"-ыг одоогоор идэвхгүй болгосон байна. Үргэлжлүүлэхийн тулд PUK кодоо оруулна уу. Дэлгэрэнгүй мэдээлэл авахын тулд оператортай холбоо барина уу."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Хүссэн PIN кодоо оруулна уу"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Хүссэн PIN кодоо дахин оруулна уу"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM картны түгжээг гаргаж байна…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4-8 тооноос бүтэх PIN-г бичнэ үү."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK код 8-с цөөнгүй тооноос бүтнэ."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Та PIN кодоо <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу бичив. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> секундын дараа дахин оролдоно уу."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Та PIN кодоо <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу бичив. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> секундын дараа дахин оролдоно уу."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Та тайлах хээг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу зурлаа. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> секундын дараа дахин оролдоно уу."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Та таблетын түгжээг тайлах оролдлогыг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу оруулсан байна. <xliff:g id="NUMBER_1">%2$d</xliff:g>-с илүү удаа буруу хийвэл энэ таблетын тохиргоо дахин шинээр хийгдэх бөгөөд улмаар таблетын дээрх бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Та утасны түгжээг тайлах оролдлогыг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу оруулсан байна. <xliff:g id="NUMBER_1">%2$d</xliff:g>-с илүү удаа буруу хийвэл энэ утасны тохиргоо дахин шинээр хийгдэх бөгөөд улмаар утсан дээрх бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Та таблетын түгжээг тайлах оролдлогыг <xliff:g id="NUMBER">%d</xliff:g>  удаа буруу оруулсан байна. Энэ таблетын тохиргоо дахин шинээр хийгдэх бөгөөд улмаар таблетан дээрх бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Та утасны түгжээг тайлах оролдлогыг <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оруулсан байна. Энэ утасны тохиргоо дахин шинээр хийгдэх бөгөөд улмаар утсан дээрх бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Та таблетын түгжээг тайлах оролдлогыг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу хийсэн байна. <xliff:g id="NUMBER_1">%2$d</xliff:g>-с илүү удаа буруу хийвэл энэ хэрэглэгч устгагдах бөгөөд энэ нь улмаар хэрэглэгчийн бүх мэдээллийг устгах болно."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Та утасны түгжээг тайлах оролдлогыг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу хийсэн байна. <xliff:g id="NUMBER_1">%2$d</xliff:g>-с илүү удаа буруу хийвэл энэ хэрэглэгч устгагдах бөгөөд энэ нь улмаар хэрэглэгчийн бүх мэдээллийг устгах болно."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Та таблетын түгжээг тайлах оролдлогыг  <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оруулсан байна. Энэ хэрэглэгч устгагдаж, улмаар хэрэглэгчийн бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Та утасны түгжээг тайлах оролдлогыг <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оруулсан байна. Энэ хэрэглэгч устгагдаж, улмаар хэрэглэгчийн бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Та таблетын түгжээг тайлах оролдлогыг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу хийсэн байна. <xliff:g id="NUMBER_1">%2$d</xliff:g>-с илүү удаа буруу хийвэл ажлын профайл устгагдах бөгөөд энэ нь улмаар профайлын бүх мэдээллийг устгах болно."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Та утасны түгжээг тайлах оролдлогыг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу хийсэн байна. <xliff:g id="NUMBER_1">%2$d</xliff:g>-с илүү удаа буруу хийвэл ажлын профайл устгагдах бөгөөд энэ нь улмаар профайлын бүх мэдээллийг устгах болно."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Та таблетын түгжээг тайлах оролдлогыг <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оруулсан байна. Ажлын профайл устгагдаж, улмаар профайлын бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Та утасны түгжээг тайлах оролдлогыг <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оруулсан байна. Ажлын профайл устгагдаж, улмаар профайлын бүх мэдээлэл устах болно."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Та тайлах хээг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу зурлаа. <xliff:g id="NUMBER_1">%2$d</xliff:g> удаа дахин буруу оруулбал, та таблетаа тайлахын тулд имэйл бүртгэл шаардлагатай болно.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундын дараа дахин оролдоно уу."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Та тайлах хээг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу зурлаа. <xliff:g id="NUMBER_1">%2$d</xliff:g> удаа дахин буруу оруулбал, та утсаа тайлахын тулд имэйл бүртгэлээ ашиглах шаардлагатай болно.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундын дараа дахин оролдоно уу."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"СИМ ПИН код буруу, та төхөөрөмжийн түгжээг тайлахын тулд оператор компанитай холбоо барих шаардлагатай."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">СИМ-ны ПИН код буруу байна. Та <xliff:g id="NUMBER_1">%d</xliff:g> удаа оролдлого хийх боломжтой байна.</item>
-      <item quantity="one">СИМ-ны ПИН код буруу байна. Танд мобайл оператортойгоо холбогдохгүйгээр төхөөрөмжийн түгжээг тайлахад <xliff:g id="NUMBER_0">%d</xliff:g> оролдлого хийх боломж үлдсэн байна.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"СИМ ашиглах боломжгүй. Өөрийн оператор компанитай холбоо барина уу."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">]СИМ-ны PUK код буруу байна. Таны СИМ хаагдах хүртэл төхөөрөмжийн түгжээг тайлахад <xliff:g id="NUMBER_1">%d</xliff:g> .оролдлого хийх боломж үлдсэн байна.</item>
-      <item quantity="one">СИМ-ны PUK код буруу байна. Таны СИМ хаагдах хүртэл төхөөрөмжийн түгжээг тайлахад <xliff:g id="NUMBER_0">%d</xliff:g> оролдлого хийх боломж үлдсэн байна.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"СИМ ПИН ажиллуулах амжилтгүй боллоо!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"СИМ ПҮК ажиллуулах амжилтгүй боллоо!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Код зөвшөөрөгдлөө!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Үйлчилгээ байхгүй."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Оролтын аргыг солих"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Нислэгийн горим"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Төхөөрөмжийг дахин эхлүүлсний дараа зурган түгжээ оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Төхөөрөмжийг дахин эхлүүлсний дараа PIN оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Төхөөрөмжийг дахин эхлүүлсний дараа нууц үгээ оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Аюулгүй байдлын үүднээс зурган түгжээ оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Аюулгүй байдлын үүднээс PIN оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Аюулгүй байдлын үүднээс нууц үг оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Профайлыг солиход зурган түгжээ оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Профайлыг солиход PIN оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Профайлыг солиход нууц үг оруулах шаардлагатай"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Төхөөрөмжийн админ төхөөрөмжийг түгжсэн"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Төхөөрөмжийг гараар түгжсэн"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Төхөөрөмжийн түгжээг <xliff:g id="NUMBER_1">%d</xliff:g> цагийн турш тайлаагүй байна. Зурган хээг баталгаажуулна уу.</item>
-      <item quantity="one">Төхөөрөмжийн түгжээг <xliff:g id="NUMBER_0">%d</xliff:g> цагийн турш тайлаагүй байна. Зурган хээг баталгаажуулна уу.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Төхөөрөмжийн түгжээг <xliff:g id="NUMBER_1">%d</xliff:g> цагийн турш тайлаагүй байна. PIN-ээ баталгаажуулна уу.</item>
-      <item quantity="one">Төхөөрөмжийн түгжээг <xliff:g id="NUMBER_0">%d</xliff:g> цагийн турш тайлаагүй байна. PIN-ээ баталгаажуулна уу.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Төхөөрөмжийн түгжээг <xliff:g id="NUMBER_1">%d</xliff:g> цагийн турш тайлаагүй байна. Нууц үгээ баталгаажуулна уу.</item>
-      <item quantity="one">Төхөөрөмжийн түгжээг <xliff:g id="NUMBER_0">%d</xliff:g> цагийн турш тайлаагүй байна. Нууц үгээ баталгаажуулна уу.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Танигдахгүй байна"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-mr/strings.xml b/packages/Keyguard/res/values-mr/strings.xml
deleted file mode 100644
index 8bcaad6..0000000
--- a/packages/Keyguard/res/values-mr/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"पिन कोड टाइप करा"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"सिम PUK आणि नवीन पिन कोड टाइप करा"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"सिम PUK कोड"</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">"अनलॉक करण्यासाठी पिन टाइप करा"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"अयोग्य पिन कोड."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"चार्ज झाली"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"चार्ज होत आहे"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"द्रुतपणे चार्ज होत आहे"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"हळूहळू चार्ज होत आहे"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"आपले चार्जर कनेक्ट करा."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"अनलॉक करण्यासाठी मेनू दाबा."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"नेटवर्क लॉक केले"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"सिम कार्ड नाही"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"टॅब्‍लेट मध्‍ये सिम कार्ड नाही."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"फोनमध्‍ये सिम कार्ड नाही."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"एक सिम कार्ड घाला."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"सिम कार्ड गहाळ झाले आहे किंवा ते वाचनीय नाही. एक सिम कार्ड घाला."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"निरूपयोगी सिम कार्ड."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"आपले सिम कार्ड कायमचे अक्षम केले गेले आहे.\n दुसर्‍या सिम कार्डसाठी आपल्‍या वायरलेस सेवा प्रदात्‍यासह संपर्क साधा."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"सिम कार्ड लॉक झाले आहे."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"सिम कार्ड PUK-लॉक केलेले आहे."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"सिम कार्ड अनलॉक करत आहे…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"पिन क्षेत्र"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"सिम पिन क्षेत्र"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"सिम PUK क्षेत्र"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"पुढील अलार्म <xliff:g id="ALARM">%1$s</xliff:g> साठी सेट केला"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"हटवा"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"प्रविष्ट करा"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"नमुना विसरलात"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"चुकीचा नमुना"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"चुकीचा संकेतशब्द"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"चुकीचा पिन"</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">"सिम पिन प्रविष्ट करा"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" साठी सिम पिन प्रविष्ट करा"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"पिन प्रविष्ट करा"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"संकेतशब्द प्रविष्ट करा"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"सिम आता अक्षम केले आहे. सुरु ठेवण्यासाठी PUK कोड प्रविष्ट करा. तपशीलांसाठी वाहकाशी संपर्क साधा."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" सिम आता अक्षम आहे. सुरु ठेवण्यासाठी PUK कोड प्रविष्ट करा. तपशीलांसाठी वाहकाशी संपर्क साधा."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"इच्छित पिन कोड प्रविष्ट करा"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"इच्छित पिन कोड ची पुष्टी करा"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"सिम कार्ड अनलॉक करत आहे…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4 ते 8 अंक असलेला पिन टाइप करा."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK कोड 8 अंकी किंवा त्यापेक्षा अधिकचा असावा."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"योग्य PUK कोड पुन्हा-प्रविष्ट करा. परत प्रयत्न करणे सिम कायमचे अक्षम करेल."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"पिन कोड जुळत नाहीत"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"बरेच नमुना प्रयत्न"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"आपण आपला पिन <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा अयोग्यरितीने टाइप केला आहे. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकंदांमध्ये पुन्हा प्रयत्न करा."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"आपण आपला संकेतशब्द <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा अयोग्यरितीने टाइप केला आहे. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकंदांमध्ये पुन्हा प्रयत्न करा."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"आपण आपला अनलॉक नमुना <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा अयोग्यरितीने काढला आहे. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकंदांमध्ये पुन्हा प्रयत्न करा."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"आपण अनलॉक करण्याचा <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा टॅबलेट चुकीच्या पद्धतीने प्रयत्न केला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, हा टॅबलेट रीसेट केला जाईल, जे त्याचा सर्व डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"आपण फोन अनलॉक करण्याचा <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, हा फोन रीसेट केला जाईल, जे त्याचा सर्व डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"आपण टॅबलेट अनलॉक करण्याचा <xliff:g id="NUMBER">%d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. हा टॅबलेट रीसेट केला जाईल, जो त्याचा सर्व डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"आपण फोन अनलॉक करण्याचा <xliff:g id="NUMBER">%d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. हा फोन रीसेट केला जाईल, जे त्याचा सर्व डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"आपण टॅबलेट अनलॉक करण्याचा <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, हा वापरकर्ता काढला जाईल, जे सर्व वापरकर्ता डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"आपण फोन अनलॉक करण्याचा <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, हा वापरकर्ता काढला जाईल, जे सर्व वापरकर्ता डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"आपण टॅबलेट अनलॉक करण्याचा <xliff:g id="NUMBER">%d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. हा वापरकर्ता काढला जाईल, जे सर्व वापरकर्ता डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"आपण फोन अनलॉक करण्याचा <xliff:g id="NUMBER">%d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. हा वापरकर्ता काढला जाईल, जे सर्व वापरकर्ता डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"आपण टॅबलेट अनलॉक करण्याचा <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, कार्य प्रोफाईल काढले जाईल, जे सर्व प्रोफाईल डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"आपण फोन अनलॉक करण्याचा <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, कार्य प्रोफाईल काढले जाईल, जे सर्व प्रोफाईल डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"आपण टॅबलेट अनलॉक करण्याचा <xliff:g id="NUMBER">%d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. कार्य प्रोफाईल काढले जाईल, जे सर्व प्रोफाईल डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"आपण फोन अनलॉक करण्याचा <xliff:g id="NUMBER">%d</xliff:g> वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. कार्य प्रोफाईल काढले जाईल, जे सर्व प्रोफाईल डेटा हटवेल."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"आपण आपला अनलॉक नमुना <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा अयोग्यपणे काढला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, आपल्याला ईमेल खाते वापरून आपला टॅबलेट अनलॉक करण्यास सांगितले जाईल.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकंदांमध्ये पुन्हा प्रयत्न करा."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"आपण आपला अनलॉक नमुना <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा अयोग्यपणे काढला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, आपल्याला ईमेल खाते वापरून आपला फोन अनलॉक करण्यास सांगितले जाईल.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकंदांमध्ये पुन्हा प्रयत्न करा."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"सिम पिन कोड चुकीचा आहे आपण आता आपले डिव्‍हाइस अनलॉक करण्‍यासाठी आपल्‍या वाहकाशी संपर्क साधावा."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">सिम पिन चुकीचा आहे, आपल्याकडे <xliff:g id="NUMBER_1">%d</xliff:g> प्रयत्न उर्वरित आहे.</item>
-      <item quantity="other">सिम पिन चुकीचा आहे, आपल्याकडे <xliff:g id="NUMBER_1">%d</xliff:g> प्रयत्न उर्वरित आहेत.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"सिम निरुपयोगी आहे. आपल्या वाहकाशी संपर्क साधा."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">सिम PUK कोड चुकीचा आहे, सिम कायमचे निरूपयोगी होण्यापूर्वी आपल्याकडे <xliff:g id="NUMBER_1">%d</xliff:g> प्रयत्न उर्वरित आहे.</item>
-      <item quantity="other">सिम PUK कोड चुकीचा आहे, सिम कायमचे निरूपयोगी होण्यापूर्वी आपल्याकडे <xliff:g id="NUMBER_1">%d</xliff:g> प्रयत्न उर्वरित आहेत.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"सिम पिन कार्य अयशस्‍वी झाले!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"सिम PUK कार्य अयशस्‍वी झाले!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"कोड स्‍वीकारला!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"सेवा नाही."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"इनपुट पद्धत स्विच करा"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"विमान मोड"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"डिव्‍हाइस रीस्टार्ट झाल्यावर नमुना आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"डिव्‍हाइस रीस्टार्ट झाल्यावर पिन आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"डिव्‍हाइस रीस्टार्ट झाल्यावर संकतेशब्द आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"अतिरिक्त सुरक्षिततेसाठी नमुना आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"अतिरिक्त सुरक्षिततेसाठी पिन आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"अतिरिक्त सुरक्षिततेसाठी संकेतशब्द आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"आपण प्रोफाईल स्विच करता तेव्‍हा नमुना आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"आपण प्रोफाईल स्विच करता तेव्‍हा पिन आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"आपण प्रोफाईल स्विच करता तेव्‍हा संकेतशब्द आवश्‍यक आहे"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"डिव्हाइस प्रशासकाने डिव्हाइस लॉक केले"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"डिव्हाइस व्यक्तिचलितरित्या लॉक केले होते"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">डिव्‍हाइस <xliff:g id="NUMBER_1">%d</xliff:g> तासासाठी अनलॉक केले गेले नाही. नमुन्याची पुष्टी करा.</item>
-      <item quantity="other">डिव्‍हाइस <xliff:g id="NUMBER_1">%d</xliff:g> तासांसाठी अनलॉक केले गेले नाही. नमुन्याची पुष्टी करा.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">डिव्‍हाइस <xliff:g id="NUMBER_1">%d</xliff:g> तासासाठी अनलॉक केले गेले नाही. पिन ची पुष्टी करा.</item>
-      <item quantity="other">डिव्‍हाइस <xliff:g id="NUMBER_1">%d</xliff:g> तासांसाठी अनलॉक केले गेले नाही. पिन ची पुष्टी करा.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">डिव्‍हाइस <xliff:g id="NUMBER_1">%d</xliff:g> तासासाठी अनलॉक केले गेले नाही. संकेतशब्दाची पुष्टी करा.</item>
-      <item quantity="other">डिव्‍हाइस <xliff:g id="NUMBER_1">%d</xliff:g> तासांसाठी अनलॉक केले गेले नाही. संकेतशब्दाची पुष्टी करा.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ओळखले नाही"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ms/strings.xml b/packages/Keyguard/res/values-ms/strings.xml
deleted file mode 100644
index b7b093f..0000000
--- a/packages/Keyguard/res/values-ms/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Pengawal kekunci"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Taip kod PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Taip PUK SIM dan kod PIN baharu"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Kod PUK SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Kod PIN SIM baharu"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Sentuh untuk menaip kata laluan"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Taip kata laluan untuk membuka kunci"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Taip PIN untuk membuka kunci"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Kod PIN salah."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Sudah dicas"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Mengecas"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Mengecas dengan cepat"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Mengecas dengan perlahan"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Sambungkan pengecas anda."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Tekan Menu untuk membuka kunci."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Rangkaian dikunci"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Tiada kad SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Tiada kad SIM dalam tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Tiada kad SIM dalam telefon."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Masukkan kad SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Kad SIM tiada atau tidak boleh dibaca. Sila masukkan kad SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Kad SIM tidak boleh digunakan."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Kad SIM anda telah dilumpuhkan secara kekal.\n Hubungi pembekal perkhidmatan wayarles anda untuk mendapatkan kad SIM lain."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Kad SIM dikunci."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Kad SIM dikunci dengan PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Membuka kunci kad SIM..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Kawasan PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Kawasan PIN SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Kawasan PUK SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Penggera seterusnya ditetapkan pada <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Padam"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Masuk"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Corak"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Corak Salah"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Kata Laluan Salah"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN salah"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Cuba lagi dalam <xliff:g id="NUMBER">%d</xliff:g> saat."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Lukiskan corak anda"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Masukkan PIN SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Masukkan PIN SIM untuk \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Masukkan PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Masukkan Kata Laluan"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Kini SIM dilumpuhkan. Masukkan kod PUK untuk meneruskan. Hubungi pembawa untuk butiran."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" kini dilumpuhkan. Masukkan kod PUK untuk meneruskan. Hubungi pembawa untuk mendapatkan maklumat lanjut."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Masukkan kod PIN yang diingini"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Sahkan kod PIN yang diingini"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Membuka kunci kad SIM..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Taipkan PIN yang mengandungi 4 hingga 8 nombor."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Kod PUK mestilah 8 nombor atau lebih."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Masukkan semula kod PIN yang betul. Percubaan berulang akan melumpuhkan SIM secara kekal."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kod PIN tidak sepadan"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Terlalu banyak percubaan melukis corak"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Anda telah menaip PIN yang salah sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. \n\nCuba lagi dalam <xliff:g id="NUMBER_1">%2$d</xliff:g> saat."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Anda telah menaip kata laluan yang salah sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. \n\nCuba lagi dalam <xliff:g id="NUMBER_1">%2$d</xliff:g> saat."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Anda telah tersilap melukis corak buka kunci anda sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. \n\nCuba lagi dalam <xliff:g id="NUMBER_1">%2$d</xliff:g> saat."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Anda telah salah membuka kunci tablet sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang gagal, tablet ini akan ditetapkan semula sekali gus memadam semua data."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Anda telah salah membuka kunci telefon sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang gagal, telefon ini akan ditetapkan semula sekali gus memadam semua data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Anda telah salah membuka kunci tablet sebanyak <xliff:g id="NUMBER">%d</xliff:g> kali. Tablet ini akan ditetapkan semula sekali gus memadam semua datanya."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Anda telah salah membuka kunci telefon sebanyak <xliff:g id="NUMBER">%d</xliff:g> kali. Telefon ini akan ditetapkan semula sekali gus memadam semua datanya."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Anda telah salah membuka kunci tablet sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang gagal, pengguna ini akan dialih keluar sekali gus memadam semua data pengguna."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Anda telah salah membuka kunci telefon sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang gagal, pengguna ini akan dialih keluar sekali gus memadam semua data pengguna."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Anda telah salah membuka kunci tablet sebanyak <xliff:g id="NUMBER">%d</xliff:g> kali. Pengguna ini akan dialih keluar sekali gus memadam semua data pengguna."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Anda telah salah membuka kunci telefon sebanyak <xliff:g id="NUMBER">%d</xliff:g> kali. Pengguna ini akan dialih keluar sekali gus memadam semua data pengguna."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Anda telah salah membuka kunci tablet sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang gagal, profil kerja anda akan dialih keluar sekali gus memadam semua data profil."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Anda telah salah membuka kunci telefon sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang gagal, profil kerja ini akan dialih keluar sekali gus memadam semua data profil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Anda telah salah membuka kunci tablet sebanyak <xliff:g id="NUMBER">%d</xliff:g> kali. Profil kerja ini akan dialih keluar sekali gu memadam semua data profil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Anda telah salah membuka kunci telefon sebanyak <xliff:g id="NUMBER">%d</xliff:g> kali. Profil kerja ini akan dialih keluar sekali gus memadam semua data profil."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Anda telah tersilap melukis corak buka kunci sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang tidak berjaya, anda akan diminta membuka kunci tablet anda menggunakan log masuk Google anda.\n\n Cuba lagi dalam <xliff:g id="NUMBER_2">%3$d</xliff:g> saat."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Anda telah tersilap lukis corak buka kunci sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang tidak berjaya, anda akan diminta membuka kunci telefon anda menggunakan log masuk Google anda.\n\n Cuba lagi dalam <xliff:g id="NUMBER_2">%3$d</xliff:g> saat."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Kod PIN SIM tidak betul, jadi anda harus menghubungi pembawa anda untuk membuka kunci peranti."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Kod PIN SIM salah, anda ada <xliff:g id="NUMBER_1">%d</xliff:g> cubaan lagi.</item>
-      <item quantity="one">Kod PIN SIM tidak betul. Anda ada <xliff:g id="NUMBER_0">%d</xliff:g> cubaan lagi sebelum anda harus menghubungi pembawa anda untuk membuka kunci peranti.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM tidak boleh digunakan. Hubungi pembawa anda."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Kod PUK SIM tidak betul, anda ada <xliff:g id="NUMBER_1">%d</xliff:g> cubaan lagi sebelum SIM tidak boleh digunakan secara kekal.</item>
-      <item quantity="one">Kod PUK SIM tidak betul, anda ada <xliff:g id="NUMBER_0">%d</xliff:g> cubaan lagi sebelum SIM tidak boleh digunakan secara kekal.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Operasi PIN SIM gagal!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operasi PUK SIM gagal!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kod Diterima!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Tiada perkhidmatan."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Tukar kaedah masukan"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Mod Pesawat"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Corak diperlukan setelah peranti dimulakan semula"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN diperlukan setelah peranti dimulakan semula"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Kata laluan diperlukan setelah peranti dimulakan semula"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Corak diperlukan untuk keselamatan tambahan"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN diperlukan untuk keselamatan tambahan"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Kata laluan diperlukan untuk keselamatan tambahan"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Corak diperlukan apabila anda menukar profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN diperlukan apabila anda menukar profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Kata laluan diperlukan apabila anda menukar profil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Pentadbir peranti mengunci peranti"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Peranti telah dikunci secara manual"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Peranti tidak dibuka kuncinya selama <xliff:g id="NUMBER_1">%d</xliff:g> jam. Sahkan corak.</item>
-      <item quantity="one">Peranti tidak dibuka kuncinya selama <xliff:g id="NUMBER_0">%d</xliff:g> jam. Sahkan corak.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Peranti tidak dibuka kuncinya selama <xliff:g id="NUMBER_1">%d</xliff:g> jam. Sahkan PIN.</item>
-      <item quantity="one">Peranti tidak dibuka kuncinya selama <xliff:g id="NUMBER_0">%d</xliff:g> jam. Sahkan PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Peranti tidak dibuka kuncinya selama <xliff:g id="NUMBER_1">%d</xliff:g> jam. Sahkan kata laluan.</item>
-      <item quantity="one">Peranti tidak dibuka kuncinya selama <xliff:g id="NUMBER_0">%d</xliff:g> jam. Sahkan kata laluan.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Tidak dicam"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-my/strings.xml b/packages/Keyguard/res/values-my/strings.xml
deleted file mode 100644
index 7a7664e..0000000
--- a/packages/Keyguard/res/values-my/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="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_wrong_pin_code" msgid="2422225591006134936">"ပင်နံပါတ်မှားနေပါသည်"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"အားသွင်းပြီးပါပြီ"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"အားသွင်းနေ"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"လျှင်မြန်စွာ အားသွင်းနေသည်"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"နှေးကွေးစွာ အားသွင်းနေသည်"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"အားသွင်းကြိုးဖြင့် ဆက်သွယ်ပါ"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"မီနူးကို နှိပ်ခြင်းဖြင့် သော့ဖွင့်ပါ"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ကွန်ရက် သော့ကျနေခြင်း"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"ဆင်းမ်ကဒ်မရှိပါ"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"တက်ဘလက်ထဲတွင်း ဆင်းမ်ကဒ် မရှိပါ"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ဖုန်းထဲတွင် ဆင်းမ်ကဒ် မရှိပါ"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ဆင်းမ်ကဒ်ကို ထည့်ပါ"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"ဆင်းမ်ကဒ် ပျောက်ဆုံးခြင်း သို့ ဖတ်လို့ မရပါ။ ဆင်းမ်ကဒ်ကို ထည့်ပါ"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"ဆင်းမ်ကဒ် သုံးလို့ မရပါ"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"ဆင်းမ်ကဒ် က လုံး၀ ပြန်ဖွင့်လို့ မရတော့ါ.\n နောက် ကဒ် တစ်ခုအတွက် ဝန်ဆောင်မှုပေးသူနှင့် ဆက်သွယ်ပါ"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ဆင်းမ်ကဒ် သော့ကျနေပါသည်"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ဆင်းမ်ကဒ် ရဲ့ ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် သော့ကျနေပါသည်"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ဆင်းမ်ကဒ် ကို သော့ဖွင့်နေပါသည်"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN နေရာ"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN နေရာ"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK နေရာ"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> အတွက် နောက် သတိပေးရန် သတ်မှတ်ချက်"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ဖျက်ရန်"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enterခလုတ်"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ပုံဖော်မှုအား မေ့လျော့ခြင်း"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"ပုံဆွဲအမှား"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"စကားဝှက်အမှား"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"ပင် နံပါတ်အမှား"</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">"ဆင်းမ်ကဒ် ပင် နံပါတ် ရိုက်ထည့်ပါ"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" အတွက် ဆင်းမ် ပင်နံပါတ် ရိုက်ထည့်ပါ။"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"ပင်နံပါတ် ရိုက်ထည့်ပါ"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"လျို့ဝှက်နံပါတ် ရိုက်ထည့်ပါ"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"ဆင်းမ်ကဒ်သည် ယခု ပိတ်သွားပါပြီ ဆက်လက် လုပ်ဆောင်ရန် ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ်ကို ရိုက်ထည့်ပါ။ ပိုမိုသိချင်လျင် ဖုန်းဝန်ဆောင်မှု ပေးသောဌာန အားဆက်သွယ်နိုင်ပါသည်။"</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"ဆင်းမ် \"<xliff:g id="CARRIER">%1$s</xliff:g>\" သည် ယခု အလုပ်မလုပ်တော့ပါ။ ဆက်လက်သွားရန် PUK ကုဒ် ရိုက်ထည့်ပါ၊။အသေးစိတ်သိရရန် ဖုန်းဝန်ဆောင်မှုလုပ်ငန်းအား ဆက်သွယ်ပါ။"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"လိုချင်သော ပင်နံပါတ်ကို ရိုက်ထည့်ပါ"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"လိုချင်သော ပင်နံပါတ်ကို အတည်ပြုရန်"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"ဆင်းမ်ကဒ် ကို သော့ဖွင့်နေပါသည်"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"ဂဏန်း၄ လုံးမှ ၈ လုံးအထိ ရှိသော ပင်နံပါတ် ရိုက်ထည့်ပါ"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ်သည် ဂဏန်း ၈ လုံး သို့ ၈လုံး ထက် ကျော်ရပါမည်။"</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ်ကို ပြန်လည် ရိုက်ထည့်ပါ.။ ထပ်ခါ ထပ်ခါ ကြိုးစားခြင်းသည် ဆင်းမ်ကဒ်ကို အသုံးပြုမရအောင် ဖြစ်နေနိုင်ပါသည်။"</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"ပင် နံပါတ် မတူညီပါ"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"မြောက်မြားစွာ ပုံစံဆွဲ သော့ဖွင့်မှု"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"သင် ပင် နံပါတ်ကို အမှားကို <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် ရိုက်ထည့်ပြီးပါပြီ။ \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> စက္ကန့် အကြာတွင် ပြန်လည်ကြိုးစားပါ"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"သင်သည် စကားဝှက်ကို  <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် မှားရိုက်ပြီးပါပြီ။ \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> စက္ကန့်အကြာ ပြန်လည်ကြိုးစားပါ"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"သင် ပုံစံဆွဲ သော့ဖွင့်ခြင်းကို <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ်မြောက် မအောင်မြင်ပါ။ \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> စက္ကန့်အကြာတွင် ပြန်လည် ကြိုးစားပါ"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"တက်ဘလက်အား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ <xliff:g id="NUMBER_1">%2$d</xliff:g> ကြိမ် ကြိုးစားပြီးနောက် မအောင်မြင်ပါက၊ ဤတက်ဘလက်အား အစမှပြန်စဖွင့်မည်ဖြစ်ပြီး၊ ၎င်း၏ဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"ဖုန်းအား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ <xliff:g id="NUMBER_1">%2$d</xliff:g> ကြိမ် ကြိုးစားပြီးနောက် မအောင်မြင်ပါက၊ ဤဖုန်းအား အစမှပြန်စဖွင့်မည်ဖြစ်ပြီး၊ ၎င်း၏ဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"တက်ဘလက်အား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER">%d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ ဤဖုန်းအား အစမှပြန်စဖွင့်မည်ဖြစ်ပြီး၊ ၎င်း၏ဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"ဖုန်းအား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER">%d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ ဤဖုန်းအား အစမှပြန်စဖွင့်မည်ဖြစ်ပြီး၊ ၎င်း၏ဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"တက်ဘလက်အား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ <xliff:g id="NUMBER_1">%2$d</xliff:g> ကြိမ် ကြိုးစားပြီးနောက် မအောင်မြင်ပါက၊ ဤအသုံးပြုသူအား ဖယ်ထုတ်ခြင်းခံရမည်ဖြစ်ပြီး၊ အသုံးပြုသူဒေတာအားလုံး ပျက်သွားပါမည်။"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"ဖုန်းအား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ <xliff:g id="NUMBER_1">%2$d</xliff:g> ကြိမ် ကြိုးစားပြီးနောက် မအောင်မြင်ပါက၊ ဤအသုံးပြုသူအား ဖယ်ထုတ်ခြင်းခံရမည်ဖြစ်ပြီး၊ အသုံးပြုသူဒေတာအားလုံး ပျက်သွားပါမည်။"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"တက်ဘလက်အား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER">%d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ ဤအသုံးပြုသူအား ဖယ်ထုတ်မည်ဖြစ်ပြီး၊ အသုံးပြုသူဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"ဖုန်းအား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER">%d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ ဤအသုံးပြုသူအား ဖယ်ထုတ်မည်ဖြစ်ပြီး၊ အသုံးပြုသူဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"တက်ဘလက်အား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ <xliff:g id="NUMBER_1">%2$d</xliff:g> ကြိမ် ကြိုးစားပြီးနောက် မအောင်မြင်ပါက၊ သင့် အလုပ်ပရိုဖိုင်အား ဖယ်ထုတ်ခြင်းခံရမည်ဖြစ်ပြီး၊ ပရိုဖိုင်ဒေတာအားလုံး ပျက်သွားပါမည်။"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"ဖုန်းအား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER_0">%1$d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ <xliff:g id="NUMBER_1">%2$d</xliff:g> ကြိမ် ကြိုးစားပြီးနောက် မအောင်မြင်ပါက၊ သင့် အလုပ်ပရိုဖိုင်အား ဖယ်ထုတ်ခြင်းခံရမည်ဖြစ်ပြီး၊ ပရိုဖိုင်ဒေတာအားလုံး ပျက်သွားပါမည်။"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"တက်ဘလက်အား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER">%d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ အလုပ်ပရိုဖိုင် ဖယ်ထုတ်ခံရမည်ဖြစ်ပြီး၊ ပရိုဖိုင်ဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"ဖုန်းအား သော့ဖွင့်ရန် သင် <xliff:g id="NUMBER">%d</xliff:g> ကြိမ် ကြိုးစားရာ မမှန်ကန်ခဲ့ပါ။ အလုပ်ပရိုဖိုင် ဖယ်ထုတ်ခံရမည်ဖြစ်ပြီး၊ ပရိုဖိုင်ဒေတာအားလုံး ပျက်သွားမည်ဖြစ်သည်။"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"သင် ပုံဖော်၍သော့ဖွင့်ခြင်းကို  <xliff:g id="NUMBER_0">%1$d</xliff:g> အကြိမ် မှန်ကန်စွာ မပြုလုပ်နိုင်ပါ။  နောက်ထပ် <xliff:g id="NUMBER_1">%2$d</xliff:g> အကြိမ် မမှန်ကန်ပါက သင့်တက်ဘလက်အား အီးမေးလ်အသုံးပြု၍ သော့ဖွင့်ရန် တောင်းဆိုပါလိမ့်မည်။ \n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> စက္ကန့်အကြာတွင် ပြန်လည် ကြိုးစားပါ"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"သင် ပုံဖော်၍သော့ဖွင့်ခြင်းကို <xliff:g id="NUMBER_0">%1$d</xliff:g> အကြိမ် မှန်ကန်စွာ မပြုလုပ်နိုင်ပါ။ နောက်ထပ် <xliff:g id="NUMBER_1">%2$d</xliff:g> အကြိမ် မမှန်ကန်ပါက သင့်ဖုန်းအား အီးမေးလ်အသုံးပြု၍ သော့ဖွင့်ရန် တောင်းဆိုပါလိမ့်မည်။ \n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> စက္ကန့်အကြာတွင် ပြန်လည် ကြိုးစားပါ"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"ဆင်းကဒ် လျှို့ဝှက် အမှတ် မှားယွင်းပါသည်, ဖုန်းလိုင်းဌာနကို ဆက်သွယ်ရမည် ဖြစ်ပါတယ်"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">ဆင်းမ်ကဒ်၏ ပင်နံပါတ် မှားနေပါသည်၊ သင့်တွင်<xliff:g id="NUMBER_1">%d</xliff:g> ခါ ကြိုးစားခွင့် ကျန်ပါသေးသည်။</item>
-      <item quantity="one">ဆင်းမ်ကဒ်၏ ပင်နံပါတ် မှားနေပါသည်၊ သင့်ကိရိယာကို ဖွင့်ရန်  မိုဘိုင်းဖုန်းဆက်သွယ်ရေးဝန်ဆောင်မှုဌာနသို့ မဆက်သွယ်မီ သင့်တွင် <xliff:g id="NUMBER_0">%d</xliff:g> ခါ ကြိုးစားခွင့် ကျန်ပါသေးသည်။</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"ဆင်းမ်ကဒ်သုံးလို့မရတော့ပါ. ဖုန်းလိုင်းဌာနကို ဆက်သွယ်ပါ"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">ဆင်းမ်ကဒ်၏ ပင်နံပါတ်ပြန်ဖွင့်သည့် ကုဒ် (PUK) မမှန်ပါ၊ ဆင်းမ်ကဒ်သည် ဆက်လက်အသုံးမပြုနိုင်အောင် မဖြစ်လာခင် သင့်တွင် <xliff:g id="NUMBER_1">%d</xliff:g>ခါ ကြိုးစားခွင့်များကျန်ပါသေးသည်။</item>
-      <item quantity="one">ဆင်းမ်ကဒ်၏ ပင်နံပါတ်ပြန်ဖွင့်သည့် ကုဒ် (PUK) မမှန်ပါ၊ ဆင်းမ်ကဒ်သည် ဆက်လက်အသုံးမပြုနိုင်အောင် မဖြစ်လာခင် သင့်တွင် <xliff:g id="NUMBER_0">%d</xliff:g> ခါ ကြိုးစားခွင့်ကျန်ပါသေးသည်။</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"ဆင်းမ်ကဒ် ပင် လုပ်ဆောင်မှု မအောင်မြင်ပါ"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် လုပ်ဆောင်မှု မအောင်မြင်ပါ"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"ကုဒ်နံပါတ်ကို လက်ခံလိုက်ပါသည်"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"ဆားဗစ် မရှိပါ"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ထည့်သွင်းမှုနည်းလမ်းကို ပြောင်းလဲပါ"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"လေယာဉ်ပေါ်သုံးစနစ်"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ကိရိယာကို ပြန်ဖွင့်လျှင် ပုံစံ လိုအပ်ပါသည်"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ကိရိယာကို ပြန်ဖွင့်လျှင် PIN လိုအပ်ပါသည်"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ကိရိယာကို ပြန်ဖွင့်လျှင် စကားဝှက် လိုအပ်ပါသည်"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"ပိုပြီး လုံခြုံစေရန် ပုံစံ လိုအပ်ပါသည်"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"ပိုပြီး လုံခြုံစေရန် PIN လိုအပ်ပါသည်"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"ပိုပြီး လုံခြုံစေရန် စကားဝှက် လိုအပ်ပါသည်"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"ပရိုဖိုင်များကို သင် ပြောင်းလျှင် ပုံစံ လိုအပါသည်"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"ပရိုဖိုင်များကို သင် ပြောင်းလျှင် PIN လိုအပါသည်"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"ပရိုဖိုင်များကို သင် ပြောင်းလျှင် စကားဝှက် လိုအပါသည်"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"စက်ပစ္စည်းစီမံခန့်ခွဲသူသည် စက်ပစ္စည်းကို လော့ခ်ချထားသည်"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"စက်ပစ္စည်းကို ကိုယ်တိုင်ကိုယ်ကျ လော့ခ်ချထားခဲ့သည်"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">စက်ကိရိယာအား <xliff:g id="NUMBER_1">%d</xliff:g> နာရီကြာ သော့ပိတ်ထား၏။ ပုံစံအား အတည်ပြုပါ။</item>
-      <item quantity="one">စက်ကိရိယာအား <xliff:g id="NUMBER_0">%d</xliff:g> နာရီကြာ သော့ပိတ်ထား၏။ ပုံစံအား အတည်ပြုပါ။</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">စက်ကိရိယာအား <xliff:g id="NUMBER_1">%d</xliff:g> နာရီကြာ သော့ပိတ်ထား၏။ PIN အား အတည်ပြုပါ။</item>
-      <item quantity="one">စက်ကိရိယာအား <xliff:g id="NUMBER_0">%d</xliff:g> နာရီကြာ သော့ပိတ်ထား၏။ PIN အား အတည်ပြုပါ။</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">စက်ကိရိယာအား <xliff:g id="NUMBER_1">%d</xliff:g> နာရီကြာ သော့ပိတ်ထား၏။ စကားဝှက်အား အတည်ပြုပါ။</item>
-      <item quantity="one">စက်ကိရိယာအား <xliff:g id="NUMBER_0">%d</xliff:g> နာရီကြာ သော့ပိတ်ထား၏။ စကားဝှက်အား အတည်ပြုပါ။</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"အသိအမှတ်မပြုပါ"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-nb/strings.xml b/packages/Keyguard/res/values-nb/strings.xml
deleted file mode 100644
index e0035da..0000000
--- a/packages/Keyguard/res/values-nb/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Tastaturlås"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Skriv inn PIN-kode"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Skriv inn PUK-koden for SIM-kortet og en ny PIN-kode"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-koden for SIM-kortet"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Ny PIN-kode for SIM-kortet"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Trykk for å skrive inn passord"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Skriv inn passord for å låse opp"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Skriv inn PIN-kode for å låse opp"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Feil personlig kode."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Oppladet"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Lader"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Lader raskt"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Lader sakte"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Koble til laderen."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Trykk på Meny for å låse opp."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Nettverk låst"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM-kortet mangler"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Nettbrettet mangler SIM-kort."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Telefonen mangler SIM-kort."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Sett inn et SIM-kort."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-kort mangler eller er uleselig. Sett inn et SIM-kort."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Ubrukelig SIM-kort."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM-kortet er deaktivert permanent.\nTa kontakt med leverandøren av trådløstjenesten for å få et nytt SIM-kort."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortet er låst."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortet er PUK-låst."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Låser opp SIM-kortet ..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-området"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-området for SIM-kortet"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-området for SIM-kortet"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Neste alarm er innstilt for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Slett"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glemt mønsteret?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Feil mønster"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Feil passord"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Feil PIN-kode"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Prøv på nytt om <xliff:g id="NUMBER">%d</xliff:g> sekunder."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Tegn mønsteret ditt"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Skriv inn PIN-koden for SIM-kortet"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Skriv inn PIN-koden for SIM-kortet «<xliff:g id="CARRIER">%1$s</xliff:g>»"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Skriv inn PIN-koden"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Skriv inn passordet"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-kortet er nå deaktivert. Skriv inn PUK-koden for å fortsette. Ta kontakt med operatøren for mer informasjon."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-kortet «<xliff:g id="CARRIER">%1$s</xliff:g>» er nå deaktivert. Skriv inn PUK-kode for å fortsette. Kontakt operatøren for detaljer."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Tast inn ønsket PIN-kode"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Bekreft ønsket PIN-kode"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Låser opp SIM-kortet ..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Skriv inn en PIN-kode på fire til åtte sifre."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-koden skal være på åtte eller flere siffer."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Skriv inn den korrekte PUK-koden på nytt. Gjentatte forsøk kommer til å deaktivere SIM-kortet."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-kodene stemmer ikke overens"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"For mange forsøk på tegning av mønster"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Du har oppgitt feil PIN-kode <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. \n\nPrøv på nytt om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Du har tastet inn passordet ditt feil <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. \n\nPrøv på nytt om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Du har tegnet opplåsningsmønsteret ditt feil <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. \n\nPrøv på nytt om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Du har gjort feil i forsøket på å låse opp nettbrettet <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykket forsøk til, tilbakestilles nettbrettet, noe som vil slette alle nettbrettets data."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Du har gjort feil i forsøket på å låse opp telefonen <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykket forsøk til, tilbakestilles telefonen, noe som vil slette alle telefonens data."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Du har gjort feil i forsøket på å låse opp nettbrettet <xliff:g id="NUMBER">%d</xliff:g> ganger. Dette nettbrettet blir nå tilbakestilt, og alle data blir slettet."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Du har gjort feil i forsøket på å låse opp telefonen <xliff:g id="NUMBER">%d</xliff:g> ganger. Denne telefonen blir nå tilbakestilt, og alle data blir slettet.."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Du har gjort feil i forsøket på å låse opp nettbrettet <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykket forsøk til, fjernes brukeren, noe som vil slette alle brukerdata."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Du har gjort feil i forsøket på å låse opp telefonen <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykket forsøk til, fjernes brukeren, noe som vil slette alle brukerdata."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Du har gjort feil i forsøket på å låse opp nettbrettet <xliff:g id="NUMBER">%d</xliff:g> ganger. Denne brukeren blir nå fjernet, og alle brukerdata blir slettet."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Du har gjort feil i forsøket på å låse opp telefonen <xliff:g id="NUMBER">%d</xliff:g> ganger. Denne brukeren blir nå fjernet, og aller brukerdata blir slettet."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Du har gjort feil i forsøket på å låse opp nettbrettet <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykket forsøk til, fjernes arbeidsprofilen, noe som vil slette alle profildata."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Du har gjort feil i forsøket på å låse opp telefonen <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter <xliff:g id="NUMBER_1">%2$d</xliff:g> mislykket forsøk til, fjernes arbeidsprofilen, noe som vil slette alle profildata."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Du har gjort feil i forsøket på å låse opp nettbrettet <xliff:g id="NUMBER">%d</xliff:g> ganger. Arbeidsprofilen blir fjernet, og alle profildata blir slettet."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Du har gjort feil i forsøket på å låse opp telefonen <xliff:g id="NUMBER">%d</xliff:g> ganger. Arbeidsprofilen blir fjernet, og alle profildata blir slettet."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Du har tegnet opplåsningsmønsteret feil <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter ytterligere <xliff:g id="NUMBER_1">%2$d</xliff:g> gale forsøk, blir du bedt om å låse opp nettbrettet via en e-postkonto.\n\n Prøv på nytt om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Du har tegnet opplåsningsmønsteret feil <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter ytterligere <xliff:g id="NUMBER_1">%2$d</xliff:g> gale forsøk, blir du bedt om å låse opp telefonen via en e-postkonto.\n\n Prøv på nytt om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Feil PIN-kode for SIM-kortet. Du må nå kontakte operatøren din for å låse opp enheten."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Feil PIN-kode for SIM-kortet. Du har <xliff:g id="NUMBER_1">%d</xliff:g> forsøk igjen.</item>
-      <item quantity="one">Feil PIN-kode for SIM-kortet. Du har <xliff:g id="NUMBER_0">%d</xliff:g> forsøk igjen før du må kontakte operatøren din for å låse opp enheten.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-kortet er ubrukelig. Kontakt operatøren din."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Feil PUK-kode for SIM-kortet. Du har <xliff:g id="NUMBER_1">%d</xliff:g> forsøk igjen før SIM-kortet blir permanent ubrukelig.</item>
-      <item quantity="one">Feil PUK-kode for SIM-kortet. Du har <xliff:g id="NUMBER_0">%d</xliff:g> forsøk igjen før SIM-kortet blir permanent ubrukelig.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"PIN-koden for SIM-kortet ble avvist."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"PUK-koden for SIM-kortet ble avvist."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Koden er godkjent."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ingen tjeneste."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Bytt inndatametode"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Flymodus"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Du må tegne mønsteret etter at enheten har startet på nytt"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Du må skrive inn PIN-koden etter at enheten har startet på nytt"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Du må skrive inn passordet etter at enheten har startet på nytt"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Du må tegne mønsteret for ekstra sikkerhet"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Du må skrive inn PIN-koden for ekstra sikkerhet"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Du må skrive inn passordet for ekstra sikkerhet"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Du må tegne mønsteret når du bytter profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Du må skrive inn PIN-koden når du bytter profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Du må skrive inn passordet når du bytter profil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Enhetsadministratoren har låst enheten"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Enheten ble låst manuelt"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Enheten er ikke blitt låst opp de siste <xliff:g id="NUMBER_1">%d</xliff:g> timene. Bekreft mønsteret.</item>
-      <item quantity="one">Enheten er ikke blitt låst opp den siste <xliff:g id="NUMBER_0">%d</xliff:g> timen. Bekreft mønsteret.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Enheten er ikke blitt låst opp de siste <xliff:g id="NUMBER_1">%d</xliff:g> timene. Bekreft PIN-koden.</item>
-      <item quantity="one">Enheten er ikke blitt låst opp den siste <xliff:g id="NUMBER_0">%d</xliff:g> timen. Bekreft PIN-koden.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Enheten er ikke blitt låst opp de siste <xliff:g id="NUMBER_1">%d</xliff:g> timene. Bekreft passordet.</item>
-      <item quantity="one">Enheten er ikke blitt låst opp den siste <xliff:g id="NUMBER_0">%d</xliff:g> timen. Bekreft passordet.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ikke gjenkjent"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ne/strings.xml b/packages/Keyguard/res/values-ne/strings.xml
deleted file mode 100644
index 47f5432..0000000
--- a/packages/Keyguard/res/values-ne/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK र नयाँ PIN कोड टाइप गर्नुहोस्"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK कोड"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"नयाँ SIM PIN कोड"</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_wrong_pin_code" msgid="2422225591006134936">"गलत PIN कोड।"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"चार्ज भयो"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"चार्ज हुँदै"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"छिटो चार्ज हुँदै"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"बिस्तारै चार्ज हुँदै"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"तपाईँको चार्जर जोड्नुहोस्।"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"अनलक गर्न मेनु थिच्नुहोस्।"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"नेटवर्क लक गरिएको छ"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM कार्ड छैन"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ट्याब्लेटमा SIM कार्ड छैन।"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"फोनमा कुनै SIM कार्ड छैन।"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM कार्ड भित्र राख्नुहोस्।"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM कार्ड हराइरहेको छ वा पढ्न योग्य छैन। SIM कार्ड हाल्नुहोस्।"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"प्रयोग अयोग्य SIM कार्ड।"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"तपाईँको SIM कार्ड स्थायी रूपमा असक्षम पारिएको छ।\n अर्को SIM कार्डको लागि तपाईँको ताररहित सेवा प्रदायकसँग सम्पर्क गर्नुहोस्।"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM कार्ड लक गरियो।"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM कार्ड PUK-लक छ।"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM कार्ड अनलक हुँदै…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"पीन क्षेत्र"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM पिन क्षेत्र"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM पुक क्षेत्र"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> को लागि अर्को चेतावनी सेट"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"मेट्नुहोस्"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"प्रविष्टि गर्नुहोस्"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ढाँचा बिर्सनु भयो"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत ढाँचा"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"गलत पासवर्ड"</string>
-    <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_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\"का लागि 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \" <xliff:g id="CARRIER">%1$s</xliff:g> \" अहिले अक्षम छ। जारी गर्न PUK कोड प्रविष्ट गर्नुहोस्। विवरणका लागि वाहकलाई सम्पर्क राख्नुहोस्।"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"इच्छित PIN कोड प्रविष्टि गर्नुहोस्"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"मनपर्दो PIN कोड निश्चित गर्नुहोस्"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM कार्ड अनलक गर्दै…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"४ देखि ८ वाट नम्बर भएको एउटा PIN टाइप गर्नुहोस्।"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK कोड ८ वटा नम्बर वा सो भन्दा बढी हुनुपर्छ।"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"तपाईँले गलत तरिकाले तपाईँको PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक टाइप गर्नु भएको छ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि प्रयास गर्नुहोस्।"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"तपाईँले तपाईँक पासवर्ड <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक गलत टाइप गर्नुभएको छ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि प्रयास गर्नुहोस्।"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"तपाईँले तपाईँको अनलक ढाँचा गलत तरिकाले <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक खिच्नु भएको छ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि कोसिस गर्नुहोस्।"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"तपाईंले गलत तरिकाले ट्याब्लेट अनलक गर्ने प्रयास गर्नु भएको छ<xliff:g id="NUMBER_0">%1$d</xliff:g>पटक।  <xliff:g id="NUMBER_1">%2$d</xliff:g> थप असफल प्रयासहरूपछि, यो ट्याब्लेट रिसेट हुनेछ जसले आफ्नो सम्पूर्ण डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"तपाईंले गलत तरिकाले फोन अनलक गर्ने प्रयास गर्नु भएको छ <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक। पछि <xliff:g id="NUMBER_1">%2$d</xliff:g> थप असफल प्रयासहरूपछि, यो फोन  रिसेट हुनेछ जसले सम्पूर्ण डेटा मेटाउनेछ।।"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"तपाईँ गलत तरिकाले ट्याब्लेट अनलक गर्ने प्रयास गर्नु भएको छ <xliff:g id="NUMBER">%d</xliff:g> पटक। यो ट्याब्लेट रिेसेट गरिनेछ जसले सम्पूर्ण डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"तपाईंले गलत तरिकाले फोन अनलक गर्ने प्रयास गर्नु भएको छ <xliff:g id="NUMBER">%d</xliff:g> पटक। यो फोन रिसेट गरिनेछ जसले सम्पूर्ण डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"तपाईंले गलत तरिकाले  ट्याब्लेट अनलक गर्ने प्रयास गर्नु भएको छ<xliff:g id="NUMBER_0">%1$d</xliff:g> पटक।  <xliff:g id="NUMBER_1">%2$d</xliff:g> थप असफल प्रयासहरूपछि, यो प्रयोगकर्ता हटाइनेछ जसले सम्पूर्ण प्रयोगकर्ता डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"तपाईंले गलत तरिकाले फोन अनलक गर्ने प्रयास गर्नु भएको छ <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक। <xliff:g id="NUMBER_1">%2$d</xliff:g> थप असफल प्रयासहरूपछि, यो प्रयोगकर्ता हटाइनेछ जसले  सबै प्रयोगकर्ता डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"तपाईंले गलत तरिकाले ट्याब्लेट अनलक गर्ने प्रयास गर्नु भएको छ<xliff:g id="NUMBER">%d</xliff:g> पटक। यो प्रयोगकर्ता हटाइनेछ जसले सम्पूर्ण प्रयोगकर्ता डेटा मेट्नेछ ।"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"तपाईंले गलत तरिकाले फोन अनलक गर्ने प्रयास गर्नु भएको छ<xliff:g id="NUMBER">%d</xliff:g> पटक। यो प्रयोगकर्ता हटाइनेछ जसले सम्पूर्ण प्रयोगकर्ता डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"तपाईँ गलत तरिकाले ट्याब्लेट अनलक गर्ने प्रयास गर्नु भएको छ<xliff:g id="NUMBER_0">%1$d</xliff:g> पटक। <xliff:g id="NUMBER_1">%2$d</xliff:g> थप असफल प्रयासहरूपछि, काम प्रोफाइल हटाइनेछ जसले सबै प्रोफाइल डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"तपाईंले गलत तरिकाले फोन अनलक गर्ने प्रयास गर्नु भएको छ <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक। <xliff:g id="NUMBER_1">%2$d</xliff:g> थप असफल प्रयासहरूपछि , काम प्रोफाइल हटाइनेछ जसले सबै प्रोफाइल डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"तपाईँ गलत तरिकाले ट्याब्लेट अनलक गर्ने प्रयास गर्नु भएको छ<xliff:g id="NUMBER">%d</xliff:g> पटक। काम प्रोफाइल हटाइनेछ जसले सम्पूर्ण  प्रोफाइल डेटा मेट्नेछ ।"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"तपाईंले गलत तरिकाले फोन अनलक गर्ने प्रयास गर्नु भएको छ <xliff:g id="NUMBER">%d</xliff:g> पटक। काम प्रोफाइल हटाइनेछ जसले सम्पूर्ण प्रोफाइल डेटा मेट्नेछ।"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"तपाईंले गलत तरिकाले आफ्नो अनलक ढाँचा <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक कोर्नुभयो। <xliff:g id="NUMBER_1">%2$d</xliff:g> विफल प्रयत्नहरू पछि, तपाईंलाई आफ्नो ट्याब्लेट इमेल खाता प्रयोग गरेर अनलक गर्न सोधिने छ।\n\n फेरि प्रयास गर्नुहोस् <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकेन्डहरूमा।"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"तपाईँले आफ्नो अनलक ढाँचा गलत रूपमा <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक तान्नु भएको छ। <xliff:g id="NUMBER_1">%2$d</xliff:g> धेरै असफल प्रयासहरूपछि, तपाईँलाई एउटा इमेल खाताको प्रयोग गरेर तपाईँको फोन अनलक गर्न सोधिने छ।\n\n फेरि <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकेन्डमा प्रयास गर्नुहोस्।"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM PIN कोड गलत छ। अब तपाईंले अाफ्नो उपकरण खोल्नलाई तपाईंको वाहकसँग सम्पर्क गर्नै पर्दर।"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other"> गलत SIM PIN कोड, तपाईँ सँग <xliff:g id="NUMBER_1">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
-      <item quantity="one">SIM PIN कोड गलत छ, तपाईँले अाफ्नो यन्त्र खोल्नलाई तपाईँको वाहकसँग सम्पर्क गर्नै पर्न अघि तपाईँसँग <xliff:g id="NUMBER_0">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM प्रयोग बिहिन छ। तपाईंको वाहकलाई सम्पर्क गर्नुहोस्।"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUK कोड गलत छ, तपाईंसँग SIM स्थायी रूपमा काम नलाग्ने हुनु अघि <xliff:g id="NUMBER_1">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
-      <item quantity="one">SIM PUK कोड गलत छ, तपाईंसँग SIM स्थायी रूपमा काम नलाग्ने हुनु अघि <xliff:g id="NUMBER_0">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN राख्‍ने कार्य बिफल भयो!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK राख्‍ने कार्य बिफल भयो!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"कोड स्वीकृत!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"कुनै सेवा छैन।"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"इनपुट विधिलाई स्विच गर्नुहोस्"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"हवाइजहाज मोड"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"यन्त्र पुनः सुरू भएपछि ढाँचा आवश्यक"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"यन्त्र पुनः सुरू भएपछि PIN आवश्यक"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"यन्त्र पुनः सुरू भएपछि पासवर्ड आवश्यक"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"अतिरिक्त सुरक्षाको लागि ढाँचा आवश्यक छ"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"अतिरिक्त सुरक्षाको लागि PIN आवश्यक छ"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"अतिरिक्त सुरक्षाको लागि पासवर्ड आवश्यक छ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"तपाईँले प्रोफाइलहरू स्विच गर्नुहुँदा ढाँचा आवश्यक"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"तपाईँले प्रोफाइलहरू स्विच गर्नुहुँदा PIN आवश्यक"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"तपाईँले प्रोफाइलहरू स्विच गर्नुहुँदा पासवर्ड आवश्यक"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"यन्त्रको प्रशासकले यन्त्रलाई लक गरेको छ"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"यन्त्रलाई म्यानुअल तरिकाले लक गरिएको थियो"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other"> यन्त्र <xliff:g id="NUMBER_1">%d</xliff:g> घन्टा देखि अनलक भएको छैन। ढाँचा पुष्टि गर्नुहोस्।</item>
-      <item quantity="one"> यन्त्र <xliff:g id="NUMBER_0">%d</xliff:g> घन्टा देखि अनलक भएको छैन। ढाँचा पुष्टि गर्नुहोस्। </item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other"> यन्त्र <xliff:g id="NUMBER_1">%d</xliff:g> घन्टा देखि अनलक भएको छैन। PIN पुष्टि गर्नुहोस्।</item>
-      <item quantity="one"> यन्त्र <xliff:g id="NUMBER_0">%d</xliff:g> घन्टा देखि अनलक भएको छैन। PIN पुष्टि गर्नुहोस्।</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other"> यन्त्र <xliff:g id="NUMBER_1">%d</xliff:g> घन्टा देखि अनलक भएको छैन। पासवर्ड पुष्टि गर्नुहोस्।</item>
-      <item quantity="one"> यन्त्र <xliff:g id="NUMBER_0">%d</xliff:g> घन्टा देखि अनलक भएको छैन। पासवर्ड पुष्टि गर्नुहोस्।</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"चिनिएको छैन"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-nl/strings.xml b/packages/Keyguard/res/values-nl/strings.xml
deleted file mode 100644
index fe87df8..0000000
--- a/packages/Keyguard/res/values-nl/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Toetsblokkering"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Pincode typen"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Typ de pukcode voor de simkaart en de nieuwe pincode"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Pukcode voor simkaart"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nieuwe pincode voor simkaart"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Raak aan om wachtwoord in te voeren"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Typ het wachtwoord om te ontgrendelen"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Typ pincode om te ontgrendelen"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Onjuiste pincode."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Opgeladen"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Opladen"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Snel opladen"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Langzaam opladen…"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Sluit de oplader aan."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Druk op \'Menu\' om te ontgrendelen."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Netwerk vergrendeld"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Geen simkaart"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Geen simkaart in tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Geen simkaart in telefoon."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Plaats een simkaart."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"De simkaart ontbreekt of kan niet worden gelezen. Plaats een simkaart."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Onbruikbare simkaart."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Je simkaart is permanent uitgeschakeld.\n Neem contact op met je mobiele serviceprovider voor een nieuwe simkaart."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Simkaart is vergrendeld."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Simkaart is vergrendeld met pukcode."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Simkaart ontgrendelen…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Gebied voor pincode"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Gebied voor sim-pincode"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Gebied voor sim-pukcode"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Volgende alarm ingesteld voor <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patroon vergeten"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Onjuist patroon"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Onjuist wachtwoord"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Onjuiste pincode"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Probeer het over <xliff:g id="NUMBER">%d</xliff:g> seconden opnieuw."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Teken je patroon"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Geef de pincode van de simkaart op"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Voer de pincode in voor de simkaart van \'<xliff:g id="CARRIER">%1$s</xliff:g>\'"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Pincode opgeven"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Wachtwoord invoeren"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"De simkaart is nu uitgeschakeld. Geef de pukcode op om door te gaan. Neem contact op met de provider voor informatie."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Simkaart van \'<xliff:g id="CARRIER">%1$s</xliff:g>\' is nu uitgeschakeld. Voer de pukcode in om door te gaan. Neem contact op met je provider voor meer informatie."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Gewenste pincode opgeven"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Gewenste pincode bevestigen"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Simkaart ontgrendelen..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Voer een pincode van 4 tot 8 cijfers in."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"De pukcode is minimaal acht nummers lang."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Geef de juiste pukcode opnieuw op. Bij herhaalde pogingen wordt de simkaart permanent uitgeschakeld."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Pincodes komen niet overeen"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Te veel patroonpogingen"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Je hebt je pincode <xliff:g id="NUMBER_0">%1$d</xliff:g> keer onjuist getypt. \n\nProbeer het opnieuw over <xliff:g id="NUMBER_1">%2$d</xliff:g> seconden."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Je hebt je wachtwoord <xliff:g id="NUMBER_0">%1$d</xliff:g> keer onjuist getypt. \n\nProbeer het opnieuw over <xliff:g id="NUMBER_1">%2$d</xliff:g> seconden."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Je hebt je ontgrendelingspatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer onjuist getekend. \n\nProbeer het opnieuw over <xliff:g id="NUMBER_1">%2$d</xliff:g> seconden."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Je hebt <xliff:g id="NUMBER_0">%1$d</xliff:g> mislukte pogingen ondernomen om de tablet te ontgrendelen. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt deze tablet gereset, waardoor alle gegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Je hebt <xliff:g id="NUMBER_0">%1$d</xliff:g> mislukte pogingen ondernomen om de telefoon te ontgrendelen. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt deze telefoon gereset, waardoor alle gegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Je hebt <xliff:g id="NUMBER">%d</xliff:g> mislukte pogingen ondernomen om de tablet te ontgrendelen. Deze tablet wordt gereset, waardoor alle gegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Je hebt <xliff:g id="NUMBER">%d</xliff:g> mislukte pogingen ondernomen om de telefoon te ontgrendelen. Deze telefoon wordt gereset, waardoor alle gegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Je hebt <xliff:g id="NUMBER_0">%1$d</xliff:g> mislukte pogingen ondernomen om de tablet te ontgrendelen. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt deze gebruiker verwijderd, waardoor alle gebruikersgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Je hebt <xliff:g id="NUMBER_0">%1$d</xliff:g> mislukte pogingen ondernomen om de telefoon te ontgrendelen. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt deze gebruiker verwijderd, waardoor alle gebruikersgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Je hebt <xliff:g id="NUMBER">%d</xliff:g> mislukte pogingen ondernomen om de tablet te ontgrendelen. Deze gebruiker wordt verwijderd, waardoor alle gebruikersgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Je hebt <xliff:g id="NUMBER">%d</xliff:g> mislukte pogingen ondernomen om de telefoon te ontgrendelen. Deze gebruiker wordt verwijderd, waardoor alle gebruikersgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Je hebt <xliff:g id="NUMBER_0">%1$d</xliff:g> mislukte pogingen ondernomen om de tablet te ontgrendelen. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt het werkprofiel verwijderd, waardoor alle profielgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Je hebt <xliff:g id="NUMBER_0">%1$d</xliff:g> mislukte pogingen ondernomen om de telefoon te ontgrendelen. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt het werkprofiel verwijderd, waardoor alle profielgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Je hebt <xliff:g id="NUMBER">%d</xliff:g> mislukte pogingen ondernomen om de tablet te ontgrendelen. Het werkprofiel wordt verwijderd, waardoor alle profielgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Je hebt <xliff:g id="NUMBER">%d</xliff:g> mislukte pogingen ondernomen om de telefoon te ontgrendelen. Het werkprofiel wordt verwijderd, waardoor alle profielgegevens worden verwijderd."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Je hebt je ontgrendelingspatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer onjuist getekend. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt u gevraagd je tablet te ontgrendelen via een e-mailaccount.\n\n Probeer het over <xliff:g id="NUMBER_2">%3$d</xliff:g> seconden opnieuw."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Je hebt je ontgrendelingspatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer onjuist getekend. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt u gevraagd je telefoon te ontgrendelen via een e-mailaccount.\n\n Probeer het over <xliff:g id="NUMBER_2">%3$d</xliff:g> seconden opnieuw."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Onjuiste pincode voor simkaart. U moet nu contact opnemen met je provider om je apparaat te ontgrendelen."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Onjuiste pincode voor simkaart. Je hebt nog <xliff:g id="NUMBER_1">%d</xliff:g> pogingen over.</item>
-      <item quantity="one">Onjuiste pincode voor simkaart. Je hebt nog <xliff:g id="NUMBER_0">%d</xliff:g> poging over voordat u contact met je provider moet opnemen om je apparaat te ontgrendelen.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Simkaart is onbruikbaar. Neem contact op met je provider."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Onjuiste pukcode voor simkaart. Je hebt nog <xliff:g id="NUMBER_1">%d</xliff:g> pogingen over voordat de simkaart definitief onbruikbaar wordt.</item>
-      <item quantity="one">Onjuiste pukcode voor simkaart. Je hebt nog <xliff:g id="NUMBER_0">%d</xliff:g> poging over voordat de simkaart definitief onbruikbaar wordt.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Bewerking met pincode voor simkaart mislukt."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Bewerking met pukcode voor simkaart is mislukt."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Code geaccepteerd."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Geen service"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Invoermethode schakelen"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Vliegtuigmodus"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Patroon vereist nadat het apparaat opnieuw is opgestart"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Pincode vereist nadat het apparaat opnieuw is opgestart"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Wachtwoord vereist nadat het apparaat opnieuw is opgestart"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Patroon vereist voor extra beveiliging"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Pincode vereist voor extra beveiliging"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Wachtwoord vereist voor extra beveiliging"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Patroon is vereist wanneer je schakelt tussen profielen"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Pincode is vereist wanneer je schakelt tussen profielen"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Wachtwoord is vereist wanneer je schakelt tussen profielen"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Apparaatbeheerder heeft apparaat vergrendeld"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Apparaat is handmatig vergrendeld"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Apparaat is al <xliff:g id="NUMBER_1">%d</xliff:g> uur niet ontgrendeld. Bevestig het patroon.</item>
-      <item quantity="one">Apparaat is al <xliff:g id="NUMBER_0">%d</xliff:g> uur niet ontgrendeld. Bevestig het patroon.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Apparaat is al <xliff:g id="NUMBER_1">%d</xliff:g> uur niet ontgrendeld. Bevestig de pincode.</item>
-      <item quantity="one">Apparaat is al <xliff:g id="NUMBER_0">%d</xliff:g> uur niet ontgrendeld. Bevestig de pincode.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Apparaat is al <xliff:g id="NUMBER_1">%d</xliff:g> uur niet ontgrendeld. Bevestig het wachtwoord.</item>
-      <item quantity="one">Apparaat is al <xliff:g id="NUMBER_0">%d</xliff:g> uur niet ontgrendeld. Bevestig het wachtwoord.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Niet herkend"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-pa/strings.xml b/packages/Keyguard/res/values-pa/strings.xml
deleted file mode 100644
index 16ca29c..0000000
--- a/packages/Keyguard/res/values-pa/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK ਅਤੇ ਨਵਾਂ PIN ਕੋਡ ਟਾਈਪ ਕਰੋ"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK ਕੋਡ"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"ਨਵਾਂ SIM PIN ਕੋਡ"</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_wrong_pin_code" msgid="2422225591006134936">"ਗ਼ਲਤ PIN ਕੋਡ।"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ਚਾਰਜ ਹੋਇਆ"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ਚਾਰਜਿੰਗ"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"ਤੇਜ਼ੀ ਨਾਲ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"ਹੌਲੀ-ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"ਆਪਣਾ ਚਾਰਜਰ ਕਨੈਕਟ ਕਰੋ।"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਮੀਨੂ ਦਬਾਓ।"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ਨੈੱਟਵਰਕ ਲੌਕ ਕੀਤਾ"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"ਕੋਈ SIM ਕਾਰਡ ਨਹੀਂ"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ਟੈਬਲੇਟ ਵਿੱਚ ਕੋਈ SIM ਕਾਰਡ ਨਹੀਂ।"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ਫੋਨ ਵਿੱਚ ਕੋਈ SIM ਕਾਰਡ ਨਹੀਂ।"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM ਕਾਰਡ ਲੁਪਤ ਹੈ ਜਾਂ ਪੜ੍ਹਨਯੋਗ ਨਹੀਂ ਹੈ। ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"ਨਾਵਰਤਣਯੋਗ SIM ਕਾਰਡ।"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"ਤੁਹਾਡਾ SIM ਕਾਰਡ ਸਥਾਈ ਤੌਰ ਤੇ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।\n ਦੂਜੇ SIM ਕਾਰਡ ਲਈ ਆਪਣੇ ਵਾਇਰਲੈਸ ਸੇਵਾ ਪ੍ਰਦਾਤਾ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM ਕਾਰਡ ਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM ਕਾਰਡ PUK-ਲੌਕਡ ਹੈ।"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM ਕਾਰਡ ਅਨਲੌਕ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ਖੇਤਰ"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ਖੇਤਰ"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ਖੇਤਰ"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ਅਗਲਾ ਅਲਾਰਮ <xliff:g id="ALARM">%1$s</xliff:g> ਲਈ ਸੈੱਟ ਕੀਤਾ ਗਿਆ"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ਮਿਟਾਓ"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ਦਾਖਲ ਕਰੋ"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ਪੈਟਰਨ ਭੁੱਲ ਗਏ"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"ਗ਼ਲਤ ਪੈਟਰਨ"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"ਗ਼ਲਤ ਪਾਸਵਰਡ"</string>
-    <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_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" ਲਈ 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" ਹੁਣ ਅਸਮਰਥਿਤ ਹੈ। ਜਾਰੀ ਰੱਖਣ ਲਈ PUK ਕੋਡ ਦਾਖਲ ਕਰੋ। ਵੇਰਵਿਆਂ ਲਈ ਕੈਰੀਅਰ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"ਲੁੜੀਂਦਾ PIN ਕੋਡ ਦਾਖਲ ਕਰੋ"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"ਲੁੜੀਂਦੇ PIN ਕੋਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM ਕਾਰਡ ਅਨਲੌਕ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"ਇੱਕ PIN ਟਾਈਪ ਕਰੋ ਜੋ 4 ਤੋਂ 8 ਨੰਬਰਾਂ ਦਾ ਹੈ।"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK ਕੋਡ 8 ਜਾਂ ਵੱਧ ਸੰਖਿਆਵਾਂ ਦਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"ਤੁਸੀਂ ਆਪਣਾ PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੇਟ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਹ ਟੈਬਲੇਟ ਰੀਸੈੱਟ ਕੀਤੀ ਜਾਏਗੀ, ਜੋ ਇਸਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਫੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਹ ਫੋਨ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਏਗਾ, ਜੋ ਇਸਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੇਟ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਇਹ ਟੈਬਲੇਟ ਰੀਸੈੱਟ ਕੀਤੀ ਜਾਏਗੀ, ਜੋ ਇਸਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗੀ।"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਫੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਇਹ ਫੋਨ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਏਗਾ, ਜੋ ਇਸਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੇਟ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਸ ਉਪਭੋਗਤਾ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਏਗਾ, ਜੋ ਸਾਰਾ ਉਪਭੋਗਤਾ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"ਤੁਸੀਂ  <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਫੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਸ ਉਪਭੋਗਤਾ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਏਗਾ, ਜੋ ਸਾਰਾ ਉਪਭੋਗਤਾ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੇਟ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤੀ ਜਾਏਗੀ, ਜੋ ਸਾਰਾ ਪ੍ਰੋਫਾਈਲ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗੀ।"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਫੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਇਹ ਉਪਭੋਗਤਾ ਹਟਾ ਦਿੱਤਾ ਜਾਏਗਾ, ਜੋ ਇਸਦਾ ਸਾਰਾ ਉਪਭੋਗਤਾ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੇਟ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤੀ ਜਾਏਗੀ, ਜੋ ਸਾਰਾ ਪ੍ਰੋਫਾਈਲ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਫੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤੀ ਜਾਏਗੀ, ਜੋ ਸਾਰਾ ਪ੍ਰੋਫਾਈਲ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੇਟ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤੀ ਜਾਏਗੀ, ਜੋ ਸਾਰਾ ਪ੍ਰੋਫਾਈਲ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗੀ।"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਫੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤੀ ਜਾਏਗੀ, ਜੋ ਸਾਰਾ ਪ੍ਰੋਫਾਈਲ ਡੈਟਾ ਮਿਟਾ ਦੇਵੇਗੀ।"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣੀ ਟੈਬਲੇਟ ਅਨਲੌਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫੋਨ ਅਨਲੌਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"ਗ਼ਲਤ SIM PIN ਕੋਡ, ਹੁਣ ਤੁਹਾਨੂੰ ਆਪਣੀ ਡੀਵਾਈਸ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਲਈ ਆਪਣੇ ਕੈਰੀਅਰ ਨੂੰ ਸੰਪਰਕ ਕਰਨਾ ਪਵੇਗਾ।"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">ਗ਼ਲਤ SIM PIN ਕੋਡ, ਤੁਹਾਡੇ ਕੋਲ <xliff:g id="NUMBER_1">%d</xliff:g> ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ ਹਨ।</item>
-      <item quantity="other">ਗ਼ਲਤ SIM PIN ਕੋਡ, ਤੁਹਾਡੇ ਕੋਲ <xliff:g id="NUMBER_1">%d</xliff:g> ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ ਹਨ।</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM ਨਾਵਰਤਣਯੋਗ ਹੈ। ਆਪਣੇ ਕੈਰੀਅਰ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">ਗ਼ਲਤ SIM PUK ਕੋਡ, ਇਸਤੋਂ ਪਹਿਲਾਂ ਕਿ SIM ਸਥਾਈ ਤੌਰ ਤੇ ਨਾਵਰਤਣਯੋਗ ਬਣੇ, ਤੁਹਾਡੇ ਕੋਲ <xliff:g id="NUMBER_1">%d</xliff:g> ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ ਹਨ।</item>
-      <item quantity="other">ਗ਼ਲਤ SIM PUK ਕੋਡ, ਇਸਤੋਂ ਪਹਿਲਾਂ ਕਿ SIM ਸਥਾਈ ਤੌਰ ਤੇ ਨਾਵਰਤਣਯੋਗ ਬਣੇ, ਤੁਹਾਡੇ ਕੋਲ <xliff:g id="NUMBER_1">%d</xliff:g> ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ ਹਨ।</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN ਓਪਰੇਸ਼ਨ ਅਸਫਲ!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK ਓਪਰੇਸ਼ਨ ਅਸਫਲ!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"ਕੋਡ ਸਵੀਕਾਰ ਕੀਤਾ ਗਿਆ!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ।"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ਇਨਪੁੱਟ ਵਿਧੀ ਸਵਿੱਚ ਕਰੋ"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"ਏਅਰਪਲੇਨ ਮੋਡ"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਹੋਣ ਤੋਂ ਬਾਅਦ ਪੈਟਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਹੋਣ ਤੋਂ ਬਾਅਦ PIN ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ਡੀਵਾਈਸ ਮੁੜ-ਚਾਲੂ ਹੋਣ ਤੋਂ ਬਾਅਦ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"ਵਧੀਕ ਸੁਰੱਖਿਆ ਲਈ ਪੈਟਰਨ ਦੀ ਲੋੜ ਹੈ"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"ਵਧੀਕ ਸੁਰੱਖਿਆ ਲਈ PIN ਦੀ ਲੋੜ ਹੈ"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"ਵਧੀਕ ਸੁਰੱਖਿਆ ਲਈ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"ਪ੍ਰੋਫਾਈਲਾਂ ਬਦਲਣ ਦੌਰਾਨ ਪੈਟਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"ਪ੍ਰੋਫਾਈਲਾਂ ਬਦਲਣ ਦੌਰਾਨ PIN ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"ਪ੍ਰੋਫਾਈਲਾਂ ਬਦਲਣ ਦੌਰਾਨ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਡੀਵਾਈਸ ਨੂੰ ਲੌਕ ਕੀਤਾ"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"ਡੀਵਾਈਸ ਨੂੰ ਹੱਥੀਂ ਲੌਕ ਕੀਤਾ ਗਿਆ ਸੀ"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ। ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item>
-      <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ। ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ। PIN ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item>
-      <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ। PIN ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ। ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</item>
-      <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ। ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ਪਛਾਣ ਨਹੀਂ ਹੋਈ"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-pl/strings.xml b/packages/Keyguard/res/values-pl/strings.xml
deleted file mode 100644
index f0980da..0000000
--- a/packages/Keyguard/res/values-pl/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Blokada klawiszy"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Wpisz kod PIN."</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Wpisz PUK i nowy kod PIN karty SIM"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Kod PUK karty SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nowy kod PIN karty SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Dotknij, aby wpisać hasło."</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Wpisz hasło, aby odblokować."</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Wpisz kod PIN, aby odblokować."</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Błędny kod PIN"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Naładowana"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Ładowanie"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Szybkie ładowanie"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Wolne ładowanie"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Podłącz ładowarkę."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Naciśnij Menu, by odblokować."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Zablokowana sieć"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Brak karty SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Brak karty SIM w tablecie."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Brak karty SIM w telefonie."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Włóż kartę SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Brak karty SIM lub nie można jej odczytać. Włóż kartę SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Karta SIM bezużyteczna."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Karta SIM jest trwale wyłączona.\n Skontaktuj się z dostawcą usług bezprzewodowych, by otrzymać inną kartę SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Karta SIM jest zablokowana."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Karta SIM jest zablokowana za pomocą kodu PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Odblokowuję kartę SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Miejsce na PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Miejsce na PIN do karty SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Miejsce na PUK do karty SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Następny alarm ustawiono na <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nie pamiętam wzoru"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Nieprawidłowy wzór"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Nieprawidłowe hasło"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Nieprawidłowy PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Spróbuj ponownie za <xliff:g id="NUMBER">%d</xliff:g> s."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Narysuj wzór"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Podaj PIN karty SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Wpisz kod PIN karty SIM „<xliff:g id="CARRIER">%1$s</xliff:g>”"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Podaj PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Wpisz hasło"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Karta SIM została wyłączona. Podaj kod PUK, by przejść dalej. Szczegóły uzyskasz od operatora."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Karta SIM „<xliff:g id="CARRIER">%1$s</xliff:g>” jest wyłączona. Wpisz kod PUK, by kontynuować. Skontaktuj się z operatorem, by uzyskać więcej informacji."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Podaj wybrany kod PIN"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potwierdź wybrany kod PIN"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Odblokowuję kartę SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Wpisz PIN o długości od 4 do 8 cyfr."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Kod PUK musi mieć co najmniej 8 cyfr."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Ponownie podaj poprawny kod PUK. Nieudane próby spowodują trwałe wyłączenie karty SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kody PIN nie pasują"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Zbyt wiele prób narysowania wzoru"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Wpisałeś nieprawidłowy kod PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> razy. \n\nSpróbuj ponownie za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Po raz <xliff:g id="NUMBER_0">%1$d</xliff:g> wpisałeś nieprawidłowe hasło. \n\nSpróbuj ponownie za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Narysowałeś nieprawidłowy wzór odblokowania <xliff:g id="NUMBER_0">%1$d</xliff:g> razy. \n\nSpróbuj ponownie za <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Próbowałeś <xliff:g id="NUMBER_0">%1$d</xliff:g> razy nieprawidłowo odblokować tablet. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach tablet zostanie zresetowany, co spowoduje skasowanie z niego wszystkich danych."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Próbowałeś <xliff:g id="NUMBER_0">%1$d</xliff:g> razy nieprawidłowo odblokować telefon. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach telefon zostanie zresetowany, co spowoduje skasowanie z niego wszystkich danych."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Próbowałeś <xliff:g id="NUMBER">%d</xliff:g> razy nieprawidłowo odblokować tablet. Zostanie on zresetowany, co spowoduje skasowanie z niego wszystkich danych."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Próbowałeś <xliff:g id="NUMBER">%d</xliff:g> razy nieprawidłowo odblokować telefon. Zostanie on zresetowany, co spowoduje skasowanie z niego wszystkich danych."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Próbowałeś <xliff:g id="NUMBER_0">%1$d</xliff:g> razy nieprawidłowo odblokować tablet. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach ten użytkownik zostanie usunięty, co spowoduje skasowanie wszystkich jego danych."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Próbowałeś <xliff:g id="NUMBER_0">%1$d</xliff:g> razy nieprawidłowo odblokować telefon. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach, ten użytkownik zostanie usunięty, co spowoduje skasowanie wszystkich jego danych."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Próbowałeś <xliff:g id="NUMBER">%d</xliff:g> razy nieprawidłowo odblokować tablet. Ten użytkownik zostanie usunięty, co spowoduje skasowanie wszystkich jego danych."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Próbowałeś <xliff:g id="NUMBER">%d</xliff:g> razy nieprawidłowo odblokować telefon. Ten użytkownik zostanie usunięty, co spowoduje skasowanie wszystkich jego danych."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Próbowałeś <xliff:g id="NUMBER_0">%1$d</xliff:g> razy nieprawidłowo odblokować tablet. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach profil do pracy zostanie usunięty, co spowoduje skasowanie wszystkich danych tego profilu."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Próbowałeś <xliff:g id="NUMBER_0">%1$d</xliff:g> razy nieprawidłowo odblokować telefon. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach profil do pracy zostanie usunięty, co spowoduje skasowanie wszystkich danych tego profilu."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Próbowałeś <xliff:g id="NUMBER">%d</xliff:g> razy nieprawidłowo odblokować tablet. Profil do pracy zostanie usunięty, co spowoduje skasowanie wszystkich danych tego profilu."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Próbowałeś <xliff:g id="NUMBER">%d</xliff:g> razy nieprawidłowo odblokować telefon. Profil do pracy zostanie usunięty, co spowoduje skasowanie wszystkich danych tego profilu."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Po raz <xliff:g id="NUMBER_0">%1$d</xliff:g> nieprawidłowo narysowałeś wzór odblokowania. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach konieczne będzie odblokowanie tabletu przy użyciu danych logowania na konto Google.\n\n Spróbuj ponownie za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Po raz <xliff:g id="NUMBER_0">%1$d</xliff:g> nieprawidłowo narysowałeś wzór odblokowania. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach konieczne będzie odblokowanie telefonu przy użyciu danych logowania na konto Google.\n\n Spróbuj ponownie za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Nieprawidłowy kod PIN karty SIM. Musisz teraz skontaktować się z operatorem, by odblokował Twoje urządzenie."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="few">Nieprawidłowy kod PIN karty SIM. Masz jeszcze <xliff:g id="NUMBER_1">%d</xliff:g> próby.</item>
-      <item quantity="many">Nieprawidłowy kod PIN karty SIM. Masz jeszcze <xliff:g id="NUMBER_1">%d</xliff:g> prób.</item>
-      <item quantity="other">Nieprawidłowy kod PIN karty SIM. Masz jeszcze <xliff:g id="NUMBER_1">%d</xliff:g> próby.</item>
-      <item quantity="one">Nieprawidłowy kod PIN karty SIM. Masz jeszcze <xliff:g id="NUMBER_0">%d</xliff:g> próbę, zanim będziesz musiał skontaktować się z operatorem, by odblokować swoje urządzenie.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Karta SIM została trwale zablokowana. Skontaktuj się z operatorem."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="few">Nieprawidłowy kod PUK karty SIM. Masz jeszcze <xliff:g id="NUMBER_1">%d</xliff:g> próby, zanim karta SIM zostanie trwale zablokowana.</item>
-      <item quantity="many">Nieprawidłowy kod PUK karty SIM. Masz jeszcze <xliff:g id="NUMBER_1">%d</xliff:g> prób, zanim karta SIM zostanie trwale zablokowana.</item>
-      <item quantity="other">Nieprawidłowy kod PUK karty SIM. Masz jeszcze <xliff:g id="NUMBER_1">%d</xliff:g> próby, zanim karta SIM zostanie trwale zablokowana.</item>
-      <item quantity="one">Nieprawidłowy kod PUK karty SIM. Masz jeszcze <xliff:g id="NUMBER_0">%d</xliff:g> próbę, zanim karta SIM zostanie trwale zablokowana.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Operacja z kodem PIN karty SIM nie udała się."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operacja z kodem PUK karty SIM nie udała się."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kod został zaakceptowany."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Brak usługi."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Przełącz metodę wprowadzania"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Tryb samolotowy"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Po ponownym uruchomieniu urządzenia wymagany jest wzór"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Po ponownym uruchomieniu urządzenia wymagany jest kod PIN"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Po ponownym uruchomieniu urządzenia wymagane jest hasło"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Dla dodatkowego bezpieczeństwa musisz narysować wzór"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Dla dodatkowego bezpieczeństwa musisz podać kod PIN"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Dla dodatkowego bezpieczeństwa musisz podać hasło"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Po przełączeniu profili wymagany jest wzór"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Po przełączeniu profili wymagany jest kod PIN"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Po przełączeniu profili wymagane jest hasło"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Urządzenie zostało zablokowane przez administratora"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Urządzenie zostało zablokowane ręcznie"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="few">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godzin. Potwierdź wzór.</item>
-      <item quantity="many">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godzin. Potwierdź wzór.</item>
-      <item quantity="other">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godziny. Potwierdź wzór.</item>
-      <item quantity="one">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_0">%d</xliff:g> godziny. Potwierdź wzór.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="few">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godzin. Potwierdź kod PIN.</item>
-      <item quantity="many">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godzin. Potwierdź kod PIN.</item>
-      <item quantity="other">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godziny. Potwierdź kod PIN.</item>
-      <item quantity="one">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_0">%d</xliff:g> godziny. Potwierdź kod PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="few">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godzin. Potwierdź hasło.</item>
-      <item quantity="many">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godzin. Potwierdź hasło.</item>
-      <item quantity="other">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_1">%d</xliff:g> godziny. Potwierdź hasło.</item>
-      <item quantity="one">Urządzenie nie zostało odblokowane od <xliff:g id="NUMBER_0">%d</xliff:g> godziny. Potwierdź hasło.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nie rozpoznano odcisku palca."</string>
-</resources>
diff --git a/packages/Keyguard/res/values-pt-rBR/strings.xml b/packages/Keyguard/res/values-pt-rBR/strings.xml
deleted file mode 100644
index 2663337..0000000
--- a/packages/Keyguard/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Bloqueio do teclado"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Insira o código PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Digite o PUK do SIM e o novo código PIN."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Código PUK do SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Novo código PIN do SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Toque para inserir a senha"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Digite a senha para desbloquear"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Insira o PIN para desbloquear"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Código PIN incorreto."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Carregado"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Carregando"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Carregando rapidamente"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Carregando lentamente"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Conecte seu carregador."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Pressione \"Menu\" para desbloquear."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Rede bloqueada"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Sem cartão SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Não há um cartão SIM no tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Não há um cartão SIM no telefone."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insira um cartão SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"O cartão SIM não foi inserido ou não é possível lê-lo. Insira um cartão SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Cartão SIM inutilizável."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"O cartão SIM foi desativado permanentemente.\nEntre em contato com seu provedor de serviços sem fio para receber outro cartão SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"O cartão SIM está bloqueado."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"O cartão SIM está bloqueado pelo PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando o cartão SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próximo alarme definido para <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Excluir"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueci o padrão"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrão incorreto"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Senha incorreta"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN incorreto"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Tente novamente em <xliff:g id="NUMBER">%d</xliff:g> segundos."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Desenhe seu padrão"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Digite o PIN do cartão SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Insira o PIN do SIM para \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Digite o PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Digite a senha"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"O SIM foi desativado. Insira o código PUK para continuar. Entre em contato com a operadora para obter mais detalhes."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"O SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" foi desativado. Insira o código PUK para continuar. Entre em contato com a operadora para saber mais detalhes."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Digite o código PIN desejado"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirme o código PIN desejado"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Desbloqueando o cartão SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Digite um PIN com quatro a oito números."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"O código PUK deve ter 8 números ou mais."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Introduza novamente o código PUK correto. Muitas tentativas malsucedidas desativarão permanentemente o SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Os códigos PIN não coincidem"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Muitas tentativas de padrão"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Você digitou seu PIN incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente em <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Você digitou sua senha incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente em <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente em <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este tablet será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este smartphone será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este tablet será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este smartphone será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas,o perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, o perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. O perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. O perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Se fizer mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas incorretas, será solicitado que você use o login do Google para desbloquear seu tablet.\n\n Tente novamente em <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Se fizer mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas incorretas, será solicitado que você use o login do Google para desbloquear.\n\n Tente novamente em <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Código PIN do SIM incorreto. Entre em contato com a operadora para desbloquear o dispositivo."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Código PIN do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>.</item>
-      <item quantity="other">Código PIN do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"O SIM está inutilizável. Entre em contato com a operadora."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Código PUK do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>. Caso o código correto não seja digitado, o SIM não poderá mais ser usado.</item>
-      <item quantity="other">Código PUK do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>. Caso o código correto não seja digitado, o SIM não poderá mais ser usado.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Falha na operação de PIN do SIM."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Falha na operação de PUK do SIM."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Código aceito."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Sem serviço."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Alterar o método de entrada"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modo avião"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"O padrão é exigido após a reinicialização do dispositivo"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"O PIN é exigido após a reinicialização do dispositivo"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"A senha é exigida após a reinicialização do dispositivo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"O padrão é necessário para aumentar a segurança"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"O PIN é necessário para aumentar a segurança"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"A senha é necessária para aumentar a segurança"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"O padrão é exigido quando você troca de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"O PIN é exigido quando você troca de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"A senha é exigida quando você troca de perfil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"O dispositivo foi bloqueado pelo administrador"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"O dispositivo foi bloqueado manualmente"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o padrão.</item>
-      <item quantity="other">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o padrão.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o PIN.</item>
-      <item quantity="other">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme a senha.</item>
-      <item quantity="other">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme a senha.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Não reconhecido"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-pt-rPT/strings.xml b/packages/Keyguard/res/values-pt-rPT/strings.xml
deleted file mode 100644
index e417e07..0000000
--- a/packages/Keyguard/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Escreva o código PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Introduzir PUK do cartão SIM e o novo código PIN"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Código PUK do cartão SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Novo código PIN do cartão SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Toque para escrever a palavra-passe"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Escreva a palavra-passe para desbloquear"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Escreva o PIN para desbloquear"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Código PIN incorreto."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Carregado"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"A carregar"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"A carregar rapidamente"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"A carregar lentamente"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Ligue o carregador."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Prima Menu para desbloquear."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Rede bloqueada"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nenhum cartão SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Nenhum cartão SIM no tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Nenhum cartão SIM no telemóvel."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insira um cartão SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"O cartão SIM está em falta ou não é legível. Introduza um cartão SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Cartão SIM inutilizável."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"O cartão SIM está bloqueado."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"O cartão SIM está bloqueado por PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"A desbloquear o cartão SIM..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN do SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK do SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próximo alarme definido para as <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueceu-se da Sequência"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequência Incorreta"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Palavra-passe Incorreta"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN Incorreto"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Tente novamente dentro de <xliff:g id="NUMBER">%d</xliff:g> segundos."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Desenhe a sua sequência"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introduzir PIN do cartão SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Introduza o PIN do SIM para \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Introduzir PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Introduzir Palavra-passe"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"O SIM está agora desativado. Introduza o código PUK para continuar. Contacte o operador para obter detalhes."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"O SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" está agora desativado. Introduza o código PUK para continuar. Contacte o operador para obter mais detalhes."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Introduza o código PIN pretendido"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirme o código PIN pretendido"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"A desbloquear cartão SIM..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Introduza um PIN entre 4 e 8 números."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"O código PUK deve ter 8 ou mais números."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Volte a introduzir o código PUK correto. Demasiadas tentativas consecutivas irão desativar permanentemente o SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Os códigos PIN não correspondem"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Demasiadas tentativas para desenhar sequência"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Escreveu o PIN incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente dentro de <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Escreveu a palavra-passe incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente dentro de <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Desenhou a sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente dentro de <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Tentou desbloquear incorretamente o tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem êxito, este telemóvel será reposto, o que eliminará todos os seus dados."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Tentou desbloquear incorretamente o telemóvel <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem êxito, este telemóvel será reposto, o que eliminará todos os seus dados."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Tentou desbloquear incorretamente o tablet <xliff:g id="NUMBER">%d</xliff:g> vezes. Este telemóvel será reposto, o que eliminará todos os seus dados."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Tentou desbloquear incorretamente o telemóvel <xliff:g id="NUMBER">%d</xliff:g> vezes. Este telemóvel será reposto, o que eliminará todos os seus dados."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Tentou desbloquear incorretamente o tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem êxito, este utilizador será removido, o que eliminará todos os dados respetivos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Tentou desbloquear incorretamente o telemóvel <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem êxito, este utilizador será removido, o que eliminará todos os dados respetivos."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Tentou desbloquear incorretamente o tablet <xliff:g id="NUMBER">%d</xliff:g> vezes. Este utilizador será removido, o que eliminará todos os dados respetivos."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Tentou desbloquear incorretamente o telemóvel <xliff:g id="NUMBER">%d</xliff:g> vezes. Este utilizador será removido, o que eliminará todos os dados respetivos."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Tentou desbloquear incorretamente o tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem êxito, o perfil de trabalho será removido, o que eliminará todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Tentou desbloquear incorretamente o telemóvel <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem êxito, o perfil de trabalho será removido, o que eliminará todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Tentou desbloquear incorretamente o tablet <xliff:g id="NUMBER">%d</xliff:g> vezes. O perfil de trabalho será removido, o que eliminará todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Tentou desbloquear incorretamente o telemóvel <xliff:g id="NUMBER">%d</xliff:g> vezes. O perfil de trabalho será removido, o que eliminará todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Desenhou a sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Depois de mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem sucesso, ser-lhe-á pedido para desbloquear o tablet através de uma conta de email.\n\n Tente novamente dentro de <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Desenhou a sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Depois de mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem sucesso, ser-lhe-á pedido para desbloquear o telemóvel através de uma conta de email.\n\n Tente novamente dentro de <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Código PIN do cartão SIM incorreto. Tem de contactar o seu operador para desbloquear o dispositivo."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Código PIN do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas.</item>
-      <item quantity="one">Código PIN do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_0">%d</xliff:g> tentativa antes de necessitar de contactar o seu operador para desbloquear o dispositivo.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Cartão SIM inutilizável. Contacte o seu operador."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Código PUK do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas antes de o cartão SIM ficar permanentemente inutilizável.</item>
-      <item quantity="one">Código PUK do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_0">%d</xliff:g> tentativa antes de o cartão SIM ficar permanentemente inutilizável.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Falha ao introduzir o PIN do cartão SIM!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Falha ao introduzir o PUK do cartão SIM!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Código aceite!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Sem serviço."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Alternar o método de introdução."</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modo de avião"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"É necessário um padrão após reiniciar o dispositivo"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"É necessário um PIN após reiniciar o dispositivo"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"É necessária uma palavra-passe após reiniciar o dispositivo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Para segurança adicional, é necessário um padrão"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Para segurança adicional, é necessária um PIN"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Para segurança adicional, é necessária uma palavra-passe"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"É necessário um padrão quando muda de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"É necessário um PIN quando muda de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"É necessária uma palavra-passe quando muda de perfil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"O administrador do dispositivo bloqueou o dispositivo"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"O dispositivo foi bloqueado manualmente"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">O dispositivo não é desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme a sequência.</item>
-      <item quantity="one">O dispositivo não é desbloqueado há <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirme a sequência.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">O dispositivo não é desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o PIN.</item>
-      <item quantity="one">O dispositivo não é desbloqueado há <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirme o PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">O dispositivo não é desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme a palavra-passe.</item>
-      <item quantity="one">O dispositivo não é desbloqueado há <xliff:g id="NUMBER_0">%d</xliff:g> hora. Confirme a palavra-passe.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Não reconhecido"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-pt/strings.xml b/packages/Keyguard/res/values-pt/strings.xml
deleted file mode 100644
index 2663337..0000000
--- a/packages/Keyguard/res/values-pt/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Bloqueio do teclado"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Insira o código PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Digite o PUK do SIM e o novo código PIN."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Código PUK do SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Novo código PIN do SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Toque para inserir a senha"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Digite a senha para desbloquear"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Insira o PIN para desbloquear"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Código PIN incorreto."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Carregado"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Carregando"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Carregando rapidamente"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Carregando lentamente"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Conecte seu carregador."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Pressione \"Menu\" para desbloquear."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Rede bloqueada"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Sem cartão SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Não há um cartão SIM no tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Não há um cartão SIM no telefone."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Insira um cartão SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"O cartão SIM não foi inserido ou não é possível lê-lo. Insira um cartão SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Cartão SIM inutilizável."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"O cartão SIM foi desativado permanentemente.\nEntre em contato com seu provedor de serviços sem fio para receber outro cartão SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"O cartão SIM está bloqueado."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"O cartão SIM está bloqueado pelo PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando o cartão SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próximo alarme definido para <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Excluir"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueci o padrão"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrão incorreto"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Senha incorreta"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN incorreto"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Tente novamente em <xliff:g id="NUMBER">%d</xliff:g> segundos."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Desenhe seu padrão"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Digite o PIN do cartão SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Insira o PIN do SIM para \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Digite o PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Digite a senha"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"O SIM foi desativado. Insira o código PUK para continuar. Entre em contato com a operadora para obter mais detalhes."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"O SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" foi desativado. Insira o código PUK para continuar. Entre em contato com a operadora para saber mais detalhes."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Digite o código PIN desejado"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirme o código PIN desejado"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Desbloqueando o cartão SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Digite um PIN com quatro a oito números."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"O código PUK deve ter 8 números ou mais."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Introduza novamente o código PUK correto. Muitas tentativas malsucedidas desativarão permanentemente o SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Os códigos PIN não coincidem"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Muitas tentativas de padrão"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Você digitou seu PIN incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente em <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Você digitou sua senha incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente em <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. \n\nTente novamente em <xliff:g id="NUMBER_1">%2$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este tablet será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este smartphone será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este tablet será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este smartphone será redefinido, o que excluirá todos os seus dados."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. Este usuário será removido, o que excluirá todos os dados do usuário."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas,o perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Após mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas malsucedidas, o perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Você tentou desbloquear o tablet incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. O perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Você tentou desbloquear o smartphone incorretamente <xliff:g id="NUMBER">%d</xliff:g> vezes. O perfil de trabalho será removido, o que excluirá todos os dados do perfil."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Se fizer mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas incorretas, será solicitado que você use o login do Google para desbloquear seu tablet.\n\n Tente novamente em <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Se fizer mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas incorretas, será solicitado que você use o login do Google para desbloquear.\n\n Tente novamente em <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Código PIN do SIM incorreto. Entre em contato com a operadora para desbloquear o dispositivo."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Código PIN do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>.</item>
-      <item quantity="other">Código PIN do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"O SIM está inutilizável. Entre em contato com a operadora."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Código PUK do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>. Caso o código correto não seja digitado, o SIM não poderá mais ser usado.</item>
-      <item quantity="other">Código PUK do SIM incorreto. Tentativas restantes: <xliff:g id="NUMBER_1">%d</xliff:g>. Caso o código correto não seja digitado, o SIM não poderá mais ser usado.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Falha na operação de PIN do SIM."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Falha na operação de PUK do SIM."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Código aceito."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Sem serviço."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Alterar o método de entrada"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modo avião"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"O padrão é exigido após a reinicialização do dispositivo"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"O PIN é exigido após a reinicialização do dispositivo"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"A senha é exigida após a reinicialização do dispositivo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"O padrão é necessário para aumentar a segurança"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"O PIN é necessário para aumentar a segurança"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"A senha é necessária para aumentar a segurança"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"O padrão é exigido quando você troca de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"O PIN é exigido quando você troca de perfil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"A senha é exigida quando você troca de perfil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"O dispositivo foi bloqueado pelo administrador"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"O dispositivo foi bloqueado manualmente"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o padrão.</item>
-      <item quantity="other">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o padrão.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o PIN.</item>
-      <item quantity="other">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme o PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme a senha.</item>
-      <item quantity="other">O dispositivo não foi desbloqueado há <xliff:g id="NUMBER_1">%d</xliff:g> horas. Confirme a senha.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Não reconhecido"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ro/strings.xml b/packages/Keyguard/res/values-ro/strings.xml
deleted file mode 100644
index 09a066a..0000000
--- a/packages/Keyguard/res/values-ro/strings.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Blocarea tastaturii"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Introduceți codul PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Introduceți codul PUK pentru cardul SIM și codul PIN nou"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Codul PUK pentru cardul SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Codul PIN nou pentru cardul SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Atingeți și introduceți parola"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Introduceți parola pentru a debloca"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Introduceți codul PIN pentru a debloca"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Cod PIN incorect."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Încărcată"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Se încarcă"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Încărcare rapidă"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Se încarcă lent"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Conectați încărcătorul."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Apăsați pe Meniu pentru a debloca."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Rețea blocată"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Fără SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Tableta nu are card SIM."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Telefonul nu are card SIM."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Introduceți un card SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Cardul SIM lipsește sau nu poate fi citit. Introduceți un card SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Card SIM inutilizabil."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Cardul SIM este dezactivat definitiv.\n Contactați furnizorul de servicii wireless pentru a obține alt card SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Cardul SIM este blocat."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Cardul SIM este blocat cu codul PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Se deblochează cardul SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zona codului PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zona codului PIN al cardului SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zona codului PUK al cardului SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Următoarea alarmă este setată la <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ștergeți"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Model uitat"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Model greșit"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Parolă greșită"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Cod PIN greșit"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Încercați din nou peste <xliff:g id="NUMBER">%d</xliff:g>   secunde."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Desenați modelul"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introduceți codul PIN al cardului SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Introduceți codul PIN al cardului SIM pentru „<xliff:g id="CARRIER">%1$s</xliff:g>”"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Introduceți codul PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Introduceți parola"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Cardul SIM este acum dezactivat. Introduceți codul PUK pentru a continua. Contactați operatorul pentru mai multe detalii."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Cardul SIM „<xliff:g id="CARRIER">%1$s</xliff:g>” este acum dezactivat. Pentru a continua, introduceți codul PUK. Pentru detalii, contactați operatorul."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Introduceți codul PIN dorit"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirmați codul PIN dorit"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Se deblochează cardul SIM..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Introduceți un cod PIN format din 4 până la 8 cifre."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Codul PUK trebuie să aibă minimum 8 cifre."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Reintroduceți codul PUK corect. Încercările repetate vor dezactiva definitiv cardul SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Codurile PIN nu coincid"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Prea multe încercări de desenare a modelului"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Ați introdus incorect codul PIN de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori.\n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Ați introdus incorect parola de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a tabletei. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, această tabletă va fi resetată, iar toate datele acesteia vor fi șterse."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a telefonului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, acest telefon va fi resetat, iar toate datele acestuia vor fi șterse."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a tabletei. Această tabletă va fi resetată, iar toate datele acesteia vor fi șterse."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a telefonului. Acest telefon va fi resetat, iar toate datele acestuia vor fi șterse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a tabletei. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, acest utilizator va fi eliminat, iar toate datele utilizatorului vor fi șterse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a telefonului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, acest utilizator va fi eliminat, iar toate datele utilizatorului vor fi șterse."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a tabletei. Acest utilizator va fi eliminat, iar toate datele utilizatorului vor fi șterse."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a telefonului. Acest utilizator va fi eliminat, iar toate datele utilizatorului vor fi șterse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a tabletei. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, profilul de serviciu va fi eliminat, iar toate datele profilului vor fi șterse."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a telefonului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, profilul de serviciu va fi eliminat, iar toate datele profilului vor fi șterse."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a tabletei. Profilul de serviciu va fi eliminat, iar toate datele profilului vor fi șterse."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a telefonului. Profilul de serviciu va fi eliminat, iar toate datele profilului vor fi șterse."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Codul PIN pentru cardul SIM este incorect. Contactați operatorul pentru a vă debloca dispozitivul."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="few">Codul PIN pentru cardul SIM este incorect. V-au mai rămas <xliff:g id="NUMBER_1">%d</xliff:g> încercări.</item>
-      <item quantity="other">Codul PIN pentru cardul SIM este incorect. V-au mai rămas <xliff:g id="NUMBER_1">%d</xliff:g> de încercări.</item>
-      <item quantity="one">Codul PIN pentru cardul SIM este incorect. V-a mai rămas <xliff:g id="NUMBER_0">%d</xliff:g> încercare, după care va trebui să contactați operatorul pentru a vă debloca dispozitivul.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Cardul SIM nu poate fi utilizat. Contactați operatorul."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="few">Codul PUK pentru cardul SIM este incorect. V-au mai rămas <xliff:g id="NUMBER_1">%d</xliff:g> încercări până când cardul SIM va deveni inutilizabil definitiv.</item>
-      <item quantity="other">Codul PUK pentru cardul SIM este incorect. V-au mai rămas <xliff:g id="NUMBER_1">%d</xliff:g> de încercări până când cardul SIM va deveni inutilizabil definitiv.</item>
-      <item quantity="one">Codul PUK pentru cardul SIM este incorect. V-a mai rămas <xliff:g id="NUMBER_0">%d</xliff:g> încercare până când cardul SIM va deveni inutilizabil definitiv.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Deblocarea cu ajutorul codului PIN pentru cardul SIM nu a reușit!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Deblocarea cu ajutorul codului PUK pentru cardul SIM nu a reușit!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Cod acceptat!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Fără serviciu."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Comutați metoda de introducere a textului"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Mod Avion"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Modelul este necesar după repornirea dispozitivului"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Codul PIN este necesar după repornirea dispozitivului"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Parola este necesară după repornirea dispozitivului"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Modelul este necesar pentru securitate suplimentară"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Codul PIN este necesar pentru securitate suplimentară"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Parola este necesară pentru securitate suplimentară"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Modelul este necesar când comutați între profiluri"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Codul PIN este necesar când comutați între profiluri"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Parola este necesară când comutați între profiluri"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Administratorul dispozitivului a blocat dispozitivul"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Dispozitivul a fost blocat manual"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="few">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_1">%d</xliff:g> ore. Confirmați modelul.</item>
-      <item quantity="other">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_1">%d</xliff:g> de ore. Confirmați modelul.</item>
-      <item quantity="one">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_0">%d</xliff:g> oră. Confirmați modelul.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="few">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_1">%d</xliff:g> ore. Confirmați codul PIN.</item>
-      <item quantity="other">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_1">%d</xliff:g> de ore. Confirmați codul PIN.</item>
-      <item quantity="one">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_0">%d</xliff:g> oră. Confirmați codul PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="few">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_1">%d</xliff:g> ore. Confirmați parola.</item>
-      <item quantity="other">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_1">%d</xliff:g> de ore. Confirmați parola.</item>
-      <item quantity="one">Dispozitivul nu a fost deblocat de <xliff:g id="NUMBER_0">%d</xliff:g> oră. Confirmați parola.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nu este recunoscută"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ru/strings.xml b/packages/Keyguard/res/values-ru/strings.xml
deleted file mode 100644
index 7466c66..0000000
--- a/packages/Keyguard/res/values-ru/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Введите PIN-код"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Введите PUK-код и новый PIN-код"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-код"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Новый PIN-код"</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_wrong_pin_code" msgid="2422225591006134936">"Неверный PIN-код."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Батарея заряжена"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Зарядка батареи"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Быстрая зарядка"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Медленная зарядка"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Подключите зарядное устройство."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Для разблокировки нажмите \"Меню\"."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Сеть заблокирована"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Нет SIM-карты"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Нет SIM-карты."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Нет SIM-карты."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Вставьте SIM-карту."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-карта отсутствует или недоступна. Вставьте SIM-карту."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM-карта непригодна."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM-карта окончательно заблокирована.\nЧтобы получить новую, обратитесь к своему оператору."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карта заблокирована"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Для разблокировки SIM-карты требуется PUK-код."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Разблокировка SIM-карты…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-код"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-код SIM-карты"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-код SIM-карты"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Будильник сработает в <xliff:g id="ALARM">%1$s</xliff:g>."</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Клавиша удаления"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Клавиша ввода"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забыли графический ключ?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильный графический ключ"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Неправильный пароль"</string>
-    <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">"Введите PIN-код SIM-карты"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Введите PIN-код SIM-карты \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-карта \"<xliff:g id="CARRIER">%1$s</xliff:g>\" отключена. Чтобы продолжить работу, введите PUK-код. Чтобы получить дополнительную информацию, свяжитесь с оператором связи."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Введите желаемый PIN-код"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Введите PIN-код ещё раз"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Разблокировка SIM-карты…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Введите PIN-код (от 4 до 8 цифр)."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-код должен содержать не менее 8 символов."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Вы <xliff:g id="NUMBER_0">%1$d</xliff:g> раз неверно указали PIN-код. \n\nПовтор через <xliff:g id="NUMBER_1">%2$d</xliff:g> сек."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Вы <xliff:g id="NUMBER_0">%1$d</xliff:g> раз неверно указали пароль.\n\nПовтор через <xliff:g id="NUMBER_1">%2$d</xliff:g> сек."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Вы <xliff:g id="NUMBER_0">%1$d</xliff:g> раз неверно указали графический ключ.\n\nПовтор через <xliff:g id="NUMBER_1">%2$d</xliff:g> сек."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Количество неудачных попыток разблокировать планшетный ПК: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Количество оставшихся попыток: <xliff:g id="NUMBER_1">%2$d</xliff:g>. Если они также будут неуспешными, настройки планшетного ПК будут сброшены, а все его данные – удалены."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Количество неудачных попыток разблокировать телефон: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Количество оставшихся попыток: <xliff:g id="NUMBER_1">%2$d</xliff:g>. Если они также будут неуспешными, настройки телефона будут сброшены, а все его данные – удалены."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Достигнуто максимальное количество неудачных попыток разблокировать планшетный ПК (<xliff:g id="NUMBER">%d</xliff:g>). Настройки планшетного ПК будут сброшены, а все его данные – удалены."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Достигнуто максимальное количество неудачных попыток разблокировать телефон (<xliff:g id="NUMBER">%d</xliff:g>). Настройки телефона будут сброшены, а все его данные – удалены."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Количество неудачных попыток разблокировать планшетный ПК: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Количество оставшихся попыток: <xliff:g id="NUMBER_1">%2$d</xliff:g>. Если они также будут неуспешными, аккаунт этого пользователя и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Количество неудачных попыток разблокировать телефон: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Количество оставшихся попыток: <xliff:g id="NUMBER_1">%2$d</xliff:g>. Если они также будут неуспешными, аккаунт этого пользователя и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Достигнуто максимальное количество неудачных попыток разблокировать планшетный ПК (<xliff:g id="NUMBER">%d</xliff:g>). Аккаунт этого пользователя и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Достигнуто максимальное количество неудачных попыток разблокировать телефон (<xliff:g id="NUMBER">%d</xliff:g>). Аккаунт этого пользователя и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Количество неудачных попыток разблокировать планшетный ПК: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Количество оставшихся попыток: <xliff:g id="NUMBER_1">%2$d</xliff:g>. Если они также будут неуспешными, рабочий профиль и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Количество неудачных попыток разблокировать телефон: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Количество оставшихся попыток: <xliff:g id="NUMBER_1">%2$d</xliff:g>. Если они также будут неуспешными, рабочий профиль и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Достигнуто максимальное количество неудачных попыток разблокировать планшетный ПК (<xliff:g id="NUMBER">%d</xliff:g>). Рабочий профиль и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Достигнуто максимальное количество неудачных попыток разблокировать телефон (<xliff:g id="NUMBER">%d</xliff:g>). Рабочий профиль и все его данные будут удалены."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Вы <xliff:g id="NUMBER_0">%1$d</xliff:g> раз неверно указали графический ключ. После <xliff:g id="NUMBER_1">%2$d</xliff:g> неверных попыток для разблокировки планшетного ПК потребуется войти в аккаунт Google.\n\nПовтор через <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Вы <xliff:g id="NUMBER_0">%1$d</xliff:g> раз неверно указали графический ключ. После <xliff:g id="NUMBER_1">%2$d</xliff:g> неверных попыток для разблокировки телефона потребуется войти в аккаунт Google.\n\nПовтор через <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Неверный PIN-код. Обратитесь к оператору связи, чтобы разблокировать SIM-карту."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Неверный PIN-код. Осталась <xliff:g id="NUMBER_1">%d</xliff:g> попытка. После этого SIM-карта будет заблокирована и вам придется обратиться к оператору связи.</item>
-      <item quantity="few">Неверный PIN-код. Осталось <xliff:g id="NUMBER_1">%d</xliff:g> попытки. После этого SIM-карта будет заблокирована и вам придется обратиться к оператору связи.</item>
-      <item quantity="many">Неверный PIN-код. Осталось <xliff:g id="NUMBER_1">%d</xliff:g> попыток. После этого SIM-карта будет заблокирована и вам придется обратиться к оператору связи.</item>
-      <item quantity="other">Неверный PIN-код. Осталось <xliff:g id="NUMBER_1">%d</xliff:g> попыток. После этого SIM-карта будет заблокирована и вам придется обратиться к оператору связи.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-карта заблокирована навсегда. Обратитесь к оператору связи."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Неверный PUK-код. Осталась <xliff:g id="NUMBER_1">%d</xliff:g> попытка. После этого SIM-карта будет заблокирована навсегда.</item>
-      <item quantity="few">Неверный PUK-код. Осталось <xliff:g id="NUMBER_1">%d</xliff:g> попытки. После этого SIM-карта будет заблокирована навсегда.</item>
-      <item quantity="many">Неверный PUK-код. Осталось <xliff:g id="NUMBER_1">%d</xliff:g> попыток. После этого SIM-карта будет заблокирована навсегда.</item>
-      <item quantity="other">Неверный PUK-код. Осталось <xliff:g id="NUMBER_1">%d</xliff:g> попыток. После этого SIM-карта будет заблокирована навсегда.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Не удалось разблокировать SIM-карту"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Не удалось разблокировать SIM-карту"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Код принят"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Нет сигнала."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Сменить способ ввода"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Режим полета"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"После перезагрузки устройства необходимо ввести графический ключ"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"После перезагрузки устройства необходимо ввести PIN-код"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"После перезагрузки устройства необходимо ввести пароль"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"В качестве дополнительной меры безопасности введите графический ключ"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"В качестве дополнительной меры безопасности введите PIN-код"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"В качестве дополнительной меры безопасности введите пароль"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"После смены профиля необходимо ввести графический ключ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"После смены профиля необходимо ввести PIN-код"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"После смены профиля необходимо ввести пароль"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Администратор заблокировал устройство"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Устройство было заблокировано вручную"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> час. Введите графический ключ ещё раз.</item>
-      <item quantity="few">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часа. Введите графический ключ ещё раз.</item>
-      <item quantity="many">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часов. Введите графический ключ ещё раз.</item>
-      <item quantity="other">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часа. Введите графический ключ ещё раз.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> час. Введите PIN-код ещё раз.</item>
-      <item quantity="few">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часа. Введите PIN-код ещё раз.</item>
-      <item quantity="many">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часов. Введите PIN-код ещё раз.</item>
-      <item quantity="other">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часа. Введите PIN-код ещё раз.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> час. Введите пароль ещё раз.</item>
-      <item quantity="few">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часа. Введите пароль ещё раз.</item>
-      <item quantity="many">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часов. Введите пароль ещё раз.</item>
-      <item quantity="other">Устройство не разблокировали <xliff:g id="NUMBER_1">%d</xliff:g> часа. Введите пароль ещё раз.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не распознано"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-si/strings.xml b/packages/Keyguard/res/values-si/strings.xml
deleted file mode 100644
index 5f96e8c..0000000
--- a/packages/Keyguard/res/values-si/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK සහ නව PIN කේතය ටයිප් කරන්න"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK කේතය"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"නව SIM PIN කේතය"</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_wrong_pin_code" msgid="2422225591006134936">"වැරදි PIN කේතයකි."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"අරෝපිතයි"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ආරෝපණය වෙමින්"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"වේගයෙන් ආරෝපණය"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"සෙමින් ආරෝපණය"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"ඔබගේ ආරෝපකයට සම්බන්ධ කරන්න."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"අගුළු ඇරීමට මෙනුව ඔබන්න."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ජාල අගුළු දමා ඇත"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM පත නැත"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ටැබ්ලටයේ SIM පත නොමැත."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"දුරකථනය තුල SIM පතක් නැත."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM පත ඇතුල් කරන්න."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM පත නොමැත හෝ කියවිය නොහැක. SIM පතක් ඇතුල් කරන්න."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"භාවිතා කළ නොහැකි SIM පත."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"ඔබගේ SIM පත ස්ථිරව අබල කර ඇත.\n වෙනත් SIM පතක් සඳහා ඔබගේ නොරැහැන් සේවා සැපයුම්කරු සම්බන්ධ කරගන්න."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM පත අගුළු දමා ඇත."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM පත PUK අගුළු ලා ඇත."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM පත අගුළු හරිමින්..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN කොටස"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN කොටස"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK කොටස"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> ට ඊළඟ සීනුව සකස් කර ඇත"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"මකන්න"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ඇතුල් කරන්න"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"රටාව අමතකයි"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"වැරදි රටාවකි"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"වැරදි මුරපදය"</string>
-    <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_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" සඳහා 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" දැන් අබල කර ඇත. දිගටම පවත්වා ගෙන යාමට PUK කේතය ඇතුළත් කරන්න. විස්තර සඳහා වාහකයා සම්බන්ධ කරගන්න."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"අපේක්ෂිත PIN කේතය ඇතුළත් කරන්න"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"අපේක්ෂිත PIN කේතය ස්ථිර කරන්න"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM පත අගුළු අරිමින්..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"අංක 4 සිට 8 අතර වන PIN එකක් ටයිප් කරන්න."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK කේතය සංඛ්‍යා 8 ක් හෝ වැඩි විය යුතුය."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"ඔබ PIN අංකය <xliff:g id="NUMBER_0">%1$d</xliff:g> වාරයක් වැරදියට ටයිප් කොට ඇත.\n\n තත්පර <xliff:g id="NUMBER_1">%2$d</xliff:g> ක් ඇතුළත නැවත උත්සාහ කරන්න."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"<xliff:g id="NUMBER_0">%1$d</xliff:g> වතාවක් ඔබගේ මුරපදය ඔබ වැරදියට ටයිප් කර ඇත. \n\nතත්පර <xliff:g id="NUMBER_1">%2$d</xliff:g> ට පසුව නැවත උත්සහ කරන්න."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ඔබ <xliff:g id="NUMBER_0">%1$d</xliff:g> වාරයක් අගුළු ඇරීමේ රටාව වැරදියට ඇඳ ඇත. \n\nතත්පර <xliff:g id="NUMBER_1">%2$d</xliff:g> ක් ඇතුළත නැවත උත්සාහ කරන්න."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"ඔබ ඔබගේ ටැබ්ලටය අගුළු හැරීමට <xliff:g id="NUMBER_0">%1$d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. අසාර්ථක උත්සාහ <xliff:g id="NUMBER_1">%2$d</xliff:g> කින් පසුව, ටැබ්ලටය නැවත සකස් කෙරෙනු ඇති අතර, එමගින් සියලු දත්ත මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"ඔබ ඔබගේ දුරකථනය අගුළු හැරීමට <xliff:g id="NUMBER_0">%1$d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. අසාර්ථක උත්සාහ <xliff:g id="NUMBER_1">%2$d</xliff:g> කින් පසුව, දුරකථනය නැවත සකස් කෙරෙනු ඇති අතර, එමගින් සියලු දත්ත මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"ඔබ ඔබගේ දුරකථනය අගුළු හැරීමට <xliff:g id="NUMBER">%d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. සියලුම දත්ත මකා දමමින්, මෙම ටැබ්ලටය නැවත සැකසෙනු ඇත."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"ඔබ ඔබගේ දුරකථනය අගුළු හැරීමට <xliff:g id="NUMBER">%d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. සියලුම දත්ත මකා දමමින්, මෙම දුරකථනය නැවත සැකසෙනු ඇත."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"ඔබ ඔබගේ ටැබ්ලටය අගුළු හැරීමට <xliff:g id="NUMBER_0">%1$d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. අසාර්ථක උත්සාහ <xliff:g id="NUMBER_1">%2$d</xliff:g> කින් පසුව, පරිශීලකයා ඉවත් වනු ඇති අතර, එමගින් සියලු පරිශීලක දත්ත මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"ඔබ ඔබගේ දුරකථනය අගුළු හැරීමට <xliff:g id="NUMBER_0">%1$d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. අසාර්ථක උත්සාහ <xliff:g id="NUMBER_1">%2$d</xliff:g> කින් පසුව, පරිශීලකයා ඉවත් වනු ඇති අතර, එමගින් සියලු පරිශීලක දත්ත මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"ඔබ ඔබගේ ටැබ්ලටය අගුළු හැරීමට <xliff:g id="NUMBER">%d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. සියලුම පරිශීලක දත්ත මකා දමමින්, මෙම පරිශීලකයා මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"ඔබ ඔබගේ දුරකථනය අගුළු හැරීමට <xliff:g id="NUMBER">%d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. සියලුම පරිශීලක දත්ත මකා දමමින්, මෙම පරිශීලකයා මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"ඔබ ඔබගේ ටැබ්ලටය අගුළු හැරීමට <xliff:g id="NUMBER_0">%1$d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. අසාර්ථක උත්සාහ <xliff:g id="NUMBER_1">%2$d</xliff:g> කින් පසුව, කාර්යාල පැතිකඩ ඉවත් වනු ඇති අතර, එමගින් සියලු පැතිකඩ දත්ත මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"ඔබ ඔබගේ දුරකථනය අගුළු හැරීමට <xliff:g id="NUMBER_0">%1$d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. අසාර්ථක උත්සාහ <xliff:g id="NUMBER_1">%2$d</xliff:g> කින් පසුව, කාර්යාල පැතිකඩ ඉවත් වනු ඇති අතර, එමගින් සියලු පැතිකඩ දත්ත මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"ඔබ ඔබගේ ටැබ්ලටය අගුළු හැරීමට <xliff:g id="NUMBER">%d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. සියලුම පැතිකඩ දත්ත මකා දමමින්, කාර්යාල පැතිකඩ මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"ඔබ ඔබගේ දුරකථනය අගුළු හැරීමට <xliff:g id="NUMBER">%d</xliff:g> වරක් වැරදි වශයෙන් උත්සාහ කර ඇත. සියලුම පැතිකඩ දත්ත මකා දමමින්, කාර්යාල පැතිකඩ මකා දැමෙනු ඇත."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ඔබ අගුළු ඇරිමේ රටාව <xliff:g id="NUMBER_0">%1$d</xliff:g> වතාවක් වැරදියට ඇඳ ඇත. තවත් අසාර්ථක උත්සාහ <xliff:g id="NUMBER_1">%2$d</xliff:g> කින් පසුව, ඊ-තැපැල් ගිණුම භාවිතා කරමින් ඔබගේ ටැබ්ලටයේ අගුළු ඇරීමට ඔබට පවසනු ඇත.\n\n නැවත තත්පර <xliff:g id="NUMBER_2">%3$d</xliff:g> කින් උත්සාහ කරන්න."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ඔබ වැරදියට <xliff:g id="NUMBER_0">%1$d</xliff:g> වතාවක් ඔබගේ අගුළු හැරීමේ රටාව ඇඳ ඇත. අසාර්ථක උත්සහ කිරීම් <xliff:g id="NUMBER_1">%2$d</xliff:g> න් පසුව, ඔබගේ ඊ-තැපැල් ලිපිනය භාවිතයෙන් ඔබගේ දුරකථනය අගුළු හැරීමට ඔබගෙන් අසයි.\n\n තත්පර <xliff:g id="NUMBER_2">%3$d</xliff:g> න් පසුව නැවත උත්සහ කරන්න."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"වැරදී SIM PIN කේතයකි, ඔබගේ දුරකතනයේ අඟුල හැරීමට ඔබගේ වාහකයා ඔබ දැන් සම්බන්ධ කරගත යුතුය."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">වැරදි SIM PIN කේතයකි, ඔබට උත්සාහයන් <xliff:g id="NUMBER_1">%d</xliff:g> ක් ඉතිරිව ඇත.</item>
-      <item quantity="other">වැරදි SIM PIN කේතයකි, ඔබට උත්සාහයන් <xliff:g id="NUMBER_1">%d</xliff:g> ක් ඉතිරිව ඇත.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM කාඩ් පත භාවිතා කළ නොහැක. ඔබගේ වාහකය සම්බන්ධ කරගන්න."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">වැරදී SIM PUK කේතයකි, SIM කාඩ් පත ස්ථිරවම පාවිච්චි කළ නොහැකි ලෙසට  පත්වීමට පෙර ඔබට තවත් උත්සාහයන් <xliff:g id="NUMBER_1">%d</xliff:g> ඉතිරිව ඇත.</item>
-      <item quantity="other">වැරදී SIM PUK කේතයකි, SIM කාඩ් පත ස්ථිරවම පාවිච්චි කළ නොහැකි ලෙසට  පත්වීමට පෙර ඔබට තවත් උත්සාහයන් <xliff:g id="NUMBER_1">%d</xliff:g> ඉතිරිව ඇත.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN ක්‍රියාවලිය අපොහොසත් විය!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK ක්‍රියාවලිය අපොහොසත් විය!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"කේතය පිළිගැණුනි!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"සේවාව නැත."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ආදාන ක්‍රමය මාරු කිරීම"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"ගුවන්යානා ප්‍රකාරය"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"උපාංගය නැවත ආරම්භ වූ පසු රටාව අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"උපාංගය නැවත ආරම්භ වූ පසු PIN අංකය අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"උපාංගය නැවත ආරම්භ වූ පසු මුරපදය අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"අමතර ආරක්ෂාව සඳහා රටාව අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"අමතර ආරක්ෂාව සඳහා PIN අංකය අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"අමතර ආරක්ෂාව සඳහා මුරපදය අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"ඔබ පැතිකඩවල් මාරු කරන විට රටාව අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"ඔබ පැතිකඩවල් මාරු කරන විට PIN අංකය අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"ඔබ පැතිකඩවල් මාරු කරන විට මුරපදය අවශ්‍යයි"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"උපාංග පරිපාලක උපාංගය අගුලු දමන ලදී"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"උපාංගය හස්තීයව අගුලු දමන ලදී"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">උපාංගය පැය <xliff:g id="NUMBER_1">%d</xliff:g>කට අගුලු හැර නැත. රටාව තහවුරු කරන්න.</item>
-      <item quantity="other">උපාංගය පැය <xliff:g id="NUMBER_1">%d</xliff:g>කට අගුලු හැර නැත. රටාව තහවුරු කරන්න.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">උපාංගය පැය <xliff:g id="NUMBER_1">%d</xliff:g>කට අගුලු හැර නැත. PIN අංකය තහවුරු කරන්න.</item>
-      <item quantity="other">උපාංගය පැය <xliff:g id="NUMBER_1">%d</xliff:g>කට අගුලු හැර නැත. PIN අංකය තහවුරු කරන්න.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">උපාංගය පැය <xliff:g id="NUMBER_1">%d</xliff:g>කට අගුලු හැර නැත. මුරපදය තහවුරු කරන්න.</item>
-      <item quantity="other">උපාංගය පැය <xliff:g id="NUMBER_1">%d</xliff:g>කට අගුලු හැර නැත. මුරපදය තහවුරු කරන්න.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"අඳුනාගත නොහැක"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-sk/strings.xml b/packages/Keyguard/res/values-sk/strings.xml
deleted file mode 100644
index 82a4f1d4..0000000
--- a/packages/Keyguard/res/values-sk/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Zámka klávesnice"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Zadajte kód PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Zadajte kód PUK SIM karty a nový kód PIN"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Kód PUK SIM karty"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nový kód PIN SIM karty"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Dotknutím zadajte heslo"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Zadajte heslo na odomknutie"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Zadajte kód PIN na odomknutie"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Nesprávny kód PIN."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Batéria je nabitá"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Nabíja sa"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Rýchle nabíjanie"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Pomalé nabíjanie"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Pripojte nabíjačku."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Telefón odomknete stlačením tlačidla Menu."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Sieť je zablokovaná"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nie je vložená SIM karta"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"V tablete nie je žiadna SIM karta."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"V telefóne nie je žiadna SIM karta."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Vložte SIM kartu."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM karta chýba alebo sa z nej nedá čítať. Vložte SIM kartu."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM karta je nepoužiteľná."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Vaša SIM karta bola natrvalo zakázaná.\nAk chcete získať inú SIM kartu, kontaktujte svojho poskytovateľa bezdrôtových služieb."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karta je uzamknutá."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karta je uzamknutá pomocou kódu PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Prebieha odomykanie SIM karty..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Oblasť kódu PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Oblasť kódu PIN SIM karty"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Oblasť kódu PUK SIM karty"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nasledujúci budík je nastavený na <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Odstrániť"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nepamätám si vzor"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávny vzor"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Nesprávne heslo"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Nesprávny kód PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Skúste to znova o <xliff:g id="NUMBER">%d</xliff:g> s."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Nakreslite svoj vzor"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Zadajte kód PIN SIM karty"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Zadajte kód PIN pre SIM kartu operátora <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Zadajte kód PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Zadajte heslo"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM karta je teraz zakázaná. Ak chcete pokračovať, zadajte kód PUK. Podrobné informácie získate od operátora."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM karta operátora <xliff:g id="CARRIER">%1$s</xliff:g> bola zakázaná. Ak chcete pokračovať, zadajte kód PUK. Podrobnosti získate od svojho operátora."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Zadajte požadovaný kód PIN"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potvrďte požadovaný kód PIN"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Prebieha odomykanie SIM karty..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Zadajte kód PIN s dĺžkou 4 až 8 číslic."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Kód PUK musí obsahovať 8 alebo viac číslic."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Znova zadajte správny kód PUK. Opakované pokusy zakážu SIM kartu natrvalo."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kódy PIN sa nezhodujú"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Príliš veľa pokusov o nakreslenie vzoru"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"<xliff:g id="NUMBER_0">%1$d</xliff:g>-krát ste zadali nesprávny kód PIN. \n\nSkúste to znova o <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"<xliff:g id="NUMBER_0">%1$d</xliff:g>-krát ste zadali nesprávne heslo. \n\nSkúste to znova o <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"<xliff:g id="NUMBER_0">%1$d</xliff:g>-krát ste použili nesprávny bezpečnostný vzor. \n\nSkúste to znova o <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Telefón ste sa pokúsili <xliff:g id="NUMBER_0">%1$d</xliff:g>-krát nesprávne odomknúť. Po ďalších neúspešných pokusoch (počet: <xliff:g id="NUMBER_1">%2$d</xliff:g>) bude tento tablet obnovený a všetky údaje, ktoré sú v ňom uložené, budú odstránené."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Telefón ste sa pokúsili <xliff:g id="NUMBER_0">%1$d</xliff:g>-krát nesprávne odomknúť. Po ďalších neúspešných pokusoch (počet: <xliff:g id="NUMBER_1">%2$d</xliff:g> ) bude tento telefón obnovený a všetky údaje, ktoré sú v ňom uložené, budú odstránené."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Tablet ste sa pokúsili <xliff:g id="NUMBER">%d</xliff:g>-krát nesprávne odomknúť. Tablet bude obnovený a všetky údaje, ktoré sú v ňom uložené, budú odstránené."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Telefón ste sa pokúsili <xliff:g id="NUMBER">%d</xliff:g>-krát nesprávne odomknúť. Telefón bude obnovený a všetky údaje, ktoré sú v ňom uložené, budú odstránené."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Tablet ste sa pokúsili <xliff:g id="NUMBER_0">%1$d</xliff:g>-krát nesprávne odomknúť. Po ďalších neúspešných pokusoch (počet: <xliff:g id="NUMBER_1">%2$d</xliff:g> ) bude tento používateľ odstránený a spolu s ním všetky jeho údaje."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Telefón ste sa pokúsili <xliff:g id="NUMBER_0">%1$d</xliff:g>-krát nesprávne odomknúť. Po ďalších neúspešných pokusoch (počet: <xliff:g id="NUMBER_1">%2$d</xliff:g>) bude tento používateľ odstránený a spolu s ním všetky jeho údaje."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Tablet ste sa pokúsili <xliff:g id="NUMBER">%d</xliff:g>-krát nesprávne odomknúť. Používateľ bude odstránený a spolu s ním všetky jeho údaje."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Telefón ste sa pokúsili <xliff:g id="NUMBER">%d</xliff:g>-krát nesprávne odomknúť. Používateľ bude odstránený a spolu s ním všetky jeho údaje."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Tablet ste sa pokúsili <xliff:g id="NUMBER_0">%1$d</xliff:g>-krát nesprávne odomknúť. Po ďalších neúspešných pokusoch (počet: <xliff:g id="NUMBER_1">%2$d</xliff:g>) bude pracovný profil odstránený a spolu s ním všetky údaje profilu."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Telefón ste sa pokúsili <xliff:g id="NUMBER_0">%1$d</xliff:g>-krát nesprávne odomknúť. Po ďalších neúspešných pokusoch (počet: <xliff:g id="NUMBER_1">%2$d</xliff:g>) bude pracovný profil odstránený a spolu s ním všetky údaje profilu."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Tablet ste sa pokúsili <xliff:g id="NUMBER">%d</xliff:g>-krát nesprávne odomknúť. Pracovný profil bude odstránený spolu so všetkými údajmi."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Telefón ste sa pokúsili <xliff:g id="NUMBER">%d</xliff:g>-krát nesprávne odomknúť. Pracovný profil bude odstránený spolu so všetkými údajmi."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"<xliff:g id="NUMBER_0">%1$d</xliff:g>-krát ste nesprávne nakreslili svoj bezpečnostný vzor. Po ďalších <xliff:g id="NUMBER_1">%2$d</xliff:g> neúspešných pokusoch sa zobrazí výzva na odomknutie tabletu pomocou e-mailového účtu.\n\n Skúste to znova o <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"<xliff:g id="NUMBER_0">%1$d</xliff:g>-krát ste nesprávne nakreslili svoj bezpečnostný vzor. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> ďalších neúspešných pokusoch sa zobrazí výzva na odomknutie telefónu pomocou e-mailového účtu.\n\n Skúste to znova o <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Nesprávny kód PIN SIM karty. Teraz musíte kontaktovať svojho operátora, aby vám odomkol zariadenie."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="few">Nesprávny kód PIN SIM karty. Zostávajú vám <xliff:g id="NUMBER_1">%d</xliff:g> pokusy.</item>
-      <item quantity="many">Nesprávny kód PIN SIM karty. Zostáva vám <xliff:g id="NUMBER_1">%d</xliff:g> pokusu.</item>
-      <item quantity="other">Nesprávny kód PIN SIM karty. Zostáva vám <xliff:g id="NUMBER_1">%d</xliff:g> pokusov.</item>
-      <item quantity="one">Nesprávny kód PIN SIM karty. Zostáva vám <xliff:g id="NUMBER_0">%d</xliff:g> pokus, potom budete musieť kontaktovať svojho operátora, aby vám odomkol zariadenie.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM karta je nepoužiteľná. Kontaktujte svojho operátora."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="few">Nesprávny kód PUK SIM karty. Zostávajú vám <xliff:g id="NUMBER_1">%d</xliff:g> pokusy, potom sa SIM karta natrvalo zablokuje.</item>
-      <item quantity="many">Nesprávny kód PUK SIM karty. Zostáva vám <xliff:g id="NUMBER_1">%d</xliff:g> pokusu, potom sa SIM karta natrvalo zablokuje.</item>
-      <item quantity="other">Nesprávny kód PUK SIM karty. Zostáva vám <xliff:g id="NUMBER_1">%d</xliff:g> pokusov, potom sa SIM karta natrvalo zablokuje.</item>
-      <item quantity="one">Nesprávny kód PUK SIM karty. Zostáva vám <xliff:g id="NUMBER_0">%d</xliff:g> pokus, potom sa SIM karta natrvalo zablokuje.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Operácia kódu PIN SIM karty zlyhala!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operácia kódu PUK SIM karty zlyhala!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kód bol prijatý!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Žiadny signál"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Prepnúť metódu vstupu"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Režim v lietadle"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Po reštartovaní zariadenia musíte zadať bezpečnostný vzor"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Po reštartovaní zariadenia musíte zadať kód PIN"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Po reštartovaní zariadenia musíte zadať heslo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Na ďalšie zabezpečenie musíte zadať bezpečnostný vzor"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Na ďalšie zabezpečenie musíte zadať kód PIN"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Na ďalšie zabezpečenie musíte zadať heslo"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Po prepnutí profilov musíte zadať bezpečnostný vzor"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Po prepnutí profilov musíte zadať kód PIN"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Po prepnutí profilov musíte zadať heslo"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Zariadenie uzamkol správca"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Zariadenie bolo uzamknuté ručne"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="few">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodiny. Potvrďte vzor.</item>
-      <item quantity="many">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodiny. Potvrďte vzor.</item>
-      <item quantity="other">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodín. Potvrďte vzor.</item>
-      <item quantity="one">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_0">%d</xliff:g> hodinu. Potvrďte vzor.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="few">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodiny. Potvrďte kód PIN.</item>
-      <item quantity="many">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodiny. Potvrďte kód PIN.</item>
-      <item quantity="other">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodín. Potvrďte kód PIN.</item>
-      <item quantity="one">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_0">%d</xliff:g> hodinu. Potvrďte kód PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="few">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodiny. Potvrďte heslo.</item>
-      <item quantity="many">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodiny. Potvrďte heslo.</item>
-      <item quantity="other">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_1">%d</xliff:g> hodín. Potvrďte heslo.</item>
-      <item quantity="one">Zariadenie nebolo odomknuté <xliff:g id="NUMBER_0">%d</xliff:g> hodinu. Potvrďte heslo.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nebol rozpoznaný"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-sl/strings.xml b/packages/Keyguard/res/values-sl/strings.xml
deleted file mode 100644
index 9100bd3..0000000
--- a/packages/Keyguard/res/values-sl/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Vnesite kodo PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Vnesite kodo PUK in novo kodo PIN kartice SIM"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Koda PUK kartice SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Nova koda PIN kartice SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Dotaknite se za vnos gesla"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Vnesite geslo za odklepanje"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Vnesite PIN za odklepanje"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Napačna koda PIN."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Napolnjeno"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Polnjenje"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Hitro polnjenje"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Počasno polnjenje"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Priključite napajalnik."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Če želite odkleniti, pritisnite meni."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Omrežje je zaklenjeno"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Ni kartice SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"V tabličnem računalniku ni kartice SIM."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"V telefonu ni kartice SIM."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Vstavite kartico SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Kartice SIM ni ali je ni mogoče prebrati. Vstavite jo."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Neuporabna kartica SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Kartica SIM je trajno onemogočena.\n Obrnite se na operaterja za drugo."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Kartica SIM je zaklenjena."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Kartica SIM je zaklenjena s kodo PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Odklepanje kartice SIM …"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Območje za kodo PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Območje za kodo PIN za SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Območje za kodo PUK za SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Naslednji alarm je nastavljen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Tipka Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Tipka Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pozabljen vzorec"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Napačen vzorec"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Napačno geslo"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Napačen PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Čez <xliff:g id="NUMBER">%d</xliff:g> sekund poskusite znova."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Narišite vzorec"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Vnesite PIN za kartico SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Vnesite kodo PIN kartice SIM za »<xliff:g id="CARRIER">%1$s</xliff:g>«"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Vnesite PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Vnesite geslo"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Kartica SIM je onemogočena. Če želite nadaljevati, vnesite kodo PUK. Za dodatne informacije se obrnite na operaterja."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Kartica SIM »<xliff:g id="CARRIER">%1$s</xliff:g>« je onemogočena. Če želite nadaljevati, vnesite kodo PUK. Za podrobnosti se obrnite na operaterja."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Vnesite želeno kodo PIN"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potrdite želeno kodo PIN"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Odklepanje kartice SIM ..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Vnesite PIN, ki vsebuje od štiri do osem številk."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Koda PUK mora vsebovati 8 ali več števk."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Vnovič vnesite pravilno kodo PUK. Večkratni poskusi bodo trajno onemogočili kartico SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kodi PIN se ne ujemata"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Preveč poskusov vzorca"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN ste <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat vnesli napačno. \n\nZnova poskusite čez <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Geslo ste <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat vnesli napačno. \n\nZnova poskusite čez <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Vzorec za odklepanje ste nepravilno narisali <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat. \n\nPoskusite znova čez <xliff:g id="NUMBER_1">%2$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Tablični računalnik ste neuspešno poskusili odkleniti <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat. Če ga neuspešno poskusite odkleniti še <xliff:g id="NUMBER_1">%2$d</xliff:g>-krat, bo ponastavljen, zaradi česar bodo izbrisani vsi podatki v njem."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Telefon ste neuspešno poskusili odkleniti <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat. Če ga neuspešno poskusite odkleniti še <xliff:g id="NUMBER_1">%2$d</xliff:g>-krat, bo ponastavljen, zaradi česar bodo izbrisani vsi podatki v njem."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Tablični računalnik ste neuspešno poskusili odkleniti <xliff:g id="NUMBER">%d</xliff:g>-krat, zato bo ponastavljen, vsi podatki v njem pa bodo izbrisani."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Telefon ste neuspešno poskusili odkleniti <xliff:g id="NUMBER">%d</xliff:g>-krat, zato bo ponastavljen, vsi podatki v njem pa bodo izbrisani."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Tablični računalnik ste neuspešno poskusili odkleniti <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat. Če ga neuspešno poskusite odkleniti še <xliff:g id="NUMBER_1">%2$d</xliff:g>-krat, bo ta uporabnik odstranjen, zaradi česar bodo izbrisani vsi podatki uporabnika."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Telefon ste neuspešno poskusili odkleniti <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat. Če ga neuspešno poskusite odkleniti še <xliff:g id="NUMBER_1">%2$d</xliff:g>-krat, bo ta uporabnik odstranjen, zaradi česar bodo izbrisani vsi podatki uporabnika."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Tablični računalnik ste neuspešno poskusili odkleniti <xliff:g id="NUMBER">%d</xliff:g>-krat. Ta uporabnik bo odstranjen, zaradi česar bodo izbrisani vsi podatki uporabnika."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Telefon ste neuspešno poskusili odkleniti <xliff:g id="NUMBER">%d</xliff:g>-krat. Ta uporabnik bo odstranjen, zaradi česar bodo izbrisani vsi podatki uporabnika."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Tablični računalnik ste neuspešno poskusili odkleniti <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat. Če ga neuspešno poskusite odkleniti še <xliff:g id="NUMBER_1">%2$d</xliff:g>-krat, bo delovni profil odstranjen, zaradi česar bodo izbrisani vsi podatki profila."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Telefon ste neuspešno poskusili odkleniti <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat. Če ga neuspešno poskusite odkleniti še <xliff:g id="NUMBER_1">%2$d</xliff:g>-krat, bo delovni profil odstranjen, zaradi česar bodo izbrisani vsi podatki profila."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Tablični računalnik ste neuspešno poskusili odkleniti <xliff:g id="NUMBER">%d</xliff:g>-krat. Delovni profil bo odstranjen, zaradi česar bodo izbrisani vsi podatki profila."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Telefon ste neuspešno poskusili odkleniti <xliff:g id="NUMBER">%d</xliff:g>-krat. Delovni profil bo odstranjen, zaradi česar bodo izbrisani vsi podatki profila."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Vzorec za odklepanje ste <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat napačno vnesli. Po nadaljnjih <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešnih poskusih boste pozvani, da tablični računalnik odklenete z e-poštnim računom.\n\nPoskusite znova čez <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Vzorec za odklepanje ste <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat napačno vnesli. Po nadaljnjih <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešnih poskusih boste pozvani, da odklenete telefon z Googlovimi podatki za prijavo.\n\nPoskusite znova čez <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Napačna koda PIN kartice SIM. Zdaj se boste morali za odklenitev naprave obrniti na operaterja."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Napačna koda PIN kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskus.</item>
-      <item quantity="two">Napačna koda PIN kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskusa.</item>
-      <item quantity="few">Napačna koda PIN kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskuse.</item>
-      <item quantity="other">Napačna koda PIN kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskusov.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Kartica SIM ni več uporabna. Obrnite se na operaterja."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Napačna koda PUK kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskus. Potem bo kartica SIM postala trajno neuporabna.</item>
-      <item quantity="two">Napačna koda PUK kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskusa. Potem bo kartica SIM postala trajno neuporabna.</item>
-      <item quantity="few">Napačna koda PUK kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskuse. Potem bo kartica SIM postala trajno neuporabna.</item>
-      <item quantity="other">Napačna koda PUK kartice SIM. Na voljo imate še <xliff:g id="NUMBER_1">%d</xliff:g> poskusov. Potem bo kartica SIM postala trajno neuporabna.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Postopek za odklepanje s kodo PIN kartice SIM ni uspel."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Postopek za odklepanje s kodo PUK kartice SIM ni uspel."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Koda je sprejeta."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ni storitve."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Preklop načina vnosa"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Način za letalo"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Po vnovičnem zagonu naprave je treba vnesti vzorec"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Po vnovičnem zagonu naprave je treba vnesti kodo PIN"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Po vnovičnem zagonu naprave je treba vnesti geslo"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Zaradi dodatne varnosti morate vnesti vzorec"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Zaradi dodatne varnosti morate vnesti kodo PIN"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Zaradi dodatne varnosti morate vnesti geslo"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Po preklopu profilov je treba vnesti vzorec"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Po preklopu profilov je treba vnesti kodo PIN"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Po preklopu profilov je treba vnesti geslo"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Skrbnik naprave je zaklenil napravo"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Naprava je bila ročno zaklenjena"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> uro. Potrdite vzorec.</item>
-      <item quantity="two">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> uri. Potrdite vzorec.</item>
-      <item quantity="few">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> ure. Potrdite vzorec.</item>
-      <item quantity="other">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> ur. Potrdite vzorec.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> uro. Potrdite kodo PIN.</item>
-      <item quantity="two">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> uri. Potrdite kodo PIN.</item>
-      <item quantity="few">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> ure. Potrdite kodo PIN.</item>
-      <item quantity="other">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> ur. Potrdite kodo PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> uro. Potrdite geslo.</item>
-      <item quantity="two">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> uri. Potrdite geslo.</item>
-      <item quantity="few">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> ure. Potrdite geslo.</item>
-      <item quantity="other">Naprava ni bila odklenjena <xliff:g id="NUMBER_1">%d</xliff:g> ur. Potrdite geslo.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ni prepoznano"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-sq/strings.xml b/packages/Keyguard/res/values-sq/strings.xml
deleted file mode 100644
index 31d31b7..0000000
--- a/packages/Keyguard/res/values-sq/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Mbrojtësi i tasteve"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Shkruaj kodin PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Shkruaj PUK-un dhe PIN-in e ri"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Kodi PUK i kartës SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"PIN-i i ri i kartës SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Prek për të shkruar fjalëkalimin"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Shkruaj fjalëkalimin për të shkyçur"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Shkruaj PIN-in për ta shkyçur"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Kodi PIN është i pasaktë."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"I ngarkuar"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Po ngarkohet"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Po ngarkon me shpejtësi"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Po ngarkon me ngadalë"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Lidh ngarkuesin."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Shtyp menynë për ta shkyçur."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Rrjeti është i kyçur"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nuk ka kartë SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Nuk ka kartë SIM në tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Në telefon nuk ka kartë SIM."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Fut një kartë SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Karta SIM mungon ose është e palexueshme. Fut një kartë të re SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Kartë SIM është e papërdorshme."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Karta jote SIM është çaktivizuar përgjithmonë.\n Kontakto operatorin tënd të shërbimit valor për një tjetër kartë SIM."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Karta SIM është e kyçur."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Karta SIM është e kyçur me PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Po shkyç kartën SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zona PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zona PIN e kartës SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zona e PUK-ut të kartës SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Alarmi tjetër i caktuar: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Fshi"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Harrova motivin"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Motivi është i gabuar"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Fjalëkalim i gabuar"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN-i është i gabuar"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Provo sërish për <xliff:g id="NUMBER">%d</xliff:g> sekonda."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Vizato motivin tënd"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Fut PIN-in e kartës SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Fut PIN-in e kartës SIM për \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Fut PIN-in"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Fut fjalëkalimin"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Karta SIM tani është e çaktivizuar. Fut kodin PUK për të vazhduar. Kontakto operatorin për detaje."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Karta SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" tani është e çaktivizuar. Fut kodin PUK për të vazhduar. Kontakto operatorin për detaje."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Fut kodin e dëshiruar të PIN-it"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Konfirmo kodin e dëshiruar PIN"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Po shkyç kartën SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Shkruaj një PIN me 4 deri në 8 numra."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Kodi PUK duhet të jetë me 8 numra ose më shumë."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Fut kodin e saktë PUK. Provat e përsëritura do ta çaktivizojnë përgjithmonë kartën SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kodet PIN nuk përputhen"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Shumë tentativa për motivin"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"E ke shkruar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë gabimisht PIN-in tënd.\n\n Provo sërish për <xliff:g id="NUMBER_1">%2$d</xliff:g> sekonda."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"E ke shkruar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë gabimisht fjalëkalimin.\n\nProvo sërish për <xliff:g id="NUMBER_1">%2$d</xliff:g> sekonda."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Ke tentuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses për të vizatuar motivin tënd. \n\nProvo sërish për <xliff:g id="NUMBER_1">%2$d</xliff:g> sekonda."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Ke tentuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses për ta shkyçur tabletin. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme, tableti do të rivendoset si në gjendjen e fabrikës dhe kjo do t\'i fshijë të gjitha të dhënat."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Ke tentuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë gabimisht për ta shkyçur telefonin. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> përpjekjeve të tjera të pasuksesshme, telefoni do të rivendoset dhe të gjitha të dhënat do të fshihen."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Ke tentuar <xliff:g id="NUMBER">%d</xliff:g> herë pa sukses për ta shkyçur tabletin tënd. Ky tablet do të rivendoset dhe të gjitha të dhënat në të, do të fshihen."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Ke tentuar <xliff:g id="NUMBER">%d</xliff:g> herë pa sukses për ta shkyçur telefonin tënd. Ky telefon do të rivendoset dhe të gjitha të dhënat në të, do të fshihen."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Ke tentuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses për ta shkyçur telefonin. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme, përdoruesi do të hiqet dhe të gjitha të dhënat e përdoruesit në të, do të fshihen."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Ke tentuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses për ta shkyçur telefonin. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme, përdoruesi do të hiqet dhe të gjitha të dhënat e përdoruesit në të, do të fshihen."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Ke tentuar <xliff:g id="NUMBER">%d</xliff:g> herë pa sukses për ta shkyçur tabletin. Ky përdorues do të hiqet dhe kjo do t fshijë të gjitha të dhënat e përdoruesit."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Ke tentuar <xliff:g id="NUMBER">%d</xliff:g> herë pa sukses për ta shkyçur telefonin. Ky përdorues do të hiqet dhe kjo do t\'i fshijë të gjitha të dhënat e përdoruesit."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Ke tentuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses për ta shkyçur tabletin. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme, profili i punës do të hiqet dhe të gjitha të dhënat në të do të fshihen."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Ke tentuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses për ta shkyçur telefonin. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme, profili i punës do të hiqet dhe të gjitha të dhënat në të do të fshihen."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Ke tentuar <xliff:g id="NUMBER">%d</xliff:g> herë pa sukses për ta shkyçur tabletin. Profili i punës do të hiqet të gjitha të dhënat në të, do të fshihen."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Ke tentuar <xliff:g id="NUMBER">%d</xliff:g> herë pa sukses për ta shkyçur telefonin. Profili i punës do të hiqet të gjitha të dhënat në të, do të fshihen."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"E ke vizatuar gabimisht motivin tënd të shkyçjes <xliff:g id="NUMBER_0">%1$d</xliff:g> herë. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme do të të kërkohet ta shkyçësh tabletin duke përdorur një llogari mail-i.\n\n Provo sërish për <xliff:g id="NUMBER_2">%3$d</xliff:g> sekonda."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ke vizatuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses motivin tënd. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme, do të të duhet ta shkyçësh telefonin duke përdorur një llogari mail-i.\n\n Provo sërish për <xliff:g id="NUMBER_2">%3$d</xliff:g> sekonda."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"PIN-i i kartës SIM është i pasaktë. Tani duhet të kontaktosh operatorin për ta shkyçur pajisjen tënde."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">PIN-i i kartës SIM është i pasaktë. Të kanë mbetur edhe <xliff:g id="NUMBER_1">%d</xliff:g> tentativa.</item>
-      <item quantity="one">PIN-i i kartës SIM është i pasaktë. Të ka mbetur edhe <xliff:g id="NUMBER_0">%d</xliff:g> tentativë para se të kontaktosh me operatorin tënd celular për ta shkyçur pajisjen.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Karta SIM është e papërdorshme. Kontakto operatorin."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">PUK-u i kartës SIM është i pasaktë. Të kanë mbetur edhe <xliff:g id="NUMBER_1">%d</xliff:g> tentativa para se karta SIM të bëhet e papërdorshme përgjithmonë.</item>
-      <item quantity="one">PUK-u i kartës SIM është i pasaktë. Të ka mbetur edhe <xliff:g id="NUMBER_0">%d</xliff:g> tentativë para se karta SIM të bëhet e papërdorshme përgjithmonë.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Përpjekja për shkyçje të kartës përmes PIN-it dështoi!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Operacioni i PUK-ut të kartës SIM dështoi!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kodi u pranua!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Nuk ka shërbim."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Ndërro metodën e hyrjes"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Modaliteti i aeroplanit"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Kërkohet motivi pas rinisjes së pajisjes"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Kërkohet kodi PIN pas rinisjes së pajisjes"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Kërkohet fjalëkalimi pas rinisjes së pajisjes"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Kërkohet motivi për më shumë siguri"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Kërkohet kodi PIN për më shumë siguri"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Kërkohet fjalëkalimi për më shumë siguri"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Kërkohet motivi kur ndryshon profilet"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Kërkohet kodi PIN kur ndryshon profilet"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Kërkohet fjalëkalimi kur ndryshon profilet"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Administratori i pajisjes e kyçi pajisjen"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Pajisja është kyçur manualisht"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Pajisja nuk është shkyçur për <xliff:g id="NUMBER_1">%d</xliff:g> orë. Konfirmo motivin.</item>
-      <item quantity="one">Pajisja nuk është shkyçur për <xliff:g id="NUMBER_0">%d</xliff:g> orë. Konfirmo motivin.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Pajisja nuk është shkyçur për <xliff:g id="NUMBER_1">%d</xliff:g> orë. Konfirmo PIN-in.</item>
-      <item quantity="one">Pajisja nuk është shkyçur për <xliff:g id="NUMBER_0">%d</xliff:g> orë. Konfirmo PIN-in.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Pajisja nuk është shkyçur për <xliff:g id="NUMBER_1">%d</xliff:g> orë. Konfirmo fjalëkalimin.</item>
-      <item quantity="one">Pajisja nuk është shkyçur për <xliff:g id="NUMBER_0">%d</xliff:g> orë. Konfirmo fjalëkalimin.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nuk njihet"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-sr/strings.xml b/packages/Keyguard/res/values-sr/strings.xml
deleted file mode 100644
index 23c0b50..0000000
--- a/packages/Keyguard/res/values-sr/strings.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Унесите SIM PUK кôд и нови PIN кôд"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK кôд"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Нови SIM PIN кôд"</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_wrong_pin_code" msgid="2422225591006134936">"PIN кôд је нетачан."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Напуњено"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Пуњење"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Брзо се пуни"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Споро се пуни"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Повежите пуњач."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Притисните Мени да бисте откључали."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Мрежа је закључана"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Нема SIM картице"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"У таблету нема SIM картице."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"У телефону нема SIM картице."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Уметните SIM картицу."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM картица недостаје или не може да се прочита. Уметните SIM картицу."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM картица је неупотребљива."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM картица је трајно онемогућена.\n Обратите се добављачу услуге бежичне мреже да бисте добили другу SIM картицу."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM картица је закључана."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картица је закључана PUK кодом."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Откључавање SIM картице…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Област за PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Област за PIN за SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Област за PUK за SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Следећи аларм је подешен за <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Избриши"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборављени шаблон"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешан шаблон"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Погрешна лозинка"</string>
-    <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">"Унесите PIN SIM картице"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Унесите PIN за SIM „<xliff:g id="CARRIER">%1$s</xliff:g>“"</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM „<xliff:g id="CARRIER">%1$s</xliff:g>“ је сада онемогућен. Унесите PUK кôд да бисте наставили. Контактирајте оператера за детаље."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Унесите жељени PIN кôд"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Потврдите жељени PIN кôд"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Откључавање SIM картице…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Унесите PIN који има од 4 до 8 бројева."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK кôд треба да има 8 или више бројева."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Унели сте нетачни PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Унели сте нетачну лозинку <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Погрешно сте покушали да откључате таблет <xliff:g id="NUMBER_0">%1$d</xliff:g> пут(а). Имате још <xliff:g id="NUMBER_1">%2$d</xliff:g> покушај(а), након чега се таблет ресетује и сви подаци са њега бришу."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Погрешно сте покушали да откључате телефон <xliff:g id="NUMBER_0">%1$d</xliff:g> пут(а). Имате још <xliff:g id="NUMBER_1">%2$d</xliff:g> покушај(а), након чега се телефон ресетује и сви подаци са њега бришу."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Погрешно сте покушали да откључате таблет <xliff:g id="NUMBER">%d</xliff:g> пут(а). Таблет ће бити ресетован и сви подаци са њега ће бити избрисани."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Погрешно сте покушали да откључате телефон <xliff:g id="NUMBER">%d</xliff:g> пут(а). Телефон ће бити ресетован и сви подаци са њега ће бити избрисани."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Погрешно сте покушали да откључате таблет <xliff:g id="NUMBER_0">%1$d</xliff:g> пут(а). Имате још <xliff:g id="NUMBER_1">%2$d</xliff:g> покушај(а), након чега се овај корисник уклања и сви подаци корисника бришу."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Погрешно сте покушали да откључате телефон <xliff:g id="NUMBER_0">%1$d</xliff:g> пут(а). Имате још <xliff:g id="NUMBER_1">%2$d</xliff:g> покушај(а), након чега се овај корисник уклања и сви подаци корисника бришу."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Погрешно сте покушали да откључате таблет <xliff:g id="NUMBER">%d</xliff:g> пут(а). Овај корисник ће бити уклоњен и сви подаци корисника ће бити избрисани."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Погрешно сте покушали да откључате телефон <xliff:g id="NUMBER">%d</xliff:g> пут(а). Овај корисник ће бити уклоњен и сви подаци корисника ће бити избрисани."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Погрешно сте покушали да откључате таблет <xliff:g id="NUMBER_0">%1$d</xliff:g> пут(а). Имате још <xliff:g id="NUMBER_1">%2$d</xliff:g> покушај(а), након чега се пословни профил уклања и сви подаци са профила бришу."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Погрешно сте покушали да откључате телефон <xliff:g id="NUMBER_0">%1$d</xliff:g> пут(а). Имате још <xliff:g id="NUMBER_1">%2$d</xliff:g> покушај(а), након чега се пословни профил уклања и сви подаци са профила бришу."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Погрешно сте покушали да откључате таблет <xliff:g id="NUMBER">%d</xliff:g> пут(а). Пословни профил ће бити уклоњен и сви подаци са њега ће бити избрисани."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Погрешно сте покушали да откључате телефон <xliff:g id="NUMBER">%d</xliff:g> пут(а). Пословни профил ће бити уклоњен и сви подаци са њега ће бити избрисани."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу налога е-поште.\n\nПробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде(и)."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу налога е-поште.\n\nПробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде(и)."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Нетачан SIM PIN кôд. Сада морате да контактирате мобилног оператера да бисте откључали уређај."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Нетачан SIM PIN кôд. Имате још <xliff:g id="NUMBER_1">%d</xliff:g> покушај.</item>
-      <item quantity="few">Нетачан SIM PIN кôд. Имате још <xliff:g id="NUMBER_1">%d</xliff:g> покушаја.</item>
-      <item quantity="other">Нетачан SIM PIN кôд. Имате још <xliff:g id="NUMBER_1">%d</xliff:g> покушаја.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM картица је неупотребљива. Контактирајте мобилног оператера."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Нетачан SIM PUK кôд. Имате још <xliff:g id="NUMBER_1">%d</xliff:g> покушај пре него што SIM картица постане трајно неупотребљива.</item>
-      <item quantity="few">Нетачан SIM PUK кôд. Имате још <xliff:g id="NUMBER_1">%d</xliff:g> покушаја пре него што SIM картица постане трајно неупотребљива.</item>
-      <item quantity="other">Нетачан SIM PUK кôд. Имате још <xliff:g id="NUMBER_1">%d</xliff:g> покушаја пре него што SIM картица постане трајно неупотребљива.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Радња са SIM PIN кодом није успела!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Радња са SIM PUK кодом није успела!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Кôд је прихваћен!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Офлајн сте."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Промени метод уноса"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Режим рада у авиону"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Треба да унесете шаблон када се уређај поново покрене"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Треба да унесете PIN када се уређај поново покрене"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Треба да унесте лозинку када се уређај поново покрене"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Треба да унесете шаблон ради додатне безбедности"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Треба да унесете PIN ради додатне безбедности"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Треба да унесете лозинку ради додатне безбедности"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Треба да унесете шаблон када прелазите са једног профила на други"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Треба да унесете PIN када прелазите са једног профила на други"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Треба да унесете лозинку када прелазите са једног профила на други"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Администратор уређаја је закључао уређај"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Уређај је ручно закључан"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сат. Потврдите шаблон.</item>
-      <item quantity="few">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сата. Потврдите шаблон.</item>
-      <item quantity="other">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сати. Потврдите шаблон.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сат. Потврдите PIN.</item>
-      <item quantity="few">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сата. Потврдите PIN.</item>
-      <item quantity="other">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сати. Потврдите PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сат. Потврдите лозинку.</item>
-      <item quantity="few">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сата. Потврдите лозинку.</item>
-      <item quantity="other">Нисте откључали уређај <xliff:g id="NUMBER_1">%d</xliff:g> сати. Потврдите лозинку.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Није препознат"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-sv/strings.xml b/packages/Keyguard/res/values-sv/strings.xml
deleted file mode 100644
index 4a1d67b..0000000
--- a/packages/Keyguard/res/values-sv/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Ange PIN-kod"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Ange PUK-koden och en ny pinkod för SIM-kortet"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-kod för SIM-kortet"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Ny pinkod för SIM-kort"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Tryck om du vill ange lösenord"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Ange lösenord för att låsa upp"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Ange PIN-kod för att låsa upp"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Fel PIN-kod."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Batteriet har laddats"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Laddar"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Laddas snabbt"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Laddas långsamt"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Anslut din laddare."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Tryck på Meny för att låsa upp."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Nätverk låst"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Inget SIM-kort"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Inget SIM-kort i surfplattan."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Inget SIM-kort i mobilen."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Sätt i ett SIM-kort."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-kort saknas eller kan inte läsas. Sätt i ett SIM-kort."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Oanvändbart SIM-kort."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM-kortet har inaktiverats permanent.\n Beställ ett nytt SIM-kort från din operatör."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortet är låst."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortet är PUK-låst."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Låser upp SIM-kort …"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Pinkodsområde"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Pinkodsområde för SIM-kort"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-kodsområde för SIM-kort"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nästa alarm är inställt på <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Retur"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glömt ditt grafiska lösenord?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Fel grafiskt lösenord"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Fel lösenord"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Fel PIN-kod"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Försök igen om <xliff:g id="NUMBER">%d</xliff:g> sekunder."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Rita ditt grafiska lösenord"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Ange PIN-kod för SIM-kortet"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Ange pinkod för SIM-kortet för <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Ange PIN-kod"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Ange lösenord"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-kortet är nu inaktiverat. Ange PUK-koden om du vill fortsätta. Kontakta operatören om du vill få mer information."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-kortet för <xliff:g id="CARRIER">%1$s</xliff:g> har inaktiverats. Ange PUK-kod om du vill fortsätta. Kontakta operatören om du vill veta mer."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Ange önskad PIN-kod"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Bekräfta önskad PIN-kod"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Låser upp SIM-kort …"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Ange en PIN-kod med 4 till 8 siffror."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-koden ska vara minst åtta siffror."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Ange rätt PUK-kod igen. Om försöken upprepas inaktiveras SIM-kortet permanent."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-koderna stämmer inte överens"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"För många försök med grafiskt lösenord"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Du har angett fel lösenord <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. \n\nFörsök igen om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Du har angett fel lösenord <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. \n\nFörsök igen om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. \n\nFörsök igen om <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunder."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Du har försökt låsa upp surfplattan på ett felaktigt sätt <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> misslyckade försök till återställs surfplattan och all data raderas."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Du har försökt låsa upp mobilen på ett felaktigt sätt <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> misslyckade försök till återställs mobilen och all data raderas."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Du har försökt låsa upp surfplattan på ett felaktigt sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Surfplattan återställs och all data raderas."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Du har försökt låsa upp mobilen på ett felaktigt sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Mobilen återställs och all data raderas."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Du har försökt låsa upp surfplattan på ett felaktigt sätt <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> misslyckade försök till tas användaren bort och all användardata raderas."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Du har försökt låsa upp mobilen på ett felaktigt sätt <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> misslyckade försök till tas användaren bort och all användardata raderas."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Du har försökt låsa upp surfplattan på ett felaktigt sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Användaren tas bort och all användardata raderas."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Du har försökt låsa upp mobilen på ett felaktigt sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Användaren tas bort och all användardata raderas."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Du har försökt låsa upp surfplattan på ett felaktigt sätt <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> misslyckade försök till tas jobbprofilen bort och all profildata raderas."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Du har försökt låsa upp mobilen på ett felaktigt sätt <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> misslyckade försök till tas jobbprofilen bort och all profildata raderas."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Du har försökt låsa upp surfplattan på ett felaktigt sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Jobbprofilen tas bort och all profildata raderas."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Du har försökt låsa upp mobilen på ett felaktigt sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Jobbprofilen tas bort och all profildata raderas."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter ytterligare <xliff:g id="NUMBER_1">%2$d</xliff:g> försök ombeds du låsa upp surfplattan med ett e-postkonto.\n\n Försök igen om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter ytterligare <xliff:g id="NUMBER_1">%2$d</xliff:g> försök ombeds du låsa upp mobilen med hjälp av ett e-postkonto.\n\n Försök igen om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Du angav fel pinkod för SIM-kortet och måste nu kontakta operatören för att låsa upp enheten."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Du angav fel pinkod för SIM-kortet. <xliff:g id="NUMBER_1">%d</xliff:g> försök återstår.</item>
-      <item quantity="one">Du angav fel pinkod för SIM-kortet. <xliff:g id="NUMBER_0">%d</xliff:g> försök återstår innan du måste kontakta operatören för att låsa upp enheten.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-kortet är obrukbart. Kontakta operatören."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Du angav fel PUK-kod för SIM-kortet. <xliff:g id="NUMBER_1">%d</xliff:g> försök återstår innan SIM-kortet blir obrukbart.</item>
-      <item quantity="one">Du angav fel PUK-kod för SIM-kortet. <xliff:g id="NUMBER_0">%d</xliff:g> försök återstår innan SIM-kortet blir obrukbart.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Det gick inte att låsa upp med pinkoden för SIM-kortet."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Det gick inte att låsa upp med PUK-koden för SIM-kortet."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Koden godkändes!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ingen tjänst."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Byt inmatningsmetod"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Flygplansläge"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Du måste ange grafiskt lösenord när du startat om enheten"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Du måste ange pinkod när du startat om enheten"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Du måste ange lösenord när du startat om enheten"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Du måste ange grafiskt lösenord för ytterligare säkerhet"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Du måste ange pinkod för ytterligare säkerhet"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Du måste ange lösenord för ytterligare säkerhet"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Du måste ange grafiskt lösenord när du byter profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Du måste ange pinkod när du byter profil"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Du måste ange lösenord när du byter profil"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Enhetsadministratören har låst enheten"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Enheten har låsts manuellt"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Enheten har inte låsts upp på <xliff:g id="NUMBER_1">%d</xliff:g> timmar. Bekräfta det grafiska lösenordet.</item>
-      <item quantity="one">Enheten har inte låsts upp på <xliff:g id="NUMBER_0">%d</xliff:g> timme. Bekräfta det grafiska lösenordet.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Enheten har inte låsts upp på <xliff:g id="NUMBER_1">%d</xliff:g> timmar. Bekräfta pinkoden.</item>
-      <item quantity="one">Enheten har inte låsts upp på <xliff:g id="NUMBER_0">%d</xliff:g> timme. Bekräfta pinkoden.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Enheten har inte låsts upp på <xliff:g id="NUMBER_1">%d</xliff:g> timmar. Bekräfta lösenordet.</item>
-      <item quantity="one">Enheten har inte låsts upp på <xliff:g id="NUMBER_0">%d</xliff:g> timme. Bekräfta lösenordet.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Identifierades inte"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-sw/strings.xml b/packages/Keyguard/res/values-sw/strings.xml
deleted file mode 100644
index c2e7ac9..0000000
--- a/packages/Keyguard/res/values-sw/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Kilinda vitufe"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Ingiza msimbo wa PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Chapa PUK ya SIM na msimbo mpya wa PIN"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Msimbo wa PUK ya SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Msimbo mpya wa PIN ya SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Gusa kuingiza nenosiri "</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Charaza nenosiri ili kufungua"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Ingiza PIN ili kufungua"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Msimbo wa PIN usio sahihi."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Betri imejaa"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Inachaji"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Inachaji kwa kasi"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Inachaji pole pole"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Unganisha chaja yako."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Bonyeza Menyu ili kufungua."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Mtandao umefungwa"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Hakuna SIM kadi"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Hakuna SIM kadi katika kompyuta ndogo."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Hakuna SIM kadi kwenye simu."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Weka SIM kadi."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM kadi haiko au haisomeki. Weka SIM kadi."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM kadi isiyotumika."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM kadi yako imefungwa kabisa.\n Wasiliana na mtoa huduma wako wa pasi waya ili upate SIM kadi nyingine."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kadi imefungwa."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kadi imefungwa na PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Inafungua SIM kadi..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Eneo la PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Eneo la PIN ya SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Eneo la PUK ya SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Kengele inayofuata imewekwa ilie saa <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Futa"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Umesahau Ruwaza"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Mchoro huo si sahihi"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Nenosiri Lisilo sahihi"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Nambari ya PIN si sahihi"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Jaribu tena baada ya sekunde <xliff:g id="NUMBER">%d</xliff:g>."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Chora ruwaza yako"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Ingiza PIN ya SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Weka PIN ya SIM ya \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Ingiza PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Weka Nenosiri"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM sasa imelemazwa. Ingiza msimbo wa PUK ili kuendelea. Wasiliana na mtoa huduma kwa maelezo."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" sasa imezimwa. Weka msimbo wa PUK ili uendelee. Wasiliana na mtoa huduma kwa maelezo."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Ingiza msimbo wa PIN unaopendelewa"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Thibitisha msimbo wa PIN unaopendelewa"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Inafungua SIM kadi..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Charaza PIN iliyo na tarakimu kati ya 4 na 8."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Msimbo wa PUK unafaa kuwa na nambari 8 au zaidi."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Ingiza upya msimbo sahihi wa PUK. Majaribio yanayorudiwa yatalemaza SIM kabisa."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Misimbo ya PIN haifanani"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Majaribio mengi mno ya mchoro"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Umeingiza nenosiri lako kwa makosa mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\n Jaribu tena baada ya sekunde <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Umeingiza nenosiri lako kwa makosa mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\n Jaribu tena baada ya sekunde <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Umechora ruwaza yako ya kufunga kwa makosa mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\n Jaribu tena baada ya sekunde <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Umekosea majaribio ya kufungua kompyuta kibao mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Ukikosea majaribio mengine <xliff:g id="NUMBER_1">%2$d</xliff:g>, kompyuta hii kibao itarejeshwa katika hali iliyotoka nayo kiwandani, hatua itakayofuta data yake yote."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Umekosea majaribio ya kufungua simu mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Ukikosea majaribio mengine <xliff:g id="NUMBER_1">%2$d</xliff:g>, simu hii itawekwa upya, hatua itakayofuta data yake yote."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Umekosea majaribio ya kufungua kompyuta kibao mara <xliff:g id="NUMBER">%d</xliff:g>. Kompyuta hii kibao itarejeshwa katika hali iliyotoka nayo kiwandani, hatua itakayofuta data yake yote."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Umekosea majaribio ya kufungua simu mara <xliff:g id="NUMBER">%d</xliff:g>. Simu hii itarejeshwa katika hali iliyotoka nayo kiwandani, hatua itakayofuta data yake yote."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Umekosea majaribio ya kufungua kompyuta kibao mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Ukikosea majaribio mengine <xliff:g id="NUMBER_1">%2$d</xliff:g>, mtumiaji huyu ataondolewa, hatua itakayofuta data yote ya mtumiaji."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Umekosea majaribio ya kufungua simu mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Ukikosea majaribio mengine <xliff:g id="NUMBER_1">%2$d</xliff:g>, wasifu wa kazini utaondolewa, hatua itakayofuta data yote ya wasifu."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Umekosea majaribio ya kufungua kompyuta kibao mara <xliff:g id="NUMBER">%d</xliff:g>. Mtumiaji huyu ataondolewa, hatua itakayofuta data yote ya mtumiaji."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Umekosea majaribio ya kufungua simu mara <xliff:g id="NUMBER">%d</xliff:g>. Mtumiaji huyu ataondolewa, hatua itakayofuta data yote ya mtumiaji."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Umekosea majaribio ya kufungua kompyuta kibao mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Ukikosea majaribio mengine <xliff:g id="NUMBER_1">%2$d</xliff:g>, wasifu wa kazini utaondolewa, hatua itakayofuta data yote ya wasifu."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Umekosea majaribio ya kufungua simu mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Ukikosea majaribio mengine <xliff:g id="NUMBER_1">%2$d</xliff:g>, wasifu wa kazini utaondolewa, hatua itakayofuta data yote ya wasifu."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Umekosea majaribio ya kufungua kompyuta kibao mara <xliff:g id="NUMBER">%d</xliff:g>. Wasifu wa kazini utaondolewa, hatua itakayofuta data yote ya wasifu."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Umekosea majaribio ya kufungua simu mara <xliff:g id="NUMBER">%d</xliff:g>. Wasifu wa kazini utaondolewa, hatua itakayofuta data yote ya wasifu."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Umekosea katika kuweka mchoro wako wa kufungua mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Baada ya majaribio <xliff:g id="NUMBER_1">%2$d</xliff:g> bila kufaulu, utaombwa kufungua kompyuta yako ndogo kwa kutumia akaunti yako ya barua pepe.\n\n Jaribu tena baada ya sekunde <xliff:g id="NUMBER_2">%3$d</xliff:g>."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Umekosea kuchora mchoro wako wa kufungua mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Baada ya majaribio <xliff:g id="NUMBER_1">%2$d</xliff:g> yasiyofaulu, utaombwa kufungua simu yako kwa kutumia akaunti ya barua pepe.\n\n Jaribu tena baada ya sekunde <xliff:g id="NUMBER_2">%3$d</xliff:g>."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Msimbo wa PIN ya SIM usiosahihi sasa lazima uwasiliane na mtoa huduma wako ili ufungue kifaa chako."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Msimbo wa PIN ya SIM si sahihi, umebakisha majaribio <xliff:g id="NUMBER_1">%d</xliff:g>.</item>
-      <item quantity="one">Msimbo wa PIN ya SIM si sahihi, umebakisha majaribio <xliff:g id="NUMBER_0">%d</xliff:g> kabla ya kulazimika kuwasiliana na mtoa huduma wako ili afungue kifaa chako.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM haiwezi kutumika. Wasiliana na mtoa huduma wako."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Msimbo wa PUK ya SIM si sahihi, umebakisha majaribio <xliff:g id="NUMBER_1">%d</xliff:g> kabla SIM haijafungwa kabisa.</item>
-      <item quantity="one">Msimbo wa PUK ya  SIM si sahihi, umebakisha majaribio <xliff:g id="NUMBER_0">%d</xliff:g> kabla SIM haijfungwa kabisa.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Utendakazi wa PIN ya SIM umeshindwa!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Utendakazi wa PUK ya SIM umeshindwa!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Msimbo Umekubaliwa!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Hakuna huduma."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Badilisha mbinu ya kuingiza data"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Hali ya ndegeni"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Mchoro unahitajika baada ya kuanzisha kifaa upya"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"PIN inahitajika baada ya kifaa kuanzishwa upya"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Nenosiri linahitajika baada ya kuanzisha kifaa upya"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Mchoro unatakikana ili kuongeza usalama"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"PIN inatakikana ili kuongeza usalama"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Nenosiri linatakikana ili kuongeza usalama"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Mchoro unahitajika unapobadili wasifu"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"PIN inahitajika unapobadili wasifu"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Nenosiri linahitajika unapobadili wasifu"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Msimamizi wa kifaa amekifunga"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Umefunga kifaa mwenyewe"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Kifaa hakijafunguliwa kwa saa <xliff:g id="NUMBER_1">%d</xliff:g>. Thibitisha mchoro.</item>
-      <item quantity="one">Kifaa hakijafunguliwa kwa saa <xliff:g id="NUMBER_0">%d</xliff:g>. Thibitisha mchoro.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Kifaa hakijafunguliwa kwa saa <xliff:g id="NUMBER_1">%d</xliff:g>. Thibitisha PIN.</item>
-      <item quantity="one">Kifaa hakijafunguliwa kwa saa <xliff:g id="NUMBER_0">%d</xliff:g>. Thibitisha PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Kifaa hakijafunguliwa kwa saa <xliff:g id="NUMBER_1">%d</xliff:g>. Thibitisha nenosiri.</item>
-      <item quantity="one">Kifaa hakijafunguliwa kwa saa <xliff:g id="NUMBER_0">%d</xliff:g>. Thibitisha nenosiri.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Haitambuliwi"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ta/strings.xml b/packages/Keyguard/res/values-ta/strings.xml
deleted file mode 100644
index c80ddce..0000000
--- a/packages/Keyguard/res/values-ta/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"பின் குறியீட்டை உள்ளிடவும்"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"சிம் PUK மற்றும் புதிய பின் குறியீட்டைத் தட்டச்சு செய்யவும்"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"சிம் PUK குறியீடு"</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">"திறக்க, பின்னை உள்ளிடவும்"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"தவறான பின் குறியீடு."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"சார்ஜ் செய்யப்பட்டது"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"சார்ஜாகிறது"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"வேகமாக சார்ஜாகிறது"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"மெதுவாக சார்ஜாகிறது"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"உங்கள் சார்ஜரை இணைக்கவும்."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"திறக்க, மெனுவை அழுத்தவும்."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"பிணையம் பூட்டப்பட்டது"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"சிம் கார்டு இல்லை"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"டேப்லெட்டில் சிம் கார்டு இல்லை."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"தொலைபேசியில் சிம் கார்டு இல்லை."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"சிம் கார்டைச் செருகவும்."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"சிம் கார்டு இல்லை அல்லது படிக்கக்கூடியதாக இல்லை. சிம் கார்டைச் செருகவும்."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"சிம் கார்டைப் பயன்படுத்த முடியாது."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"உங்கள் சிம் கார்டு நிரந்தரமாக முடக்கப்பட்டது.\n மற்றொரு சிம் கார்டிற்காக உங்கள் வயர்லெஸ் சேவை வழங்குநரைத் தொடர்புகொள்ளவும்."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"சிம் கார்டு பூட்டப்பட்டுள்ளது."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"சிம் கார்டு PUK ஆல் பூட்டப்பட்டது."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"சிம் கார்டின் தடையைநீக்குகிறது..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN பகுதி"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"சிம் PIN பகுதி"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"சிம் PUK பகுதி"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"அடுத்த அலாரம் <xliff:g id="ALARM">%1$s</xliff:g>க்கு அமைக்கப்பட்டது"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"நீக்கு"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"உள்ளிடு"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"வடிவத்தை மறந்துவிட்டீர்களா"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"தவறான வடிவம்"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"தவறான கடவுச்சொல்"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"தவறான பின்"</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">"சிம் பின்னை உள்ளிடவும்"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\"க்கான சிம் பின்னை உள்ளிடவும்"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"பின்னை உள்ளிடுக"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"கடவுச்சொல்லை உள்ளிடவும்"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"சிம் தற்போது முடக்கப்பட்டுள்ளது. தொடர்வதற்கு PUK குறியீட்டை உள்ளிடவும். விவரங்களுக்கு மொபைல் நிறுவனங்களைத் தொடர்புகொள்ளவும்."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" சிம் இப்போது முடக்கத்தில் உள்ளது. தொடர, PUK குறியீட்டை உள்ளிடவும். விவரங்களுக்கு, மொபைல் நிறுவனத்தைத் தொடர்புகொள்ளவும்."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"விரும்பிய பின் குறியீட்டை உள்ளிடவும்"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"விரும்பிய பின் குறியீட்டை உறுதிப்படுத்தவும்"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"சிம் கார்டின் தடையைநீக்குகிறது..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4 இலிருந்து 8 எண்கள் வரையுள்ள பின்னை உள்ளிடவும்."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK குறியீட்டில் 8 எண்கள் அல்லது அதற்கு மேல் இருக்க வேண்டும்."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"சரியான PUK குறியீட்டை மீண்டும் உள்ளிடவும். தொடர் முயற்சிகள் சிம் ஐ நிரந்தரமாக முடக்கிவிடும்."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"பின் குறியீடுகள் பொருந்தவில்லை"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"அதிகமான வடிவ முயற்சிகள்"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"உங்கள் பின்னை <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக உள்ளிட்டீர்கள். \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> வினாடிகள் கழித்து முயற்சிக்கவும்."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"உங்கள் கடவுச்சொல்லை <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக உள்ளிட்டீர்கள். \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> வினாடிகள் கழித்து முயற்சிக்கவும்."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"திறப்பதற்கான வடிவத்தை <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக வரைந்துள்ளீர்கள். \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> வினாடிகளில் மீண்டும் முயற்சிக்கவும்."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"டேப்லெட்டைத் திறக்க, <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இன்னும் <xliff:g id="NUMBER_1">%2$d</xliff:g> முறை தவறாக முயற்சித்தால், டேப்லெட் மீட்டமைக்கப்படும், அத்துடன் இதன் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"மொபைலைத் திறக்க, <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இன்னும் <xliff:g id="NUMBER_1">%2$d</xliff:g> முறை தவறாக முயற்சித்தால் மொபைல் மீட்டமைக்கப்படும், அத்துடன் இதன் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"டேப்லெட்டைத் திறக்க, <xliff:g id="NUMBER">%d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். டேப்லெட் மீட்டமைக்கப்படும், அத்துடன் இதன் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"மொபைலைத் திறக்க, <xliff:g id="NUMBER">%d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். மொபைல் மீட்டமைக்கப்படும், அத்துடன் இதன் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"டேப்லெட்டைத் திறக்க, <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இன்னும் <xliff:g id="NUMBER_1">%2$d</xliff:g> முறை தவறாக முயற்சித்தால் இந்தப் பயனர் அகற்றப்படுவார், அத்துடன் அவரின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"மொபைலைத் திறக்க, <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இன்னும் <xliff:g id="NUMBER_1">%2$d</xliff:g> முறை தவறாக முயற்சித்தால் இந்தப் பயனர் அகற்றப்படுவார், அத்துடன் அவரின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"டேப்லெட்டைத் திறக்க, <xliff:g id="NUMBER">%d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இவர் அகற்றப்படுவார், அத்துடன் அவரின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"மொபைலைத் திறக்க, <xliff:g id="NUMBER">%d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இவர் அகற்றப்படுவார், அத்துடன் அவரின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"டேப்லெட்டைத் திறக்க, <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இன்னும் <xliff:g id="NUMBER_1">%2$d</xliff:g> முறை தவறாக முயற்சித்தால், பணி சுயவிவரம் அகற்றப்படும், அத்துடன் சுயவிவரத்தின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"மொபைலைத் திறக்க <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். இன்னும் <xliff:g id="NUMBER_1">%2$d</xliff:g> முறை தவறாக முயற்சித்தால் பணி சுயவிவரம் அகற்றப்படும், அத்துடன் சுயவிவரத்தின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"டேப்லெட்டைத் திறக்க, <xliff:g id="NUMBER">%d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். பணி சுயவிவரம் அகற்றப்படும், அத்துடன் சுயவிவரத்தின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"மொபைலைத் திறக்க, <xliff:g id="NUMBER">%d</xliff:g> முறை தவறாக முயற்சித்துள்ளீர்கள். பணி சுயவிவரம் அகற்றப்படும், அத்துடன் சுயவிவரத்தின் எல்லா தரவும் நீக்கப்படும்."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"திறப்பதற்கான வடிவத்தை <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக வரைந்துள்ளீர்கள். மேலும் <xliff:g id="NUMBER_1">%2$d</xliff:g> தோல்வி முயற்சிகளுக்குப் பிறகு, மின்னஞ்சல் கணக்கைப் பயன்படுத்தி உங்கள் டேப்லெட்டைத் திறக்க கேட்கப்படுவீர்கள்.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> வினாடிகளில் மீண்டும் முயற்சிக்கவும்."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"திறப்பதற்கான வடிவத்தை <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக வரைந்துள்ளீர்கள். மேலும் <xliff:g id="NUMBER_1">%2$d</xliff:g> தோல்வி முயற்சிகளுக்குப் பிறகு, மின்னஞ்சல் கணக்கைப் பயன்படுத்தி உங்கள் மொபைலைத் திறக்கக் கேட்கப்படுவீர்கள்.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> வினாடிகள் கழித்து முயற்சிக்கவும்."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"சிம் பின் குறியீடு தவறானது, உங்கள் சாதனத்தின் தடையை நீக்க, உங்கள் மொபைல் நிறுவனத்தைத் தொடர்புகொள்ள வேண்டும்."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">சிம்மின் பின் குறியீடு தவறானது, உங்களிடம் <xliff:g id="NUMBER_1">%d</xliff:g> முயற்சிகள் மீதமுள்ளன.</item>
-      <item quantity="one">சிம்மின் பின் குறியீடு தவறானது, மேலும் <xliff:g id="NUMBER_0">%d</xliff:g> முயற்சிக்குப் பின்னர், சாதனத்தைத் திறக்க, கண்டிப்பாக உங்கள் மொபைல் நிறுவனத்தைத் தொடர்புகொள்ள வேண்டும்.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"சிம் பயன்பாட்டிற்கு உகந்தது அல்ல. உங்கள் மொபைல் நிறுவனத்தைத் தொடர்புகொள்ளவும்."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">சிம் PUK குறியீடு தவறானது, நிரந்தரமாக சிம் முடக்கப்படும் முன், நீங்கள் <xliff:g id="NUMBER_1">%d</xliff:g> முறை முயற்சிக்கலாம்.</item>
-      <item quantity="one">சிம்மின் PUK குறியீடு தவறானது, நிரந்தரமாக சிம் முடக்கப்படும் முன், நீங்கள் <xliff:g id="NUMBER_0">%d</xliff:g> முறை முயற்சிக்கலாம்.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"சிம் பின் செயல்பாடு தோல்வி!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"சிம் PUK செயல்பாடு தோல்வி!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"குறியீடு ஏற்கப்பட்டது!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"சேவை இல்லை."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"உள்ளீட்டு முறையை மாற்று"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"விமானப் பயன்முறை"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"சாதனத்தை மீண்டும் தொடங்கியதும் வடிவத்தை வரைய வேண்டும்"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"சாதனத்தை மீண்டும் தொடங்கியதும் பின்னை உள்ளிட வேண்டும்"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"சாதனத்தை மீண்டும் தொடங்கியதும் கடவுச்சொல்லை உள்ளிட வேண்டும்"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"கூடுதல் பாதுகாப்பிற்கு வடிவத்தை வரைய வேண்டும்"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"கூடுதல் பாதுகாப்பிற்குப் பின்னை உள்ளிட வேண்டும்"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"கூடுதல் பாதுகாப்பிற்குக் கடவுச்சொல்லை உள்ளிட வேண்டும்"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"சுயவிவரங்களுக்கு இடையே மாறும் போது, வடிவத்தை வரைய வேண்டும்"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"சுயவிவரங்களுக்கு இடையே மாறும் போது, பின்னை உள்ளிட வேண்டும்"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"சுயவிவரங்களுக்கு இடையே மாறும் போது, கடவுச்சொல்லை உள்ளிட வேண்டும்"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"சாதன நிர்வாகி சாதனத்தைப் பூட்டியுள்ளார்"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"பயனர் சாதனத்தைப் பூட்டியுள்ளார்"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> மணிநேரமாகச் சாதனம் திறக்கப்படவில்லை. வடிவத்தை உறுதிப்படுத்தவும்.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> மணிநேரமாகச் சாதனம் திறக்கப்படவில்லை. வடிவத்தை உறுதிப்படுத்தவும்.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> மணிநேரமாகச் சாதனம் திறக்கப்படவில்லை. பின்னை உறுதிப்படுத்தவும்.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> மணிநேரமாகச் சாதனம் திறக்கப்படவில்லை. பின்னை உறுதிப்படுத்தவும்.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> மணிநேரமாகச் சாதனம் திறக்கப்படவில்லை. கடவுச்சொல்லை உறுதிப்படுத்தவும்.</item>
-      <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> மணிநேரமாகச் சாதனம் திறக்கப்படவில்லை. கடவுச்சொல்லை உறுதிப்படுத்தவும்.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"அறியப்படவில்லை"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-te/strings.xml b/packages/Keyguard/res/values-te/strings.xml
deleted file mode 100644
index a72a85b..0000000
--- a/packages/Keyguard/res/values-te/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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">"పిన్‌ కోడ్‌ను టైప్ చేయండి"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"సిమ్ PUK మరియు కొత్త పిన్ కోడ్‌ను టైప్ చేయండి"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"సిమ్ PUK కోడ్"</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">"అన్‌లాక్ చేయడానికి పిన్‌ను టైప్ చేయండి"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"చెల్లని పిన్‌ కోడ్."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ఛార్జ్ అయింది"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"ఛార్జ్ అవుతోంది"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"వేగంగా ఛార్జ్ అవుతోంది"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"నెమ్మదిగా ఛార్జ్ అవుతోంది"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"మీ ఛార్జర్‌ను కనెక్ట్ చేయండి."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"అన్‌లాక్ చేయడానికి మెను నొక్కండి."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"నెట్‌వర్క్ లాక్ చేయబడింది"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"సిమ్ కార్డు లేదు"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"టాబ్లెట్‌లో సిమ్ కార్డు లేదు."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ఫోన్‌లో సిమ్ కార్డు లేదు."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"సిమ్ కార్డును చొప్పించండి."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"సిమ్ కార్డు లేదు లేదా చదవగలిగేలా లేదు. సిమ్ కార్డును చొప్పించండి."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"నిరుపయోగ సిమ్ కార్డు."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"మీ సిమ్ కార్డు శాశ్వతంగా నిలిపివేయబడింది.\n మరో సిమ్ కార్డు కోసం మీ వైర్‌లెస్ సేవా ప్రదాతను సంప్రదించండి."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"సిమ్ కార్డు లాక్ చేయబడింది."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"సిమ్ కార్డు PUK లాక్ చేయబడింది."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"సిమ్ కార్డును అన్‌లాక్ చేస్తోంది…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ప్రాంతం"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ప్రాంతం"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ప్రాంతం"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"తదుపరి అలారం <xliff:g id="ALARM">%1$s</xliff:g>కి సెట్ చేయబడింది"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"తొలగించు"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"నమూనాను మర్చిపోయాను"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"నమూనా తప్పు"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"పాస్‌వర్డ్ తప్పు"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"పిన్‌ తప్పు"</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">"సిమ్ పిన్‌ను నమోదు చేయండి"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" కోసం SIM PIN నమోదు చేయండి"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"పిన్‌ను నమోదు చేయండి"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"పాస్‌వర్డ్‌ని నమోదు చేయండి"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"సిమ్ ఇప్పుడు నిలిపివేయబడింది. కొనసాగడానికి PUK కోడ్‌ను నమోదు చేయండి. వివరాల కోసం క్యారియర్‌ను సంప్రదించండి."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" ఇప్పుడు నిలిపివేయబడింది. కొనసాగించడానికి PUK కోడ్‌ను నమోదు చేయండి. వివరాల కోసం క్యారియర్‌ను సంప్రదించండి."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"కోరుకునే పిన్‌ కోడ్‌ను నమోదు చేయండి"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"కావల్సిన పిన్‌ కోడ్‌ను నిర్ధారించండి"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"సిమ్ కార్డు‌ను అన్‌లాక్ చేస్తోంది…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4 నుండి 8 సంఖ్యలు ఉండే పిన్‌ను టైప్ చేయండి."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK కోడ్ 8 లేదా అంతకంటే ఎక్కువ సంఖ్యలు ఉండాలి."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"సరైన PUK కోడ్‌ను మళ్లీ నమోదు చేయండి. పునరావృత ప్రయత్నాల వలన సిమ్ శాశ్వతంగా నిలిపివేయబడుతుంది."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"పిన్‌ కోడ్‌లు సరిపోలలేదు"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"చాలా ఎక్కువ నమూనా ప్రయత్నాలు చేసారు"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"మీరు మీ పిన్‌ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేసారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"మీరు మీ పాస్‌వర్డ్‌ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేసారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"మీరు మీ అన్‌లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"మీరు టాబ్లెట్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> ప్రయత్నాలు విఫలమైతే, ఈ టాబ్లెట్ రీసెట్ చేయబడుతుంది, ఇందువల్ల ఇందులోని మొత్తం డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"మీరు ఫోన్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> ప్రయత్నాలు విఫలమైతే, ఈ ఫోన్ రీసెట్ చేయబడుతుంది, ఇందువల్ల ఇందులోని మొత్తం డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"మీరు టాబ్లెట్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. ఈ టాబ్లెట్ రీసెట్ చేయబడుతుంది, ఇందువల్ల ఇందులోని మొత్తం డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"మీరు ఫోన్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. ఈ ఫోన్ రీసెట్ చేయబడుతుంది, ఇందువల్ల ఇందులోని మొత్తం డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"మీరు టాబ్లెట్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> ప్రయత్నాలు విఫలమైతే, ఈ వినియోగదారు తీసివేయబడతారు, ఇందువల్ల మొత్తం వినియోగదారు డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"మీరు ఫోన్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> ప్రయత్నాలు విఫలమైతే, ఈ వినియోగదారు తీసివేయబడతారు, ఇందువల్ల మొత్తం వినియోగదారు డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"మీరు టాబ్లెట్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. ఈ వినియోగదారు తీసివేయబడతారు, ఇందువల్ల మొత్తం వినియోగదారు డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"మీరు ఫోన్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. ఈ వినియోగదారు తీసివేయబడతారు, ఇందువల్ల మొత్తం వినియోగదారు డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"మీరు టాబ్లెట్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> ప్రయత్నాలు విఫలమైతే, కార్యాలయ ప్రొఫైల్ తీసివేయబడుతుంది, ఇందువల్ల మొత్తం ప్రొఫైల్ డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"మీరు ఫోన్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> ప్రయత్నాలు విఫలమైతే, కార్యాలయ ప్రొఫైల్ తీసివేయబడుతుంది, ఇందువల్ల మొత్తం ప్రొఫైల్ డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"మీరు టాబ్లెట్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. కార్యాలయ ప్రొఫైల్ తీసివేయబడుతుంది, ఇందువల్ల మొత్తం ప్రొఫైల్ డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"మీరు ఫోన్‌ను అన్‌లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు చెల్లని ప్రయత్నాలు చేశారు. కార్యాలయ ప్రొఫైల్ తీసివేయబడుతుంది, ఇందువల్ల మొత్తం ప్రొఫైల్ డేటా తొలగించబడుతుంది."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"మీరు మీ అన్‌లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఇమెయిల్ ఖాతాను ఉపయోగించి మీ టాబ్లెట్‌ను అన్‌లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"మీరు మీ అన్‌లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఇమెయిల్ ఖాతాను ఉపయోగించి మీ ఫోన్‌ను అన్‌లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"సిమ్ పిన్ కోడ్ చెల్లదు, మీరు ఇప్పుడు మీ పరికరాన్ని అన్‌లాక్ చేయడానికి తప్పనిసరిగా మీ క్యారియర్‌ను సంప్రదించండి."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM PIN కోడ్ చెల్లదు, మీకు <xliff:g id="NUMBER_1">%d</xliff:g> ప్రయత్నాలు మిగిలి ఉన్నాయి.</item>
-      <item quantity="one">SIM PIN కోడ్ చెల్లదు, మీరు మీ పరికరాన్ని అన్‌లాక్ చేయడానికి తప్పనిసరిగా మీ క్యారియర్‌ను సంప్రదించడానికి ముందు మీకు <xliff:g id="NUMBER_0">%d</xliff:g> ప్రయత్నం మిగిలి ఉంది.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"సిమ్ నిరుపయోగమైనది. మీ క్యారియర్‌ను సంప్రదించండి."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUK కోడ్ చెల్లదు, SIM శాశ్వతంగా నిరుపయోగం కాకుండా ఉండటానికి మీకు <xliff:g id="NUMBER_1">%d</xliff:g> ప్రయత్నాలు మిగిలి ఉన్నాయి.</item>
-      <item quantity="one">SIM PUK కోడ్ చెల్లదు, SIM శాశ్వతంగా నిరుపయోగం కాకుండా ఉండటానికి మీకు <xliff:g id="NUMBER_0">%d</xliff:g> ప్రయత్నం మిగిలి ఉంది.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"సిమ్ పిన్ చర్య విఫలమైంది!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"సిమ్ PUK చర్య విఫలమైంది!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"కోడ్ ఆమోదించబడింది!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"సేవ లేదు."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"ఇన్‌పుట్ పద్ధతిని మారుస్తుంది"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"ఎయిర్‌ప్లైన్ మోడ్"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"పరికరాన్ని పునఃప్రారంభించిన తర్వాత నమూనా నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"పరికరాన్ని పునఃప్రారంభించిన తర్వాత PIN నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"పరికరాన్ని పునఃప్రారంభించిన తర్వాత పాస్‌వర్డ్ నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"అదనపు భద్రత కోసం నమూనా నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"అదనపు భద్రత కోసం PIN నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"అదనపు భద్రత కోసం పాస్‌వర్డ్ నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"మీరు ప్రొఫైల్‌లు మారినప్పుడు నమూనా నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"మీరు ప్రొఫైల్‌లు మారినప్పుడు PIN నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"మీరు ప్రొఫైల్‌లు మారినప్పుడు పాస్‌వర్డ్ నమోదు చేయడం ఆవశ్యకం"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"పరికర నిర్వాహకులు పరికరాన్ని లాక్ చేసారు"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"పరికరం మాన్యువల్‌గా లాక్ చేయబడింది"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">పరికరం <xliff:g id="NUMBER_1">%d</xliff:g> గంటల పాటు అన్‌లాక్ చేయబడలేదు. నమూనాను నిర్ధారించండి.</item>
-      <item quantity="one">పరికరం <xliff:g id="NUMBER_0">%d</xliff:g> గంట పాటు అన్‌లాక్ చేయబడలేదు. నమూనాను నిర్ధారించండి.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">పరికరం <xliff:g id="NUMBER_1">%d</xliff:g> గంటల పాటు అన్‌లాక్ చేయబడలేదు. PINను నిర్ధారించండి.</item>
-      <item quantity="one">పరికరం <xliff:g id="NUMBER_0">%d</xliff:g> గంట పాటు అన్‌లాక్ చేయబడలేదు. PINను నిర్ధారించండి.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">పరికరం <xliff:g id="NUMBER_1">%d</xliff:g> గంటల పాటు అన్‌లాక్ చేయబడలేదు. పాస్‌వర్డ్‌ని నిర్ధారించండి.</item>
-      <item quantity="one">పరికరం <xliff:g id="NUMBER_0">%d</xliff:g> గంట పాటు అన్‌లాక్ చేయబడలేదు. పాస్‌వర్డ్‌ని నిర్ధారించండి.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"గుర్తించలేదు"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-th/strings.xml b/packages/Keyguard/res/values-th/strings.xml
deleted file mode 100644
index e094d35..0000000
--- a/packages/Keyguard/res/values-th/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"พิมพ์ PUK และรหัส PIN ใหม่"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"รหัส PUK ของซิม"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"รหัส PIN ของซิมใหม่"</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_wrong_pin_code" msgid="2422225591006134936">"รหัส PIN ไม่ถูกต้อง"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"ชาร์จแล้ว"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"กำลังชาร์จ"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"กำลังชาร์จเร็ว"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"กำลังชาร์จอย่างช้าๆ"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"เสียบที่ชาร์จของคุณ"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"กด \"เมนู\" เพื่อปลดล็อก"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"เครือข่ายล็อก"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"ไม่มีซิมการ์ด"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"ไม่มีซิมการ์ดในแท็บเล็ต"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ไม่มีซิมการ์ดในโทรศัพท์"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"ใส่ซิมการ์ด"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"ไม่มีหรือไม่สามารถอ่านซิมการ์ดได้ โปรดใส่ซิมการ์ด"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"ซิมการ์ดใช้ไม่ได้"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"ซิมการ์ดของคุณถูกปิดใช้งานอย่างถาวร\nติดต่อผู้ให้บริการระบบไร้สายของคุณเพื่อรับซิมการ์ดใหม่"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ซิมการ์ดถูกล็อก"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ซิมการ์ดถูกล็อกด้วย PUK"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"กำลังปลดล็อกซิมการ์ด…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"พื้นที่ PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"พื้นที่ PIN ของซิม"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"พื้นที่ PUK ของซิม"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ตั้งเวลาปลุกครั้งถัดไปไว้ที่ <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ลบ"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ป้อน"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ลืมรูปแบบใช่หรือไม่"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"รูปแบบไม่ถูกต้อง"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"รหัสผ่านไม่ถูกต้อง"</string>
-    <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">"ป้อน PIN ของซิม"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"ป้อน PIN ของซิมสำหรับ \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</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">"ซิมการ์ดถูกปิดใช้งานแล้วในตอนนี้ ป้อนรหัส PUK เพื่อดำเนินการต่อ โปรดติดต่อผู้ให้บริการสำหรับรายละเอียด"</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"ปิดใช้ซิม \"<xliff:g id="CARRIER">%1$s</xliff:g>\" แล้ว โปรดป้อนรหัส PUK เพื่อดำเนินการต่อ โปรดสอบถามรายละเอียดจากผู้ให้บริการ"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"ป้อนรหัส PIN ที่ต้องการ"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"ยืนยันรหัส PIN ที่ต้องการ"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"กำลังปลดล็อกซิมการ์ด…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"พิมพ์ PIN ซึ่งเป็นเลข 4 ถึง 8 หลัก"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"รหัส PUK ต้องเป็นตัวเลขอย่างน้อย 8 หลัก"</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"ใส่รหัส PUK ที่ถูกต้องอีกครั้ง การพยายามซ้ำหลายครั้งจะทำให้ซิมการ์ดถูกปิดใช้งานอย่างถาวร"</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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"คุณพิมพ์ PIN ไม่ถูกต้องไป <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้งแล้ว \n\nโปรดลองอีกครั้งใน <xliff:g id="NUMBER_1">%2$d</xliff:g> วินาที"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"คุณพิมพ์รหัสผ่านไม่ถูกต้องไป <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้งแล้ว \n\nโปรดลองอีกครั้งใน <xliff:g id="NUMBER_1">%2$d</xliff:g> วินาที"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้องไป <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้งแล้ว \n\nโปรดลองอีกครั้งใน <xliff:g id="NUMBER_1">%2$d</xliff:g> วินาที"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"คุณปลดล็อกแท็บเล็ตไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้ง หากพยายามไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะรีเซ็ตแท็บเล็ตเครื่องนี้ ซึ่งจะเป็นการลบข้อมูลทั้งหมดในเครื่อง"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"คุณปลดล็อกโทรศัพท์ไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้ง หากพยายามไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะรีเซ็ตโทรศัพท์เครื่องนี้ ซึ่งจะเป็นการลบข้อมูลทั้งหมดในเครื่อง"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"คุณปลดล็อกแท็บเล็ตไม่ถูกต้อง <xliff:g id="NUMBER">%d</xliff:g> ครั้ง ระบบจะรีเซ็ตแท็บเล็ตเครื่องนี้ ซึ่งจะเป็นการลบข้อมูลทั้งหมดในเครื่อง"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"คุณปลดล็อกโทรศัพท์ไม่ถูกต้อง <xliff:g id="NUMBER">%d</xliff:g> ครั้ง ระบบจะรีเซ็ตโทรศัพท์เครื่องนี้ ซึ่งจะเป็นการลบข้อมูลทั้งหมดในเครื่อง"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"คุณปลดล็อกแท็บเล็ตไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้ง หากพยายามไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะนำผู้ใช้รายนี้ออก ซึ่งจะเป็นการลบข้อมูลผู้ใช้ทั้งหมด"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"คุณปลดล็อกโทรศัพท์ไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้ง หากพยายามไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะนำผู้ใช้รายนี้ออก ซึ่งจะเป็นการลบข้อมูลผู้ใช้ทั้งหมด"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"คุณปลดล็อกแท็บเล็ตไม่ถูกต้อง <xliff:g id="NUMBER">%d</xliff:g> ครั้ง ระบบจะนำผู้ใช้รายนี้ออก ซึ่งจะเป็นการลบข้อมูลผู้ใช้ทั้งหมด"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"คุณปลดล็อกโทรศัพท์ไม่ถูกต้อง <xliff:g id="NUMBER">%d</xliff:g> ครั้ง ระบบจะนำผู้ใช้รายนี้ออก ซึ่งจะเป็นการลบข้อมูลผู้ใช้ทั้งหมด"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"คุณปลดล็อกแท็บเล็ตไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้ง หากพยายามไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะนำโปรไฟล์งานออก ซึ่งจะเป็นการลบข้อมูลโปรไฟล์ทั้งหมด"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"คุณปลดล็อกโทรศัพท์ไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้ง หากพยายามไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะนำโปรไฟล์งานออก ซึ่งจะเป็นการลบข้อมูลโปรไฟล์ทั้งหมด"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"คุณปลดล็อกแท็บเล็ตไม่ถูกต้อง <xliff:g id="NUMBER">%d</xliff:g> ครั้ง ระบบจะนำโปรไฟล์งานออก ซึ่งจะเป็นการลบข้อมูลโปรไฟล์ทั้งหมด"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"คุณปลดล็อกโทรศัพท์ไม่ถูกต้อง <xliff:g id="NUMBER">%d</xliff:g> ครั้ง ระบบจะนำโปรไฟล์งานออก ซึ่งจะเป็นการลบข้อมูลโปรไฟล์ทั้งหมด"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้งแล้ว หากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกแท็บเล็ตโดยใช้บัญชีอีเมล\n\n โปรดลองอีกครั้งใน <xliff:g id="NUMBER_2">%3$d</xliff:g> วินาที"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้งแล้ว หากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกโทรศัพท์โดยใช้ับัญชีอีเมล\n\n โปรดลองอีกครั้งในอีก <xliff:g id="NUMBER_2">%3$d</xliff:g> วินาที"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"รหัส PIN ของซิมไม่ถูกต้อง ตอนนี้คุณต้องติดต่อผู้ให้บริการเพื่อปลดล็อกอุปกรณ์ของคุณ"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">รหัส PIN ของซิมไม่ถูกต้อง คุณพยายามได้อีก <xliff:g id="NUMBER_1">%d</xliff:g> ครั้ง</item>
-      <item quantity="one">รหัส PIN ของซิมไม่ถูกต้อง คุณพยายามได้อีก <xliff:g id="NUMBER_0">%d</xliff:g> ครั้งก่อนที่จะต้องติดต่อผู้ให้บริการเพื่อปลดล็อกอุปกรณ์ของคุณ</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"ซิมไม่สามารถใช้งานได้ ติดต่อผู้ให้บริการของคุณ"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">รหัส PUK ของซิมไม่ถูกต้อง คุณพยายามได้อีก <xliff:g id="NUMBER_1">%d</xliff:g> ครั้งก่อนที่ซิมจะไม่สามารถใช้งานได้อย่างถาวร</item>
-      <item quantity="one">รหัส PUK ของซิมไม่ถูกต้อง คุณพยายามได้อีก <xliff:g id="NUMBER_0">%d</xliff:g> ครั้งก่อนที่ซิมจะไม่สามารถใช้งานได้อย่างถาวร</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"การปลดล็อกด้วย PIN ของซิมล้มเหลว!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"การปลดล็อกด้วย PUK ของซิมล้มเหลว!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"รหัสได้รับการยอมรับ!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"ไม่มีบริการ"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"สลับวิธีการป้อนข้อมูล"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"โหมดบนเครื่องบิน"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"ต้องใช้รูปแบบหลังจากอุปกรณ์รีสตาร์ท"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"ต้องระบุ PIN หลังจากอุปกรณ์รีสตาร์ท"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"ต้องป้อนรหัสผ่านหลังจากอุปกรณ์รีสตาร์ท"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"ต้องใช้รูปแบบเพื่อความปลอดภัยเพิ่มเติม"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"ต้องระบุ PIN เพื่อความปลอดภัยเพิ่มเติม"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"ต้องป้อนรหัสผ่านเพื่อความปลอดภัยเพิ่มเติม"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"ต้องใช้รูปแบบเมื่อคุณเปลี่ยนโปรไฟล์"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"ต้องระบุ PIN เมื่อคุณเปลี่ยนโปรไฟล์"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"ต้องป้อนรหัสผ่านเมื่อคุณเปลี่ยนโปรไฟล์"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"ผู้ดูแลอุปกรณ์ล็อกอุปกรณ์ไว้"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"มีผู้ล็อกอุปกรณ์ด้วยตัวเอง"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">ไม่มีการปลดล็อกอุปกรณ์เป็นเวลา <xliff:g id="NUMBER_1">%d</xliff:g> ชั่วโมง ยืนยันรูปแบบ</item>
-      <item quantity="one">ไม่มีการปลดล็อกอุปกรณ์เป็นเวลา <xliff:g id="NUMBER_0">%d</xliff:g> ชั่วโมง ยืนยันรูปแบบ </item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">ไม่มีการปลดล็อกอุปกรณ์เป็นเวลา <xliff:g id="NUMBER_1">%d</xliff:g> ชั่วโมง ยืนยัน PIN</item>
-      <item quantity="one">ไม่มีการปลดล็อกอุปกรณ์เป็นเวลา <xliff:g id="NUMBER_0">%d</xliff:g> ชั่วโมง ยืนยัน PIN</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">ไม่มีการปลดล็อกอุปกรณ์เป็นเวลา <xliff:g id="NUMBER_1">%d</xliff:g> ชั่วโมง ยืนยันรหัสผ่าน</item>
-      <item quantity="one">ไม่มีการปลดล็อกอุปกรณ์เป็นเวลา <xliff:g id="NUMBER_0">%d</xliff:g> ชั่วโมง ยืนยันรหัสผ่าน</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ไม่รู้จัก"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-tl/strings.xml b/packages/Keyguard/res/values-tl/strings.xml
deleted file mode 100644
index 73492e2..0000000
--- a/packages/Keyguard/res/values-tl/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"I-type ang PIN code"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"I-type ang SIM PUK at bagong PIN code"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK code ng SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Bagong PIN code ng SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Pindutin upang i-type password"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"I-type ang password upang i-unlock"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"I-type ang PIN upang i-unlock"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Maling PIN code."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Na-charge"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Nagtsa-charge"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Mabilis na nagcha-charge"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Dahan-dahang nagcha-charge"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Ikonekta ang iyong charger."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Pindutin ang Menu upang i-unlock."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Naka-lock ang network"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Walang SIM card"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Walang SIM card sa tablet."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Walang SIM card sa telepono."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Maglagay ng SIM card."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Wala o hindi nababasa ang SIM card. Maglagay ng SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Hindi nagagamit na SIM card."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Ang iyong SIM card ay permanenteng naka-disable.\n Makipag-ugnay sa iyong wireless service provider para sa isa pang SIM card."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Naka-lock ang SIM card."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Naka-lock ang SIM card gamit ang PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ina-unlock ang SIM card…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Lugar ng PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Lugar ng PIN ng SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Lugar ng PUK ng SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nakatakda ang susunod na alarm para sa <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"I-delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nakalimutan ang Pattern"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Maling Pattern"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Maling Password"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Maling PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Subukang muli sa loob ng <xliff:g id="NUMBER">%d</xliff:g> (na) segundo."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Iguhit ang iyong pattern"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Ilagay ang SIM PIN"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Ilagay ang PIN ng SIM para sa \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Ilagay ang PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Ilagay ang Password"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Hindi na pinagana ang SIM ngayon. Maglagay ng PUK code upang magpatuloy. Makipag-ugnay sa carrier para sa mga detalye."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Naka-disable na ngayon ang SIM na \"<xliff:g id="CARRIER">%1$s</xliff:g>.\" Ilagay ang PUK code upang magpatuloy. Makipag-ugnayan sa carrier upang malaman ang mga detalye."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Ilagay ang ninanais na PIN code"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Kumpirmahin ang ninanais na PIN code"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Ina-unlock ang SIM card…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Mag-type ng PIN na 4 hanggang 8 numero."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Dapat ay 8 numero o higit pa ang PUK code."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Muling ilagay ang tamang PUK code. Permanenteng hindi pagaganahin ang SIM ng mga paulit-ulit na pagtatangka."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Hindi tumutugma ang mga PIN code"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Masyadong maraming pagtatangka sa pattern"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Na-type mo nang hindi tama ang iyong PIN nang <xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses. \n\nSubukang muli sa loob ng <xliff:g id="NUMBER_1">%2$d</xliff:g> (na) segundo."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Na-type mo nang hindi tama ang iyong password nang <xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses. \n\nSubukang muli sa loob ng <xliff:g id="NUMBER_1">%2$d</xliff:g> (na) segundo."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Naguhit mo nang hindi tama ang iyong pattern sa pag-unlock nang <xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses. \n\nSubukang muli sa loob ng <xliff:g id="NUMBER_1">%2$d</xliff:g> (na) segundo."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"<xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses mo nang sinubukang i-unlock ang tablet gamit ang maling password. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagsubok, ire-reset ang tablet na ito, na magiging dahilan upang ma-delete ang lahat ng data nito."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"<xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses mo nang sinubukang i-unlock ang telepono gamit ang maling password. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagsubok, ire-reset ang teleponong ito, na magiging dahilan upang ma-delete ang lahat ng data nito."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"<xliff:g id="NUMBER">%d</xliff:g> (na) beses mo nang sinubukang i-unlock ang tablet gamit ang maling password. Ire-reset ang tablet na ito, na magiging dahilan upang ma-delete ang lahat ng data nito."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"<xliff:g id="NUMBER">%d</xliff:g> (na) beses mo nang sinubukang i-unlock ang telepono gamit ang maling password. Ire-reset ang teleponong ito, na magiging dahilan upang ma-delete ang lahat ng data nito."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"<xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses mo nang sinubukang i-unlock ang tablet gamit ang maling password. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagsubok, aalisin ang user na ito, na magiging dahilan upang ma-delete ang lahat ng data ng user."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"<xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses mo nang sinubukang i-unlock ang telepono gamit ang maling password. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagsubok, aalisin ang user na ito, na magiging dahilan upang ma-delete ang lahat ng data ng user."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"<xliff:g id="NUMBER">%d</xliff:g> (na) beses mo nang sinubukang i-unlock ang tablet gamit ang maling password. Aalisin ang user na ito, na magiging dahilan upang ma-delete ang lahat ng data ng user."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"<xliff:g id="NUMBER">%d</xliff:g> (na) beses mo nang sinubukang i-unlock ang telepono gamit ang maling password. Aalisin ang user na ito, na magiging dahilan upang ma-delete ang lahat ng data ng user."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"<xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses mo nang sinubukang i-unlock ang tablet gamit ang maling password. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagsubok, aalisin ang profile sa trabaho, na magiging dahilan upang ma-delete ang lahat ng data sa profile."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"<xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses mo nang sinubukang i-unlock ang telepono gamit ang maling passowrd. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagsubok, aalisin ang profile sa trabaho, na magiging dahilan upang ma-delete ang lahat ng data sa profile."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"<xliff:g id="NUMBER">%d</xliff:g> (na) beses mo nang sinubukang i-unlock ang tablet gamit ang maling password. Aalisin ang profile sa trabaho, na magiging dahilan upang ma-delete ang lahat ng data sa profile."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"<xliff:g id="NUMBER">%d</xliff:g> (na) beses mo nang sinubukang i-unlock ang telepono gamit ang maling password. Aalisin ang profile sa trabaho, na magiging dahilan upang ma-delete ang lahat ng data sa profile."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Naguhit mo nang hindi tama ang iyong pattern sa pag-unlock nang <xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagtatangka, hihilingin sa iyong i-unlock ang tablet mo gamit ang isang email account.\n\n Subukang muli sa loob ng <xliff:g id="NUMBER_2">%3$d</xliff:g> (na) segundo."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Naguhit mo nang hindi tama ang iyong pattern sa pag-unlock nang <xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagtatangka, hihilingin sa iyong i-unlock ang telepono mo gamit ang isang email account.\n\n Subukang muli sa loob ng <xliff:g id="NUMBER_2">%3$d</xliff:g> (na) segundo."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Maling PIN code ng SIM, dapat ka nang makipag-ugnay sa iyong carrier upang i-unlock ang iyong device."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Maling PIN code ng SIM, mayroon kang <xliff:g id="NUMBER_1">%d</xliff:g> natitirang pagsubok.</item>
-      <item quantity="other">Maling PIN code ng SIM, mayroon kang <xliff:g id="NUMBER_1">%d</xliff:g> na natitirang pagsubok.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"Hindi magagamit ang SIM. Makipag-ugnay sa iyong carrier."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Maling PUK code ng SIM, mayroon kang <xliff:g id="NUMBER_1">%d</xliff:g> natitirang pagsubok bago tuluyang hindi magamit ang SIM.</item>
-      <item quantity="other">Maling PUK code ng SIM, mayroon kang <xliff:g id="NUMBER_1">%d</xliff:g> na natitirang pagsubok bago tuluyang hindi magamit ang SIM.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Nabigo ang operasyon ng SIM PIN!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Nabigo ang operasyon ng SIM PUK!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Tinanggap ang Code!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Walang serbisyo."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Magpalit ng pamamaraan ng pag-input"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Airplane mode"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Kinakailangan ang pattern pagkatapos mag-restart ng device"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Kinakailangan ang PIN pagkatapos mag-restart ng device"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Kinakailangan ang password pagkatapos mag-restart ng device"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Kinakailangan ang pattern para sa karagdagang seguridad"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Kinakailangan ang PIN para sa karagdagang seguridad"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Kinakailangan ang password para sa karagdagang seguridad"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Kinakailangan ang pattern kapag nagpalit ka ng profile"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Kinakailangan ang PIN kapag nagpalit ka ng profile"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Kinakailangan ang password kapag nagpalit ka ng profile"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Ang device ay na-lock na ng administrator ng device"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Manual na na-lock ang device"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Hindi na-unlock ang device sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> oras.. Kumpirmahin ang pattern.</item>
-      <item quantity="other">Hindi na-unlock ang device sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> na oras. Kumpirmahin ang pattern.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Hindi na-unlock ang device sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> oras. Kumpirmahin ang PIN.</item>
-      <item quantity="other">Hindi na-unlock ang device sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> na oras. Kumpirmahin ang PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Hindi na-unlock ang device sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> oras. Kumpirmahin ang password.</item>
-      <item quantity="other">Hindi na-unlock ang device sa loob ng <xliff:g id="NUMBER_1">%d</xliff:g> na oras. Kumpirmahin ang password.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Hindi nakilala"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-tr/strings.xml b/packages/Keyguard/res/values-tr/strings.xml
deleted file mode 100644
index 3ef0705..0000000
--- a/packages/Keyguard/res/values-tr/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PIN kodunu yazın"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM PUK kodunu ve yeni bir PIN kodu yazın."</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK kodu"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Yeni SIM PIN kodu"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Şifre yazmak için dokunun"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Kilidi açmak için şifreyi yazın"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Kilidi açmak için PIN kodunu yazın"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Yanlış PIN kodu."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Şarj oldu"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Şarj oluyor"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Hızlı şarj oluyor"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Yavaş şarj oluyor"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Şarj cihazınızı takın."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Kilidi açmak için Menü\'ye basın."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Ağ kilitli"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM kart yok"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Tablette SIM kart yok."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Telefonda SIM kart yok."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"SIM kart takın."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM kart yok veya okunamıyor. Bir SIM kart takın."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Kullanılamayan SIM kart"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kart kilitli."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kart PUK kilidi devrede."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM kart kilidi açılıyor…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN alanı"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN alanı"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK alanı"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Sonraki alarm <xliff:g id="ALARM">%1$s</xliff:g> için ayarlandı"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Sil"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Giriş"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Deseni Unuttunuz mu?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Yanlış Desen"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Yanlış Şifre"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Yanlış PIN"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"<xliff:g id="NUMBER">%d</xliff:g> saniye içinde tekrar deneyin."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Deseninizi çizin"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM PIN kodunu girin"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" için SIM PIN\'ini girin"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"PIN\'i girin"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Şifreyi Girin"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM kart artık devre dışı bırakıldı. Devam etmek için PUK kodunu girin. Ayrıntılı bilgi için operatörle bağlantı kurun."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" SIM artık devre dışı. Devam etmek için PUK kodunu girin. Ayrıntılar için operatör ile iletişim kurun."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"İstenen PIN kodunu girin"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"İstenen PIN kodunu onaylayın"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM kart kilidi açılıyor…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4-8 rakamdan oluşan bir PIN girin."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kodu 8 veya daha çok basamaklı bir sayı olmalıdır."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Doğru PUK kodunu tekrar girin. Çok sayıda deneme yapılırsa SIM kart kalıcı olarak devre dışı bırakılır."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodları eşleşmiyor"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Çok fazla sayıda desen denemesi yapıldı"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN kodunuzu <xliff:g id="NUMBER_0">%1$d</xliff:g> kez yanlış girdiniz. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> saniye içinde tekrar deneyin."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Şifrenizi <xliff:g id="NUMBER_0">%1$d</xliff:g> kez yanlış yazdınız. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> saniye içinde tekrar deneyin."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Kilit açma deseninizi <xliff:g id="NUMBER_0">%1$d</xliff:g> kez yanlış çizdiniz. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> saniye içinde tekrar deneyin."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Tabletin kilidini <xliff:g id="NUMBER_0">%1$d</xliff:g> kez hatalı bir şekilde açmayı denediniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız deneme daha yaparsanız bu tablet sıfırlanacak ve tüm verileri silinecektir."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Telefonun kilidini <xliff:g id="NUMBER_0">%1$d</xliff:g> kez hatalı bir şekilde açmayı denediniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız deneme daha yaparsanız bu telefon sıfırlanacak ve tüm verileri silinecektir."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Tabletin kilidini <xliff:g id="NUMBER">%d</xliff:g> kez hatalı bir şekilde açmayı denediniz. Bu tablet sıfırlanacak ve tüm verileri silinecektir."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Telefonun kilidini <xliff:g id="NUMBER">%d</xliff:g> kez hatalı bir şekilde açmayı denediniz. Bu telefon sıfırlanacak ve tüm verileri silinecektir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Tabletin kilidini <xliff:g id="NUMBER_0">%1$d</xliff:g> kez hatalı bir şekilde açmayı denediniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız deneme daha yaparsanız bu kullanıcı kaldırılacak ve tüm kullanıcı verileri silinecektir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Telefonun kilidini <xliff:g id="NUMBER_0">%1$d</xliff:g> kez hatalı bir şekilde açmayı denediniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız deneme daha yaparsanız bu kullanıcı kaldırılacak ve tüm kullanıcı verileri silinecektir."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Tabletin kilidini <xliff:g id="NUMBER">%d</xliff:g> kez hatalı bir şekilde açmayı denediniz. Bu kullanıcı kaldırılacak ve tüm kullanıcı verileri silinecektir."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Telefonun kilidini <xliff:g id="NUMBER">%d</xliff:g> kez hatalı bir şekilde açmayı denediniz. Bu kullanıcı kaldırılacak ve tüm kullanıcı verileri silinecektir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Tabletin kilidini <xliff:g id="NUMBER_0">%1$d</xliff:g> kez hatalı bir şekilde açmayı denediniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız deneme daha yaparsanız iş profili kaldırılacak ve tüm profil verileri silinecektir."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Telefonun kilidini <xliff:g id="NUMBER_0">%1$d</xliff:g> kez hatalı bir şekilde açmayı denediniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız deneme daha yaparsanız iş profili kaldırılacak ve tüm profil verileri silinecektir."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Tabletin kilidini <xliff:g id="NUMBER">%d</xliff:g> kez hatalı bir şekilde açmayı denediniz. İş profili kaldırılacak ve tüm profil verileri silinecektir."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Telefonun kilidini <xliff:g id="NUMBER">%d</xliff:g> kez hatalı bir şekilde açmayı denediniz. İş profili kaldırılacak ve tüm profil verileri silinecektir."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Kilit açma deseninizi <xliff:g id="NUMBER_0">%1$d</xliff:g> kez yanlış çizdiniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız denemeden sonra, tabletinizi bir e-posta hesabı kullanarak açmanız istenir.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> saniye içinde tekrar deneyin."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Kilit açma deseninizi <xliff:g id="NUMBER_0">%1$d</xliff:g> kez yanlış çizdiniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız denemeden sonra telefonunuzu bir e-posta hesabı kullanarak açmanız istenir.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> saniye içinde tekrar deneyin."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Yanlış SIM PIN kodu. Cihazınızın kilidini açmak için artık operatörünüzle bağlantı kurmanız gerekiyor."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Yanlış SIM PIN kodu, <xliff:g id="NUMBER_1">%d</xliff:g> deneme hakkınız kaldı.</item>
-      <item quantity="one">Yanlış SIM PIN kodu. Cihazınızın kilidini açmak için operatörünüzle bağlantı kurmak zorunda kalmadan önce <xliff:g id="NUMBER_0">%d</xliff:g> deneme hakkınız kaldı.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM kullanılamaz. Operatörünüzle bağlantı kurun."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Yanlış SIM PUK kodu, SIM kalıcı olarak kullanılmaz hale gelmeden önce <xliff:g id="NUMBER_1">%d</xliff:g> deneme hakkınız kaldı.</item>
-      <item quantity="one">Yanlış SIM PUK kodu, SIM kalıcı olarak kullanılmaz hale gelmeden önce <xliff:g id="NUMBER_0">%d</xliff:g> deneme hakkınız kaldı.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN işlemi başarısız oldu!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK işlemi başarısız oldu!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kod Kabul Edildi!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Hizmet yok."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Giriş yöntemini değiştir"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Uçak modu"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Cihaz yeniden başladıktan sonra desen gerekir"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Cihaz yeniden başladıktan sonra PIN gerekir"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Cihaz yeniden başladıktan sonra şifre gerekir"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Ek güvenlik için desen gerekir"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Ek güvenlik için PIN gerekir"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Ek güvenlik için şifre gerekir"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Profil değiştirdiğinizde desen gerekir"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Profil değiştirdiğinizde PIN gerekir"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Profil değiştirdiğinizde şifre gerekir"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Cihaz yöneticisi cihazı kilitledi"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Cihazın manuel olarak kilitlendi"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Cihazın kilidi son <xliff:g id="NUMBER_1">%d</xliff:g> saattir açılmadı. Deseni doğrulayın.</item>
-      <item quantity="one">Cihazın kilidi son <xliff:g id="NUMBER_0">%d</xliff:g> saattir açılmadı. Deseni doğrulayın.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Cihazın kilidi son <xliff:g id="NUMBER_1">%d</xliff:g> saattir açılmadı. PIN\'i doğrulayın.</item>
-      <item quantity="one">Cihazın kilidi son <xliff:g id="NUMBER_0">%d</xliff:g> saattir açılmadı. PIN\'i doğrulayın.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Cihazın kilidi son <xliff:g id="NUMBER_1">%d</xliff:g> saattir açılmadı. Şifreyi doğrulayın.</item>
-      <item quantity="one">Cihazın kilidi son <xliff:g id="NUMBER_0">%d</xliff:g> saattir açılmadı. Şifreyi doğrulayın.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Tanınmadı"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-uk/strings.xml b/packages/Keyguard/res/values-uk/strings.xml
deleted file mode 100644
index a508689..0000000
--- a/packages/Keyguard/res/values-uk/strings.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Введіть PIN-код"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Введіть PUK-код і новий PIN-код SIM-карти"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"PUK-код SIM-карти"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Новий PIN-код SIM-карти"</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_wrong_pin_code" msgid="2422225591006134936">"Неправильний PIN-код."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Заряджено"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Заряджається"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Швидке заряджання"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Повільне заряджання"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Підключіть зарядний пристрій."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Натисніть Меню, щоб розблокувати."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Мережу заблоковано"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Відсутня SIM-карта"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"У планшетному ПК немає SIM-карти."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"У телефоні немає SIM-карти."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Вставте SIM-карту."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM-карта відсутня або не доступна для читання. Вставте SIM-карту."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Непридатна SIM-карта."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"Вашу SIM-карту вимкнено назавжди.\n Зверніться до свого постачальника послуг бездротового зв’язку, щоб отримати іншу SIM-карту."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карту заблоковано."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-карту заблоковано PUK-кодом."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Розблокування SIM-карти…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-код"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-код SIM-карти"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-код SIM-карти"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Наступний сигнал: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Не пам’ятаю ключ"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильний ключ"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Неправильний пароль"</string>
-    <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">"Введіть PIN-код SIM-карти"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Введіть PIN-код SIM-карти для оператора \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM-карту \"<xliff:g id="CARRIER">%1$s</xliff:g>\" вимкнено. Щоб продовжити, введіть PUK-код. Щоб дізнатися більше, зв’яжіться з оператором."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Введіть потрібний PIN-код"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Підтвердьте потрібний PIN-код"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Розблокування SIM-карти…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Введіть PIN-код із 4–8 цифр."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-код має складатися зі щонайменше 8 цифр."</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN-код неправильно введено стільки разів: <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\nПовторіть спробу через <xliff:g id="NUMBER_1">%2$d</xliff:g> с."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Пароль неправильно введено стільки разів: <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\nПовторіть спробу через <xliff:g id="NUMBER_1">%2$d</xliff:g> с."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Ключ розблокування неправильно намальовано стільки разів: <xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\nПовторіть спробу через <xliff:g id="NUMBER_1">%2$d</xliff:g> с."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Кількість невдалих спроб розблокувати планшет: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Залишилося спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g> У разі невдачі буде скинуто налаштування планшета й видалено всі його дані."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Кількість невдалих спроб розблокувати телефон: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Залишилося спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g> У разі невдачі буде скинуто налаштування телефона й видалено всі його дані."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Кількість невдалих спроб розблокувати планшет: <xliff:g id="NUMBER">%d</xliff:g>. Буде скинуто налаштування цього планшета й видалено всі його дані."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Кількість невдалих спроб розблокувати телефон: <xliff:g id="NUMBER">%d</xliff:g>. Буде скинуто налаштування цього телефона й видалено всі його дані."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Кількість невдалих спроб розблокувати планшет: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Залишилося спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g>. У разі невдачі буде видалено цього користувача й усі його дані."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Кількість невдалих спроб розблокувати телефон: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Залишилося спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g>. У разі невдачі буде видалено цього користувача й усі його дані."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Кількість невдалих спроб розблокувати планшет: <xliff:g id="NUMBER">%d</xliff:g>. Буде видалено цього користувача й усі його дані."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Кількість невдалих спроб розблокувати телефон: <xliff:g id="NUMBER">%d</xliff:g>. Буде видалено цього користувача й усі його дані."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Кількість невдалих спроб розблокувати планшет: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Залишилося спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g>. У разі невдачі буде видалено робочий профіль і всі його дані."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Кількість невдалих спроб розблокувати телефон: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Залишилося спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g>. У разі невдачі буде видалено робочий профіль і всі його дані."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Кількість невдалих спроб розблокувати планшет: <xliff:g id="NUMBER">%d</xliff:g>. Буде видалено робочий профіль і всі його дані."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Кількість невдалих спроб розблокувати телефон: <xliff:g id="NUMBER">%d</xliff:g>. Буде видалено робочий профіль і всі його дані."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Ключ розблокування неправильно намальовано стільки разів: <xliff:g id="NUMBER_0">%1$d</xliff:g>. У вас є ще стільки спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g>. У разі невдачі з’явиться запит розблокувати планшетний ПК за допомогою облікового запису електронної пошти.\n\n Повторіть спробу через <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ключ розблокування неправильно намальовано стільки разів: <xliff:g id="NUMBER_0">%1$d</xliff:g>. У вас є ще стільки спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g>. У разі невдачі з’явиться запит розблокувати телефон за допомогою облікового запису електронної пошти.\n\n Повторіть спробу через <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Неправильний PIN-код SIM-карти. Зв’яжіться зі своїм оператором, щоб розблокувати пристрій."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Неправильний PIN-код SIM-карти. У вас залишилась <xliff:g id="NUMBER_1">%d</xliff:g> спроба.</item>
-      <item quantity="few">Неправильний PIN-код SIM-карти. У вас залишилося <xliff:g id="NUMBER_1">%d</xliff:g> спроби.</item>
-      <item quantity="many">Неправильний PIN-код SIM-карти. У вас залишилося <xliff:g id="NUMBER_1">%d</xliff:g> спроб.</item>
-      <item quantity="other">Неправильний PIN-код SIM-карти. У вас залишилося <xliff:g id="NUMBER_1">%d</xliff:g> спроби.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM-карту заблоковано. Зв’яжіться з оператором."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Неправильний PUK-код SIM-карти. У вас залишилася <xliff:g id="NUMBER_1">%d</xliff:g> спроба. Після цього SIM-карту буде назавжди заблоковано.</item>
-      <item quantity="few">Неправильний PUK-код SIM-карти. У вас залишилося <xliff:g id="NUMBER_1">%d</xliff:g> спроби. Після цього SIM-карту буде назавжди заблоковано.</item>
-      <item quantity="many">Неправильний PUK-код SIM-карти. У вас залишилося <xliff:g id="NUMBER_1">%d</xliff:g> спроб. Після цього SIM-карту буде назавжди заблоковано.</item>
-      <item quantity="other">Неправильний PUK-код SIM-карти. У вас залишилося <xliff:g id="NUMBER_1">%d</xliff:g> спроби. Після цього SIM-карту буде назавжди заблоковано.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Помилка введення PIN-коду SIM-карти."</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Помилка введення PUK-коду SIM-карти."</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Код прийнято."</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Зв’язку немає."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Змінити метод введення"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Режим польоту"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Після перезавантаження пристрою потрібно ввести ключ"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Після перезавантаження пристрою потрібно ввести PIN-код"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Після перезавантаження пристрою потрібно ввести пароль"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Для додаткового захисту потрібно ввести ключ"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Для додаткового захисту потрібно ввести PIN-код"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Для додаткового захисту потрібно ввести пароль"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Під час переходу в інший профіль потрібно ввести ключ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Під час переходу в інший профіль потрібно ввести PIN-код"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Під час переходу в інший профіль потрібно ввести пароль"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Адміністратор заблокував пристрій"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Пристрій заблоковано вручну"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> годину. Підтвердьте ключ.</item>
-      <item quantity="few">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> години. Підтвердьте ключ.</item>
-      <item quantity="many">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> годин. Підтвердьте ключ.</item>
-      <item quantity="other">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> години. Підтвердьте ключ.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> годину. Підтвердьте PIN-код.</item>
-      <item quantity="few">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> години. Підтвердьте PIN-код.</item>
-      <item quantity="many">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> годин. Підтвердьте PIN-код.</item>
-      <item quantity="other">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> години. Підтвердьте PIN-код.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> годину. Підтвердьте пароль.</item>
-      <item quantity="few">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> години. Підтвердьте пароль.</item>
-      <item quantity="many">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> годин. Підтвердьте пароль.</item>
-      <item quantity="other">Ви не розблоковували пристрій <xliff:g id="NUMBER_1">%d</xliff:g> години. Підтвердьте пароль.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не розпізнано"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-ur/strings.xml b/packages/Keyguard/res/values-ur/strings.xml
deleted file mode 100644
index 1070d58..0000000
--- a/packages/Keyguard/res/values-ur/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"‏SIM PUK اور نیا PIN کوڈ ٹائپ کریں"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"‏SIM PUK کوڈ"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"‏نیا SIM PIN کوڈ"</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_wrong_pin_code" msgid="2422225591006134936">"‏غلط PIN کوڈ۔"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"چارج ہو گیا"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"چارج ہو رہی ہے"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"تیزی سے چارج ہو رہا ہے"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"آہستہ چارج ہو رہا ہے"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"اپنا چارجر مربوط کریں۔"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"غیر مقفل کرنے کیلئے مینو کو دبائیں۔"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"نیٹ ورک مقفل ہو گیا"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"‏کوئی SIM کارڈ نہیں ہے"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"‏ٹیبلیٹ میں کوئی SIM کارڈ نہیں ہے۔"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"‏فون میں کوئی SIM کارڈ نہيں ہے۔"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"‏ایک SIM کارڈ داخل کریں۔"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"‏SIM کارڈ غائب ہے یا پڑھنے لائق نہیں ہے۔ ایک SIM کارڈ داخل کریں۔"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"‏ناقابل استعمال SIM کارڈ۔"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"‏آپ کا SIM کارڈ مستقل طور پر غیر فعال کر دیا گیا ہے۔\n کسی دوسرے SIM کارڈ کیلئے اپنے وائرلیس سروس فراہم کنندہ سے رابطہ کریں۔"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"‏SIM کارڈ مقفل ہے۔"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏SIM کارڈ PUK-مقفل ہے۔"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"‏SIM کارڈ غیر مقفل کیا جا رہا ہے…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"‏PIN کا علاقہ"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"‏SIM PIN کا علاقہ"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏SIM PUK کا علاقہ"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"اگلا الارم <xliff:g id="ALARM">%1$s</xliff:g> کیلئے سیٹ ہے"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"حذف کریں"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"پیٹرن بھول گئے"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"غلط پیٹرن"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"غلط پاس ورڈ"</string>
-    <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_multi" msgid="7818515973197201434">"‏\"<xliff:g id="CARRIER">%1$s</xliff:g>\" کیلئے 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"‏SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\"‎ اب غیر فعال ہے۔ جاری رکھنے کیلئے PUK کوڈ درج کریں۔ تفصیلات کیلئے کیریئر سے رابطہ کریں۔"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"‏پسندیدہ PIN کوڈ درج کریں"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"‏پسندیدہ PIN کوڈ کی توثیق کریں"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"‏SIM کارڈ غیر مقفل کیا جا رہا ہے…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"‏ایسا PIN ٹائپ کریں جو 4 تا 8 نمبرز کا ہو۔"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"‏PUK کوڈ 8 یا زیادہ نمبرز کا ہونا چاہیے۔"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"‏آپ نے <xliff:g id="NUMBER_0">%1$d</xliff:g> بار اپنا PIN غلط طریقے سے ٹائپ کیا ہے۔ \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> سیکنڈ میں دوبارہ کوشش کریں۔"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"آپ نے اپنا پاس ورڈ <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے ٹائپ کیا ہے۔ \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> سیکنڈ میں دوبارہ کوشش کریں۔"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"آپ نے اپنا غیر مقفل کرنے کا پیٹرن <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے ڈرا کیا ہے۔ \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> سیکنڈ میں دوبارہ کوشش کریں۔"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"آپ نے ٹیبلیٹ کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، اس ٹیبلیٹ کو دوبارہ ترتیب دے دیا جائے گا، جس سے اس کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"آپ نے فون کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، اس فون کو دوبارہ ترتیب دے دیا جائے گا، جس سے اس کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"آپ نے ٹیبلیٹ کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER">%d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ اس ٹیبلیٹ کو دوبارہ ترتیب دے دیا جائے گا، جس سے اس کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"آپ نے فون کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER">%d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ اس فون کو دوبارہ ترتیب دے دیا جائے گا، جس سے اس کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"آپ نے ٹیبلیٹ کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، اس صارف کو ہٹا دیا جائے گا، جس سے صارف کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"آپ نے فون کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، اس صارف کو ہٹا دیا جائے گا، جس سے صارف کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"آپ نے ٹیبلیٹ کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER">%d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ اس صارف کو ہٹا دیا جائے گا، جس سے صارف کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"آپ نے فون کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER">%d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ اس صارف کو ہٹا دیا جائے گا، جس سے صارف کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"آپ نے ٹیبلیٹ کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، دفتری پروفائل ہٹا دیا جائے گا، جس سے پروفائل کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"آپ نے فون کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، دفتری پروفائل ہٹا دیا جائے گا، جس سے پروفائل کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"آپ نے ٹیبلیٹ کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER">%d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ دفتری پروفائل ہٹا دیا جائے گا، جس سے پروفائل کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"آپ نے فون کو غیر مقفل کرنے کیلئے <xliff:g id="NUMBER">%d</xliff:g> بار غلط طریقے سے کوشش کی ہے۔ دفتری پروفائل ہٹا دیا جائے گا، جس سے پروفائل کا سبھی ڈیٹا حذف ہو جائے گا۔"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"آپ نے اپنا غیر مقفل کرنے کا پیٹرن <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے ڈرا کیا ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، آپ سے ایک ای میل اکاؤنٹ استعمال کرکے اپنا ٹیبلیٹ غیر مقفل کرنے کو کہا جائے گا۔\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> سیکنڈ میں دوبارہ کوشش کریں۔"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"آپ نے اپنا غیر مقفل کرنے کا پیٹرن <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے ڈرا کیا ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، آپ سے ایک ای میل اکاؤنٹ استعمال کرکے اپنا فون غیر مقفل کرنے کو کہا جائے گا۔\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> سیکنڈ میں دوبارہ کوشش کریں۔"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"‏غلط SIM PIN کوڈ اب آپ کو اپنا آلہ غیر مقفل کرنے کیلئے لازمی طور پر اپنے کیریئر سے رابطہ کرنا چاہئے۔"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">‏غلط SIM PIN کوڈ، آپ کے پاس <xliff:g id="NUMBER_1">%d</xliff:g> کوششیں بچی ہیں۔</item>
-      <item quantity="one">‏غلط SIM PIN کوڈ، آپ کے پاس <xliff:g id="NUMBER_0">%d</xliff:g> کوشش بچی ہے، اس کے بعد آپ کو اپنا آلہ غیر مقفل کرنے کیلئے اپنے کریئر سے رابطہ کرنا ہوگا۔</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"‏SIM ناقابل استعمال ہے۔ اپنے کیریئر رابطہ کریں۔"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">‏غلط SIM PUK کوڈ، آپ کے پاس <xliff:g id="NUMBER_1">%d</xliff:g> کوششیں بچی ہیں، اس کے بعد SIM مستقل طور پر ناقابل استعمال ہو جائے گا۔</item>
-      <item quantity="one">‏SIM کا غلط PUK کوڈ، آپ ک پاس <xliff:g id="NUMBER_0">%d</xliff:g> کوشش بچی ہے، اس کے بعد SIM مستقل طور پر ناقابل استعمال ہو جائے گا۔</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"‏SIM PIN کارروائی ناکام ہو گئی!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"‏SIM PUK کارروائی ناکام ہو گئی!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"کوڈ قبول کر لیا گیا!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"کوئی سروس نہیں ہے۔"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"اندراج کا طریقہ سوئچ کریں"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"ہوائی جہاز وضع"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"آلہ دوبارہ چالو ہونے کے بعد پیٹرن درکار ہوتا ہے"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"‏آلہ دوبارہ چالو ہونے کے بعد PIN درکار ہوتا ہے"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"آلہ دوبارہ چالو ہونے کے بعد پاس ورڈ درکار ہوتا ہے"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"اضافی سیکیورٹی کیلئے پیٹرن درکار ہے"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"‏اضافی سیکیورٹی کیلئے PIN درکار ہے"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"اضافی سیکیورٹی کیلئے پاسورڈ درکار ہے"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"جب آپ پروفائل سوئچ کرتے ہیں تو پیٹرن درکار ہوتا ہے"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"‏جب آپ پروفائل سوئچ کرتے ہیں تو PIN درکار ہوتا ہے"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"جب آپ پروفائل سوئچ کرتے ہیں تو پاسورڈ درکار ہوتا ہے"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"آلہ کے منتظم نے آلہ مقفل کر دیا"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"آلہ کو دستی طور پر مقفل کیا گیا تھا"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">آلہ <xliff:g id="NUMBER_1">%d</xliff:g> گھنٹے سے غیر مقفل نہیں کیا گیا۔ پیٹرن کی تصدیق کریں۔</item>
-      <item quantity="one">آلہ <xliff:g id="NUMBER_0">%d</xliff:g> گھنٹے سے غیر مقفل نہیں کیا گیا۔ پیٹرن کی تصدیق کریں۔</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">‏آلہ <xliff:g id="NUMBER_1">%d</xliff:g> گھنٹے سے غیر مقفل نہیں کیا گیا۔ PIN کی تصدیق کریں۔</item>
-      <item quantity="one">‏آلہ <xliff:g id="NUMBER_0">%d</xliff:g> گھنٹے سے غیر مقفل نہیں کیا گیا۔ PIN کی تصدیق کریں۔</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">آلہ <xliff:g id="NUMBER_1">%d</xliff:g> گھنٹے سے غیر مقفل نہیں کیا گیا۔ پاسورڈ کی تصدیق کریں۔</item>
-      <item quantity="one">آلہ <xliff:g id="NUMBER_0">%d</xliff:g> گھنٹے سے غیر مقفل نہیں کیا گیا۔ پاسورڈ کی تصدیق کریں۔</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"تسلیم شدہ نہیں ہے"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-uz/strings.xml b/packages/Keyguard/res/values-uz/strings.xml
deleted file mode 100644
index a9df331..0000000
--- a/packages/Keyguard/res/values-uz/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PIN-kodni kiriting"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"SIM karta PUK kodi va yangi PIN kodni tering"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM karta PUK kodi"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Yangi SIM karta PIN kodi"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Parolni kiritish uchun bosing"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Qulfni ochish uchun parolni kiriting"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Qulfni ochish uchun PIN-kodni kiriting"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Noto‘g‘ri PIN-kod."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Batareya quvvati to‘ldi"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Quvvat olmoqda"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Tezkor quvvat olmoqda"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Sekin quvvat olmoqda"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Zaryadlagichni ulang."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Qulfni ochish uchun \"Menyu\"ga bosing."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Tarmoq qulflangan"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"SIM karta yo‘q"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"SIM karta yo‘q."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"SIM karta yo‘q."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Telefonga SIM kartani joylashtiring."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM karta qo‘yilmagan yoki o‘qib bo‘lmayapti. SIM kartani joylashtiring."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM kartadan foydalanib bo‘lmaydi."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"SIM kartangiz butunlay o‘chirilgan.\n Boshqa SIM karta olish uchun aloqa operatori bilan bog‘laning."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karta qulflangan."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karta PUK kod bilan qulflangan."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM karta qulfi ochilmoqda…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-kod maydoni"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM karta PIN kodi maydoni"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM karta PUK kodi maydoni"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Signal <xliff:g id="ALARM">%1$s</xliff:g> da chalinadi."</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"O‘chirish"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Kiritish"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Grafik kalit esimdan chiqdi"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Grafik kalit noto‘g‘ri"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Parol noto‘g‘ri"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN-kod noto‘g‘ri"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"<xliff:g id="NUMBER">%d</xliff:g> soniyadan so‘ng qayta urinib ko‘ring."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Chizmali parolni chizing"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM kartaning PIN kodini kiriting"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"“<xliff:g id="CARRIER">%1$s</xliff:g>” SIM kartasi uchun PIN kodni kiriting"</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"PIN kodni tering"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Parol kiriting"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM karta hozir o‘chirilgan. Davom etish uchun PUK kodni kiriting. To‘liqroq ma’lumot olish uchun tarmoq operatori bilan bog‘laning."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"“<xliff:g id="CARRIER">%1$s</xliff:g>” SIM kartasi o‘chirib qo‘yildi. Davom etish uchun PUK kodni kiriting. Tafsilotlar uchun aloqa operatoringizga murojaat qiling."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"So‘ralgan PIN kodni kiriting"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"So‘ralgan PIN kodni tasdiqlang"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM karta qulfi ochilmoqda…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4 tadan 8 ta raqamgacha bo‘lgan PIN kodni kiriting."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kod kamida 8 ta raqam bo‘lishi shart."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"To‘g‘ri PUK kodni qayta kiriting. Qayta-qayta urinishlar SIM kartani butunlay o‘chirib qo‘yadi."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-kod mos kelmadi"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Grafik kalit juda ko‘p marta chizildi"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Siz PIN-kodni <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri kiritdingiz. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> soniyadan so‘ng qayta urinib ko‘ring."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Siz parolni <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri kiritdingiz. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> soniyadan so‘ng qayta urinib ko‘ring."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Siz grafik kalitni <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri kiritdingiz. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> soniyadan so‘ng qayta urinib ko‘ring."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Siz planshetni qulfdan chiqarish uchun <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri urinish qildingiz. Agar yana <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinish qilsangiz, ushbu planshetda zavod sozlamalari qayta tiklanadi va undagi barcha ma’lumotlar ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Siz telefonni qulfdan chiqarish uchun <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri urinish qildingiz. Agar yana <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinish qilsangiz, ushbu telefonda zavod sozlamalari qayta tiklanadi va undagi barcha ma’lumotlar ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Siz planshetni qulfdan chiqarish uchun <xliff:g id="NUMBER">%d</xliff:g> marta noto‘g‘ri urinish qildingiz. Endi, ushbu planshetda zavod sozlamalari qayta tiklanadi va undagi barcha ma’lumotlar ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Siz telefonni qulfdan chiqarish uchun <xliff:g id="NUMBER">%d</xliff:g> marta noto‘g‘ri urinish qildingiz. Endi, ushbu telefonda zavod sozlamalari qayta tiklanadi va undagi barcha ma’lumotlar ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Siz planshetni qulfdan chiqarish uchun <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri urinish qildingiz. Agar yana <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinish qilsangiz, ushbu foydalanuvchi o‘chirib tashlanadi va undagi barcha foydalanuvchi ma’lumotlari ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Siz telefonni qulfdan chiqarish uchun <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri urinish qildingiz. Agar yana <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinish qilsangiz, ushbu foydalanuvchi o‘chirib tashlanadi va undagi barcha foydalanuvchi ma’lumotlari ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Siz planshetni qulfdan chiqarish uchun <xliff:g id="NUMBER">%d</xliff:g> marta noto‘g‘ri urinish qildingiz. Endi, ushbu foydalanuvchi o‘chirib tashlanadi va undagi barcha foydalanuvchi ma’lumotlari ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Siz telefonni qulfdan chiqarish uchun <xliff:g id="NUMBER">%d</xliff:g> marta noto‘g‘ri urinish qildingiz. Endi, ushbu foydalanuvchi o‘chirib tashlanadi va undagi barcha foydalanuvchi ma’lumotlari ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Siz planshetni qulfdan chiqarish uchun <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri urinish qildingiz. Agar yana <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinish qilsangiz, ishchi profil o‘chirib tashlanadi va undagi barcha profil ma’lumotlari ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Siz telefonni qulfdan chiqarish uchun <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri urinish qildingiz. Agar yana <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinish qilsangiz, ishchi profil o‘chirib tashlanadi va undagi barcha profil ma’lumotlari ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Siz planshetni qulfdan chiqarish uchun <xliff:g id="NUMBER">%d</xliff:g> marta noto‘g‘ri urinish qildingiz. Endi, ishchi profil o‘chirib tashlanadi va undagi barcha ma’lumotlar ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Siz telefonni qulfdan chiqarish uchun <xliff:g id="NUMBER">%d</xliff:g> marta noto‘g‘ri urinish qildingiz. Endi, ishchi profil o‘chirib tashlanadi va undagi barcha ma’lumotlar ham o‘chib ketadi."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Siz grafik kalitni  <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri kiritdingiz. <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinishdan so‘ng, sizdan e-pochtangizdan foydalanib, planshet qulfini ochishingiz so‘raladi.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> soniyadan so‘ng yana urinib ko‘ring."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Siz grafik kalitni <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri chizdingiz. <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinishdan so‘ng, sizdan e-pochtangizdan foydalanib, telefon qulfini ochishingiz so‘raladi.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> soniyadan so‘ng yana urinib ko‘ring."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM karta PIN kodi noto‘g‘ri. Qurilma qulfini ochish uchun aloqa operatoringiz bilan bog‘laning."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM kartaning PIN kodi noto‘g‘ri. Sizda yana <xliff:g id="NUMBER_1">%d</xliff:g> ta urinish qoldi.</item>
-      <item quantity="one">SIM kartaning PIN kodi noto‘g‘ri. Qurilmani qulfdan chiqarish uchun sizda yana <xliff:g id="NUMBER_0">%d</xliff:g> ta urinish qoldi.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM kartadan foydalanib bo‘lmaydi. Aloqa operatoringiz bilan bog‘laning."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM kartaning PUK kodi noto‘g‘ri kiritildi. Yana <xliff:g id="NUMBER_1">%d</xliff:g> ta muvaffaqiyatsiz urinishdan so‘ng SIM karta butunlay ishdan chiqadi.</item>
-      <item quantity="one">SIM kartaning PUK kodi noto‘g‘ri kiritildi. Yana <xliff:g id="NUMBER_0">%d</xliff:g> ta muvaffaqiyatsiz urinishdan so‘ng SIM karta butunlay ishdan chiqadi.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM karta PIN jarayoni amalga oshmadi!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM karta PUK jarayoni amalga oshmadi!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Kod qabul qilindi!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Aloqa yo‘q."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Matn kiritish usulini o‘zgartirish"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Parvoz rejimi"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Qurilma o‘chirib yoqilgandan so‘ng grafik kalit talab qilinadi"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Qurilma o‘chirib yoqilgandan so‘ng PIN kod talab qilinadi"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Qurilma o‘chirib yoqilgandan so‘ng parol talab qilinadi"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Qo‘shimcha xavfsizlik chorasi sifatida grafik kalit talab qilinadi"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Qo‘shimcha xavfsizlik chorasi sifatida PIN kod talab qilinadi"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Qo‘shimcha xavfsizlik chorasi sifatida parol talab qilinadi"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Profilni amlashtirishda grafik kalit talab qilinadi"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Profilni amlashtirishda PIN kod talab qilinadi"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Profilni amlashtirishda parol talab qilinadi"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Qurilma administrator tomonidan qulflangan"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Qurilma qo‘lda qulflangan"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Qurilma <xliff:g id="NUMBER_1">%d</xliff:g> soatdan beri qulfdan chiqarilgani yo‘q. Grafik kalitni yana bir marta chizing.</item>
-      <item quantity="one">Qurilma <xliff:g id="NUMBER_0">%d</xliff:g> soatdan beri qulfdan chiqarilgani yo‘q. Grafik kalitni yana bir marta chizing.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Qurilma <xliff:g id="NUMBER_1">%d</xliff:g> soatdan beri qulfdan chiqarilgani yo‘q. PIN-kodni yana bir marta kiriting.</item>
-      <item quantity="one">Qurilma <xliff:g id="NUMBER_0">%d</xliff:g> soatdan beri qulfdan chiqarilgani yo‘q. PIN-kodni yana bir marta kiriting.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Qurilma <xliff:g id="NUMBER_1">%d</xliff:g> soatdan beri qulfdan chiqarilgani yo‘q. Parolni yana bir marta kiriting.</item>
-      <item quantity="one">Qurilma <xliff:g id="NUMBER_0">%d</xliff:g> soatdan beri qulfdan chiqarilgani yo‘q. Parolni yana bir marta kiriting.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Aniqlanmadi"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-vi/strings.xml b/packages/Keyguard/res/values-vi/strings.xml
deleted file mode 100644
index c6d2bd8..0000000
--- a/packages/Keyguard/res/values-vi/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Khóa bàn phím"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Nhập mã PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Nhập mã PIN mới và mã PUK của SIM"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Mã PUK của SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Mã PIN mới của SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Chạm để nhập mật khẩu"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Nhập mật khẩu để mở khóa"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Nhập mã PIN để mở khóa"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Mã PIN không chính xác."</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Đã sạc đầy"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Đang sạc"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Đang sạc nhanh"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Đang sạc chậm"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Kết nối bộ sạc của bạn."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Nhấn vào Menu để mở khóa."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Mạng đã bị khóa"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Không có thẻ SIM nào"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Không có thẻ SIM nào trong máy tính bảng."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Không có thẻ SIM nào trong điện thoại."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Vui lòng lắp thẻ SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Thẻ SIM bị thiếu hoặc không thể đọc được. Vui lòng lắp thẻ SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Thẻ SIM không sử dụng được."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"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="keyguard_sim_locked_message" msgid="6875773413306380902">"Thẻ SIM đã bị khóa."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Thẻ SIM đã bị khóa PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Đang mở khóa thẻ SIM…"</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Khu vực mã PIN"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Khu vực mã PIN của SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Khu vực PUK của SIM"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Báo thức tiếp theo được đặt cho <xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Xóa"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Đã quên hình"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Hình sai"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Mật khẩu sai"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN sai"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Hãy thử lại sau <xliff:g id="NUMBER">%d</xliff:g> giây."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Vẽ hình của bạn"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Nhập PIN của SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Nhập mã PIN của SIM dành cho \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Nhập PIN"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Nhập mật khẩu"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM hiện bị vô hiệu hóa. Nhập mã PUK để tiếp tục. Liên hệ với nhà cung cấp dịch vụ để biết chi tiết."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"Hiện tại, SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" đang tắt. Hãy nhập mã PUK để tiếp tục. Liên hệ với nhà cung cấp dịch vụ để biết chi tiết."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Nhập mã PIN mong muốn"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Xác nhận mã PIN mong muốn"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Đang mở khóa thẻ SIM…"</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Nhập mã PIN có từ 4 đến 8 số."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Mã PUK phải có từ 8 số trở lên."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Hãy nhập lại mã PUK chính xác. Nhiều lần lặp lại sẽ vô hiệu hóa vĩnh viễn thẻ SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Mã PIN không khớp"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Quá nhiều lần nhập hình"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Bạn đã <xliff:g id="NUMBER_0">%1$d</xliff:g> lần nhập sai mã PIN. \n\nHãy thử lại sau <xliff:g id="NUMBER_1">%2$d</xliff:g> giây."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Bạn đã <xliff:g id="NUMBER_0">%1$d</xliff:g> lần nhập sai mật khẩu. \n\nHãy thử lại sau <xliff:g id="NUMBER_1">%2$d</xliff:g> giây."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Bạn đã <xliff:g id="NUMBER_0">%1$d</xliff:g> lần vẽ không chính xác hình mở khóa. \n\nHãy thử lại sau <xliff:g id="NUMBER_1">%2$d</xliff:g> giây."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Bạn đã mở khóa máy tính bảng sai <xliff:g id="NUMBER_0">%1$d</xliff:g> lần. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần mở khóa không thành công nữa, máy tính bảng này sẽ được đặt lại, tức là tất cả dữ liệu của máy tính bảng sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Bạn đã mở khóa điện thoại sai <xliff:g id="NUMBER_0">%1$d</xliff:g> lần. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần mở khóa không thành công nữa, điện thoại này sẽ được đặt lại, tức là tất cả dữ liệu của điện thoại sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Bạn đã mở khóa máy tính bảng sai <xliff:g id="NUMBER">%d</xliff:g> lần. Máy tính bảng này sẽ được đặt lại, tức là tất cả dữ liệu của máy tính bảng sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Bạn đã mở khóa điện thoại sai <xliff:g id="NUMBER">%d</xliff:g> lần. Điện thoại này sẽ được đặt lại, tức là tất cả dữ liệu của điện thoại sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Bạn đã mở khóa máy tính bảng sai <xliff:g id="NUMBER_0">%1$d</xliff:g> lần. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần mở khóa không thành công nữa, người dùng này sẽ bị xóa, tức là tất cả dữ liệu người dùng sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Bạn đã mở khóa điện thoại sai <xliff:g id="NUMBER_0">%1$d</xliff:g> lần. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần mở khóa không thành công nữa, người dùng này sẽ bị xóa, tức là tất cả dữ liệu người dùng sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Bạn đã mở khóa máy tính bảng sai <xliff:g id="NUMBER">%d</xliff:g> lần. Người dùng này sẽ bị xóa, tức là tất cả dữ liệu người dùng sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Bạn đã mở khóa điện thoại sai <xliff:g id="NUMBER">%d</xliff:g> lần. Người dùng này sẽ bị xóa, tức là tất cả dữ liệu người dùng sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Bạn đã mở khóa máy tính bảng sai <xliff:g id="NUMBER_0">%1$d</xliff:g> lần. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần mở khóa không thành công nữa, hồ sơ công việc sẽ bị xóa, tức là tất cả dữ liệu hồ sơ sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Bạn đã mở khóa điện thoại sai <xliff:g id="NUMBER_0">%1$d</xliff:g> lần. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần mở khóa không thành công nữa, hồ sơ công việc sẽ bị xóa, tức là tất cả dữ liệu hồ sơ sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Bạn đã mở khóa máy tính bảng sai <xliff:g id="NUMBER">%d</xliff:g> lần. Hồ sơ công việc sẽ bị xóa, tức là tất cả dữ liệu hồ sơ sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Bạn đã mở khóa điện thoại sai <xliff:g id="NUMBER">%d</xliff:g> lần. Hồ sơ công việc sẽ bị xóa, tức là tất cả dữ liệu hồ sơ sẽ bị xóa."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Bạn đã <xliff:g id="NUMBER_0">%1$d</xliff:g> lần vẽ không chính xác hình mở khóa của mình. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần thử không thành công nữa, bạn sẽ được yêu cầu mở khóa máy tính bảng bằng tài khoản email.\n\n Vui lòng thử lại sau <xliff:g id="NUMBER_2">%3$d</xliff:g> giây."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Bạn đã <xliff:g id="NUMBER_0">%1$d</xliff:g> lần vẽ không chính xác hình mở khóa của mình. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần thử không thành công nữa, bạn sẽ được yêu cầu mở khóa điện thoại bằng tài khoản email.\n\n Vui lòng thử lại sau <xliff:g id="NUMBER_2">%3$d</xliff:g> giây."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Mã PIN của SIM không chính xác, bây giờ bạn phải liên hệ với nhà cung cấp dịch vụ để mở khóa thiết bị của bạn."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">Mã PIN của SIM không chính xác, bạn còn  <xliff:g id="NUMBER_1">%d</xliff:g> lần thử.</item>
-      <item quantity="one">Mã PIN của SIM không chính xác, bạn còn  <xliff:g id="NUMBER_0">%d</xliff:g> lần thử trước khi bạn phải liên hệ với nhà cung cấp dịch vụ để mở khóa thiết bị của mình.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM không thể sử dụng được. Liên hệ với nhà cung cấp dịch vụ của bạn."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">Mã PUK của SIM không chính xác, bạn còn  <xliff:g id="NUMBER_1">%d</xliff:g> lần thử trước khi SIM vĩnh viễn không sử dụng được.</item>
-      <item quantity="one">Mã PUK của SIM không chính xác, bạn còn  <xliff:g id="NUMBER_0">%d</xliff:g> lần thử trước khi SIM vĩnh viễn không thể sử dụng được.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Thao tác mã PIN của SIM không thành công!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Thao tác mã PUK của SIM không thành công!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Mã được chấp nhận!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Không có dịch vụ."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Chuyển phương thức nhập"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Chế độ trên máy bay"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Yêu cầu hình mở khóa sau khi thiết bị khởi động lại"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Yêu cầu mã PIN sau khi thiết bị khởi động lại"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Yêu cầu mật khẩu sau khi thiết bị khởi động lại"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Cần có hình mở khóa để bảo mật thêm"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Cần có mã PIN để bảo mật thêm"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Cần có mật khẩu để bảo mật thêm"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Yêu cầu hình mở khóa khi bạn chuyển đổi hồ sơ"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Yêu cầu mã PIN khi bạn chuyển đổi hồ sơ"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Yêu cầu mật khẩu khi bạn chuyển đổi hồ sơ"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Quản trị viên thiết bị đã khóa thiết bị"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Thiết bị đã bị khóa theo cách thủ công"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">Thiết bị đã không được mở khóa trong <xliff:g id="NUMBER_1">%d</xliff:g> giờ. Xác nhận hình.</item>
-      <item quantity="one">Thiết bị đã không được mở khóa trong <xliff:g id="NUMBER_0">%d</xliff:g> giờ. Xác nhận hình.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">Thiết bị đã không được mở khóa trong <xliff:g id="NUMBER_1">%d</xliff:g> giờ. Xác nhận mã PIN.</item>
-      <item quantity="one">Thiết bị đã không được mở khóa trong <xliff:g id="NUMBER_0">%d</xliff:g> giờ. Xác nhận mã PIN.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">Thiết bị đã không được mở khóa trong <xliff:g id="NUMBER_1">%d</xliff:g> giờ. Xác nhận mật khẩu.</item>
-      <item quantity="one">Thiết bị đã không được mở khóa trong <xliff:g id="NUMBER_0">%d</xliff:g> giờ. Xác nhận mật khẩu.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Không nhận dạng được"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-zh-rCN/strings.xml b/packages/Keyguard/res/values-zh-rCN/strings.xml
deleted file mode 100644
index e15950f..0000000
--- a/packages/Keyguard/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Keyguard"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"输入PIN码"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"请输入SIM卡PUK码和新的PIN码"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM卡PUK码"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"新SIM卡PIN码"</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_wrong_pin_code" msgid="2422225591006134936">"PIN码有误。"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"已充满"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"正在充电"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"正在快速充电"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"正在慢速充电"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"请连接充电器。"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"按“菜单”键解锁。"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"网络已锁定"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"没有 SIM 卡"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"平板电脑中没有SIM卡。"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"手机中没有SIM卡。"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"请插入SIM卡。"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"SIM卡缺失或无法读取,请插入SIM卡。"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM卡无法使用。"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"您的SIM卡已永久停用。\n请与您的无线服务提供商联系,以便重新获取一张SIM卡。"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM卡已被锁定。"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM卡已被PUK码锁定。"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"正在解锁SIM卡..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 码区域"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM 卡 PIN 码区域"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM 卡 PUK 码区域"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"下次闹钟时间已设置为<xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘记了图案"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"图案错误"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"密码错误"</string>
-    <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_multi" msgid="7818515973197201434">"输入“<xliff:g id="CARRIER">%1$s</xliff:g>”的 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM 卡“<xliff:g id="CARRIER">%1$s</xliff:g>”现已停用,需要输入 PUK 码才能继续使用。要了解详情,请联系您的运营商。"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"请输入所需的PIN码"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"请确认所需的PIN码"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"正在解锁SIM卡..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"请输入4至8位数的PIN码。"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK码应至少包含8位数字。"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"您已经<xliff:g id="NUMBER_0">%1$d</xliff:g>次输错了PIN码。\n\n请在<xliff:g id="NUMBER_1">%2$d</xliff:g>秒后重试。"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"您已连续 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次输错密码。\n\n请在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒后重试。"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"您已连续 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次画错解锁图案。\n\n请在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒后重试。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"您已经 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次错误地尝试解锁平板电脑。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,平板电脑将会被重置,这会删除其中的所有数据。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"您已经 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次错误地尝试解锁手机。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,手机将会被重置,这会删除其中的所有数据。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"您已经 <xliff:g id="NUMBER">%d</xliff:g> 次错误地尝试解锁平板电脑。平板电脑将会被重置,这会删除其中的所有数据。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"您已经 <xliff:g id="NUMBER">%d</xliff:g> 次错误地尝试解锁手机。手机将会被重置,这会删除其中的所有数据。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"您已经 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次错误地尝试解锁平板电脑。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,系统将移除此用户,这会删除所有的用户数据。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"您已经 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次错误地尝试解锁手机。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,系统将移除此用户,这会删除所有的用户数据。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"您已经 <xliff:g id="NUMBER">%d</xliff:g> 次错误地尝试解锁平板电脑。系统将移除此用户,这会删除所有的用户数据。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"您已经 <xliff:g id="NUMBER">%d</xliff:g> 次错误地尝试解锁手机。系统将移除此用户,这会删除所有的用户数据。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"您已经 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次错误地尝试解锁平板电脑。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,系统将移除此工作资料,这会删除所有的工作资料数据。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"您已经 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次错误地尝试解锁手机。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,系统将移除此工作资料,这会删除所有的工作资料数据。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"您已经 <xliff:g id="NUMBER">%d</xliff:g> 次错误地尝试解锁平板电脑。系统将移除此工作资料,这会删除所有的工作资料数据。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"您已经 <xliff:g id="NUMBER">%d</xliff:g> 次错误地尝试解锁手机。系统将移除此工作资料,这会删除所有的工作资料数据。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"您已连续 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次画错解锁图案。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,系统就会要求您使用自己的电子邮件帐号解锁平板电脑。\n\n请在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒后重试。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"您已连续 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次画错解锁图案。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,系统就会要求您使用自己的电子邮件帐号解锁手机。\n\n请在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒后重试。"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM卡PIN码不正确,您现在必须联系运营商为您解锁设备。"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM 卡 PIN 码不正确,您还可尝试 <xliff:g id="NUMBER_1">%d</xliff:g> 次。</item>
-      <item quantity="one">SIM 卡 PIN 码不正确,您还可尝试 <xliff:g id="NUMBER_0">%d</xliff:g> 次。如果仍不正确,则需要联系运营商帮您解锁设备。</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM卡无法使用,请与您的运营商联系。"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM 卡 PUK 码不正确,您还可尝试 <xliff:g id="NUMBER_1">%d</xliff:g> 次。如果仍不正确,SIM 卡将永远无法使用。</item>
-      <item quantity="one">SIM 卡 PUK 码不正确,您还可尝试 <xliff:g id="NUMBER_0">%d</xliff:g> 次。如果仍不正确,SIM 卡将永远无法使用。</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM卡PIN码操作失败!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM卡PUK码操作失败!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"代码正确!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"无服务。"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"切换输入法"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"飞行模式"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"重启设备后需要绘制解锁图案"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"重启设备后需要输入 PIN 码"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"重启设备后需要输入密码"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"需要绘制解锁图案以进一步确保安全"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"需要输入 PIN 码以进一步确保安全"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"需要输入密码以进一步确保安全"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"切换资料后需要绘制解锁图案"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"切换资料后需要输入 PIN 码"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"切换资料后需要输入密码"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"设备管理员已锁定此设备"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"此设备已手动锁定"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">设备已保持锁定状态达 <xliff:g id="NUMBER_1">%d</xliff:g> 小时。请确认解锁图案。</item>
-      <item quantity="one">设备已保持锁定状态达 <xliff:g id="NUMBER_0">%d</xliff:g> 小时。请确认解锁图案。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">设备已保持锁定状态达 <xliff:g id="NUMBER_1">%d</xliff:g> 小时。请确认 PIN 码。</item>
-      <item quantity="one">设备已保持锁定状态达 <xliff:g id="NUMBER_0">%d</xliff:g> 小时。请确认 PIN 码。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">设备已保持锁定状态达 <xliff:g id="NUMBER_1">%d</xliff:g> 小时。请确认密码。</item>
-      <item quantity="one">设备已保持锁定状态达 <xliff:g id="NUMBER_0">%d</xliff:g> 小时。请确认密码。</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"无法识别"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-zh-rHK/strings.xml b/packages/Keyguard/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 5b1903b..0000000
--- a/packages/Keyguard/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"請輸入 SIM PUK 碼和新 PIN 碼"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM PUK 碼"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"新 SIM PIN 碼"</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_wrong_pin_code" msgid="2422225591006134936">"PIN 碼不正確。"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"充電完成"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"充電中"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"正在快速充電"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"正在慢速充電"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"請連接充電器。"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"按選單鍵解鎖。"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"網絡已鎖定"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"找不到 SIM 卡"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"平板電腦中沒有 SIM 卡。"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"手機中沒有 SIM 卡。"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"請插入 SIM 卡。"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"找不到 SIM 卡或無法讀取 SIM 卡,請插入 SIM 卡。"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM 卡無法使用。"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"您的 SIM 卡已被永久停用。\n請與您的無線服務供應商聯絡,以取得另一張 SIM 卡。"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM 卡處於鎖定狀態。"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM 卡處於 PUK 鎖定狀態。"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"正在解開上鎖的 SIM 卡..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 區域"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN 區域"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK 區域"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"已設定下一個鬧鐘時間:<xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"刪除"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 鍵"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖案"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"圖形不對"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"密碼錯誤"</string>
-    <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_multi" msgid="7818515973197201434">"輸入「<xliff:g id="CARRIER">%1$s</xliff:g>」的 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM「<xliff:g id="CARRIER">%1$s</xliff:g>」目前被停用。輸入 PUK 碼以繼續。要瞭解詳情,請聯絡流動網絡供應商。"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"輸入所需的 PIN 碼"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"確認所需的 PIN 碼"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"正在解開上鎖的 SIM 卡..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"請輸入一個 4 至 8 位數的 PIN 碼。"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK 碼應由 8 個或以上數字組成。"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"您已輸入錯誤的 PIN 碼 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次。\n\n請在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"您已輸入錯誤的密碼 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次。\n\n請在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"您已畫錯解鎖圖案 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次。\n\n請在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"您已 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次錯誤解鎖平板電腦。如再解鎖失敗 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次,平板電腦將被重設,平板電腦的所有資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"您已 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次錯誤解鎖手機。如再解鎖失敗 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次,手機將被重設,手機的所有資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"您已 <xliff:g id="NUMBER">%d</xliff:g> 次錯誤解鎖手機。平板電腦將被重設,平板電腦的所有資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"您已 <xliff:g id="NUMBER">%d</xliff:g> 次錯誤解鎖手機。手機將被重設,手機的所有資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"您已 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次錯誤解鎖平板電腦。如再解鎖失敗 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次,該使用者將被移除,所有使用者資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"您已 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次錯誤解鎖手機。如再解鎖失敗 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次,該使用者將被移除,所有使用者資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"您已 <xliff:g id="NUMBER">%d</xliff:g> 次錯誤解鎖平板電腦。該使用者將被移除,所有使用者資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"您已 <xliff:g id="NUMBER">%d</xliff:g> 次錯誤解鎖手機。該使用者將被移除,所有使用者資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"您已 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次錯誤解鎖平板電腦。如再解鎖失敗 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次,該工作設定檔將被移除,所有設定檔資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"您已 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次錯誤解鎖手機。如再解鎖失敗 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次,該工作設定檔將被移除,所有設定檔資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"您已 <xliff:g id="NUMBER">%d</xliff:g> 次錯誤解鎖平板電腦。該工作設定檔將被移除,所有設定檔資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"您已 <xliff:g id="NUMBER">%d</xliff:g> 次錯誤解鎖手機。該工作設定檔將被移除,所有設定檔資料將因此被刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"您已畫錯解鎖圖案 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次仍未成功,系統會要求您透過電郵帳戶解開上鎖的平板電腦。\n\n請在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"您已畫錯解鎖圖案 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次仍未成功,系統會要求您透過電郵帳戶解開上鎖的手機。\n\n請在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM PIN 碼不正確,您現在必須聯絡流動網絡供應商為您的裝置解鎖。"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM PIN 碼不正確,您還有 <xliff:g id="NUMBER_1">%d</xliff:g> 次機會輸入。</item>
-      <item quantity="one">SIM PIN 碼不正確,您還有 <xliff:g id="NUMBER_0">%d</xliff:g> 次機會輸入。如果仍然輸入錯誤,您必須聯絡流動網絡供應商為您的裝置解鎖。</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM 無法使用,請聯絡您的流動網絡供應商。"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM PUK 碼不正確,您還有 <xliff:g id="NUMBER_1">%d</xliff:g> 次機會輸入。如果仍然輸入錯誤,SIM 卡將永久無法使用。</item>
-      <item quantity="one">SIM PUK 碼不正確,您還有 <xliff:g id="NUMBER_0">%d</xliff:g> 次機會輸入。如果仍然輸入錯誤,SIM 卡將永久無法使用。</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM PIN 碼操作失敗!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM PUK 碼操作失敗!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"密碼正確!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"沒有服務。"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"切換輸入法"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"飛航模式"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"裝置重新啟動後,請輸入上鎖圖形"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"裝置重新啟動後,需要輸入 PIN 才能使用"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"裝置重新啟動後,需要輸入密碼才能使用"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"輸入上鎖圖形以增強安全性"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"請先輸入 PIN,才能提高安全性"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"請先輸入密碼,才能提高安全性"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"切換設定檔前,請先輸入上鎖圖形"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"請先輸入 PIN,才能切換設定檔"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"請先輸入密碼,才能切換設定檔"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"裝置管理員已鎖定裝置"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"已手動鎖定裝置"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">裝置在 <xliff:g id="NUMBER_1">%d</xliff:g> 小時後尚未解鎖,請確認圖案。</item>
-      <item quantity="one">裝置在 <xliff:g id="NUMBER_0">%d</xliff:g> 小時後尚未解鎖,請確認圖案。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">裝置在 <xliff:g id="NUMBER_1">%d</xliff:g> 小時後尚未解鎖,請確認 PIN。</item>
-      <item quantity="one">裝置在 <xliff:g id="NUMBER_0">%d</xliff:g> 小時後尚未解鎖,請確認 PIN。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">裝置在 <xliff:g id="NUMBER_1">%d</xliff:g> 小時後尚未解鎖,請確認密碼。</item>
-      <item quantity="one">裝置在 <xliff:g id="NUMBER_0">%d</xliff:g> 小時後尚未解鎖,請確認密碼。</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"未能辨別"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-zh-rTW/strings.xml b/packages/Keyguard/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 388f8e1..0000000
--- a/packages/Keyguard/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    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="keyguard_password_enter_puk_code" msgid="3035856550289724338">"輸入 SIM 卡 PUK 碼和新 PIN 碼"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"SIM 卡 PUK 碼"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"新增 SIM 卡 PIN 碼"</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_wrong_pin_code" msgid="2422225591006134936">"PIN 碼不正確。"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"充電完成"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"充電中"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"快速充電中"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"慢速充電中"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"連接充電器。"</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"按選單鍵解鎖。"</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"網路已鎖定"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"找不到 SIM 卡"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"平板電腦中沒有 SIM 卡。"</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"手機中沒有 SIM 卡。"</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"插入 SIM 卡。"</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"找不到或無法讀取 SIM 卡。請插入 SIM 卡。"</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"SIM 卡無法使用。"</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"您的 SIM 卡已遭永久停用。\n請與您的無線網路服務供應商聯絡,以取得別張 SIM 卡。"</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM 卡處於鎖定狀態。"</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM 卡處於 PUK 鎖定狀態"</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"正在解除 SIM 卡鎖定..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 區"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM 卡 PIN 區"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM 卡 PUK 區"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"已設定下一個鬧鐘時間:<xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete 鍵"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 鍵"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖案"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"圖案錯誤"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"密碼錯誤"</string>
-    <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_multi" msgid="7818515973197201434">"輸入「<xliff:g id="CARRIER">%1$s</xliff:g>」的 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>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"SIM 卡「<xliff:g id="CARRIER">%1$s</xliff:g>」現已遭到停用,輸入 PUK 碼即可繼續使用。如需瞭解詳情,請與行動通訊業者聯絡。"</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"輸入所需的 PIN 碼"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"確認所需的 PIN 碼"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"正在解除 SIM 卡鎖定..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"請輸入 4 到 8 碼的 PIN。"</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK 碼至少必須為 8 碼。"</string>
-    <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_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"您的 PIN 已輸錯 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次。\n\n請在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"您的密碼已輸錯 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次。\n\n請在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"您的解鎖圖案已畫錯 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次。\n\n請在 <xliff:g id="NUMBER_1">%2$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"您嘗試解鎖平板電腦已失敗 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,目前還剩 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次機會。如果失敗次數超過限制,這台平板電腦將會重設,其中的所有資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"您嘗試解鎖手機已失敗 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,目前還剩 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次機會。如果失敗次數超過限制,系統會重設您的手機,其中的所有資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"您嘗試解鎖平板電腦已失敗 <xliff:g id="NUMBER">%d</xliff:g> 次。這台平板電腦將會重設,其中的所有資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"您嘗試解鎖手機已失敗 <xliff:g id="NUMBER">%d</xliff:g> 次。系統會重設您的手機,其中的所有資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"您嘗試解鎖平板電腦已失敗 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,目前還剩 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次機會。如果失敗次數超過限制,這位使用者將遭到移除,對方的所有使用者資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"您嘗試解鎖手機已失敗 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,目前還剩 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次機會。如果失敗次數超過限制,這位使用者將遭到移除,對方的所有使用者資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"您嘗試解鎖平板電腦已失敗 <xliff:g id="NUMBER">%d</xliff:g> 次。這位使用者將遭到移除,對方的所有使用者資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"您嘗試解鎖手機已失敗 <xliff:g id="NUMBER">%d</xliff:g> 次。這位使用者將遭到移除,對方的所有使用者資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"您嘗試解鎖平板電腦已失敗 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,目前還剩 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次機會。如果失敗次數超過限制,您的 Work 設定檔將遭到移除,所有設定檔資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"您嘗試解鎖手機已失敗 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,目前還剩 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次機會。如果失敗次數超過限制,您的 Work 設定檔將遭到移除,所有設定檔資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"您嘗試解鎖平板電腦已失敗 <xliff:g id="NUMBER">%d</xliff:g> 次。您的 Work 設定檔將遭到移除,所有設定檔資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"您嘗試解鎖手機已失敗 <xliff:g id="NUMBER">%d</xliff:g> 次。您的 Work 設定檔將遭到移除,所有設定檔資料也會一併遭到刪除。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"您的解鎖圖案已畫錯 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次仍未成功,系統就會要求您透過電子郵件帳戶解除平板電腦的鎖定狀態。\n\n請在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"您的解鎖圖案已畫錯 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次仍未成功,系統就會要求您透過電子郵件帳戶解除手機的鎖定狀態。\n\n請在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒後再試一次。"</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"SIM 卡的 PIN 碼輸入錯誤,您現在必須請行動通訊業者為裝置解鎖。"</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="other">SIM 卡的 PIN 碼輸入錯誤,您還可以再試 <xliff:g id="NUMBER_1">%d</xliff:g> 次。</item>
-      <item quantity="one">SIM 卡的 PIN 碼輸入錯誤,您還可以再試 <xliff:g id="NUMBER_0">%d</xliff:g> 次。如果仍然失敗,就必須請行動通訊業者為裝置解鎖。</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"SIM 卡無法使用,請與您的行動通訊業者聯絡。"</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="other">SIM 卡的 PUK 碼輸入錯誤,您還可以再試 <xliff:g id="NUMBER_1">%d</xliff:g> 次。如果仍然失敗,SIM 卡將永久無法使用。</item>
-      <item quantity="one">SIM 卡的 PUK 碼輸入錯誤,您還可以再試 <xliff:g id="NUMBER_0">%d</xliff:g> 次。如果仍然失敗,SIM 卡將永久無法使用。</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"SIM 卡 PIN 碼操作失敗!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"SIM 卡 PUK 碼操作失敗!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"密碼正確!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"沒有服務。"</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"切換輸入法"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"飛航模式"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"裝置重新啟動後需要畫出解鎖圖案"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"裝置重新啟動後需要輸入 PIN 碼"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"裝置重新啟動後需要輸入密碼"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"請畫出解鎖圖案,以進一步確保資訊安全"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"請輸入 PIN 碼,以進一步確保資訊安全"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"請輸入密碼,以進一步確保資訊安全"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"切換設定檔時需要畫出解鎖圖案"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"切換設定檔時需要輸入 PIN 碼"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"切換設定檔時需要輸入密碼"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"裝置管理員已鎖定裝置"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"裝置已手動鎖定"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="other">裝置已有 <xliff:g id="NUMBER_1">%d</xliff:g> 小時未解鎖。請確認圖案。</item>
-      <item quantity="one">裝置已有 <xliff:g id="NUMBER_0">%d</xliff:g> 小時未解鎖。請確認圖案。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="other">裝置已有 <xliff:g id="NUMBER_1">%d</xliff:g> 小時未解鎖。請確認 PIN 碼。</item>
-      <item quantity="one">裝置已有 <xliff:g id="NUMBER_0">%d</xliff:g> 小時未解鎖。請確認 PIN 碼。</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="other">裝置已有 <xliff:g id="NUMBER_1">%d</xliff:g> 小時未解鎖。請確認密碼。</item>
-      <item quantity="one">裝置已有 <xliff:g id="NUMBER_0">%d</xliff:g> 小時未解鎖。請確認密碼。</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"無法識別"</string>
-</resources>
diff --git a/packages/Keyguard/res/values-zu/strings.xml b/packages/Keyguard/res/values-zu/strings.xml
deleted file mode 100644
index a9b6263..0000000
--- a/packages/Keyguard/res/values-zu/strings.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** Copyright 2006, 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"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"Ukhiye wokugada"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Faka ikhodi ye-PIN"</string>
-    <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"Thayipha i-PUK ye-SIM nekhodi yephinikhodi entsha"</string>
-    <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"Ikhodi ye-PUK ye-SIM"</string>
-    <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"Ikhodi entsha yephinikhodi ye-SIM"</string>
-    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Thinta ukubhala iphasiwedi"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Bhala iphasiwedi ukuze kuvuleke"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Faka i-PIN ukuvula"</string>
-    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Ikhodi ye-PIN engalungile!"</string>
-    <string name="keyguard_charged" msgid="3272223906073492454">"Kushajiwe"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Iyashaja"</string>
-    <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"Ishaja ngokushesha"</string>
-    <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"Ishaja kancane"</string>
-    <string name="keyguard_low_battery" msgid="8143808018719173859">"Xhuma ishaja yakho."</string>
-    <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Chofoza imenyu ukuze uvule."</string>
-    <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Inethiwekhi ikhiyiwe"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Alikho ikhadi le-SIM"</string>
-    <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"Alikho ikhadi le-SIM kuthebulethi."</string>
-    <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"Alikho ikhadi le-SIM kufoni."</string>
-    <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Faka ikhadi le-SIM."</string>
-    <string name="keyguard_missing_sim_instructions_long" msgid="5968985489463870358">"Ikhadi le-SIM alitholakali noma alifundeki. Faka ikhadi le-SIM."</string>
-    <string name="keyguard_permanent_disabled_sim_message_short" msgid="8340813989586622356">"Ikhadi le-SIM elingasebenziseki."</string>
-    <string name="keyguard_permanent_disabled_sim_instructions" msgid="5892940909699723544">"I-SIM khadi yakho ikhutshazwe unomphela.\n Xhumana nomhlinzeki wakho wokuxhumana okungenazintambo ukuze uthole enye i-SIM khadi."</string>
-    <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Ikhadi le-SIM likhiyiwe."</string>
-    <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Ikhadi le-SIM likhiywe nge-PUK."</string>
-    <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ivula ikhadi le-SIM..."</string>
-    <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Indawo yephinikhodi"</string>
-    <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Indawo yephinikhodi ye-SIM"</string>
-    <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Indawo ye-SIM PUK"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"I-alamu elandelayo esethelwe i-<xliff:g id="ALARM">%1$s</xliff:g>"</string>
-    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Susa"</string>
-    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Faka"</string>
-    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ukhohlwe iphethini?"</string>
-    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Iphatheni engalungile"</string>
-    <string name="kg_wrong_password" msgid="2333281762128113157">"Iphasiwedi engalungile"</string>
-    <string name="kg_wrong_pin" msgid="1131306510833563801">"Iphinikhodi engalungile"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Zama futhi emasekhondini angu-<xliff:g id="NUMBER">%d</xliff:g>."</string>
-    <string name="kg_pattern_instructions" msgid="398978611683075868">"Dweba iphethini"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Faka iphinikhodi ye-SIM"</string>
-    <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Faka i-PIN ye-SIM ye-\"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="kg_pin_instructions" msgid="2377242233495111557">"Faka iphinikhodi"</string>
-    <string name="kg_password_instructions" msgid="5753646556186936819">"Faka iphasiwedi"</string>
-    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"I-SIM manje ikhutshaziwe. Faka ikhodi ye-PUK ukuze uqhubeke. Xhumana nenkampani yenethiwekhi ngemininingwane."</string>
-    <string name="kg_puk_enter_puk_hint_multi" msgid="363822494559783025">"I-SIM ye-\"<xliff:g id="CARRIER">%1$s</xliff:g>\" manje ikhutshaziwe. Faka ikhodi ye-PUK ukuze uqhubeke. Xhumana nenkampani yenethiwekhi ukuze uthole imininingwane."</string>
-    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Faka iphinikhodi oyithandayo"</string>
-    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Qiniseka iphinikhodi oyithandayo"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Ivula ikhadi le-SIM..."</string>
-    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Thayipha iphinikhodi enezinombolo ezingu-4 kuya kwezingu-8."</string>
-    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Ikhodi ye-PUK kufanele ibe yizinombolo ezingu-8 noma eziningi."</string>
-    <string name="kg_invalid_puk" msgid="3638289409676051243">"Faka kabusha ikhodi ye-PUK elungile. Imizamo ephindiwe izokhubaza unaphakade i-SIM."</string>
-    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Iphinikhodi ayifani"</string>
-    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Kunemizamo eminingi kakhulu yephathini"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Ubhale iphinikhodi ykho ngendlela engafanele izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\nZama futhi emasekhondini angu-<xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Ubhale iphasiwedi yakho ngendlela engafanele <xliff:g id="NUMBER_0">%1$d</xliff:g> izikhathi. \n\nZama futhi emasekhondini angu-<xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Udwebe iphathini yakho yokuvula ngendlela engafanele-<xliff:g id="NUMBER_0">%1$d</xliff:g>. \n\n Zama futhi emasekhondini angu-<xliff:g id="NUMBER_1">%2$d</xliff:g>"</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Uzame ngokungalungile ukuvula ithebulethi izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. Ngemuva kwemizamo engaphezulu kwengu-<xliff:g id="NUMBER_1">%2$d</xliff:g> engaphumelelanga, le thebulethi izosethwa kabusha, okuzosusa yonke idatha yayo."</string>
-    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Uzame ngokungalungile ukuvula ifoni izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. Ngemuva kwemizamo engaphezulu kwengu-<xliff:g id="NUMBER_1">%2$d</xliff:g> engaphumelelanga, le foni izosethwa kabusha, okuzosusa yonke idatha yayo."</string>
-    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Uzame ngokungalungile ukuvula ithebulethi izikhathi ezingu-<xliff:g id="NUMBER">%d</xliff:g>. Le thebulethi izosethwa kabusha, okuzosusa yonke idatha yayo."</string>
-    <string name="kg_failed_attempts_now_wiping" product="default" msgid="7154028908459817066">"Uzame ngokungalungile ukuvula ifoni izikhathi ezingu-<xliff:g id="NUMBER">%d</xliff:g>. Le foni izosethwa kabusha, okuzosusa yonke idatha yayo."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="6159955099372112688">"Uzame ngokungalungile ukuvula ithebulethi izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. Ngemuva kwemizamo engaphezulu kwengu-<xliff:g id="NUMBER_1">%2$d</xliff:g> engaphumelelanga, lo msebenzisi uzosuswa, okuzosusa yonke idatha yomsebenzisi."</string>
-    <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="6945823186629369880">"Uzame ngokungalungile ukuvula ifoni izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. Ngemuva kwemizamo engaphezulu kwengu-<xliff:g id="NUMBER_1">%2$d</xliff:g> engaphumelelanga, lo msebenzisi uzosuswa, okuzosusa yonke idatha yomsebenzisi."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="3963486905355778734">"Uzame ngokungalungile ukuvula ithebulethi izikhathi ezingu-<xliff:g id="NUMBER">%d</xliff:g>. Lo msebenzisi uzosuswa, okuzosusa yonke idatha yomsebenzisi."</string>
-    <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="7729009752252111673">"Uzame ngokungalungile ukuvula ifoni izikhathi ezingu-<xliff:g id="NUMBER">%d</xliff:g>. Lo msebenzisi uzosuswa, okuzosusa yonke idatha yomsebenzisi."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="4621778507387853694">"Uzame ngokungalungile ukuvula ithebulethi izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. Ngemuva kwemizamo engaphezulu kwengu-<xliff:g id="NUMBER_1">%2$d</xliff:g> engaphumelelanga, iphrofayela yomsebenzi izosuswa, okuzosusa yonke idatha yephrofayela."</string>
-    <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Uzame ngokungalungile ukuvula ifoni izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. Ngemuva kwemizamo engaphezulu kwengu-<xliff:g id="NUMBER_1">%2$d</xliff:g> engaphumelelanga, iphrofayela yomsebenzi, izosuswa, okuzosusa yonke idatha yephrofayela."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Uzame ngokungalungile ukuvula ithebulethi izikhathi ezingu-<xliff:g id="NUMBER">%d</xliff:g>. Iphrofayela yomsebenzi izosuswa, okuzosusa yonke idatha yephrofayela."</string>
-    <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Uzame ngokungalungile ukuvula ifoni izikhathi ezingu-<xliff:g id="NUMBER">%d</xliff:g>. Iphrofayela yomsebenzi izosuswa, okuzosusa yonke idatha yephrofayela."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Udwebe ngokungalungile iphathini yakho yokuvula izikhathi ezingu-<xliff:g id="NUMBER_0">%1$d</xliff:g>. Emva <xliff:g id="NUMBER_1">%2$d</xliff:g> kweminye imizamo engaphumelelanga, uzocelwa ukuvula ithebhulethi yakho usebenzisa ukungena ngemvume kwi-Google.\n\n Sicela uzame futhi emuva kwamasekhondi angu-<xliff:g id="NUMBER_2">%3$d</xliff:g>"</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ukulayisha ungenisa iphathini yakho yokuvula ngendlela engalungile izikhathi ezi-<xliff:g id="NUMBER_0">%1$d</xliff:g> Emva kweminye imizamo engu-<xliff:g id="NUMBER_1">%2$d</xliff:g>, uzocelwa ukuvula ifoni yakho usebenzisa ukungena ngemvume ku-Google\n\n Zame futhi emumva kwengu- <xliff:g id="NUMBER_2">%3$d</xliff:g> amasekhondi."</string>
-    <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Ikhodi yephinikhodi ye-SIM engalungile manje kumele uxhumane nenkampini yenethiwekhi yakho ukuvula idivayisi yakho."</string>
-    <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
-      <item quantity="one">Ikhodi engalungile yephinikhodi ye-SIM, unemizamo engu-<xliff:g id="NUMBER_1">%d</xliff:g> esele.</item>
-      <item quantity="other">Ikhodi engalungile yephinikhodi ye-SIM, unemizamo engu-<xliff:g id="NUMBER_1">%d</xliff:g> esele.</item>
-    </plurals>
-    <string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"I-SIM ayisebenziseki. Xhumana nemkampini yenethiwekhi yakho."</string>
-    <plurals name="kg_password_wrong_puk_code" formatted="false" msgid="7576227366999858780">
-      <item quantity="one">Ikhodi ye-PUK ye-SIM engalungile, unemizamo engu-<xliff:g id="NUMBER_1">%d</xliff:g> esele ngaphambi kokuthi i-SIM ingasasebenziseki unaphakade.</item>
-      <item quantity="other">Ikhodi ye-PUK ye-SIM engalungile, unemizamo engu-<xliff:g id="NUMBER_1">%d</xliff:g> esele ngaphambi kokuthi i-SIM ingasasebenziseki unaphakade.</item>
-    </plurals>
-    <string name="kg_password_pin_failed" msgid="6268288093558031564">"Umsebenzi wephinikhodi ye-SIM wehlulekile!"</string>
-    <string name="kg_password_puk_failed" msgid="2838824369502455984">"Umsebenzi we-PUK ye-SIM wehlulekile!"</string>
-    <string name="kg_pin_accepted" msgid="1448241673570020097">"Ikhodi yamukelwe!"</string>
-    <string name="keyguard_carrier_default" msgid="8700650403054042153">"Ayikho isevisi."</string>
-    <string name="accessibility_ime_switch_button" msgid="2829803408288433429">"Shintsha indlela yokufaka"</string>
-    <string name="airplane_mode" msgid="3122107900897202805">"Isimo sendiza"</string>
-    <string name="kg_prompt_reason_restart_pattern" msgid="5519822969283306009">"Iphethini iyadingeka ngemuva kokuqala kabusha kwedivayisi"</string>
-    <string name="kg_prompt_reason_restart_pin" msgid="4411398237158448198">"Iphinikhodi iyadingeka ngemuva kokuqala kabusha kwedivayisi"</string>
-    <string name="kg_prompt_reason_restart_password" msgid="6504585392626524695">"Iphasiwedi iyadingeka ngemuva kokuqala kabusha kwedivayisi"</string>
-    <string name="kg_prompt_reason_timeout_pattern" msgid="3717506169674397620">"Kudingeka iphethini  ngokuvikeleka okungeziwe"</string>
-    <string name="kg_prompt_reason_timeout_pin" msgid="6951483704195396341">"Kudingeka iphinikhodi ngokuvikeleka okungeziwe"</string>
-    <string name="kg_prompt_reason_timeout_password" msgid="7306667546971345027">"Iphasiwedi idingelwa ukuvikela okungeziwe"</string>
-    <string name="kg_prompt_reason_switch_profiles_pattern" msgid="8476293962695171574">"Iphethini iyadingeka uma ushintsha amaphrofayela"</string>
-    <string name="kg_prompt_reason_switch_profiles_pin" msgid="2343607138520460043">"Kudingeka iphinikhodi uma ushintsha amaphrofayela"</string>
-    <string name="kg_prompt_reason_switch_profiles_password" msgid="1295960907951965927">"Iphasiwedi iyadingeka uma ushintsha amaphrofayela"</string>
-    <string name="kg_prompt_reason_device_admin" msgid="5838877342219587193">"Umlawuli wedivayisi ukhiye idivayisi"</string>
-    <string name="kg_prompt_reason_user_request" msgid="500999297306031595">"Idivayisi ikhiywe ngokwenza"</string>
-    <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="2697444392228541853">
-      <item quantity="one">Idivayisi ayikavulwa ngamahora angu-<xliff:g id="NUMBER_1">%d</xliff:g>. Qinisekisa iphethini.</item>
-      <item quantity="other">Idivayisi ayikavulwa ngamahora angu-<xliff:g id="NUMBER_1">%d</xliff:g>. Qinisekisa iphethini.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="2118758475374354849">
-      <item quantity="one">Idivayisi ayikavulwa ngamahora angu-<xliff:g id="NUMBER_1">%d</xliff:g>. Qinisekisa iphinikhodi.</item>
-      <item quantity="other">Idivayisi ayikavulwa ngamahora angu-<xliff:g id="NUMBER_1">%d</xliff:g>. Qinisekisa iphinikhodi.</item>
-    </plurals>
-    <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="5132693663364913675">
-      <item quantity="one">Idivayisi ayikavulwa ngamahora angu-<xliff:g id="NUMBER_1">%d</xliff:g>. Qinisekisa iphasiwedi.</item>
-      <item quantity="other">Idivayisi ayikavulwa ngamahora angu-<xliff:g id="NUMBER_1">%d</xliff:g>. Qinisekisa iphasiwedi.</item>
-    </plurals>
-    <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Akubonwa"</string>
-</resources>
diff --git a/packages/Keyguard/test/Android.mk b/packages/Keyguard/test/Android.mk
deleted file mode 100644
index 54224b7..0000000
--- a/packages/Keyguard/test/Android.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2013 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := KeyguardTest
-
-# Remove these to verify permission checks are working correctly
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-
-# LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-
-include $(BUILD_PACKAGE)
diff --git a/packages/Keyguard/test/AndroidManifest.xml b/packages/Keyguard/test/AndroidManifest.xml
deleted file mode 100644
index 1638127..0000000
--- a/packages/Keyguard/test/AndroidManifest.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?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.
-*/
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.keyguard.test">
-    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>
-    <uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
-    <application android:label="@string/app_name" android:icon="@drawable/app_icon">
-        <activity android:name=".KeyguardTestActivity"
-                android:label="@string/app_name"
-                android:theme="@android:style/Theme.DeviceDefault.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/packages/Keyguard/test/SampleTrustAgent/Android.mk b/packages/Keyguard/test/SampleTrustAgent/Android.mk
deleted file mode 100644
index 6ffb018..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/Android.mk
+++ /dev/null
@@ -1,34 +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.
-#
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := SampleTrustAgent
-
-# Remove this to verify permission checks are working correctly
-LOCAL_CERTIFICATE := platform
-
-LOCAL_MODULE_TAGS := tests
-
-# LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-
-LOCAL_STATIC_ANDROID_LIBRARIES := android-support-v4
-
-include $(BUILD_PACKAGE)
diff --git a/packages/Keyguard/test/SampleTrustAgent/AndroidManifest.xml b/packages/Keyguard/test/SampleTrustAgent/AndroidManifest.xml
deleted file mode 100644
index edcea0e..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/AndroidManifest.xml
+++ /dev/null
@@ -1,48 +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
-  -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.trustagent.test">
-    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>
-    <uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
-    <uses-permission android:name="android.permission.PROVIDE_TRUST_AGENT" />
-    <application android:label="@string/app_name">
-      <service
-          android:name=".SampleTrustAgent"
-          android:label="@string/app_name"
-          android:permission="android.permission.BIND_TRUST_AGENT"
-          android:directBootAware="true"
-          android:exported="true">
-        <intent-filter>
-          <action android:name="android.service.trust.TrustAgentService" />
-          <category android:name="android.intent.category.DEFAULT" />
-        </intent-filter>
-        <meta-data android:name="android.service.trust.trustagent"
-                   android:resource="@xml/sample_trust_agent"/>
-      </service>
-
-      <activity
-          android:name=".SampleTrustAgentSettings"
-          android:label="@string/app_name"
-          android:exported="true"
-          android:launchMode="singleInstance" >
-          <intent-filter>
-              <action android:name="android.intent.action.MAIN" />
-              <category android:name="android.intent.category.LAUNCHER" />
-          </intent-filter>
-      </activity>
-    </application>
-</manifest>
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/layout-v26/sample_trust_agent_settings.xml b/packages/Keyguard/test/SampleTrustAgent/res/layout-v26/sample_trust_agent_settings.xml
deleted file mode 100644
index 4669971..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/res/layout-v26/sample_trust_agent_settings.xml
+++ /dev/null
@@ -1,74 +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
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-    <Button android:id="@+id/enable_trust"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Grant trust for 30 seconds" />
-    <Button android:id="@+id/revoke_trust"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Revoke trust" />
-    <Button android:id="@+id/crash"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Crash" />
-    <CheckBox android:id="@+id/managing_trust"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:text="Managing trust" />
-    <CheckBox android:id="@+id/managing_trust_direct_boot"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:text="Managing trust direct boot"/>
-
-    <CheckBox android:id="@+id/report_unlock_attempts"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:text="Report unlock attempts" />
-    <CheckBox android:id="@+id/report_device_locked"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:text="Report device locked or unlocked" />
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-        <Button android:id="@+id/check_device_locked"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Device locked?" />
-        <TextView android:id="@+id/check_device_locked_result"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1" />
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/layout/sample_trust_agent_settings.xml b/packages/Keyguard/test/SampleTrustAgent/res/layout/sample_trust_agent_settings.xml
deleted file mode 100644
index 00193ed..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/res/layout/sample_trust_agent_settings.xml
+++ /dev/null
@@ -1,67 +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
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-    <Button android:id="@+id/enable_trust"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Grant trust for 30 seconds" />
-    <Button android:id="@+id/revoke_trust"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Revoke trust" />
-    <Button android:id="@+id/crash"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Crash" />
-    <CheckBox android:id="@+id/managing_trust"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:text="Managing trust" />
-    <CheckBox android:id="@+id/report_unlock_attempts"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:text="Report unlock attempts" />
-    <CheckBox android:id="@+id/report_device_locked"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:text="Report device locked or unlocked" />
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-        <Button android:id="@+id/check_device_locked"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Device locked?" />
-        <TextView android:id="@+id/check_device_locked_result"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1" />
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/xml-v26/sample_trust_agent.xml b/packages/Keyguard/test/SampleTrustAgent/res/xml-v26/sample_trust_agent.xml
deleted file mode 100644
index 26d5aa0..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/res/xml-v26/sample_trust_agent.xml
+++ /dev/null
@@ -1,19 +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
-  -->
-<trust-agent xmlns:android="http://schemas.android.com/apk/res/android"
-             android:settingsActivity=".SampleTrustAgentSettings"
-             android:unlockProfile="true" />
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/xml/sample_trust_agent.xml b/packages/Keyguard/test/SampleTrustAgent/res/xml/sample_trust_agent.xml
deleted file mode 100644
index 6cd34bb..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/res/xml/sample_trust_agent.xml
+++ /dev/null
@@ -1,18 +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
-  -->
-<trust-agent xmlns:android="http://schemas.android.com/apk/res/android"
-             android:settingsActivity=".SampleTrustAgentSettings" />
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
deleted file mode 100644
index 4b50cf8..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java
+++ /dev/null
@@ -1,268 +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.trustagent.test;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.SharedPreferences;
-import android.os.PersistableBundle;
-import android.os.UserManager;
-import android.preference.PreferenceManager;
-import android.service.trust.TrustAgentService;
-import android.support.v4.content.LocalBroadcastManager;
-import android.util.Log;
-import android.widget.Toast;
-
-import java.util.List;
-
-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 --ez extra.dismiss_keyguard 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";
-    private static final String ACTION_REVOKE_TRUST = "action.sample_trust_agent.revoke_trust";
-
-    private static final String EXTRA_MESSAGE = "extra.message";
-    private static final String EXTRA_DURATION = "extra.duration";
-    private static final String EXTRA_INITIATED_BY_USER = "extra.init_by_user";
-    private static final String EXTRA_DISMISS_KEYGUARD = "extra.dismiss_keyguard";
-
-    private static final String PREFERENCE_REPORT_UNLOCK_ATTEMPTS
-            = "preference.report_unlock_attempts";
-    private static final String PREFERENCE_MANAGING_TRUST
-            = "preference.managing_trust";
-    private static final String PREFERENCE_MANAGING_TRUST_DIRECT_BOOT
-            = "preference.managing_trust_direct_boot";
-    private static final String PREFERENCE_REPORT_DEVICE_LOCKED = "preference.report_device_locked";
-
-    private static final String TAG = "SampleTrustAgent";
-
-    private static final BroadcastReceiver mUnlockReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-
-        }
-    };
-
-    private boolean mIsUserUnlocked;
-
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
-        mIsUserUnlocked = um.isUserUnlocked();
-        Log.i(TAG,, "onCreate, is user unlocked=" + mIsUserUnlocked);
-        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
-
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(ACTION_GRANT_TRUST);
-        filter.addAction(ACTION_REVOKE_TRUST);
-        if (!mIsUserUnlocked) {
-            filter.addAction(Intent.ACTION_BOOT_COMPLETED);
-        }
-        mLocalBroadcastManager.registerReceiver(mReceiver, filter);
-        if (ALLOW_EXTERNAL_BROADCASTS) {
-            registerReceiver(mReceiver, filter);
-        }
-
-        if (!mIsUserUnlocked) {
-            boolean trustManaged = getIsManagingTrustDirectBoot(this);
-            Log.i(TAG, "in Direct boot." + (trustManaged ? "manage" : "cannot manage") + "trust");
-            setManagingTrust(getIsManagingTrustDirectBoot(this));
-        } else {
-            onBootCompleted();
-        }
-    }
-
-    @Override
-    public void onTrustTimeout() {
-        super.onTrustTimeout();
-        logAndShowToast("onTrustTimeout(): timeout expired");
-    }
-
-    @Override
-    public void onDeviceLocked() {
-        super.onDeviceLocked();
-        if (getReportDeviceLocked(this)) {
-            logAndShowToast("onDeviceLocked(): device is now locked");
-        }
-    }
-
-    @Override
-    public void onDeviceUnlocked() {
-        super.onDeviceUnlocked();
-        if (getReportDeviceLocked(this)) {
-            logAndShowToast("onDeviceUnlocked(): device is now unlocked");
-        }
-    }
-
-    @Override
-    public void onUnlockAttempt(boolean successful) {
-        if (getReportUnlockAttempts(this)) {
-            logAndShowToast("onUnlockAttempt(successful=" + successful + ")");
-        }
-    }
-
-    private void logAndShowToast(String text) {
-        Log.i(TAG, text);
-        Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
-    }
-
-    @Override
-    public boolean onConfigure(List<PersistableBundle> options) {
-        if (options != null) {
-           for (int i = 0; i < options.size(); i++) {
-               Log.v(TAG, "Policy options received: " + options.get(i));
-           }
-        } else {
-            Log.w(TAG, "onConfigure() called with no options");
-        }
-        // TODO: Handle options
-        return true; // inform DPM that we support it
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        mLocalBroadcastManager.unregisterReceiver(mReceiver);
-        if (ALLOW_EXTERNAL_BROADCASTS) {
-            unregisterReceiver(mReceiver);
-        }
-        PreferenceManager.getDefaultSharedPreferences(this)
-                .unregisterOnSharedPreferenceChangeListener(this);
-    }
-
-    private void onBootCompleted() {
-        PreferenceManager.getDefaultSharedPreferences(this)
-                .registerOnSharedPreferenceChangeListener(this);
-        setManagingTrust(getIsManagingTrust(this));
-    }
-
-    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (ACTION_GRANT_TRUST.equals(action)) {
-                int flags = 0;
-                if (intent.getBooleanExtra(EXTRA_INITIATED_BY_USER, false)) {
-                    flags |= TrustAgentService.FLAG_GRANT_TRUST_INITIATED_BY_USER;
-                }
-                if (intent.getBooleanExtra(EXTRA_DISMISS_KEYGUARD, false)) {
-                    flags |= TrustAgentService.FLAG_GRANT_TRUST_DISMISS_KEYGUARD;
-                }
-
-                try {
-                    grantTrust(intent.getStringExtra(EXTRA_MESSAGE),
-                            intent.getLongExtra(EXTRA_DURATION, 0), flags);
-                } catch (IllegalStateException e) {
-                    logAndShowToast("IllegalStateException: " + e.getMessage());
-                }
-            } else if (ACTION_REVOKE_TRUST.equals(action)) {
-                revokeTrust();
-            } else if (intent.ACTION_BOOT_COMPLETED.equals(action)) {
-                Log.d(TAG, "User unlocked and boot completed.");
-                onBootCompleted();
-            }
-        }
-    };
-
-    public static void sendGrantTrust(Context context,
-            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_INITIATED_BY_USER, initiatedByUser);
-        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
-    }
-
-    public static void sendRevokeTrust(Context context) {
-        Intent intent = new Intent(ACTION_REVOKE_TRUST);
-        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
-    }
-
-    public static void setReportUnlockAttempts(Context context, boolean enabled) {
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(context);
-        sharedPreferences.edit().putBoolean(PREFERENCE_REPORT_UNLOCK_ATTEMPTS, enabled).apply();
-    }
-
-    public static boolean getReportUnlockAttempts(Context context) {
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(context);
-        return sharedPreferences.getBoolean(PREFERENCE_REPORT_UNLOCK_ATTEMPTS, false);
-    }
-
-    public static void setReportDeviceLocked(Context context, boolean enabled) {
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(context);
-        sharedPreferences.edit().putBoolean(PREFERENCE_REPORT_DEVICE_LOCKED, enabled).apply();
-    }
-
-    public static boolean getReportDeviceLocked(Context context) {
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(context);
-        return sharedPreferences.getBoolean(PREFERENCE_REPORT_DEVICE_LOCKED, false);
-    }
-
-    public static void setIsManagingTrust(Context context, boolean enabled) {
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(context);
-        Log.d("AAAA", "save manage trust preference. Enabled=" + enabled);
-        sharedPreferences.edit().putBoolean(PREFERENCE_MANAGING_TRUST, enabled).apply();
-    }
-
-    public static boolean getIsManagingTrust(Context context) {
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(context);
-        return sharedPreferences.getBoolean(PREFERENCE_MANAGING_TRUST, false);
-    }
-
-    public static void setIsManagingTrustDirectBoot(Context context, boolean enabled) {
-        Context directBootContext = context.createDeviceProtectedStorageContext();
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(directBootContext);
-        Log.d("AAAA", "save to direct boot preference. Enabled=" + enabled);
-        sharedPreferences.edit().putBoolean(PREFERENCE_MANAGING_TRUST_DIRECT_BOOT, enabled).apply();
-    }
-
-    public static boolean getIsManagingTrustDirectBoot(Context context) {
-        Context directBootContext = context.createDeviceProtectedStorageContext();
-        SharedPreferences sharedPreferences = PreferenceManager
-                .getDefaultSharedPreferences(directBootContext);
-        return sharedPreferences.getBoolean(PREFERENCE_MANAGING_TRUST_DIRECT_BOOT, false);
-    }
-
-    @Override
-    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
-        if (PREFERENCE_MANAGING_TRUST.equals(key)) {
-            setManagingTrust(getIsManagingTrust(this));
-        }
-    }
-}
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
deleted file mode 100644
index 1b17169..0000000
--- a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java
+++ /dev/null
@@ -1,111 +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.trustagent.test;
-
-import android.annotation.Nullable;
-import android.app.Activity;
-import android.app.KeyguardManager;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.TextView;
-
-public class SampleTrustAgentSettings extends Activity implements View.OnClickListener,
-        CompoundButton.OnCheckedChangeListener {
-
-    private static final int TRUST_DURATION_MS = 30 * 1000;
-
-    private CheckBox mReportUnlockAttempts;
-    private CheckBox mReportDeviceLocked;
-    private CheckBox mManagingTrust;
-    private CheckBox mManagingTrustDirectBoot;
-    private TextView mCheckDeviceLockedResult;
-
-    private KeyguardManager mKeyguardManager;
-
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mKeyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
-
-        setContentView(R.layout.sample_trust_agent_settings);
-
-        findViewById(R.id.enable_trust).setOnClickListener(this);
-        findViewById(R.id.revoke_trust).setOnClickListener(this);
-        findViewById(R.id.crash).setOnClickListener(this);
-        findViewById(R.id.check_device_locked).setOnClickListener(this);
-
-        mReportUnlockAttempts = (CheckBox) findViewById(R.id.report_unlock_attempts);
-        mReportUnlockAttempts.setOnCheckedChangeListener(this);
-
-        mReportDeviceLocked = (CheckBox) findViewById(R.id.report_device_locked);
-        mReportDeviceLocked.setOnCheckedChangeListener(this);
-
-        mManagingTrust = (CheckBox) findViewById(R.id.managing_trust);
-        mManagingTrust.setOnCheckedChangeListener(this);
-        mManagingTrustDirectBoot = (CheckBox) findViewById(R.id.managing_trust_direct_boot);
-        mManagingTrustDirectBoot.setOnCheckedChangeListener(this);
-
-        mCheckDeviceLockedResult = (TextView) findViewById(R.id.check_device_locked_result);
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        mReportUnlockAttempts.setChecked(SampleTrustAgent.getReportUnlockAttempts(this));
-        mManagingTrust.setChecked(SampleTrustAgent.getIsManagingTrust(this));
-        mManagingTrustDirectBoot.setChecked(
-            SampleTrustAgent.getIsManagingTrustDirectBoot(this));
-        updateTrustedState();
-    }
-
-    @Override
-    public void onClick(View v) {
-        int id = v.getId();
-        if (id == R.id.enable_trust) {
-            SampleTrustAgent.sendGrantTrust(this, "SampleTrustAgent", TRUST_DURATION_MS,
-                    false /* initiatedByUser */);
-        } else if (id == R.id.revoke_trust) {
-            SampleTrustAgent.sendRevokeTrust(this);
-        } else if (id == R.id.crash) {
-            throw new RuntimeException("crash");
-        } else if (id == R.id.check_device_locked) {
-            updateTrustedState();
-        }
-    }
-
-    @Override
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        if (buttonView == mReportUnlockAttempts) {
-            SampleTrustAgent.setReportUnlockAttempts(this, isChecked);
-        } else if (buttonView == mManagingTrust) {
-            SampleTrustAgent.setIsManagingTrust(this, isChecked);
-        } else if (buttonView == mReportDeviceLocked) {
-            SampleTrustAgent.setReportDeviceLocked(this, isChecked);
-        } else if (buttonView == mManagingTrustDirectBoot) {
-            SampleTrustAgent.setIsManagingTrustDirectBoot(this, isChecked);
-        }
-    }
-
-    private void updateTrustedState() {
-        mCheckDeviceLockedResult.setText(Boolean.toString(
-                mKeyguardManager.isDeviceLocked()));
-    }
-}
diff --git a/packages/Keyguard/test/res/drawable-hdpi/app_icon.png b/packages/Keyguard/test/res/drawable-hdpi/app_icon.png
deleted file mode 100644
index 732133c..0000000
--- a/packages/Keyguard/test/res/drawable-hdpi/app_icon.png
+++ /dev/null
Binary files differ
diff --git a/packages/Keyguard/test/res/drawable-mdpi/app_icon.png b/packages/Keyguard/test/res/drawable-mdpi/app_icon.png
deleted file mode 100644
index 30eb974..0000000
--- a/packages/Keyguard/test/res/drawable-mdpi/app_icon.png
+++ /dev/null
Binary files differ
diff --git a/packages/Keyguard/test/res/drawable-xhdpi/app_icon.png b/packages/Keyguard/test/res/drawable-xhdpi/app_icon.png
deleted file mode 100644
index c44a330..0000000
--- a/packages/Keyguard/test/res/drawable-xhdpi/app_icon.png
+++ /dev/null
Binary files differ
diff --git a/packages/Keyguard/test/res/layout/keyguard_test_activity.xml b/packages/Keyguard/test/res/layout/keyguard_test_activity.xml
deleted file mode 100644
index dab1088..0000000
--- a/packages/Keyguard/test/res/layout/keyguard_test_activity.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?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.
-*/
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:gravity="center">
-
-    <Button android:id="@+id/do_keyguard"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/do_keyguard" />
-
-    <Button android:id="@+id/on_screen_turned_off"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/on_screen_turned_off" />
-
-    <Button android:id="@+id/on_screen_turned_on"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/on_screen_turned_on" />
-
-    <Button android:id="@+id/verify_unlock"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/verify_unlock" />
-
-</LinearLayout>
diff --git a/packages/Keyguard/test/res/menu/optionmenu.xml b/packages/Keyguard/test/res/menu/optionmenu.xml
deleted file mode 100644
index 22f300d..0000000
--- a/packages/Keyguard/test/res/menu/optionmenu.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:id="@+id/none_menu_item"
-          android:title="@string/none_menu_item" />
-    <item android:id="@+id/pin_menu_item"
-          android:title="@string/pin_menu_item" />
-    <item android:id="@+id/password_menu_item"
-        android:title="@string/password_menu_item" />
-    <item android:id="@+id/pattern_menu_item"
-          android:title="@string/pattern_menu_item" />
-    <item android:id="@+id/sim_pin_menu_item"
-          android:title="@string/sim_pin_menu_item" />
-    <item android:id="@+id/sim_puk_menu_item"
-          android:title="@string/sim_puk_menu_item" />
-    <item android:id="@+id/add_widget_item"
-          android:title="@string/add_widget_item" />
-</menu>
diff --git a/packages/Keyguard/test/res/values/strings.xml b/packages/Keyguard/test/res/values/strings.xml
deleted file mode 100644
index 129204b..0000000
--- a/packages/Keyguard/test/res/values/strings.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/apps/common/assets/res/any/strings.xml
-**
-** 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 name="app_name">KeyguardTestActivity</string>
-    <string name="secure_app_name">UnifiedCamera</string>
-    <string name="none_menu_item">No security</string>
-    <string name="pin_menu_item">PIN</string>
-    <string name="password_menu_item">Password</string>
-    <string name="pattern_menu_item">Pattern</string>
-    <string name="sim_pin_menu_item">SIM PIN</string>
-    <string name="sim_puk_menu_item">SIM PUK</string>
-    <string name="add_widget_item">Choose widget...</string>
-    <string name="on_screen_turned_off">onScreenTurnedOff</string>
-    <string name="on_screen_turned_on">onScreenTurnedOn</string>
-    <string name="do_keyguard">doKeyguard</string>
-    <string name="verify_unlock">verifyUnlock</string>
-</resources>
diff --git a/packages/Keyguard/test/src/com/android/keyguard/test/KeyguardTestActivity.java b/packages/Keyguard/test/src/com/android/keyguard/test/KeyguardTestActivity.java
deleted file mode 100644
index e89c10e..0000000
--- a/packages/Keyguard/test/src/com/android/keyguard/test/KeyguardTestActivity.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-package com.android.keyguard.test;
-
-import com.android.internal.policy.IKeyguardShowCallback;
-import com.android.internal.policy.IKeyguardExitCallback;
-import com.android.internal.policy.IKeyguardService;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.admin.DevicePolicyManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.SystemClock;
-import android.provider.Settings;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.WindowManagerPolicy;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.internal.widget.LockPatternView.Cell;
-
-import java.util.List;
-
-public class KeyguardTestActivity extends Activity implements OnClickListener {
-    private static final String KEYGUARD_PACKAGE = "com.android.keyguard";
-    private static final String KEYGUARD_CLASS = "com.android.keyguard.KeyguardService";
-    private static final String TAG = "LockScreenTestActivity";
-    private static final int MODE_NONE = 0;
-    private static final int MODE_PIN = 1;
-    private static final int MODE_PASSWORD = 2;
-    private static final int MODE_PATTERN = 3;
-    private static final int MODE_SIM_PIN = 4;
-    private static final int MODE_SIM_PUK = 5;
-    private static final String SECURITY_MODE = "security_mode";
-    Handler mHandler = new Handler();
-
-    IKeyguardService mService = null;
-
-    KeyguardShowCallback mKeyguardShowCallback = new KeyguardShowCallback();
-    KeyguardExitCallback mKeyguardExitCallback = new KeyguardExitCallback();
-
-    RemoteServiceConnection mConnection;
-    private boolean mSentSystemReady;
-
-    class KeyguardShowCallback extends IKeyguardShowCallback.Stub {
-
-        @Override
-        public void onShown(IBinder windowToken) throws RemoteException {
-            Log.v(TAG, "Keyguard is shown, windowToken = " + windowToken);
-        }
-    }
-
-    class KeyguardExitCallback extends IKeyguardExitCallback.Stub {
-
-        @Override
-        public void onKeyguardExitResult(final boolean success) throws RemoteException {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    new AlertDialog.Builder(KeyguardTestActivity.this)
-                    .setMessage("Result: " + success)
-                    .setPositiveButton("OK", null)
-                    .show();
-                }
-            });
-        }
-    };
-
-    private class RemoteServiceConnection implements ServiceConnection {
-        public void onServiceConnected(ComponentName className, IBinder service) {
-            Log.v(TAG, "onServiceConnected()");
-            mService = IKeyguardService.Stub.asInterface(service);
-            try {
-                mService.asBinder().linkToDeath(new IBinder.DeathRecipient() {
-                    @Override
-                    public void binderDied() {
-                        new AlertDialog.Builder(KeyguardTestActivity.this)
-                            .setMessage("Oops! Keygued died")
-                            .setPositiveButton("OK", null)
-                            .show();
-                    }
-                }, 0);
-            } catch (RemoteException e) {
-                Log.w(TAG, "Couldn't linkToDeath");
-                e.printStackTrace();
-            }
-//            try {
-//                mService.onSystemReady();
-//            } catch (RemoteException e) {
-//                Log.v(TAG, "Remote service died trying to call onSystemReady");
-//                e.printStackTrace();
-//            }
-        }
-
-        public void onServiceDisconnected(ComponentName className) {
-            Log.v(TAG, "onServiceDisconnected()");
-            mService = null;
-        }
-    };
-
-    private void bindService() {
-        if (mConnection == null) {
-            mConnection = new RemoteServiceConnection();
-            Intent intent = new Intent();
-            intent.setClassName(KEYGUARD_PACKAGE, KEYGUARD_CLASS);
-            Log.v(TAG, "BINDING SERVICE: " + KEYGUARD_CLASS);
-            if (!bindService(intent, mConnection, Context.BIND_AUTO_CREATE)) {
-                Log.v(TAG, "FAILED TO BIND TO KEYGUARD!");
-            }
-        } else {
-            Log.v(TAG, "Service already bound");
-        }
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.keyguard_test_activity);
-        final int[] buttons = {
-                R.id.on_screen_turned_off, R.id.on_screen_turned_on,
-                R.id.do_keyguard, R.id.verify_unlock
-        };
-        for (int i = 0; i < buttons.length; i++) {
-            findViewById(buttons[i]).setOnClickListener(this);
-        }
-        Log.v(TAG, "Binding service...");
-        bindService();
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt(SECURITY_MODE, mSecurityMode);
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-        setMode(savedInstanceState.getInt(SECURITY_MODE));
-    }
-
-// TODO: Find a secure way to inject mock into keyguard...
-//    @Override
-//    public boolean onCreateOptionsMenu(Menu menu) {
-//        MenuInflater inflater = getMenuInflater();
-//        inflater.inflate(R.menu.optionmenu, menu);
-//        return true;
-//    }
-
-    private void setMode(int mode) {
-        mTestSimPin = false;
-        mTestSimPuk = false;
-        mLockPasswordEnabled = false;
-        mLockPatternEnabled = false;
-        switch(mode) {
-            case MODE_NONE:
-                mSecurityModeMock = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-                break;
-            case MODE_PIN:
-                mSecurityModeMock = DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
-                mLockPasswordEnabled = true;
-                break;
-            case MODE_PASSWORD:
-                mSecurityModeMock = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC;
-                mLockPasswordEnabled = true;
-                break;
-            case MODE_PATTERN:
-                mSecurityModeMock = DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
-                mLockPatternEnabled = true;
-                break;
-            case MODE_SIM_PIN:
-                mTestSimPin = true;
-                break;
-            case MODE_SIM_PUK:
-                mTestSimPuk = true;
-                break;
-        }
-        mSecurityMode = mode;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        // Handle item selection
-        switch (item.getItemId()) {
-            case R.id.none_menu_item:
-                setMode(MODE_NONE);
-                break;
-            case R.id.pin_menu_item:
-                setMode(MODE_PIN);
-                break;
-            case R.id.password_menu_item:
-                setMode(MODE_PASSWORD);
-                break;
-            case R.id.pattern_menu_item:
-                setMode(MODE_PATTERN);
-                break;
-            case R.id.sim_pin_menu_item:
-                setMode(MODE_SIM_PIN);
-                break;
-            case R.id.sim_puk_menu_item:
-                setMode(MODE_SIM_PUK);
-                break;
-            case R.id.add_widget_item:
-                startWidgetPicker();
-                break;
-            default:
-                return super.onOptionsItemSelected(item);
-        }
-        try {
-            mService.doKeyguardTimeout(null);
-        } catch (RemoteException e) {
-            Log.e(TAG, "Remote service died");
-            e.printStackTrace();
-        }
-        return true;
-    }
-
-    private void startWidgetPicker() {
-        startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));
-    }
-
-    @Override
-    public void onClick(View v) {
-        try {
-            switch (v.getId()) {
-            case R.id.on_screen_turned_on:
-                mService.onScreenTurnedOn(mKeyguardShowCallback);
-                break;
-            case R.id.on_screen_turned_off:
-                mService.onScreenTurnedOff(WindowManagerPolicy.OFF_BECAUSE_OF_USER);
-                break;
-            case R.id.do_keyguard:
-                if (!mSentSystemReady) {
-                    mSentSystemReady = true;
-                    mService.onSystemReady();
-                }
-                mService.doKeyguardTimeout(null);
-                break;
-            case R.id.verify_unlock:
-                mService.doKeyguardTimeout(null);
-                // Wait for keyguard to lock and then try this...
-                mHandler.postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        try {
-                            mService.verifyUnlock(mKeyguardExitCallback);
-                        } catch (RemoteException e) {
-                            Log.e(TAG, "Failed verifyUnlock()", e);
-                        }
-                    }
-                }, 5000);
-                break;
-            }
-        } catch (RemoteException e) {
-            Log.e(TAG, "onClick(): Failed due to remote exeption", e);
-        }
-    }
-
-    @Override
-    protected void onPause() {
-        super.onPause();
-        try {
-            if (mService != null) {
-                mService.setHidden(true);
-            }
-        } catch (RemoteException e) {
-            Log.e(TAG, "Remote service died");
-            e.printStackTrace();
-        }
-    }
-
-    protected void onResume() {
-        super.onResume();
-        try {
-            if (mService != null) {
-                mService.setHidden(false);
-            }
-        } catch (RemoteException e) {
-            Log.e(TAG, "Remote service died");
-            e.printStackTrace();
-        }
-    }
-
-    public int mSecurityModeMock;
-    private boolean mTestSimPin;
-    private boolean mTestSimPuk;
-    private boolean mLockPasswordEnabled;
-    public boolean mLockPatternEnabled;
-    private int mSecurityMode;
-
-    class LockPatternUtilsMock extends LockPatternUtils {
-        private long mDeadline;
-        public LockPatternUtilsMock(Context context) {
-            super(context);
-        }
-
-        @Override
-        public boolean checkPattern(List<Cell> pattern) {
-            return pattern.size() > 4;
-        }
-
-        @Override
-        public boolean checkPassword(String password) {
-            return password.length() > 4;
-        }
-        @Override
-        public long setLockoutAttemptDeadline() {
-            final long deadline = SystemClock.elapsedRealtime() + FAILED_ATTEMPT_TIMEOUT_MS;
-            mDeadline = deadline;
-            return deadline;
-        }
-        @Override
-        public boolean isLockScreenDisabled() {
-            return false;
-        }
-        @Override
-        public long getLockoutAttemptDeadline() {
-            return mDeadline;
-        }
-        @Override
-        public void reportFailedPasswordAttempt() {
-            // Ignored
-        }
-        @Override
-        public void reportSuccessfulPasswordAttempt() {
-            // Ignored
-        }
-        @Override
-        public boolean isLockPatternEnabled() {
-            return mLockPatternEnabled;
-        }
-
-        @Override
-        public boolean isLockPasswordEnabled() {
-            return mLockPasswordEnabled;
-        }
-
-        @Override
-        public int getKeyguardStoredPasswordQuality() {
-            return mSecurityModeMock;
-        }
-
-        public boolean isSecure() {
-            return mLockPatternEnabled || mLockPasswordEnabled || mTestSimPin || mTestSimPuk;
-        }
-
-    }
-}
diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java
index d0aba22..8e3a6c5 100644
--- a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java
+++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java
@@ -22,6 +22,7 @@
 import android.os.UserHandle;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceViewHolder;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.TypedValue;
 import android.view.View;
@@ -88,11 +89,13 @@
         if (mUseAdminDisabledSummary) {
             final TextView summaryView = (TextView) holder.findViewById(android.R.id.summary);
             if (summaryView != null) {
+                final CharSequence disabledText = summaryView.getContext().getText(
+                        R.string.disabled_by_admin_summary_text);
                 if (mDisabledByAdmin) {
-                    summaryView.setText(R.string.disabled_by_admin_summary_text);
-                    summaryView.setVisibility(View.VISIBLE);
-                } else {
-                    summaryView.setVisibility(View.GONE);
+                    summaryView.setText(disabledText);
+                } else if (TextUtils.equals(disabledText, summaryView.getText())) {
+                    // It's previously set to disabled text, clear it.
+                    summaryView.setText(null);
                 }
             }
         }
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
index c617994..0ec16ae2 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
@@ -41,7 +41,6 @@
 import android.os.Looper;
 import android.os.Message;
 import android.provider.Settings;
-import android.support.annotation.WorkerThread;
 import android.util.ArraySet;
 import android.util.Log;
 import android.util.SparseArray;
@@ -211,7 +210,7 @@
 
         mNetworkScoreManager = networkScoreManager;
 
-        mScoreCache = new WifiNetworkScoreCache(context, new CacheListener(mWorkHandler) {
+        mScoreCache = new WifiNetworkScoreCache(context, new CacheListener(mMainHandler) {
             @Override
             public void networkCacheUpdated(List<ScoredNetwork> networks) {
                 if (Log.isLoggable(TAG, Log.VERBOSE)) {
@@ -282,12 +281,7 @@
      * then forceUpdate() must be called to populate getAccessPoints().
      */
     public void startTracking() {
-        mWorkHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                registerScoreCache();
-            }
-        });
+        registerScoreCache();
 
         mContext.getContentResolver().registerContentObserver(
                 Settings.Global.getUriFor(Settings.Global.NETWORK_SCORING_UI_ENABLED),
@@ -305,7 +299,6 @@
         }
     }
 
-    @WorkerThread
     private void registerScoreCache() {
         mNetworkScoreManager.registerNetworkScoreCache(
                 NetworkKey.TYPE_WIFI,
@@ -341,20 +334,17 @@
         }
         pauseScanning();
 
-        mWorkHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                unregisterAndClearScoreCache();
-            }
-        });
+        unregisterAndClearScoreCache();
+
         mContext.getContentResolver().unregisterContentObserver(mObserver);
     }
 
-    @WorkerThread
     private void unregisterAndClearScoreCache() {
-        mRequestedScores.clear();
         mNetworkScoreManager.unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, mScoreCache);
         mScoreCache.clearScores();
+
+        // Clear the scores on the work handler to avoid concurrent modification exceptions
+        mWorkHandler.post(() -> mRequestedScores.clear());
     }
 
     /**
diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
index 08736c7..0f220aa 100644
--- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
+++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
@@ -72,7 +72,7 @@
 public class WifiTrackerTest {
 
     private static final String TAG = "WifiTrackerTest";
-    private static final int LATCH_TIMEOUT = 2000;
+    private static final int LATCH_TIMEOUT = 4000;
 
     private static final String SSID_1 = "ssid1";
     private static final String BSSID_1 = "00:00:00:00:00:00";
@@ -226,7 +226,7 @@
 
         mAccessPointsChangedLatch = new CountDownLatch(1);
         sendScanResultsAndProcess(tracker);
-        mAccessPointsChangedLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
+        assertTrue(mAccessPointsChangedLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS));
 
         return tracker;
     }
@@ -242,7 +242,8 @@
                     true,
                     mockWifiManager,
                     mockConnectivityManager,
-                        mockNetworkScoreManager, mMainLooper
+                    mockNetworkScoreManager,
+                    mMainLooper
                 );
 
         return tracker;
@@ -257,7 +258,7 @@
                 latch.countDown();
             }
         });
-        latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
+        assertTrue("Latch timed out", latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS));
     }
 
     private void sendScanResultsAndProcess(WifiTracker tracker) throws InterruptedException {
@@ -265,7 +266,8 @@
         Intent i = new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
         tracker.mReceiver.onReceive(mContext, i);
 
-        mAccessPointsChangedLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
+        assertTrue("Latch timed out",
+                mAccessPointsChangedLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS));
     }
 
     private void updateScores() {
@@ -348,7 +350,7 @@
         // Test unregister
         tracker.stopTracking();
 
-        latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
+        assertTrue("Latch timed out", latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS));
         verify(mockNetworkScoreManager)
                 .unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, scoreCache);
     }
@@ -359,12 +361,15 @@
         WifiTracker tracker =  createTrackerAndInjectInitialScanResults();
 
         tracker.stopTracking();
+        android.util.Log.d("WifiTrackerTest", "Clearing previously captured requested keys");
         mRequestedKeys.clear();
 
-        mRequestScoresLatch = new CountDownLatch(2);
+        mRequestScoresLatch = new CountDownLatch(1);
         startTracking(tracker);
-        mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
+        assertTrue("Latch timed out",
+                mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS));
 
+        android.util.Log.d("WifiTrackerTest", "requested keys: " + mRequestedKeys);
         assertTrue(mRequestedKeys.contains(NETWORK_KEY_1));
         assertTrue(mRequestedKeys.contains(NETWORK_KEY_2));
     }
@@ -379,6 +384,8 @@
     }
 
     private void updateScoresAndWaitForAccessPointsChangedCallback() throws InterruptedException {
+        // Updating scores can happen together or one after the other, so the latch countdown is set
+        // to 2.
         mAccessPointsChangedLatch = new CountDownLatch(2);
         updateScores();
         mAccessPointsChangedLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
@@ -462,6 +469,8 @@
 
     @Test
     public void scoresShouldBeRequestedForNewScanResultOnly()  throws InterruptedException {
+        // Scores can be requested together or serially depending on how the scan results are
+        // processed.
         mRequestScoresLatch = new CountDownLatch(2);
         WifiTracker tracker = createTrackerAndInjectInitialScanResults();
         mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
@@ -484,9 +493,24 @@
 
         mRequestScoresLatch = new CountDownLatch(1);
         sendScanResultsAndProcess(tracker);
-        mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
+        assertTrue(mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS));
 
         assertEquals(1, mRequestedKeys.size());
         assertTrue(mRequestedKeys.contains(new NetworkKey(new WifiKey('"' + ssid + '"', bssid))));
     }
+
+    @Test
+    public void scoreCacheAndListenerShouldBeUnregisteredWhenStopTrackingIsCalled() throws Exception
+    {
+        WifiTracker tracker =  createTrackerAndInjectInitialScanResults();
+        WifiNetworkScoreCache cache = mScoreCacheCaptor.getValue();
+
+        tracker.stopTracking();
+        verify(mockNetworkScoreManager).unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, cache);
+
+        // Verify listener is unregistered so updating a score does not throw an error by posting
+        // a message to the dead work handler
+        mWorkerThread.quit();
+        updateScores();
+    }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java
index 025bbc2..2958740 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java
@@ -22,14 +22,11 @@
 import android.content.pm.UserInfo;
 import android.os.UserManager;
 
-import com.android.internal.util.ArrayUtils;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
 import java.util.Arrays;
@@ -38,10 +35,9 @@
 import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_REMOTE_INPUT;
 import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.when;
 
-@RunWith(RobolectricTestRunner.class)
+@RunWith(SettingLibRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class RestrictedLockUtilsTest {
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedPreferenceHelperTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedPreferenceHelperTest.java
new file mode 100644
index 0000000..43e238b
--- /dev/null
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedPreferenceHelperTest.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2017 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.settingslib;
+
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceViewHolder;
+import android.view.View;
+import android.widget.TextView;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingLibRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RestrictedPreferenceHelperTest {
+
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private Preference mPreference;
+
+    private PreferenceViewHolder mViewHolder;
+    private RestrictedPreferenceHelper mHelper;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mViewHolder = new PreferenceViewHolder(mock(View.class));
+        mHelper = new RestrictedPreferenceHelper(mContext, mPreference, null);
+    }
+
+    @Test
+    public void bindPreference_disabled_shouldDisplayDisabledSummary() {
+        final TextView summaryView = mock(TextView.class, RETURNS_DEEP_STUBS);
+        when(mViewHolder.itemView.findViewById(android.R.id.summary))
+                .thenReturn(summaryView);
+        when(summaryView.getContext().getText(R.string.disabled_by_admin_summary_text))
+                .thenReturn("test");
+
+        mHelper.useAdminDisabledSummary(true);
+        mHelper.setDisabledByAdmin(new RestrictedLockUtils.EnforcedAdmin());
+        mHelper.onBindViewHolder(mViewHolder);
+
+        verify(summaryView).setText("test");
+        verify(summaryView, never()).setVisibility(View.GONE);
+    }
+
+    @Test
+    public void bindPreference_notDisabled_shouldNotHideSummary() {
+        final TextView summaryView = mock(TextView.class, RETURNS_DEEP_STUBS);
+        when(mViewHolder.itemView.findViewById(android.R.id.summary))
+                .thenReturn(summaryView);
+        when(summaryView.getContext().getText(R.string.disabled_by_admin_summary_text))
+                .thenReturn("test");
+        when(summaryView.getText()).thenReturn("test");
+
+        mHelper.useAdminDisabledSummary(true);
+        mHelper.setDisabledByAdmin(null);
+        mHelper.onBindViewHolder(mViewHolder);
+
+        verify(summaryView).setText(null);
+        verify(summaryView, never()).setVisibility(View.GONE);
+    }
+}
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index 136f17e..499b6ae 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -227,4 +227,7 @@
 
     <!--  default setting for Settings.System.END_BUTTON_BEHAVIOR : END_BUTTON_BEHAVIOR_SLEEP -->
     <integer name="def_end_button_behavior">0x2</integer>
+
+    <!--Default settings for network recommendations. -->
+    <string name="def_network_recommendations_package" translatable="false">com.android.networkrecommendation</string>
 </resources>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
index 4ddafac..0676efd 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
@@ -495,6 +495,9 @@
                 Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED,
                 GlobalSettingsProto.NETWORK_RECOMMENDATIONS_ENABLED);
         dumpSetting(s, p,
+                Settings.Global.NETWORK_RECOMMENDATIONS_PACKAGE,
+                GlobalSettingsProto.NETWORK_RECOMMENDATIONS_PACKAGE);
+        dumpSetting(s, p,
                 Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE,
                 GlobalSettingsProto.BLE_SCAN_ALWAYS_AVAILABLE);
         dumpSetting(s, p,
@@ -1426,18 +1429,6 @@
                 Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED,
                 SecureSettingsProto.SYSTEM_NAVIGATION_KEYS_ENABLED);
         dumpSetting(s, p,
-                Settings.Secure.DOWNLOADS_BACKUP_ENABLED,
-                SecureSettingsProto.DOWNLOADS_BACKUP_ENABLED);
-        dumpSetting(s, p,
-                Settings.Secure.DOWNLOADS_BACKUP_ALLOW_METERED,
-                SecureSettingsProto.DOWNLOADS_BACKUP_ALLOW_METERED);
-        dumpSetting(s, p,
-                Settings.Secure.DOWNLOADS_BACKUP_CHARGING_ONLY,
-                SecureSettingsProto.DOWNLOADS_BACKUP_CHARGING_ONLY);
-        dumpSetting(s, p,
-                Settings.Secure.AUTOMATIC_STORAGE_MANAGER_DOWNLOADS_DAYS_TO_RETAIN,
-                SecureSettingsProto.AUTOMATIC_STORAGE_MANAGER_DOWNLOADS_DAYS_TO_RETAIN);
-        dumpSetting(s, p,
                 Settings.Secure.QS_TILES,
                 SecureSettingsProto.QS_TILES);
         dumpSetting(s, p,
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 2299794..edcb9b5 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -2735,7 +2735,7 @@
         }
 
         private final class UpgradeController {
-            private static final int SETTINGS_VERSION = 138;
+            private static final int SETTINGS_VERSION = 139;
 
             private final int mUserId;
 
@@ -3118,26 +3118,7 @@
                 }
 
                 if (currentVersion == 135) {
-                    // Version 135: Migrating the NETWORK_SCORER_APP setting to the
-                    // NETWORK_RECOMMENDATIONS_ENABLED setting.
-                    if (userId == UserHandle.USER_SYSTEM) {
-                        final SettingsState globalSettings = getGlobalSettingsLocked();
-                        Setting currentSetting = globalSettings.getSettingLocked(
-                            Global.NETWORK_SCORER_APP);
-                        if (!currentSetting.isNull()) {
-                            // A scorer was set so enable recommendations.
-                            globalSettings.insertSettingLocked(
-                                Global.NETWORK_RECOMMENDATIONS_ENABLED,
-                                "1", null, true,
-                                SettingsState.SYSTEM_PACKAGE_NAME);
-
-                            // and clear the scorer setting since it's no longer needed.
-                            globalSettings.insertSettingLocked(
-                                Global.NETWORK_SCORER_APP,
-                                null, null, true,
-                                SettingsState.SYSTEM_PACKAGE_NAME);
-                        }
-                    }
+                    // Version 135 no longer used.
                     currentVersion = 136;
                 }
 
@@ -3200,6 +3181,28 @@
                     currentVersion = 138;
                 }
 
+                if (currentVersion == 138) {
+                    // Version 139: Applying the default to NETWORK_RECOMMENDATIONS_PACKAGE
+                    if (userId == UserHandle.USER_SYSTEM) {
+                        final SettingsState globalSettings = getGlobalSettingsLocked();
+                        final String defaultAppPackage = getContext().getResources()
+                                .getString(R.string.def_network_recommendations_package);
+
+                        // Set the network recommendations package name
+                        globalSettings.insertSettingLocked(
+                                Global.NETWORK_RECOMMENDATIONS_PACKAGE,
+                                defaultAppPackage, null, true,
+                                SettingsState.SYSTEM_PACKAGE_NAME);
+
+                        // Clear the scorer setting since it's no longer needed.
+                        globalSettings.insertSettingLocked(
+                                Global.NETWORK_SCORER_APP,
+                                null, null, true,
+                                SettingsState.SYSTEM_PACKAGE_NAME);
+                    }
+                    currentVersion = 139;
+                }
+
                 if (currentVersion != newVersion) {
                     Slog.wtf("SettingsProvider", "warning: upgrading settings database to version "
                             + newVersion + " left it at "
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index 7fe5d84..17d0a09 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -92,6 +92,7 @@
 import android.util.Pair;
 import android.util.Patterns;
 import android.util.SparseArray;
+import android.view.IWindowManager;
 import android.view.View;
 import android.view.WindowManager;
 import android.view.View.OnFocusChangeListener;
@@ -579,6 +580,16 @@
         }
 
         collapseNotificationBar();
+
+        // Dissmiss keyguard first.
+        final IWindowManager wm = IWindowManager.Stub
+                .asInterface(ServiceManager.getService(Context.WINDOW_SERVICE));
+        try {
+            wm.dismissKeyguard(null);
+        } catch (Exception e) {
+            // ignore it
+        }
+
         mInfoDialog.initialize(mContext, info);
     }
 
diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
index 4e3744a..823b9b1 100644
--- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
+++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
@@ -695,6 +695,7 @@
 
     private void sendBugreportStarted(int id, int pid, String name, int max) throws Exception {
         Intent intent = new Intent(INTENT_BUGREPORT_STARTED);
+        intent.setPackage("com.android.shell");
         intent.setFlags(Intent.FLAG_RECEIVER_FOREGROUND);
         intent.putExtra(EXTRA_ID, id);
         intent.putExtra(EXTRA_PID, pid);
@@ -754,6 +755,7 @@
      */
     private void sendBugreportFinished(int id, String bugreportPath, String screenshotPath) {
         Intent intent = new Intent(INTENT_BUGREPORT_FINISHED);
+        intent.setPackage("com.android.shell");
         intent.setFlags(Intent.FLAG_RECEIVER_FOREGROUND);
         if (id != NO_ID) {
             intent.putExtra(EXTRA_ID, id);
diff --git a/packages/SystemUI/Android.mk b/packages/SystemUI/Android.mk
index d1e1060..1ebfbad 100644
--- a/packages/SystemUI/Android.mk
+++ b/packages/SystemUI/Android.mk
@@ -11,6 +11,14 @@
 
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := SystemUI-tags
+
+LOCAL_SRC_FILES := src/com/android/systemui/EventLogTags.logtags
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
 # ------------------
 
 include $(CLEAR_VARS)
@@ -23,7 +31,6 @@
 
 LOCAL_STATIC_ANDROID_LIBRARIES := \
     SystemUIPluginLib \
-    Keyguard \
     android-support-v7-recyclerview \
     android-support-v7-preference \
     android-support-v7-appcompat \
@@ -32,6 +39,7 @@
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
     framework-protos \
+    SystemUI-tags \
     SystemUI-proto
 
 LOCAL_JAVA_LIBRARIES := telephony-common
@@ -42,6 +50,7 @@
 LOCAL_PRIVILEGED_MODULE := true
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res-keyguard $(LOCAL_PATH)/res
 
 ifneq ($(INCREMENTAL_BUILDS),)
     LOCAL_PROGUARD_ENABLED := disabled
@@ -52,6 +61,8 @@
 
 include frameworks/base/packages/SettingsLib/common.mk
 
+LOCAL_AAPT_FLAGS := --extra-packages com.android.keyguard
+
 include $(BUILD_PACKAGE)
 
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index 4b8734f..b2e2a2c 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -559,6 +559,16 @@
             </intent-filter>
         </receiver>
 
+        <provider
+            android:name="android.support.v4.content.FileProvider"
+            android:authorities="com.android.systemui.fileprovider"
+            android:exported="false"
+            android:grantUriPermissions="true">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/fileprovider" />
+        </provider>
+
         <receiver
             android:name=".statusbar.KeyboardShortcutsReceiver">
             <intent-filter>
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/IntentButtonProvider.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/IntentButtonProvider.java
index 1b8efa7..9c173bd 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/IntentButtonProvider.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/IntentButtonProvider.java
@@ -32,6 +32,7 @@
             public boolean isVisible = true;
             public CharSequence contentDescription = null;
             public Drawable drawable;
+            public boolean tint = true;
         }
 
         public IconState getIcon();
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java
index 93ba39c..41a0907 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java
@@ -39,7 +39,7 @@
 
         public View getContentView();
 
-        public boolean handleCloseControls();
+        public boolean handleCloseControls(boolean save);
     }
 
     public interface SnoozeGutsContent extends GutsContent {
diff --git a/packages/Keyguard/res/drawable-hdpi/ic_done_wht.png b/packages/SystemUI/res-keyguard/drawable-hdpi/ic_done_wht.png
similarity index 100%
rename from packages/Keyguard/res/drawable-hdpi/ic_done_wht.png
rename to packages/SystemUI/res-keyguard/drawable-hdpi/ic_done_wht.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/ic_lockscreen_sim.png b/packages/SystemUI/res-keyguard/drawable-hdpi/ic_lockscreen_sim.png
similarity index 100%
rename from packages/Keyguard/res/drawable-hdpi/ic_lockscreen_sim.png
rename to packages/SystemUI/res-keyguard/drawable-hdpi/ic_lockscreen_sim.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/kg_security_lock_normal.png b/packages/SystemUI/res-keyguard/drawable-hdpi/kg_security_lock_normal.png
similarity index 100%
rename from packages/Keyguard/res/drawable-hdpi/kg_security_lock_normal.png
rename to packages/SystemUI/res-keyguard/drawable-hdpi/kg_security_lock_normal.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/ic_done_wht.png b/packages/SystemUI/res-keyguard/drawable-mdpi/ic_done_wht.png
similarity index 100%
rename from packages/Keyguard/res/drawable-mdpi/ic_done_wht.png
rename to packages/SystemUI/res-keyguard/drawable-mdpi/ic_done_wht.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/ic_lockscreen_sim.png b/packages/SystemUI/res-keyguard/drawable-mdpi/ic_lockscreen_sim.png
similarity index 100%
rename from packages/Keyguard/res/drawable-mdpi/ic_lockscreen_sim.png
rename to packages/SystemUI/res-keyguard/drawable-mdpi/ic_lockscreen_sim.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/kg_security_lock_normal.png b/packages/SystemUI/res-keyguard/drawable-mdpi/kg_security_lock_normal.png
similarity index 100%
rename from packages/Keyguard/res/drawable-mdpi/kg_security_lock_normal.png
rename to packages/SystemUI/res-keyguard/drawable-mdpi/kg_security_lock_normal.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/ic_done_wht.png b/packages/SystemUI/res-keyguard/drawable-xhdpi/ic_done_wht.png
similarity index 100%
rename from packages/Keyguard/res/drawable-xhdpi/ic_done_wht.png
rename to packages/SystemUI/res-keyguard/drawable-xhdpi/ic_done_wht.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/ic_lockscreen_sim.png b/packages/SystemUI/res-keyguard/drawable-xhdpi/ic_lockscreen_sim.png
similarity index 100%
rename from packages/Keyguard/res/drawable-xhdpi/ic_lockscreen_sim.png
rename to packages/SystemUI/res-keyguard/drawable-xhdpi/ic_lockscreen_sim.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/kg_security_lock_normal.png b/packages/SystemUI/res-keyguard/drawable-xhdpi/kg_security_lock_normal.png
similarity index 100%
rename from packages/Keyguard/res/drawable-xhdpi/kg_security_lock_normal.png
rename to packages/SystemUI/res-keyguard/drawable-xhdpi/kg_security_lock_normal.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/ic_done_wht.png b/packages/SystemUI/res-keyguard/drawable-xxhdpi/ic_done_wht.png
similarity index 100%
rename from packages/Keyguard/res/drawable-xxhdpi/ic_done_wht.png
rename to packages/SystemUI/res-keyguard/drawable-xxhdpi/ic_done_wht.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxxhdpi/ic_done_wht.png b/packages/SystemUI/res-keyguard/drawable-xxxhdpi/ic_done_wht.png
similarity index 100%
rename from packages/Keyguard/res/drawable-xxxhdpi/ic_done_wht.png
rename to packages/SystemUI/res-keyguard/drawable-xxxhdpi/ic_done_wht.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable/ic_access_alarms_big.xml b/packages/SystemUI/res-keyguard/drawable/ic_access_alarms_big.xml
similarity index 100%
rename from packages/Keyguard/res/drawable/ic_access_alarms_big.xml
rename to packages/SystemUI/res-keyguard/drawable/ic_access_alarms_big.xml
diff --git a/packages/Keyguard/res/drawable/ic_backspace_24dp.xml b/packages/SystemUI/res-keyguard/drawable/ic_backspace_24dp.xml
similarity index 100%
rename from packages/Keyguard/res/drawable/ic_backspace_24dp.xml
rename to packages/SystemUI/res-keyguard/drawable/ic_backspace_24dp.xml
diff --git a/packages/Keyguard/res/drawable/ic_lockscreen_ime.xml b/packages/SystemUI/res-keyguard/drawable/ic_lockscreen_ime.xml
similarity index 100%
rename from packages/Keyguard/res/drawable/ic_lockscreen_ime.xml
rename to packages/SystemUI/res-keyguard/drawable/ic_lockscreen_ime.xml
diff --git a/packages/Keyguard/res/drawable/ripple_drawable.xml b/packages/SystemUI/res-keyguard/drawable/ripple_drawable.xml
similarity index 100%
rename from packages/Keyguard/res/drawable/ripple_drawable.xml
rename to packages/SystemUI/res-keyguard/drawable/ripple_drawable.xml
diff --git a/packages/Keyguard/res/layout/keyguard_bouncer.xml b/packages/SystemUI/res-keyguard/layout/keyguard_bouncer.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_bouncer.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_bouncer.xml
diff --git a/packages/Keyguard/res/layout/keyguard_emergency_carrier_area.xml b/packages/SystemUI/res-keyguard/layout/keyguard_emergency_carrier_area.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_emergency_carrier_area.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_emergency_carrier_area.xml
diff --git a/packages/Keyguard/res/layout/keyguard_host_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_host_view.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_host_view.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_host_view.xml
diff --git a/packages/Keyguard/res/layout/keyguard_message_area.xml b/packages/SystemUI/res-keyguard/layout/keyguard_message_area.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_message_area.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_message_area.xml
diff --git a/packages/Keyguard/res/layout/keyguard_message_area_large.xml b/packages/SystemUI/res-keyguard/layout/keyguard_message_area_large.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_message_area_large.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_message_area_large.xml
diff --git a/packages/Keyguard/res/layout/keyguard_num_pad_key.xml b/packages/SystemUI/res-keyguard/layout/keyguard_num_pad_key.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_num_pad_key.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_num_pad_key.xml
diff --git a/packages/Keyguard/res/layout/keyguard_password_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_password_view.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_password_view.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_password_view.xml
diff --git a/packages/Keyguard/res/layout/keyguard_pattern_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_pattern_view.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_pattern_view.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_pattern_view.xml
diff --git a/packages/Keyguard/res/layout/keyguard_pin_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_pin_view.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_pin_view.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_pin_view.xml
diff --git a/packages/Keyguard/res/layout/keyguard_presentation.xml b/packages/SystemUI/res-keyguard/layout/keyguard_presentation.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_presentation.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_presentation.xml
diff --git a/packages/Keyguard/res/layout/keyguard_sim_pin_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_sim_pin_view.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_sim_pin_view.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_sim_pin_view.xml
diff --git a/packages/Keyguard/res/layout/keyguard_sim_puk_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_sim_puk_view.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_sim_puk_view.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_sim_puk_view.xml
diff --git a/packages/Keyguard/res/layout/keyguard_status_area.xml b/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_status_area.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml
diff --git a/packages/Keyguard/res/layout/keyguard_status_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
similarity index 100%
rename from packages/Keyguard/res/layout/keyguard_status_view.xml
rename to packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
diff --git a/packages/SystemUI/res-keyguard/values-af/strings.xml b/packages/SystemUI/res-keyguard/values-af/strings.xml
new file mode 100644
index 0000000..ef6d58f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-af/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Knoppie vir wissel van invoermetode."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-am/strings.xml b/packages/SystemUI/res-keyguard/values-am/strings.xml
new file mode 100644
index 0000000..99de8ef
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-am/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"የግቤት ስልት አዝራር ቀይር"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ar/strings.xml b/packages/SystemUI/res-keyguard/values-ar/strings.xml
new file mode 100644
index 0000000..28c3f25
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ar/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"زر تبديل طريقة الإدخال."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-az/strings.xml b/packages/SystemUI/res-keyguard/values-az/strings.xml
new file mode 100644
index 0000000..0e8ddfa
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-az/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Daxiletmə metodu düyməsinə keç"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-b+sr+Latn/strings.xml b/packages/SystemUI/res-keyguard/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..bb027e3
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-b+sr+Latn/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Dugme Promeni metod unosa."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-be/strings.xml b/packages/SystemUI/res-keyguard/values-be/strings.xml
new file mode 100644
index 0000000..c960e4a
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-be/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Кнопка пераключэння метаду ўводу."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-bg/strings.xml b/packages/SystemUI/res-keyguard/values-bg/strings.xml
new file mode 100644
index 0000000..1777805
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-bg/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Бутон за превключване на метода на въвеждане."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-bn/strings.xml b/packages/SystemUI/res-keyguard/values-bn/strings.xml
new file mode 100644
index 0000000..1c9cbb1
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-bn/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ইনপুট পদ্ধতির বোতাম পরিবর্তন করুন৷"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-bs/strings.xml b/packages/SystemUI/res-keyguard/values-bs/strings.xml
new file mode 100644
index 0000000..65acca1
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-bs/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Promijeni dugme za način unosa."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ca/strings.xml b/packages/SystemUI/res-keyguard/values-ca/strings.xml
new file mode 100644
index 0000000..fab2335
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ca/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Botó de canvi del mètode d\'entrada."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-cs/strings.xml b/packages/SystemUI/res-keyguard/values-cs/strings.xml
new file mode 100644
index 0000000..d383f70
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-cs/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Tlačítko přepnutí metody zadávání"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-da/strings.xml b/packages/SystemUI/res-keyguard/values-da/strings.xml
new file mode 100644
index 0000000..7148d5f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-da/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Skift indtastningsmetode-knappen."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-de/strings.xml b/packages/SystemUI/res-keyguard/values-de/strings.xml
new file mode 100644
index 0000000..4003cc8
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-de/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Schaltfläche zum Ändern der Eingabemethode"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-el/strings.xml b/packages/SystemUI/res-keyguard/values-el/strings.xml
new file mode 100644
index 0000000..5f88df5
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-el/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Κουμπί εναλλαγής μεθόδου εισόδου"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-en-rAU/strings.xml b/packages/SystemUI/res-keyguard/values-en-rAU/strings.xml
new file mode 100644
index 0000000..d324941
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-en-rAU/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Switch input method button."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-en-rGB/strings.xml b/packages/SystemUI/res-keyguard/values-en-rGB/strings.xml
new file mode 100644
index 0000000..d324941
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-en-rGB/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Switch input method button."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-en-rIN/strings.xml b/packages/SystemUI/res-keyguard/values-en-rIN/strings.xml
new file mode 100644
index 0000000..d324941
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-en-rIN/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Switch input method button."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml b/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
new file mode 100644
index 0000000..347a676
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Botón Cambiar método de entrada"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-es/strings.xml b/packages/SystemUI/res-keyguard/values-es/strings.xml
new file mode 100644
index 0000000..347a676
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-es/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Botón Cambiar método de entrada"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-et/strings.xml b/packages/SystemUI/res-keyguard/values-et/strings.xml
new file mode 100644
index 0000000..4595504
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-et/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Sisestusmeetodi vahetamise nupp."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-eu/strings.xml b/packages/SystemUI/res-keyguard/values-eu/strings.xml
new file mode 100644
index 0000000..79f001f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-eu/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Idazketa-metodoa aldatzeko botoia."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-fa/strings.xml b/packages/SystemUI/res-keyguard/values-fa/strings.xml
new file mode 100644
index 0000000..f730352
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-fa/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"کلید تغییر روش ورود متن."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-fi/strings.xml b/packages/SystemUI/res-keyguard/values-fi/strings.xml
new file mode 100644
index 0000000..2c3876f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-fi/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Syöttötavan vaihtopainike."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml b/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..5a535f7
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Bouton \"Changer le mode de saisie\""</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-fr/strings.xml b/packages/SystemUI/res-keyguard/values-fr/strings.xml
new file mode 100644
index 0000000..5a535f7
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-fr/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Bouton \"Changer le mode de saisie\""</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-gl/strings.xml b/packages/SystemUI/res-keyguard/values-gl/strings.xml
new file mode 100644
index 0000000..858ac79
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-gl/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Cambiar o botón do método de entrada."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-gu/strings.xml b/packages/SystemUI/res-keyguard/values-gu/strings.xml
new file mode 100644
index 0000000..37cd1ab
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-gu/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ઇનપુટ પદ્ધતિ બટન સ્વિચ કરો."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/Keyguard/res/values-h560dp/dimens.xml b/packages/SystemUI/res-keyguard/values-h560dp/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-h560dp/dimens.xml
rename to packages/SystemUI/res-keyguard/values-h560dp/dimens.xml
diff --git a/packages/Keyguard/res/values-h650dp/dimens.xml b/packages/SystemUI/res-keyguard/values-h650dp/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-h650dp/dimens.xml
rename to packages/SystemUI/res-keyguard/values-h650dp/dimens.xml
diff --git a/packages/SystemUI/res-keyguard/values-hi/strings.xml b/packages/SystemUI/res-keyguard/values-hi/strings.xml
new file mode 100644
index 0000000..cbd7715
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-hi/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"इनपुट पद्धति‍ बटन स्विच करें."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-hr/strings.xml b/packages/SystemUI/res-keyguard/values-hr/strings.xml
new file mode 100644
index 0000000..85330d0
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-hr/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Gumb za promjenu načina unosa."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-hu/strings.xml b/packages/SystemUI/res-keyguard/values-hu/strings.xml
new file mode 100644
index 0000000..fea195e
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-hu/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Beviteli mód váltása gomb."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-hy/strings.xml b/packages/SystemUI/res-keyguard/values-hy/strings.xml
new file mode 100644
index 0000000..bed77a9
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-hy/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Միացնել մուտքագրման եղանակի կոճակը:"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-in/strings.xml b/packages/SystemUI/res-keyguard/values-in/strings.xml
new file mode 100644
index 0000000..ea98d73
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-in/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Tombol beralih metode masukan."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-is/strings.xml b/packages/SystemUI/res-keyguard/values-is/strings.xml
new file mode 100644
index 0000000..faa92ce
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-is/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Hnappur til að skipta um innsláttaraðferð."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-it/strings.xml b/packages/SystemUI/res-keyguard/values-it/strings.xml
new file mode 100644
index 0000000..ebd15cd
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-it/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Pulsante per cambiare metodo di immissione."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-iw/strings.xml b/packages/SystemUI/res-keyguard/values-iw/strings.xml
new file mode 100644
index 0000000..7d0d2b8
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-iw/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"לחצן החלפת שיטת קלט."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ja/strings.xml b/packages/SystemUI/res-keyguard/values-ja/strings.xml
new file mode 100644
index 0000000..5e0178b
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ja/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"入力方法の切り替えボタン。"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ka/strings.xml b/packages/SystemUI/res-keyguard/values-ka/strings.xml
new file mode 100644
index 0000000..00c4592
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ka/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"შეყვანის მეთოდის გადართვის ღილაკი."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-kk/strings.xml b/packages/SystemUI/res-keyguard/values-kk/strings.xml
new file mode 100644
index 0000000..dd2622f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-kk/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Енгізу әдісі түймесін ауыстыру."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-km/strings.xml b/packages/SystemUI/res-keyguard/values-km/strings.xml
new file mode 100644
index 0000000..c9f38b1
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-km/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ប្ដូរ​ប៊ូតុង​វិធីសាស្ត្រ​បញ្ចូល។"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-kn/strings.xml b/packages/SystemUI/res-keyguard/values-kn/strings.xml
new file mode 100644
index 0000000..429a835
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-kn/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ಇನ್‌ಪುಟ್ ವಿಧಾನ ಬದಲಿಸು ಬಟನ್."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ko/strings.xml b/packages/SystemUI/res-keyguard/values-ko/strings.xml
new file mode 100644
index 0000000..dfdcaf6
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ko/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"입력 방법 버튼을 전환합니다."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ky/strings.xml b/packages/SystemUI/res-keyguard/values-ky/strings.xml
new file mode 100644
index 0000000..3ab2348
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ky/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Киргизүү ыкмасын которуу баскычы."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/Keyguard/res/values-land/bools.xml b/packages/SystemUI/res-keyguard/values-land/bools.xml
similarity index 100%
rename from packages/Keyguard/res/values-land/bools.xml
rename to packages/SystemUI/res-keyguard/values-land/bools.xml
diff --git a/packages/Keyguard/res/values-land/integers.xml b/packages/SystemUI/res-keyguard/values-land/integers.xml
similarity index 100%
rename from packages/Keyguard/res/values-land/integers.xml
rename to packages/SystemUI/res-keyguard/values-land/integers.xml
diff --git a/packages/SystemUI/res-keyguard/values-lo/strings.xml b/packages/SystemUI/res-keyguard/values-lo/strings.xml
new file mode 100644
index 0000000..0810c2c
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-lo/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ປຸ່ມສະລັບຮູບແບບການປ້ອນຂໍ້ມູນ."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-lt/strings.xml b/packages/SystemUI/res-keyguard/values-lt/strings.xml
new file mode 100644
index 0000000..7db550f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-lt/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Perjungti įvesties metodo mygtuką."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-lv/strings.xml b/packages/SystemUI/res-keyguard/values-lv/strings.xml
new file mode 100644
index 0000000..99709a1
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-lv/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Ievades metodes maiņas poga."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/Keyguard/res/values-mcc262-mnc07/bools.xml b/packages/SystemUI/res-keyguard/values-mcc262-mnc07/bools.xml
similarity index 100%
rename from packages/Keyguard/res/values-mcc262-mnc07/bools.xml
rename to packages/SystemUI/res-keyguard/values-mcc262-mnc07/bools.xml
diff --git a/packages/Keyguard/res/values-mcc262-mnc08/bools.xml b/packages/SystemUI/res-keyguard/values-mcc262-mnc08/bools.xml
similarity index 100%
rename from packages/Keyguard/res/values-mcc262-mnc08/bools.xml
rename to packages/SystemUI/res-keyguard/values-mcc262-mnc08/bools.xml
diff --git a/packages/Keyguard/res/values-mcc262-mnc11/bools.xml b/packages/SystemUI/res-keyguard/values-mcc262-mnc11/bools.xml
similarity index 100%
rename from packages/Keyguard/res/values-mcc262-mnc11/bools.xml
rename to packages/SystemUI/res-keyguard/values-mcc262-mnc11/bools.xml
diff --git a/packages/SystemUI/res-keyguard/values-mk/strings.xml b/packages/SystemUI/res-keyguard/values-mk/strings.xml
new file mode 100644
index 0000000..c9fcb29
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-mk/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Копче за префрање метод на внес."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ml/strings.xml b/packages/SystemUI/res-keyguard/values-ml/strings.xml
new file mode 100644
index 0000000..cce277f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ml/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ടൈപ്പുചെയ്യൽ രീതി ബട്ടൺ മാറുക."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-mn/strings.xml b/packages/SystemUI/res-keyguard/values-mn/strings.xml
new file mode 100644
index 0000000..202dcb0
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-mn/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Оруулах аргыг сэлгэх товч."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-mr/strings.xml b/packages/SystemUI/res-keyguard/values-mr/strings.xml
new file mode 100644
index 0000000..8648768
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-mr/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"इनपुट पद्धत स्‍विच करा बटण."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ms/strings.xml b/packages/SystemUI/res-keyguard/values-ms/strings.xml
new file mode 100644
index 0000000..efb529e
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ms/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Butang tukar kaedah input."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/Keyguard/res/values-my/dimens.xml b/packages/SystemUI/res-keyguard/values-my/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-my/dimens.xml
rename to packages/SystemUI/res-keyguard/values-my/dimens.xml
diff --git a/packages/SystemUI/res-keyguard/values-my/strings.xml b/packages/SystemUI/res-keyguard/values-my/strings.xml
new file mode 100644
index 0000000..364a647
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-my/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ထည့်သွင်းခြင်းခလုတ်အား ပြောင်းခြင်း"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-nb/strings.xml b/packages/SystemUI/res-keyguard/values-nb/strings.xml
new file mode 100644
index 0000000..507b2a3
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-nb/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Bytt knapp for inndatametode."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ne/strings.xml b/packages/SystemUI/res-keyguard/values-ne/strings.xml
new file mode 100644
index 0000000..b73db1d
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ne/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"इनपुट विधि बटन स्विच गर्नुहोस्।"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-nl/strings.xml b/packages/SystemUI/res-keyguard/values-nl/strings.xml
new file mode 100644
index 0000000..5a16a77
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-nl/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Knop voor wijzigen invoermethode."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-pa/strings.xml b/packages/SystemUI/res-keyguard/values-pa/strings.xml
new file mode 100644
index 0000000..00e472c
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-pa/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ਇਨਪੁਟ ਵਿਧੀ ਬਟਨ ਸਵਿਚ ਕਰੋ।"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-pl/strings.xml b/packages/SystemUI/res-keyguard/values-pl/strings.xml
new file mode 100644
index 0000000..1b8f6f0
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-pl/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Przycisk przełączania metody wprowadzania."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/Keyguard/res/values-port/bools.xml b/packages/SystemUI/res-keyguard/values-port/bools.xml
similarity index 100%
rename from packages/Keyguard/res/values-port/bools.xml
rename to packages/SystemUI/res-keyguard/values-port/bools.xml
diff --git a/packages/Keyguard/res/values-port/integers.xml b/packages/SystemUI/res-keyguard/values-port/integers.xml
similarity index 100%
rename from packages/Keyguard/res/values-port/integers.xml
rename to packages/SystemUI/res-keyguard/values-port/integers.xml
diff --git a/packages/SystemUI/res-keyguard/values-pt-rBR/strings.xml b/packages/SystemUI/res-keyguard/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..f274be3
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-pt-rBR/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Alterar botão do método de entrada."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-pt-rPT/strings.xml b/packages/SystemUI/res-keyguard/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..bb724ba
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-pt-rPT/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Alternar botão de método de introdução."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-pt/strings.xml b/packages/SystemUI/res-keyguard/values-pt/strings.xml
new file mode 100644
index 0000000..f274be3
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-pt/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Alterar botão do método de entrada."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ro/strings.xml b/packages/SystemUI/res-keyguard/values-ro/strings.xml
new file mode 100644
index 0000000..5b19f8c
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ro/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Buton pentru comutarea metodei de introducere."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ru/strings.xml b/packages/SystemUI/res-keyguard/values-ru/strings.xml
new file mode 100644
index 0000000..0ebb831
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ru/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Кнопка переключения способа ввода."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-si/strings.xml b/packages/SystemUI/res-keyguard/values-si/strings.xml
new file mode 100644
index 0000000..f217d4b
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-si/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ආදාන ක්‍රමය මාරු කිරීමේ බොත්තම."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-sk/strings.xml b/packages/SystemUI/res-keyguard/values-sk/strings.xml
new file mode 100644
index 0000000..88ee590
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-sk/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Tlačidlo prepnutia metódy vstupu."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-sl/strings.xml b/packages/SystemUI/res-keyguard/values-sl/strings.xml
new file mode 100644
index 0000000..98689a5
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-sl/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Gumb za preklop načina vnosa."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-sq/strings.xml b/packages/SystemUI/res-keyguard/values-sq/strings.xml
new file mode 100644
index 0000000..3bf8912
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-sq/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Butoni i metodës së ndërrimit të hyrjeve."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-sr/strings.xml b/packages/SystemUI/res-keyguard/values-sr/strings.xml
new file mode 100644
index 0000000..be91a69
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-sr/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Дугме Промени метод уноса."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-sv/strings.xml b/packages/SystemUI/res-keyguard/values-sv/strings.xml
new file mode 100644
index 0000000..2334132
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-sv/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Knapp för byte av inmatningsmetod."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-sw/strings.xml b/packages/SystemUI/res-keyguard/values-sw/strings.xml
new file mode 100644
index 0000000..01ce3c3
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-sw/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Swichi kitufe cha mbinu ingizi."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/Keyguard/res/values-sw320dp/dimens.xml b/packages/SystemUI/res-keyguard/values-sw320dp/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw320dp/dimens.xml
rename to packages/SystemUI/res-keyguard/values-sw320dp/dimens.xml
diff --git a/packages/Keyguard/res/values-sw360dp/dimens.xml b/packages/SystemUI/res-keyguard/values-sw360dp/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw360dp/dimens.xml
rename to packages/SystemUI/res-keyguard/values-sw360dp/dimens.xml
diff --git a/packages/Keyguard/res/values-sw380dp/dimens.xml b/packages/SystemUI/res-keyguard/values-sw380dp/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw380dp/dimens.xml
rename to packages/SystemUI/res-keyguard/values-sw380dp/dimens.xml
diff --git a/packages/Keyguard/res/values-sw540dp-port/dimens.xml b/packages/SystemUI/res-keyguard/values-sw540dp-port/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw540dp-port/dimens.xml
rename to packages/SystemUI/res-keyguard/values-sw540dp-port/dimens.xml
diff --git a/packages/Keyguard/res/values-sw600dp-land/dimens.xml b/packages/SystemUI/res-keyguard/values-sw600dp-land/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw600dp-land/dimens.xml
rename to packages/SystemUI/res-keyguard/values-sw600dp-land/dimens.xml
diff --git a/packages/Keyguard/res/values-sw600dp/alias.xml b/packages/SystemUI/res-keyguard/values-sw600dp/alias.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw600dp/alias.xml
rename to packages/SystemUI/res-keyguard/values-sw600dp/alias.xml
diff --git a/packages/Keyguard/res/values-sw600dp/bools.xml b/packages/SystemUI/res-keyguard/values-sw600dp/bools.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw600dp/bools.xml
rename to packages/SystemUI/res-keyguard/values-sw600dp/bools.xml
diff --git a/packages/Keyguard/res/values-sw600dp/dimens.xml b/packages/SystemUI/res-keyguard/values-sw600dp/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw600dp/dimens.xml
rename to packages/SystemUI/res-keyguard/values-sw600dp/dimens.xml
diff --git a/packages/Keyguard/res/values-sw600dp/styles.xml b/packages/SystemUI/res-keyguard/values-sw600dp/styles.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw600dp/styles.xml
rename to packages/SystemUI/res-keyguard/values-sw600dp/styles.xml
diff --git a/packages/Keyguard/res/values-sw720dp/dimens.xml b/packages/SystemUI/res-keyguard/values-sw720dp/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values-sw720dp/dimens.xml
rename to packages/SystemUI/res-keyguard/values-sw720dp/dimens.xml
diff --git a/packages/SystemUI/res-keyguard/values-ta/strings.xml b/packages/SystemUI/res-keyguard/values-ta/strings.xml
new file mode 100644
index 0000000..9c25e5d
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ta/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"உள்ளீட்டு முறையை மாற்றும் பொத்தான்."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-te/strings.xml b/packages/SystemUI/res-keyguard/values-te/strings.xml
new file mode 100644
index 0000000..eb47024
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-te/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ఇన్‌పుట్ పద్ధతి మార్చే బటన్."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-th/strings.xml b/packages/SystemUI/res-keyguard/values-th/strings.xml
new file mode 100644
index 0000000..0f55a44
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-th/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ปุ่มสลับวิธีการป้อนข้อมูล"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-tl/strings.xml b/packages/SystemUI/res-keyguard/values-tl/strings.xml
new file mode 100644
index 0000000..c587b94
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-tl/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Ilipat ang button na pamamaraan ng pag-input."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-tr/strings.xml b/packages/SystemUI/res-keyguard/values-tr/strings.xml
new file mode 100644
index 0000000..3e2bd22
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-tr/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Giriş yöntemini değiştirme düğmesi."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-uk/strings.xml b/packages/SystemUI/res-keyguard/values-uk/strings.xml
new file mode 100644
index 0000000..b1c82ce
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-uk/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Кнопка перемикання методу введення."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ur/strings.xml b/packages/SystemUI/res-keyguard/values-ur/strings.xml
new file mode 100644
index 0000000..959a2bd
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-ur/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"اندراج کا طریقہ سوئچ کرنے کا بٹن۔"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-uz/strings.xml b/packages/SystemUI/res-keyguard/values-uz/strings.xml
new file mode 100644
index 0000000..6391e2b
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-uz/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Kiritish uslubi tugmasini almashtirish."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-vi/strings.xml b/packages/SystemUI/res-keyguard/values-vi/strings.xml
new file mode 100644
index 0000000..e2d0d22
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-vi/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Nút chuyển phương thức nhập."</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-zh-rCN/strings.xml b/packages/SystemUI/res-keyguard/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..68624b1
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-zh-rCN/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"输入法切换按钮。"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-zh-rHK/strings.xml b/packages/SystemUI/res-keyguard/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..94c9a2d
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-zh-rHK/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"切換輸入法按鈕。"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-zh-rTW/strings.xml b/packages/SystemUI/res-keyguard/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..94c9a2d
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-zh-rTW/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"切換輸入法按鈕。"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-zu/strings.xml b/packages/SystemUI/res-keyguard/values-zu/strings.xml
new file mode 100644
index 0000000..6bd709e
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-zu/strings.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, 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"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for app_name (3171996292755059205) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_code (3420548423949593123) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_code (670683628782925409) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_puk_prompt (3747778500166059332) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_prompt (8188243197504453830) -->
+    <skip />
+    <!-- no translation found for keyguard_password_entry_touch_hint (5790410752696806482) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_password_code (595980919238127672) -->
+    <skip />
+    <!-- no translation found for keyguard_password_enter_pin_password_code (7504123374204446086) -->
+    <skip />
+    <!-- no translation found for keyguard_password_wrong_pin_code (6535018036285012028) -->
+    <skip />
+    <!-- no translation found for keyguard_charged (2222329688813033109) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in (89308975354638682) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_fast (8869226755413795173) -->
+    <skip />
+    <!-- no translation found for keyguard_plugged_in_charging_slowly (6637043106038550407) -->
+    <skip />
+    <!-- no translation found for keyguard_low_battery (9218432555787624490) -->
+    <skip />
+    <!-- no translation found for keyguard_instructions_when_pattern_disabled (8566679946700751371) -->
+    <skip />
+    <!-- no translation found for keyguard_network_locked_message (6743537524631420759) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message_short (6327533369959764518) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (4550152848200783542) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_message (6585414237800161146) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions (7350295932015220392) -->
+    <skip />
+    <!-- no translation found for keyguard_missing_sim_instructions_long (589889372883904477) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_message_short (654102080186420706) -->
+    <skip />
+    <!-- no translation found for keyguard_permanent_disabled_sim_instructions (4683178224791318347) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_locked_message (953766009432168127) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_puk_locked_message (1772789643694942073) -->
+    <skip />
+    <!-- no translation found for keyguard_sim_unlock_progress_dialog_message (3586601150825821675) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_pin_area (703175752097279029) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_pin_area (912702510825058921) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_sim_puk_area (136979425761438705) -->
+    <skip />
+    <!-- no translation found for keyguard_accessibility_next_alarm (5835196989158584991) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_delete (6883116827512721630) -->
+    <skip />
+    <!-- no translation found for keyboardview_keycode_enter (4505833604411016668) -->
+    <skip />
+    <!-- no translation found for kg_forgot_pattern_button_text (534245177645252620) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pattern (7620081431514773802) -->
+    <skip />
+    <!-- no translation found for kg_wrong_password (4580683060277329277) -->
+    <skip />
+    <!-- no translation found for kg_wrong_pin (4785660766909463466) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_attempts_countdown (527455490371878356) -->
+    <skip />
+    <!-- no translation found for kg_pattern_instructions (5547646893001491340) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions (1795013002231184046) -->
+    <skip />
+    <!-- no translation found for kg_sim_pin_instructions_multi (1586316574649150223) -->
+    <skip />
+    <!-- no translation found for kg_pin_instructions (4069609316644030034) -->
+    <skip />
+    <!-- no translation found for kg_password_instructions (136952397352976538) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint (2288964170039899277) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_puk_hint_multi (1373131883510840794) -->
+    <skip />
+    <!-- no translation found for kg_puk_enter_pin_hint (3137789674920391087) -->
+    <skip />
+    <!-- no translation found for kg_enter_confirm_pin_hint (3089485999116759671) -->
+    <skip />
+    <!-- no translation found for kg_sim_unlock_progress_dialog_message (4471738151810900114) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_pin_hint (3057533256729513335) -->
+    <skip />
+    <!-- no translation found for kg_invalid_sim_puk_hint (6003602401368264144) -->
+    <skip />
+    <!-- no translation found for kg_invalid_puk (5399287873762592502) -->
+    <skip />
+    <!-- no translation found for kg_invalid_confirm_pin_hint (5672736555427444330) -->
+    <skip />
+    <!-- no translation found for kg_login_too_many_attempts (6604574268387867255) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pin_attempts_dialog_message (8637788033282252027) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_password_attempts_dialog_message (7724148763268377734) -->
+    <skip />
+    <!-- no translation found for kg_too_many_failed_pattern_attempts_dialog_message (4820967667848302092) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (1629351522209932316) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_wipe (3921998703529189931) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (4694232971224663735) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_wiping (2365964340830006961) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (1365418870560228936) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_user (2151286957817486128) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (5464020754932560928) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_user (6171564974118059) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (9154513795928824239) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_erase_profile (2162434417489128282) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8966727588974691544) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_now_erasing_profile (8476407539834855) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (956706236554092172) -->
+    <skip />
+    <!-- no translation found for kg_failed_attempts_almost_at_login (8364140853305528449) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code_pukked (3389829202093674267) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_pin_code (4314341367727055967) -->
+    <!-- no translation found for kg_password_wrong_puk_code_dead (3329017604125179374) -->
+    <skip />
+    <!-- no translation found for kg_password_wrong_puk_code (2287504898931957513) -->
+    <!-- no translation found for kg_password_pin_failed (8769990811451236223) -->
+    <skip />
+    <!-- no translation found for kg_password_puk_failed (1331621440873439974) -->
+    <skip />
+    <!-- no translation found for kg_pin_accepted (7637293533973802143) -->
+    <skip />
+    <!-- no translation found for keyguard_carrier_default (4274828292998453695) -->
+    <skip />
+    <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Vula indlela yokungena yenkinobho"</string>
+    <!-- no translation found for airplane_mode (3807209033737676010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pattern (7246972020562621506) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_pin (6303592361322290145) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_restart_password (6984641181515902406) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pattern (5304487696073914063) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_pin (8851462864335757813) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_timeout_password (6563904839641583441) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pattern (3398054847288438444) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_pin (7426368139226961699) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_switch_profiles_password (8383831046318421845) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_device_admin (2438626748767361010) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_user_request (8236951765212462286) -->
+    <skip />
+    <!-- no translation found for kg_prompt_reason_time_pattern (71299470072448533) -->
+    <!-- no translation found for kg_prompt_reason_time_pin (34586942088144385) -->
+    <!-- no translation found for kg_prompt_reason_time_password (257297696215346527) -->
+    <!-- no translation found for fingerprint_not_recognized (348813995267914625) -->
+    <skip />
+</resources>
diff --git a/packages/Keyguard/res/values/alias.xml b/packages/SystemUI/res-keyguard/values/alias.xml
similarity index 100%
rename from packages/Keyguard/res/values/alias.xml
rename to packages/SystemUI/res-keyguard/values/alias.xml
diff --git a/packages/Keyguard/res/values/arrays.xml b/packages/SystemUI/res-keyguard/values/arrays.xml
similarity index 100%
rename from packages/Keyguard/res/values/arrays.xml
rename to packages/SystemUI/res-keyguard/values/arrays.xml
diff --git a/packages/Keyguard/res/values/attrs.xml b/packages/SystemUI/res-keyguard/values/attrs.xml
similarity index 100%
rename from packages/Keyguard/res/values/attrs.xml
rename to packages/SystemUI/res-keyguard/values/attrs.xml
diff --git a/packages/Keyguard/res/values/bools.xml b/packages/SystemUI/res-keyguard/values/bools.xml
similarity index 100%
rename from packages/Keyguard/res/values/bools.xml
rename to packages/SystemUI/res-keyguard/values/bools.xml
diff --git a/packages/Keyguard/res/values/colors.xml b/packages/SystemUI/res-keyguard/values/colors.xml
similarity index 100%
rename from packages/Keyguard/res/values/colors.xml
rename to packages/SystemUI/res-keyguard/values/colors.xml
diff --git a/packages/Keyguard/res/values/config.xml b/packages/SystemUI/res-keyguard/values/config.xml
similarity index 100%
rename from packages/Keyguard/res/values/config.xml
rename to packages/SystemUI/res-keyguard/values/config.xml
diff --git a/packages/Keyguard/res/values/dimens.xml b/packages/SystemUI/res-keyguard/values/dimens.xml
similarity index 100%
rename from packages/Keyguard/res/values/dimens.xml
rename to packages/SystemUI/res-keyguard/values/dimens.xml
diff --git a/packages/Keyguard/res/values/donottranslate.xml b/packages/SystemUI/res-keyguard/values/donottranslate.xml
similarity index 100%
rename from packages/Keyguard/res/values/donottranslate.xml
rename to packages/SystemUI/res-keyguard/values/donottranslate.xml
diff --git a/packages/Keyguard/res/values/strings.xml b/packages/SystemUI/res-keyguard/values/strings.xml
similarity index 100%
rename from packages/Keyguard/res/values/strings.xml
rename to packages/SystemUI/res-keyguard/values/strings.xml
diff --git a/packages/Keyguard/res/values/styles.xml b/packages/SystemUI/res-keyguard/values/styles.xml
similarity index 100%
rename from packages/Keyguard/res/values/styles.xml
rename to packages/SystemUI/res-keyguard/values/styles.xml
diff --git a/packages/SystemUI/res/layout/keyguard_bottom_area.xml b/packages/SystemUI/res/layout/keyguard_bottom_area.xml
index 078f9d7..fc1271c 100644
--- a/packages/SystemUI/res/layout/keyguard_bottom_area.xml
+++ b/packages/SystemUI/res/layout/keyguard_bottom_area.xml
@@ -66,7 +66,6 @@
         android:layout_height="@dimen/keyguard_affordance_height"
         android:layout_width="@dimen/keyguard_affordance_width"
         android:layout_gravity="bottom|end"
-        android:tint="#ffffffff"
         android:src="@drawable/ic_camera_alt_24dp"
         android:scaleType="center"
         android:contentDescription="@string/accessibility_camera_button" />
@@ -76,7 +75,6 @@
         android:layout_height="@dimen/keyguard_affordance_height"
         android:layout_width="@dimen/keyguard_affordance_width"
         android:layout_gravity="bottom|start"
-        android:tint="#ffffffff"
         android:src="@drawable/ic_phone_24dp"
         android:scaleType="center"
         android:contentDescription="@string/accessibility_phone_button" />
diff --git a/packages/SystemUI/res/layout/notification_guts_importance_text.xml b/packages/SystemUI/res/layout/notification_guts_importance_text.xml
deleted file mode 100644
index 5df4e0a..0000000
--- a/packages/SystemUI/res/layout/notification_guts_importance_text.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright 2016, 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:layout_width="match_parent"
-    android:layout_height="@dimen/notification_inline_importance_height"
-    android:paddingTop="4dp"
-    android:orientation="vertical">
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:ellipsize="end"
-        android:textAlignment="viewStart"
-        android:singleLine="true"
-        android:text="@string/high_importance"
-        android:textAppearance="@style/TextAppearance.NotificationGuts.Primary" />
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:ellipsize="end"
-        android:textAlignment="viewStart"
-        android:singleLine="true"
-        android:text="@string/notification_importance_high"
-        android:textAppearance="@style/TextAppearance.NotificationGuts.Secondary" />
-</LinearLayout>
diff --git a/packages/SystemUI/res/layout/notification_info.xml b/packages/SystemUI/res/layout/notification_info.xml
index 9770ecc..31bd8b9 100644
--- a/packages/SystemUI/res/layout/notification_info.xml
+++ b/packages/SystemUI/res/layout/notification_info.xml
@@ -28,89 +28,73 @@
         android:background="@color/notification_guts_bg_color"
         android:theme="@*android:style/Theme.DeviceDefault.Light">
 
-    <!-- header -->
-    <RelativeLayout
+    <!-- Package Info -->
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingTop="20dp"
-        android:paddingEnd="8dp"
-        android:paddingBottom="15dp"
-        android:id="@+id/notification_guts_header">
+        android:orientation="horizontal"
+        android:paddingTop="16dp"
+        android:paddingBottom="16dp" >
+        <ImageView
+            android:id="@+id/pkgicon"
+            android:layout_width="18dp"
+            android:layout_height="18dp"
+            android:layout_marginEnd="6dp"
+            android:contentDescription="@null"
+            android:scaleType="fitCenter" />
         <TextView
             android:id="@+id/pkgname"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_alignParentStart="true"
             style="@style/TextAppearance.NotificationGuts.Secondary" />
         <TextView
+            android:id="@+id/pkg_group_divider"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="2dp"
+            android:layout_marginEnd="2dp"
+            android:text="@string/notification_header_divider_symbol_with_spaces"/>
+        <TextView
+            android:id="@+id/group_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="@style/TextAppearance.NotificationGuts.Secondary" />
+    </LinearLayout>
+
+    <!-- Channel Info -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingBottom="8dp"
+        android:orientation="horizontal">
+        <TextView
             android:id="@+id/channel_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_alignParentStart="true"
             android:layout_below="@id/pkgname"
             style="@style/TextAppearance.NotificationGuts.Header" />
         <Switch
             android:id="@+id/channel_enabled_switch"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
+            android:layout_gravity="end"
+            android:layout_weight="1"
             android:background="@null" />
-    </RelativeLayout>
-    <!-- Importance radio buttons -->
-    <LinearLayout
-        android:id="@+id/importance"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal">
-        <RadioGroup
-            android:id="@+id/importance_buttons"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingEnd="@*android:dimen/notification_content_margin_end">
-            <RadioButton
-                android:id="@+id/high_importance"
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/notification_inline_importance_height"
-                style="@style/TextAppearance.NotificationGuts.Radio"
-                android:buttonTint="@color/notification_guts_buttons" />
-            <RadioButton
-                android:id="@+id/default_importance"
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/notification_inline_importance_height"
-                style="@style/TextAppearance.NotificationGuts.Radio"
-                android:buttonTint="@color/notification_guts_buttons" />
-            <RadioButton
-                android:id="@+id/low_importance"
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/notification_inline_importance_height"
-                style="@style/TextAppearance.NotificationGuts.Radio"
-                android:buttonTint="@color/notification_guts_buttons" />
-            <RadioButton
-                android:id="@+id/min_importance"
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/notification_inline_importance_height"
-                style="@style/TextAppearance.NotificationGuts.Radio"
-                android:buttonTint="@color/notification_guts_buttons" />
-        </RadioGroup>
-        <LinearLayout
-            android:id="@+id/importance_buttons_text"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-            <include layout="@layout/notification_guts_importance_text"/>
-            <include layout="@layout/notification_guts_importance_text"/>
-            <include layout="@layout/notification_guts_importance_text"/>
-            <include layout="@layout/notification_guts_importance_text"/>
-        </LinearLayout>
     </LinearLayout>
-    <!-- Channel Disabled Text -->
+
+    <!-- Secondary Text - only one shows at a time -->
     <TextView
         android:id="@+id/channel_disabled"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/notification_channel_disabled"
+        style="@style/TextAppearance.NotificationGuts.SecondaryWarning" />
+    <TextView
+        android:id="@+id/num_channels_desc"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         style="@style/TextAppearance.NotificationGuts.Secondary" />
+
     <!-- Settings and Done buttons -->
     <LinearLayout
         android:layout_width="match_parent"
diff --git a/packages/SystemUI/res/layout/status_bar.xml b/packages/SystemUI/res/layout/status_bar.xml
index 63af3e0..c6452c0 100644
--- a/packages/SystemUI/res/layout/status_bar.xml
+++ b/packages/SystemUI/res/layout/status_bar.xml
@@ -21,6 +21,8 @@
 <com.android.systemui.statusbar.phone.PhoneStatusBarView
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/status_bar_height"
     android:id="@+id/status_bar"
     android:background="@drawable/system_bar_background"
     android:orientation="vertical"
diff --git a/packages/SystemUI/res/layout/super_status_bar.xml b/packages/SystemUI/res/layout/super_status_bar.xml
index c2686f8..51eefb6 100644
--- a/packages/SystemUI/res/layout/super_status_bar.xml
+++ b/packages/SystemUI/res/layout/super_status_bar.xml
@@ -59,9 +59,10 @@
         sysui:ignoreRightInset="true"
         android:importantForAccessibility="no"/>
 
-    <include layout="@layout/status_bar"
+    <FrameLayout
+        android:id="@+id/status_bar_container"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/status_bar_height" />
+        android:layout_height="wrap_content" />
 
     <include layout="@layout/brightness_mirror" />
 
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index e647ade..0e351f5 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Toeganklikheid"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Oorsig"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Deursoek"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Bladsy <xliff:g id="ID_1">%1$d</xliff:g> van <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Vou uit"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimeer"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Maak toe"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Foon raak warm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Sommige kenmerke is beperk terwyl foon afkoel"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Jou foon sal outomaties probeer om af te koel. Jy kan steeds jou foon gebruik, maar dit sal dalk stadiger wees.\n\nJou foon sal normaalweg werk nadat dit afgekoel het."</string>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index 392cd01..c5fac77 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ተደራሽነት"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"አጠቃላይ ዕይታ"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ፈልግ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ካሜራ"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"ገጽ <xliff:g id="ID_1">%1$d</xliff:g> ከ <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"ዘርጋ"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"አሳንስ"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"ዝጋ"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ስልኩ እየሞቀ ነው"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ስልኩ እየቀዘቀዘ ሳለ አንዳንድ ባህሪዎች ይገደባሉ"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"የእርስዎ ስልክ በራስ-ሰር ለመቀዝቀዝ ይሞክራል። አሁንም ስልክዎን መጠቀም ይችላሉ፣ ነገር ግን ሊንቀራፈፍ ይችላል።\n\nአንዴ ስልክዎ ከቀዘቀዘ በኋላ በመደበኝነት ያሄዳል።"</string>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index f9073f5..2ac6b5f 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -87,6 +87,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_accessibility_button" msgid="7601252764577607915">"إمكانية الوصول"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"النظرة عامة"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"بحث"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"الكاميرا"</string>
@@ -679,8 +680,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"الصفحة <xliff:g id="ID_1">%1$d</xliff:g> من <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"توسيع"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"تصغير"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"إغلاق"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"تزداد درجة حرارة الهاتف"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"يتم تقييد عمل بعض الميزات إلى أن تنخفض درجة حرارة الهاتف"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"سيحاول الهاتف تخفيض درجة حرارته تلقائيًا. سيظل بإمكانك استخدام هاتفك، ولكن قد يعمل بشكل أبطأ.\n\nبعد أن تنخفض درجة حرارة الهاتف، سيستعيد سرعته المعتادة."</string>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index ba67b3a..77705b1 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -83,6 +83,7 @@
     <string name="accessibility_back" msgid="567011538994429120">"Geri"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Ana səhifə"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menyu"</string>
+    <string name="accessibility_accessibility_button" msgid="7601252764577607915">"Əlçatımlılıq"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"İcmal"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Axtar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> səhifədən <xliff:g id="ID_1">%1$d</xliff:g> səhifə"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Genişləndirin"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Kiçildin"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Bağlayın"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon qızmağa başlayır"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Telefon soyuyana kimi bəzi funksiyalar məhdudlaşdırılır"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefonunuz avtomatik olaraq soyumağa başlayacaq. Telefon istifadəsinə davam edə bilərsiniz, lakin sürəti yavaşlaya bilər.\n\nTelefonunuz soyuduqdan sonra normal işləyəcək."</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index 2e01995..9ea5f4c 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -84,6 +84,7 @@
     <string name="accessibility_back" msgid="567011538994429120">"Nazad"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Početna"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Meni"</string>
+    <string name="accessibility_accessibility_button" msgid="7601252764577607915">"Pristupačnost"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Pregled"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pretražite"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g>. strana od <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Proširi"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Umanji"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Zatvori"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon se zagrejao"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Neke funkcije su ograničene dok se telefon ne ohladi"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefon će automatski pokušati da se ohladi. I dalje ćete moći da koristite telefon, ali će sporije reagovati.\n\nKada se telefon ohladi, normalno će raditi."</string>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 60f042e..8f9c916 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -85,6 +85,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_accessibility_button" msgid="7601252764577607915">"Спецыяльныя магчымасці"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Агляд"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Пошук"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -677,8 +678,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Старонка <xliff:g id="ID_1">%1$d</xliff:g> з <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Разгарнуць"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Згарнуць"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Закрыць"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Тэлефон награваецца"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Некаторыя функцыі абмежаваны, пакуль тэлефон астывае"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Ваш тэлефон аўтаматычна паспрабуе астыць. Вы можаце па-ранейшаму карыстацца сваім тэлефонам, але ён можа працаваць больш павольна.\n\nПасля таго як ваш тэлефон астыне, ён будзе працаваць у звычайным рэжыме."</string>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 2ebac75..58c02f1 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"Достъпност"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Общ преглед"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Търсене"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Страница <xliff:g id="ID_1">%1$d</xliff:g> от <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Разгъване"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Намаляване"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Затваряне"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Телефонът загрява"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Някои функции са ограничени, докато телефонът се охлажда"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Телефонът ви автоматично ще направи опит за охлаждане. Пак можете да го използвате, но той може да работи по-бавно.\n\nСлед като се охлади, ще работи нормално."</string>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index ed86d3d..36b2e5c 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"অ্যাক্সেসযোগ্যতা"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"এক নজরে"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"অনুসন্ধান করুন"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ক্যামেরা"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g>টির মধ্যে <xliff:g id="ID_1">%1$d</xliff:g> নং পৃষ্ঠা"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"প্রসারিত করুন"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ছোটো করুন"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"বন্ধ করুন"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ফোনটি গরম হচ্ছে"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ফোনটি ঠান্ডা হওয়ার সময় কিছু বৈশিষ্ট্য সীমিত হতে পারে"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"আপনার ফোনটি নিজে থেকেই ঠান্ডা হওয়ার চেষ্টা করবে৷ আপনি তবুও আপনার ফোন ব্যবহার করতে পারেন, কিন্তু এটি একটু ধীরে চলতে পারে৷\n\nআপনার ফোনটি পুরোপুরি ঠান্ডা হয়ে গেলে এটি স্বাভাবিকভাবে চলবে৷"</string>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index d17775c..b678025 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -84,6 +84,7 @@
     <string name="accessibility_back" msgid="567011538994429120">"Nazad"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Dugme za početnu stranicu"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Dugme Meni"</string>
+    <string name="accessibility_accessibility_button" msgid="7601252764577607915">"Pristupačnost"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Pregled"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Traži"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -675,8 +676,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Stranica <xliff:g id="ID_1">%1$d</xliff:g> od <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Proširi"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Umanji"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Zatvori"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon se pregrijava"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Neke funkcije su ograničene dok se telefon hladi"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Vaš telefon će se automatski pokušati ohladiti. I dalje možete koristi telefon, ali će možda raditi sporije.\n\nNakon što se ohladi, telefon će normalno raditi."</string>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 009942c..9f29fa8 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accessibilitat"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Visió general"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Cerca"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Càmera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Pàgina <xliff:g id="ID_1">%1$d</xliff:g> (<xliff:g id="ID_2">%2$d</xliff:g> en total)"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Desplega"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimitza"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Tanca"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"El telèfon s\'està escalfant"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Algunes funcions estaran limitades mentre el telèfon es refreda"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"El telèfon provarà de refredar-se automàticament. Podràs continuar utilitzant-lo, però és possible que funcioni més lentament.\n\nUn cop s\'hagi refredat, funcionarà amb normalitat."</string>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index dc3df04..54b146d 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -85,6 +85,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Přístupnost"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Přehled"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Hledat"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparát"</string>
@@ -677,8 +678,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Stránka <xliff:g id="ID_1">%1$d</xliff:g> z <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Rozbalit"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimalizovat"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Zavřít"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon se zahřívá"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Některé funkce jsou při chladnutí omezeny"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefon se automaticky pokusí vychladnout. Lze jej nadále používat, ale může být pomalejší.\n\nAž telefon vychladne, bude fungovat normálně."</string>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index dda65e2..b2b7fa3 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Hjælpefunktioner"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Oversigt"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Søg"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Side <xliff:g id="ID_1">%1$d</xliff:g> af <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Udvid"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimer"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Luk"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefonen er ved at blive varm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Nogle funktioner er begrænsede, mens telefonen køler ned"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Din telefon forsøger automatisk at køle ned. Du kan stadig bruge telefonen, men den kører muligvis langsommere.\n\nNår din telefon er kølet ned, fungerer den normalt igen."</string>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 5509a57..111991d 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Bedienungshilfen"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Übersicht"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Suchen"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Seite <xliff:g id="ID_1">%1$d</xliff:g> von <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Maximieren"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimieren"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Schließen"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Smartphone wird warm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Einige Funktionen sind während der Abkühlphase des Smartphones eingeschränkt"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Dein Smartphone kühlt sich automatisch ab. Du kannst dein Smartphone weiterhin nutzen, aber es reagiert möglicherweise langsamer.\n\nSobald dein Smartphone abgekühlt ist, funktioniert es wieder normal."</string>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 1de2dae..567aa05 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"Προσβασιμότητα"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Επισκόπηση"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Αναζήτηση"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Φωτογραφική μηχανή"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Σελίδα <xliff:g id="ID_1">%1$d</xliff:g> από <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Ανάπτυξη"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Ελαχιστοποίηση"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Κλείσιμο"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Αύξηση θερμοκρασίας τηλεφώνου"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Ορισμένες λειτουργίες περιορίζονται κατά τη μείωση της θερμοκρασίας"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Το τηλέφωνό σας θα προσπαθήσει να μειώσει αυτόματα τη θερμοκρασία. Μπορείτε να εξακολουθήσετε να το χρησιμοποιείτε, αλλά είναι πιθανό να λειτουργεί πιο αργά.\n\nΜόλις μειωθεί η θερμοκρασία του τηλεφώνου σας, θα λειτουργεί ξανά κανονικά."</string>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index a79caad..25fdb81 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accessibility"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Overview"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Page <xliff:g id="ID_1">%1$d</xliff:g> of <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Expand"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimise"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Close"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Phone is getting warm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Some features limited while phone cools down"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Your phone will automatically try to cool down. You can still use your phone, but it may run more slowly.\n\nOnce your phone has cooled down, it will run normally."</string>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index a79caad..25fdb81 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accessibility"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Overview"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Page <xliff:g id="ID_1">%1$d</xliff:g> of <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Expand"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimise"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Close"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Phone is getting warm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Some features limited while phone cools down"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Your phone will automatically try to cool down. You can still use your phone, but it may run more slowly.\n\nOnce your phone has cooled down, it will run normally."</string>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index a79caad..25fdb81 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accessibility"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Overview"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Page <xliff:g id="ID_1">%1$d</xliff:g> of <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Expand"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimise"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Close"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Phone is getting warm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Some features limited while phone cools down"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Your phone will automatically try to cool down. You can still use your phone, but it may run more slowly.\n\nOnce your phone has cooled down, it will run normally."</string>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 1c4d42a..94efa8b 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accesibilidad"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Recientes"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Página <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Expandir"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizar"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Cerrar"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"El teléfono se está calentando"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Se limitarán algunas funciones mientras se enfría el teléfono"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Tu teléfono intentará enfriarse automáticamente. Podrás usarlo, pero es posible que funcione más lento.\n\nUna vez que se haya enfriado, volverá a funcionar correctamente."</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 28299b7..6e0cdaa 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accesibilidad"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Aplicaciones recientes"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Página <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Mostrar"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizar"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Cerrar"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"El teléfono se está calentando"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Se limitan algunas funciones mientras el teléfono se enfría"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"El teléfono intentará enfriarse. Puedes seguir utilizándolo, pero es posible que funcione con mayor lentitud.\n\nUna vez que se haya enfriado, funcionará con normalidad."</string>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index 9a888c5..dc01393 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Juurdepääsetavus"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Ülevaade"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Otsing"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kaamera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Leht <xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Laiendamine"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimeeri"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Sule"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon soojeneb"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Mõned funktsioonid on piiratud, kuni telefon jahtub"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Teie telefon proovib automaatselt maha jahtuda. Saate telefoni ikka kasutada, kuid see võib olla aeglasem.\n\nKui telefon on jahtunud, töötab see tavapäraselt."</string>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 45ec067..df17eae 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Erabilerraztasuna"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Ikuspegi orokorra"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Bilatu"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g> orria"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Zabaldu"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizatu"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Itxi"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Berotzen ari da telefonoa"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Eginbide batzuk ezingo dira erabili telefonoa hoztu arte"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefonoa automatikoki saiatuko da hozten. Hoztu bitartean, telefonoa erabiltzen jarrai dezakezu, baina mantsoago funtziona lezake.\n\nTelefonoaren tenperatura jaitsi bezain laster, ohi bezala funtzionatzen jarraituko du."</string>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index cd125b5..63da9dc 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"دسترس‌پذیری"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"نمای کلی"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"جستجو"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"دوربین"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"صفحه <xliff:g id="ID_1">%1$d</xliff:g> از <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"بزرگ کردن"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"کوچک کردن"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"بستن"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"تلفن درحال گرم شدن است"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"وقتی تلفن درحال خنک شدن است، بعضی از قابلیت‌ها محدود می‌شوند"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"تلفنتان به‌طور خودکار سعی می‌کند خنک شود. همچنان می‌توانید از تلفنتان استفاده کنید، اما ممکن است کندتر عمل کند.\n\nوقتی تلفن خنک شد، عملکرد عادی‌اش از سرگرفته می‌شود."</string>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 623ee51..35ec9e2 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Esteettömyys"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Viimeisimmät"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Haku"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Sivu <xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Laajenna"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Pienennä"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Sulje"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Puhelin lämpenee"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Joidenkin ominaisuuksien käyttöä on rajoitettu puhelimen jäähtymisen aikana."</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Puhelimesi yrittää automaattisesti jäähdyttää itsensä. Voit silti käyttää puhelinta, mutta se voi toimia hitaammin.\n\nKun puhelin on jäähtynyt, se toimii normaalisti."</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 5d4867c..75ddcad 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accessibilité"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Aperçu"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Rechercher"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Appareil photo"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Page <xliff:g id="ID_1">%1$d</xliff:g> sur <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Développer"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Réduire"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Fermer"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Le téléphone commence à chauffer"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Les fonctionnalités sont limitées pendant que le téléphone refroidit"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Votre téléphone va essayer de se refroidir automatiquement. Vous pouvez toujours l\'utiliser, mais il risque d\'être plus lent.\n\nUne fois refroidi, il fonctionnera normalement."</string>
@@ -685,7 +685,6 @@
     <string name="lockscreen_unlock" msgid="4934466194763269051">"Demander le mot de passe"</string>
     <string name="notification_channel_alerts" msgid="4496839309318519037">"Alertes"</string>
     <string name="notification_channel_screenshot" msgid="6314080179230000938">"Saisies d\'écran"</string>
-    <!-- no translation found for notification_channel_general (4525309436693914482) -->
-    <skip />
+    <string name="notification_channel_general" msgid="4525309436693914482">"Messages généraux"</string>
     <string name="notification_channel_storage" msgid="3077205683020695313">"Stockage"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 97748a2..a78d8af 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accessibilité"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Aperçu"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Rechercher"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Appareil photo"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Page <xliff:g id="ID_1">%1$d</xliff:g> sur <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Développer"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Réduire"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Fermer"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Le téléphone chauffe"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Fonctionnalités limitées pendant le refroidissement du téléphone"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Votre téléphone va essayer de se refroidir automatiquement. Vous pouvez toujours l\'utiliser, mais il risque d\'être plus lent.\n\nUne fois refroidi, il fonctionnera normalement."</string>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 5821bb9..190a68b 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accesibilidade"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Visión xeral"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Páxina <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Despregar"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizar"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Pechar"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"O teléfono está quentando"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"O uso dalgunhas funcións é limitado mentres o teléfono arrefría"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"O teléfono tentará arrefriar automaticamente. Podes utilizalo, pero é probable que funcione máis lento.\n\nUnha vez que arrefríe, funcionará con normalidade."</string>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 5fedb2d..003ddec 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ઍક્સેસિબિલિટી"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"વિહંગાવલોકન"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"શોધો"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"કૅમેરો"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> માંથી <xliff:g id="ID_1">%1$d</xliff:g> પૃષ્ઠ"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"વિસ્તૃત કરો"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"નાનું કરો"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"બંધ કરો"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ફોન ગરમ થઈ રહ્યો છે"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ફોન ઠંડો થાય ત્યાં સુધી કેટલીક સુવિધાઓ મર્યાદિત હોય છે"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"તમારો ફોન આપમેળે ઠંડો થવાનો પ્રયાસ કરશે. તમે હજી પણ તમારા ફોનનો ઉપયોગ કરી શકો છો, પરંતુ તે કદાચ થોડો ધીમો ચાલે.\n\nતમારો ફોન ઠંડો થઈ જવા પર, તે સામાન્ય રીતે ચાલશે."</string>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index b6cba3c..dd9e4c9 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"एक्सेस-योग्यता"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"अवलोकन"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"खोजें"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"कैमरा"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"पेज <xliff:g id="ID_2">%2$d</xliff:g> में से <xliff:g id="ID_1">%1$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"विस्तृत करें"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"छोटा करें"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"बंद करें"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"फ़ोन गर्म हो रहा है"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"फ़ोन के ठंडा होने के दौरान कुछ सुविधाएं सीमित होती हैं"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"आपका फ़ोन अपने आप ठंडा होने की कोशिश करेगा. आप अभी भी अपने फ़ोन का उपयोग कर सकते हैं, लेकिन हो सकता है कि यह धीमी गति से चले.\n\nठंडा हो जाने पर आपका फ़ोन सामान्य रूप से चलेगा."</string>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 85a744d..2547a2c 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -84,6 +84,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Pristupačnost"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Pregled"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pretraži"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparat"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Stranica <xliff:g id="ID_1">%1$d</xliff:g> od <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Proširivanje"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimiziraj"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Zatvori"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon se zagrijava"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Neke su značajke ograničene dok se telefon hladi"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefon će se automatski pokušati ohladiti. Možete ga nastaviti koristiti, no mogao bi raditi sporije.\n\nKad se ohladi, radit će normalno."</string>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 81f3d5e..0c12c9c 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Kisegítő lehetőségek"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Áttekintés"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Keresés"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g>. oldal, összesen: <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Kibontás"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Kis méret"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Bezárás"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"A telefon melegszik"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Bizonyos funkciók korlátozottan működnek a telefon hűlése közben"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"A telefon automatikusan megpróbál lehűlni. Továbbra is tudja használni a telefont, de elképzelhető, hogy működése lelassul.\n\nAmint a telefon lehűl, újra a szokásos módon működik majd."</string>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index e5169f2..de8abfc 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"Մատչելիություն"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Համատեսք"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Որոնել"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Ֆոտոխցիկ"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Էջ <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Ընդարձակել"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Ծալել"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Փակել"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Հեռախոսը տաքանում է"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Հովանալու ընթացքում հեռախոսի որոշ գործառույթներ սահմանափակ են"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Ձեր հեռախոսն ավտոմատ կերպով կփորձի hովանալ: Կարող եք շարունակել օգտագործել հեռախոսը, սակայն հնարավոր է, որ այն ավելի դանդաղ աշխատի:\n\nՀովանալուց հետո հեռախոսը կաշխատի կանոնավոր կերպով:"</string>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index a2d38e9..2ccfd7c 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Aksesibilitas"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Ringkasan"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Telusuri"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Halaman <xliff:g id="ID_1">%1$d</xliff:g> dari <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Luaskan"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimalkan"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Tutup"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Ponsel menjadi hangat"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Beberapa fitur dibatasi saat ponsel mendingin"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Ponsel akan otomatis mencoba mendingin. Anda tetap dapat menggunakan ponsel, tetapi mungkin berjalan lebih lambat.\n\nSetelah dingin, ponsel akan berjalan seperti biasa."</string>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index b0dacfc..6bde28d 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Aðgengi"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Yfirlit"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Leita"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Myndavél"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Blaðsíða <xliff:g id="ID_1">%1$d</xliff:g> af <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Stækka"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minnka"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Loka"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Síminn er að hitna"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Sumir eiginleikar eru takmarkaðir þegar síminn kælir sig"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Síminn reynir sjálfkrafa að kæla sig. Þú getur enn notað símann en hann gæti verið hægvirkari.\n\nEftir að síminn hefur kælt sig niður virkar hann eðlilega."</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 8dacab2..e9f560a 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accessibilità"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Panoramica"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Cerca"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotocamera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Pagina <xliff:g id="ID_1">%1$d</xliff:g> di <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Espandi"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Riduci a icona"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Chiudi"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Il telefono si sta scaldando"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Alcune funzioni limitate durante il raffreddamento del telefono"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Il telefono cercherà automaticamente di raffreddarsi. Puoi comunque usarlo, ma potrebbe essere più lento.\n\nUna volta raffreddato, il telefono funzionerà normalmente."</string>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index d39a07a..246f46d 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -85,6 +85,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_accessibility_button" msgid="7601252764577607915">"נגישות"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"סקירה"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"חפש"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"מצלמה"</string>
@@ -675,8 +676,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"דף <xliff:g id="ID_1">%1$d</xliff:g> מתוך <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"הרחב"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"מזער"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"סגור"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"הטלפון מתחמם"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"חלק מהתכונות מוגבלות כל עוד הטלפון מתקרר"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"קירור הטלפון ייעשה באופן אוטומטי. תוכל עדיין להשתמש בטלפון, אבל ייתכן שהוא יפעל לאט יותר.\n\nהטלפון יחזור לפעול כרגיל לאחר שיתקרר."</string>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 9ea02b9..addf67c 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ユーザー補助機能"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"最近"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"検索"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"カメラ"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"ページ <xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"展開"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"最小化"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"閉じる"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"スマートフォンの温度が上昇中"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"スマートフォンのクールダウン中は一部の機能が制限されます"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"スマートフォンは自動的にクールダウンを行います。その間もスマートフォンを使用できますが、動作が遅くなる可能性があります。\n\nクールダウンが完了すると、通常どおり動作します。"</string>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index 30b503e..a939744 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"მარტივი წვდომა"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"მიმოხილვა"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ძიება"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"კამერა"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"გვერდი <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g>-დან"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"გაშლა"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ჩაკეცვა"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"დახურვა"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ტელეფონი ცხელდება"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ზოგიერთი ფუნქცია შეზღუდული იქნება, სანამ ტელეფონი გაგრილდება"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"თქვენი ტელეფონი გაგრილებას ავტომატურად შეეცდება. შეგიძლიათ გააგრძელოთ მისით სარგებლობა, თუმცა ტელეფონმა შეიძლება უფრო ნელა იმუშაოს.\n\nგაგრილების შემდგომ ის ჩვეულებრივად იმუშავებს."</string>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index cfcd2ec..c0bf680 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Арнайы мүмкіндіктер"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Шолу"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Іздеу"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> ішінен <xliff:g id="ID_1">%1$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Жаю"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Кішірейту"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Жабу"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Телефон қызуда"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Телефон толық суығанға дейін, кейбір функциялардың жұмысы шектеледі"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Телефон автоматты түрде суи бастайды. Оны пайдалана бере аласыз, бірақ ол баяуырақ жұмыс істеуі мүмкін.\n\nТелефон суығаннан кейін, оның жұмысы қалпына келеді."</string>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index a958258..88ad6d8 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ភាព​ងាយស្រួល"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"ទិដ្ឋភាព"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ស្វែងរក"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ម៉ាស៊ីន​ថត"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"ទំព័រ <xliff:g id="ID_1">%1$d</xliff:g> នៃ <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"ពង្រីក"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"បង្រួម"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"បិទ"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ទូរសព្ទ​នេះ​កំពុង​កើន​កម្តៅ"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"មុខងារ​មួយ​ចំនួន​នឹង​មិន​អាច​ប្រើ​បាន​ពេញលេញ​នោះ​ទេ ខណៈពេល​ដែល​ទូរសព្ទ​កំពុង​បញ្ចុះ​កម្តៅ"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"ទូរសព្ទ​របស់អ្នក​នឹង​ព្យាយាម​បញ្ចុះ​កម្តៅ​ដោយ​ស្វ័យប្រវត្តិ។ អ្នក​នៅតែ​អាច​ប្រើ​ទូរសព្ទ​របស់អ្នក​បាន​ដដែល​ ប៉ុន្តែ​វា​នឹង​ដំណើរ​ការ​យឺត​ជាង​មុន។\n\nបន្ទាប់​ពី​ទូរសព្ទ​របស់អ្នក​ត្រជាក់​ជាង​មុន​ហើយ វា​នឹង​ដំណើរការ​ដូច​ធម្មតា។"</string>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index ba681db..79c5695 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -83,6 +83,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"ಹಿಂದೆ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ಮುಖಪುಟ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"ಮೆನು"</string>
+    <!-- no translation found for accessibility_accessibility_button (7601252764577607915) -->
+    <skip />
     <string name="accessibility_recent" msgid="5208608566793607626">"ಸಮಗ್ರ ನೋಟ"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ಹುಡುಕಿ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ಕ್ಯಾಮರಾ"</string>
@@ -671,8 +673,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> ರಲ್ಲಿ <xliff:g id="ID_1">%1$d</xliff:g> ಪುಟ"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"ವಿಸ್ತೃತಗೊಳಿಸು"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ಕುಗ್ಗಿಸಿ"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"ಮುಚ್ಚಿ"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ಫೋನ್ ಬಿಸಿಯಾಗುತ್ತಿದೆ"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ಫೋನ್ ತಣ್ಣಗಾಗುವವರೆಗೂ ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"ನಿಮ್ಮ ಫೋನ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತಣ್ಣಗಾಗಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನೀವು ಈಗಲೂ ಬಳಸಬಹುದಾಗಿರುತ್ತದೆ, ಆದರೆ ಇದು ನಿಧಾನವಾಗಿರಬಹುದು.\n\nಒಮ್ಮೆ ನಿಮ್ಮ ಫೋನ್ ತಣ್ಣಗಾದ ನಂತರ ಇದು ಸಾಮಾನ್ಯ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ."</string>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index c5faa18..bc01b9e 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"접근성"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"최근 사용"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"검색"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"카메라"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g>페이지 중 <xliff:g id="ID_1">%1$d</xliff:g>페이지"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"펼치기"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"최소화"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"닫기"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"휴대전화 온도가 높음"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"휴대전화 온도를 낮추는 동안 일부 기능이 제한됩니다."</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"휴대전화 온도를 자동으로 낮추려고 시도합니다. 휴대전화를 계속 사용할 수는 있지만 작동이 느려질 수도 있습니다.\n\n휴대전화 온도가 낮아지면 정상적으로 작동됩니다."</string>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index 6f57a73..c1bc826 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"Атайын мүмкүнчүлүктөр"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Көз жүгүртүү"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Издөө"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> ичинен <xliff:g id="ID_1">%1$d</xliff:g>-бет"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Жайып көрсөтүү"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Кичирейтүү"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Жабуу"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Телефонуңуз ысып баратат"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Телефон сууганча айрым элементтердин иши чектелген"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Телефонуңуз автоматтык түрдө сууйт. Аны колдоно берсеңиз болот, бирок ал жайыраак иштеп калат.\n\nТелефонуңуз суугандан кийин адаттагыдай эле иштеп баштайт."</string>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index c7475bc..7111805 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"​ການ​ຊ່ວຍ​ເຂົ້າ​ເຖິງ"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"​ພາບ​ຮວມ"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ຊອກຫາ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ກ້ອງ"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g> ຈາກທັງໝົດ <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"ຂະຫຍາຍ"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ຫຍໍ້"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"ປິດ"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ໂທລະສັບກຳລັງຮ້ອນຂຶ້ນ"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ຄຸນສົມບັດບາງຢ່າງຖືກຈຳກັດໄວ້ເນື່ອງໃນເວລາຫຼຸດອຸນຫະພູມຂອງໂທລະສັບ"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"ໂທລະສັບຂອງທ່ານຈະພະຍາຍາມລົດອຸນຫະພູມລົງ. ທ່ານຍັງຄົງສາມາດໃຊ້ໂທລະສັບຂອງທ່ານໄດ້ຢູ່, ແຕ່ມັນຈະເຮັດວຽກຊ້າລົງ.\n\nເມື່ອໂທລະສັບຂອງທ່ານບໍ່ຮ້ອນຫຼາຍແລ້ວ, ມັນຈະກັບມາເຮັດວຽກຕາມປົກກະຕິ."</string>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index e6713f2..57db34a 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -85,6 +85,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Pritaikymas neįgaliesiems"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Apžvalga"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Ieškoti"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparatas"</string>
@@ -675,8 +676,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g> psl. iš <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Išskleisti"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Sumažinti"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Uždaryti"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefonas kaista"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Kai kurios funkcijos gali neveikti, kol telefonas vėsta"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefonas automatiškai bandys atvėsti. Telefoną vis tiek galėsite naudoti, tačiau jis gali veikti lėčiau.\n\nKai telefonas atvės, jis veiks įprastai."</string>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index ba6ce3c..3725060 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -84,6 +84,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Pieejamība"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Pārskats"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Meklēt"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g>. lpp. no <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Izvērst"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizēt"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Aizvērt"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Tālrunis kļūst silts"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Dažas funkcijas ir ierobežotas, kamēr tālrunis mēģina atdzist"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Jūsu tālrunis automātiski mēģinās atdzist. Jūs joprojām varat izmantot tālruni, taču tas, iespējams, darbosies lēnāk.\n\nTiklīdz tālrunis būs atdzisis, tas darbosies normāli."</string>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index 5308d65..624cafc 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"Пристапност"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Краток преглед"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Пребарај"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Страница <xliff:g id="ID_1">%1$d</xliff:g> од <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Проширете"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Минимизирај"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Затвори"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Телефонот се загрева"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Некои функции се ограничени додека телефонот се лади"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Телефонот автоматски ќе се обиде да се олади. Вие сепак ќе може да го користите, но тој може да работи побавно.\n\nОткако ќе се олади, ќе работи нормално."</string>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index cf32631..5fd5022 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -83,6 +83,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"മടങ്ങുക"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ഹോം"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"മെനു"</string>
+    <!-- no translation found for accessibility_accessibility_button (7601252764577607915) -->
+    <skip />
     <string name="accessibility_recent" msgid="5208608566793607626">"കാഴ്ച"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"തിരയൽ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ക്യാമറ"</string>
@@ -671,8 +673,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"പേജ് <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"വികസിപ്പിക്കുക"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ചെറുതാക്കുക‍"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"അടയ്‌ക്കുക"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ഫോൺ ചൂടായിക്കൊണ്ടിരിക്കുന്നു"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ഫോൺ തണുത്തുകൊണ്ടിരിക്കുമ്പോൾ ചില ഫീച്ചറുകൾ പരിമിതപ്പെടുത്തപ്പെടും"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"നിങ്ങളുടെ ഫോൺ സ്വയമേവ തണുക്കാൻ ശ്രമിക്കും. നിങ്ങൾക്ക് അപ്പോഴും ഫോൺ ഉപയോഗിക്കാമെങ്കിലും പ്രവർത്തനം മന്ദഗതിയിലായിരിക്കും.\n\nതണുത്തുകഴിഞ്ഞാൽ, ഫോൺ സാധാരണ ഗതിയിൽ പ്രവർത്തിക്കും."</string>
@@ -683,7 +684,6 @@
     <string name="lockscreen_unlock" msgid="4934466194763269051">"പാസ്‌വേഡ് ആവശ്യപ്പെടുക"</string>
     <string name="notification_channel_alerts" msgid="4496839309318519037">"അലേർട്ടുകൾ"</string>
     <string name="notification_channel_screenshot" msgid="6314080179230000938">"സ്‌ക്രീൻഷോട്ടുകൾ"</string>
-    <!-- no translation found for notification_channel_general (4525309436693914482) -->
-    <skip />
+    <string name="notification_channel_general" msgid="4525309436693914482">"പൊതുവായ സന്ദേശങ്ങൾ"</string>
     <string name="notification_channel_storage" msgid="3077205683020695313">"സ്റ്റോറേജ്"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 336429f..5e02cce 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -81,6 +81,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_accessibility_button" msgid="7601252764577607915">"Хүртээмж"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Тойм"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Хайх"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камер"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g>-н <xliff:g id="ID_1">%1$d</xliff:g>-р хуудас"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Дэлгэх"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Багасгах"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Хаах"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Утас халж эхэлж байна"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Таны утас хөрж байх зуур зарим онцлогийг хязгаарласан"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Таны утас автоматаар хөрөх болно. Та утсаа ашиглаж болох хэдий ч удаан ажиллаж болзошгүй.\n\nТаны утас хөрсний дараагаар хэвийн ажиллана."</string>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 7b09c9d..14eaf28 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"प्रवेशयोग्यता"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"विहंगावलोकन"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"शोधा"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"कॅमेरा"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"पृष्ठ <xliff:g id="ID_2">%2$d</xliff:g> पैकी <xliff:g id="ID_1">%1$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"विस्तृत करा"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"लहान करा"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"बंद करा"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"फोन ऊष्ण होत आहे"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"फोन थंड होत असताना काही वैशिष्‍ट्ये मर्यादित असतात"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"आपला फोन स्वयंचलितपणे थंड होईल. आपण अद्यापही आपला फोन वापरू शकता परंतु तो कदाचित धीमेपणे कार्य करेल.\n\nआपला फोन एकदा थंड झाला की, तो सामान्यपणे कार्य करेल."</string>
@@ -683,7 +683,6 @@
     <string name="lockscreen_unlock" msgid="4934466194763269051">"संकेतशब्दासाठी संकेत"</string>
     <string name="notification_channel_alerts" msgid="4496839309318519037">"सूचना"</string>
     <string name="notification_channel_screenshot" msgid="6314080179230000938">"स्क्रीनशॉट"</string>
-    <!-- no translation found for notification_channel_general (4525309436693914482) -->
-    <skip />
+    <string name="notification_channel_general" msgid="4525309436693914482">"सर्वसाधारण संदेश"</string>
     <string name="notification_channel_storage" msgid="3077205683020695313">"संचय"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 9ba75b2..5be0afd 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Kebolehaksesan"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Ikhtisar"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Cari"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Halaman <xliff:g id="ID_1">%1$d</xliff:g> daripada <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Kembangkan"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimumkan"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Tutup"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon semakin panas"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Sesetengah ciri adalah terhad semasa telefon menyejuk"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefon anda akan cuba menyejuk secara automatik. Anda masih dapat menggunakan telefon itu tetapi telefon tersebut mungkin berjalan lebih perlahan.\n\nSetelah telefon anda sejuk, telefon itu akan berjalan seperti biasa."</string>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index 32ff25d..8e2e0a4 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"အများသုံးစွဲနိုင်မှု"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"ခြုံကြည့်မှု။"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ရှာဖွေရန်"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ကင်မရာ"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"စာမျက်နှာ <xliff:g id="ID_2">%2$d</xliff:g> အနက်မှ စာမျက်နှာ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"ချဲ့ရန်"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ချုံ့ရန်"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"ပိတ်ရန်"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ဖုန်း ပူနွေးလာပါပြီ"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ဖုန်းကို အေးအောင်ပြုလုပ်နေစဉ်တွင် အချို့ဝန်ဆောင်မှုများကို ကန့်သတ်ထားပါသည်"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"သင့်ဖုန်းသည် အလိုအလျောက် ပြန်အေးသွားပါလိမ့်မည်။ ဖုန်းကို အသုံးပြုနိုင်ပါသေးသည် သို့သော် ပိုနှေးနိုင်ပါသည်။\n\nသင့်ဖုန်း အေးသွားသည်နှင့် ပုံမှန်အတိုင်း ပြန်အလုပ်လုပ်ပါလိမ့်မည်။"</string>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 6624583..701b295 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Tilgjengelighet"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Oversikt"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Søk"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Side <xliff:g id="ID_1">%1$d</xliff:g> av <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Vis"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimer"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Lukk"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefonen begynner å bli varm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Enkelte funksjoner er begrenset mens telefonen kjøles ned"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefonen din kommer til å prøve å kjøle seg ned automatisk. Du kan fremdeles bruke telefonen, men den kjører muligens saktere.\n\nTelefonen kommer til å kjøre som normalt, når den har kjølt seg ned."</string>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index ee04992..ad450ba 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -83,6 +83,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"पछाडि"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"गृह"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"मेनु"</string>
+    <!-- no translation found for accessibility_accessibility_button (7601252764577607915) -->
+    <skip />
     <string name="accessibility_recent" msgid="5208608566793607626">"सारांश"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"खोज्नुहोस्"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"क्यामेरा"</string>
@@ -671,8 +673,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> मध्ये पृष्ठ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"विस्तृत गर्नुहोस्"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"सानो बनाउनुहोस्"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"बन्द गर्नुहोस्"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"फोन तातो भइरहेको छ"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"फोन चिसो हुँदै गर्दा केही विशेषताहरूलाई सीमित गरिन्छ"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"तपाईंको फोन स्वतः चिसो हुने प्रयास गर्नेछ। तपाईं अझै पनि आफ्नो फोनको प्रयोग गर्न सक्नुहुन्छ तर त्यो अझ ढिलो चल्न सक्छ।\n\nचिसो भएपछि तपाईंको फोन सामान्य गतिमा चल्नेछ।"</string>
@@ -683,7 +684,6 @@
     <string name="lockscreen_unlock" msgid="4934466194763269051">"पासवर्ड माग्ने"</string>
     <string name="notification_channel_alerts" msgid="4496839309318519037">"अलर्टहरू"</string>
     <string name="notification_channel_screenshot" msgid="6314080179230000938">"स्क्रिनशटहरू"</string>
-    <!-- no translation found for notification_channel_general (4525309436693914482) -->
-    <skip />
+    <string name="notification_channel_general" msgid="4525309436693914482">"सामान्य सन्देशहरू"</string>
     <string name="notification_channel_storage" msgid="3077205683020695313">"भण्डारण"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index f4c306a..041b7b4 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -83,6 +83,7 @@
     <string name="accessibility_back" msgid="567011538994429120">"Terug"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Homepage"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+    <string name="accessibility_accessibility_button" msgid="7601252764577607915">"Toegankelijkheid"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Overzicht"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Zoeken"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Pagina <xliff:g id="ID_1">%1$d</xliff:g> van <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Uitvouwen"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimaliseren"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Sluiten"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"De telefoon wordt warm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Bepaalde functies zijn beperkt terwijl de telefoon afkoelt"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Je telefoon probeert automatisch af te koelen. Je kunt je telefoon nog steeds gebruiken, maar deze kan langzamer werken.\n\nZodra de telefoon is afgekoeld, werkt deze weer normaal."</string>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index 97ec2f1..f409687 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ਪਹੁੰਚਯੋਗਤਾ"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"ਰੂਪ-ਰੇਖਾ"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ਖੋਜੋ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ਕੈਮਰਾ"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> ਦਾ <xliff:g id="ID_1">%1$d</xliff:g> ਪੰਨਾ"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"ਵਿਸਤਾਰ ਕਰੋ"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ਛੋਟਾ ਕਰੋ"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"ਬੰਦ ਕਰੋ"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ਫ਼ੋਨ ਗਰਮ ਹੋ ਰਿਹਾ ਹੈ"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ਫ਼ੋਨ ਦੇ ਠੰਡਾ ਹੋਣ ਦੇ ਦੌਰਾਨ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸੀਮਿਤ ਹੁੰਦੀਆਂ ਹਨ"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਸਵੈਚਲਿਤ ਰੂਪ ਵਿੱਚ ਠੰਡਾ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ। ਤੁਸੀਂ ਹਾਲੇ ਵੀ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹੋ, ਪਰੰਤੂ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਇਹ ਵਧੇਰੇ ਹੌਲੀ ਚੱਲੇ।\n\nਇੱਕ ਵਾਰ ਠੰਡਾ ਹੋਣ ਤੋਂ ਬਾਅਦ ਤੁਹਾਡਾ ਫ਼ੋਨ ਸਧਾਰਨ ਤੌਰ \'ਤੇ ਚੱਲੇਗਾ।"</string>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 04efcd4..3c52089 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -85,6 +85,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Ułatwienia dostępu"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Przegląd"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Szukaj"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Aparat"</string>
@@ -675,8 +676,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Strona <xliff:g id="ID_1">%1$d</xliff:g> z <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Rozwiń"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimalizuj"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Zamknij"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon się nagrzewa"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Podczas obniżania temperatury telefonu niektóre funkcje są ograniczone"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefon automatycznie podejmie próbę obniżenia temperatury. Możesz go wciąż używać, ale telefon może działać wolniej.\n\nGdy temperatura się obniży, telefon będzie działał normalnie."</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index e5a87547..e089a8b 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Acessibilidade"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Visão geral"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Página <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Expandir"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizar"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Fechar"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"O smartphone está esquentando"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Alguns recursos ficam limitados enquanto o smartphone é resfriado"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Seu smartphone tentará se resfriar automaticamente. Você ainda poderá usá-lo, mas talvez ele fique mais lento.\n\nQuando o smartphone estiver resfriado, ele voltará ao normal."</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 4304d99..24532a8 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Acessibilidade"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Visão geral"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmara"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Página <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Expandir"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizar"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Fechar"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"O telemóvel está a aquecer"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Algumas funcionalidades são limitadas enquanto o telemóvel arrefece"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"O telemóvel tenta arrefecer automaticamente. Pode continuar a utilizá-lo, mas este poderá funcionar mais lentamente.\n\nAssim que o telemóvel tiver arrefecido, funcionará normalmente."</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index e5a87547..e089a8b 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Acessibilidade"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Visão geral"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Página <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Expandir"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizar"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Fechar"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"O smartphone está esquentando"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Alguns recursos ficam limitados enquanto o smartphone é resfriado"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Seu smartphone tentará se resfriar automaticamente. Você ainda poderá usá-lo, mas talvez ele fique mais lento.\n\nQuando o smartphone estiver resfriado, ele voltará ao normal."</string>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 535b5c3..02d1787 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -84,6 +84,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Accesibilitate"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Vizualizare generală"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Căutați"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cameră foto"</string>
@@ -675,8 +676,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Pagina <xliff:g id="ID_1">%1$d</xliff:g> din <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Extindeți"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizați"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Închideți"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefonul se încălzește"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Anumite funcții sunt limitate în timp ce telefonul se răcește"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefonul va încerca automat să se răcească. Puteți folosi telefonul în continuare, dar este posibil să funcționeze mai lent.\n\nDupă ce se răcește, telefonul va funcționa normal."</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 68d499d..cddbf52 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -85,6 +85,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_accessibility_button" msgid="7601252764577607915">"Специальные возможности"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Обзор."</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Поиск"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -677,8 +678,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Страница <xliff:g id="ID_1">%1$d</xliff:g> из <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Развернуть"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Свернуть"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Закрыть"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Телефон нагревается"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Пока телефон не остынет, некоторые функции могут быть недоступны."</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Ваш телефон остынет автоматически.\n\nОбратите внимание, что до тех пор он может работать медленнее, чем обычно."</string>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index 9c58ba1..522f126 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ප්‍රවේශ්‍යතාව"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"දළ විශ්ලේෂණය"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"සොයන්න"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"කැමරාව"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> න් <xliff:g id="ID_1">%1$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"දිග හරින්න"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"කුඩා කරන්න"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"වසන්න"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"දුරකථනය උණුසුම් වෙමින්"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"දුරකථනය සිසිල් වන අතරතුර සමහර විශේෂාංග සීමිත විය හැකිය"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"ඔබගේ දුරකථනය ස්වයංක්‍රියව සිසිල් වීමට උත්සාහ කරනු ඇත. ඔබට තවම ඔබේ දුරකථනය භාවිත කළ හැකිය, නමුත් එය සෙමින් ධාවනය විය හැකිය.\n\nඔබේ දුරකථනය සිසිල් වූ පසු, එය සාමාන්‍ය ලෙස ධාවනය වනු ඇත."</string>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index cddcaf0..d186cac 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -85,6 +85,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Dostupnosť"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Prehľad"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Hľadať"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparát"</string>
@@ -677,8 +678,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Strana <xliff:g id="ID_1">%1$d</xliff:g> z <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Rozbaliť"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimalizovať"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Zavrieť"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Teplota telefónu stúpa"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Niektoré funkcie budú obmedzené, dokým neklesne teplota telefónu"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Váš telefón sa automaticky pokúsi schladiť. Môžete ho naďalej používať, ale môže fungovať pomalšie.\n\nPo poklese teploty bude telefón fungovať ako normálne."</string>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index da993b4..9a5ccc9 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -85,6 +85,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Funkcije za ljudi s posebnimi potrebami"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Pregled"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Iskanje"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparat"</string>
@@ -677,8 +678,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g>. stran od <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Razširi"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimiraj"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Zapri"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon se segreva"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Nekatere funkcije bodo med ohlajanjem omejene."</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefon se bo samodejno poskusil ohladiti. Še naprej ga lahko uporabljate, vendar bo morda deloval počasneje.\n\nKo se telefon ohladi, bo zopet deloval kot običajno."</string>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index 6b8bb97..4d8951c 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -83,6 +83,7 @@
     <string name="accessibility_back" msgid="567011538994429120">"Prapa"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Faqja bazë"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menyja"</string>
+    <string name="accessibility_accessibility_button" msgid="7601252764577607915">"Qasshmëria"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Përmbledhje"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Kërko"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Faqja <xliff:g id="ID_1">%1$d</xliff:g> nga <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Zgjero"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimizo"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Mbyll"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefoni po bëhet i ngrohtë"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Disa funksione janë të kufizuara kur telefoni është duke u ftohur"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefoni yt do të përpiqet automatikisht që të ftohet. Mund ta përdorësh përsëri telefonin, por ai mund të punojë më ngadalë.\n\nPasi telefoni të jetë ftohur, ai do të punojë si normalisht."</string>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 0af49e4e..66808f7 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -84,6 +84,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_accessibility_button" msgid="7601252764577607915">"Приступачност"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Преглед"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Претражите"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g>. страна од <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Прошири"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Умањи"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Затвори"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Телефон се загрејао"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Неке функције су ограничене док се телефон не охлади"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Телефон ће аутоматски покушати да се охлади. И даље ћете моћи да користите телефон, али ће спорије реаговати.\n\nКада се телефон охлади, нормално ће радити."</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 9700f0a..ccde1d2 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Tillgänglighet"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Översikt"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Sök"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Sida <xliff:g id="ID_1">%1$d</xliff:g> av <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Utöka"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimera"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Stäng"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Mobilen börjar bli varm"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Vissa funktioner är begränsade medan mobilen svalnar"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Mobilen försöker svalna automatiskt. Du kan fortfarande använda mobilen, men den kan vara långsammare än vanligt.\n\nMobilen fungerar som vanligt när den har svalnat."</string>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index fc9439c..2febaa1 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Zana za walio na matatizo ya kuona au kusikia"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Muhtasari"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Tafuta"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Ukurasa wa <xliff:g id="ID_1">%1$d</xliff:g> kati ya <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Panua"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Punguza"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Funga"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Joto la simu linaongezeka"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Baadhi ya vipengele havitatumika kwenye simu wakati inapoa"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Simu yako itajaribu kupoa kiotomatiki. Bado unaweza kutumia simu yako, lakini huenda ikafanya kazi polepole. \n\nPindi simu yako itakapopoa, itaendelea kufanya kazi kama kawaida."</string>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index b79e8a9..857f297 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"அணுகல்தன்மை"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"மேலோட்டப் பார்வை"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"தேடு"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"கேமரா"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"பக்கம் <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"விரி"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"சிறிதாக்கு"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"மூடு"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"மொபைல் சூடாகிறது"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"மொபைலின் வெப்ப அளவு குறையும் போது, சில அம்சங்களைப் பயன்படுத்த முடியாது"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"உங்கள் மொபைலின் வெப்ப அளவு தானாகவே குறையும். தொடர்ந்து நீங்கள் மொபைலைப் பயன்படுத்தலாம், ஆனால் அதன் வேகம் குறைவாக இருக்கக்கூடும்.\n\nமொபைலின் வெப்ப அளவு குறைந்தவுடன், அது இயல்பு நிலையில் இயங்கும்."</string>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 2175c5a..2000ea3 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ప్రాప్యత"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"అవలోకనం"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"శోధించు"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"కెమెరా"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g>లో <xliff:g id="ID_1">%1$d</xliff:g>వ పేజీ"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"విస్తరింపజేయి"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"కనిష్టీకరించు"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"మూసివేయి"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"ఫోన్ వేడెక్కుతోంది"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"ఫోన్‌ను చల్లబరిచే క్రమంలో కొన్ని లక్షణాలు పరిమితం చేయబడ్డాయి"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"మీ ఫోన్ స్వయంచాలకంగా చల్లబడటానికి ప్రయత్నిస్తుంది. మీరు ఇప్పటికీ మీ ఫోన్‌ను ఉపయోగించవచ్చు, కానీ దాని పనితీరు నెమ్మదిగా ఉండవచ్చు.\n\nమీ ఫోన్ చల్లబడిన తర్వాత, అది సాధారణ రీతిలో పని చేస్తుంది."</string>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index e4d489d2..ab6da21 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ความสามารถเข้าถึงได้ง่าย"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"ภาพรวม"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ค้นหา"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"กล้องถ่ายรูป"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"หน้า <xliff:g id="ID_1">%1$d</xliff:g> จาก <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"ขยาย"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"ย่อเล็กสุด"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"ปิด"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"โทรศัพท์เริ่มเครื่องร้อน"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"คุณลักษณะบางอย่างจะใช้งานได้จำกัดขณะโทรศัพท์ลดอุณหภูมิลง"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"โทรศัพท์จะพยายามลดอุณหภูมิลงโดยอัตโนมัติ คุณยังสามารถใช้โทรศัพท์ได้ แต่โทรศัพท์อาจทำงานช้าลง\n\nโทรศัพท์จะทำงานตามปกติเมื่อเย็นลงแล้ว"</string>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index ac5aa92..c9fd8a2 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Pagiging Naa-access"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Overview"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Hanapin"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Page <xliff:g id="ID_1">%1$d</xliff:g> ng <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Palawakin"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"I-minimize"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Isara"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Umiinit ang telepono"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Limitado ang ilang feature habang nagku-cool down ang telepono"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Awtomatikong susubukan ng iyong telepono na mag-cool down. Magagamit mo pa rin ang iyong telepono, ngunit maaaring mas mabagal ang paggana nito.\n\nKapag nakapag-cool down na ang iyong telepono, gagana na ito nang normal."</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 8cf0633..9baf375e 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Erişilebilirlik"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Genel Bakış"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Ara"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Sayfa <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Genişlet"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Simge durumuna getir"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Kapat"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon ısınıyor"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Telefon soğurken bazı özellikler sınırlı olarak kullanılabilir"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefonunuz otomatik olarak soğumaya çalışacak. Bu sırada telefonunuzu kullanmaya devam edebilirsiniz ancak uygulamalar daha yavaş çalışabilir.\n\nTelefonunuz soğuduktan sonra normal şekilde çalışacaktır."</string>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 62c0c8c..a74014c 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -85,6 +85,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_accessibility_button" msgid="7601252764577607915">"Спеціальні можливості"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Огляд"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Пошук"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
@@ -677,8 +678,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Сторінка <xliff:g id="ID_1">%1$d</xliff:g> з <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Розгорнути"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Згорнути"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Закрити"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Телефон нагрівається"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Під час охолодження деякі функції обмежуються"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Ваш телефон охолоджуватиметься автоматично. Ви можете далі користуватися телефоном, але він може працювати повільніше.\n\nКоли телефон охолоне, він працюватиме належним чином."</string>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index 9a7629b..7ea1b1c 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"ایکسیسبیلٹی"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"مجموعی جائزہ"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"تلاش کریں"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"کیمرا"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"صفحہ <xliff:g id="ID_1">%1$d</xliff:g> از <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"پھیلائیں"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"چھوٹی کریں"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"بند کریں"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"فون گرم ہو رہا ہے"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"فون کے ٹھنڈے ہو جانے تک کچھ خصوصیات محدود ہیں"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"آپ کا فون خودکار طور پر ٹھنڈا ہونے کی کوشش کرے گا۔ آپ ابھی بھی اپنا فون استعمال کر سکتے ہیں، مگر ہو سکتا ہے یہ سست چلے۔\n\nایک بار آپ کا فون ٹھنڈا ہوجائے تو یہ معمول کے مطابق چلے گا۔"</string>
@@ -683,7 +683,6 @@
     <string name="lockscreen_unlock" msgid="4934466194763269051">"پاسورڈ کا اشارہ"</string>
     <string name="notification_channel_alerts" msgid="4496839309318519037">"الرٹس"</string>
     <string name="notification_channel_screenshot" msgid="6314080179230000938">"اسکرین شاٹس"</string>
-    <!-- no translation found for notification_channel_general (4525309436693914482) -->
-    <skip />
+    <string name="notification_channel_general" msgid="4525309436693914482">"عمومی پیغامات"</string>
     <string name="notification_channel_storage" msgid="3077205683020695313">"اسٹوریج"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index f6df9068..ae51151 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Maxsus imkoniyatlar"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Umumiy nazar"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Qidirish"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_1">%1$d</xliff:g>-sahifa, jami: <xliff:g id="ID_2">%2$d</xliff:g> ta sahifa"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Yoyish"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Yig‘ish"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Yopish"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Telefon qizib ketdi"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Telefon sovish paytida ayrim funksiyalar ishlamasligi mumkin"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Telefon avtomatik ravishda o‘zini sovitadi. Telefoningizdan foydalanishda davom etishingiz mumkin, lekin u sekinroq ishlashi mumkin.\n\nTelefon sovishi bilan normal holatda ishlashni boshlaydi."</string>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index ce5d46f..043f1ee 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Trợ năng"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Tổng quan"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Tìm kiếm"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Máy ảnh"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Trang <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Mở rộng"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Thu nhỏ"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Đóng"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Điện thoại đang nóng lên"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Một số tính năng bị hạn chế trong khi điện thoại nguội dần"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Điện thoại của bạn sẽ tự động nguội dần. Bạn vẫn có thể sử dụng điện thoại, nhưng điện thoại có thể chạy chậm hơn. \n\nSau khi đã nguội, điện thoại sẽ chạy bình thường."</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index d0c9e001..bfaba9e 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -83,6 +83,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"返回"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"主屏幕"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"菜单"</string>
+    <!-- no translation found for accessibility_accessibility_button (7601252764577607915) -->
+    <skip />
     <string name="accessibility_recent" msgid="5208608566793607626">"概览"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"搜索"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"相机"</string>
@@ -671,8 +673,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"第 <xliff:g id="ID_1">%1$d</xliff:g> 页,共 <xliff:g id="ID_2">%2$d</xliff:g> 页"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"展开"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"最小化"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"关闭"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"手机温度上升中"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"手机降温时,部分功能的使用会受限制"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"您的手机将自动尝试降温。您依然可以使用您的手机,但是手机运行速度可能会更慢。\n\n手机降温后,就会恢复正常的运行速度。"</string>
@@ -683,7 +684,6 @@
     <string name="lockscreen_unlock" msgid="4934466194763269051">"提示输入密码"</string>
     <string name="notification_channel_alerts" msgid="4496839309318519037">"提醒"</string>
     <string name="notification_channel_screenshot" msgid="6314080179230000938">"屏幕截图"</string>
-    <!-- no translation found for notification_channel_general (4525309436693914482) -->
-    <skip />
+    <string name="notification_channel_general" msgid="4525309436693914482">"常规消息"</string>
     <string name="notification_channel_storage" msgid="3077205683020695313">"存储空间"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index f7bf78e..4cdc790 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"無障礙功能"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"概覽"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"搜尋"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"相機"</string>
@@ -673,8 +674,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"第 <xliff:g id="ID_1">%1$d</xliff:g> 頁 (共 <xliff:g id="ID_2">%2$d</xliff:g> 頁)"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"展開"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"最小化"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"關閉"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"手機溫度正在上升"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"手機降溫時,部分功能會受限制"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"手機會自動嘗試降溫。您仍可以使用手機,但手機的運作速度可能較慢。\n\n手機降溫後便會恢復正常。"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 54ef0a6..08c2a05 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -83,6 +83,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_accessibility_button" msgid="7601252764577607915">"協助工具"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"總覽"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"搜尋"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"相機"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"第 <xliff:g id="ID_1">%1$d</xliff:g> 頁,共 <xliff:g id="ID_2">%2$d</xliff:g> 頁"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"展開"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"最小化"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"關閉"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"手機變熱"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"手機降溫時,部分功能會受限"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"手機會自動嘗試降溫。你仍可繼續使用手機,但是手機的運作速度可能會較慢。\n\n手機降溫完畢後,就會恢復正常的運作速度。"</string>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 7858962..5a513d8 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -83,6 +83,7 @@
     <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_accessibility_button" msgid="7601252764577607915">"Ukufinyeleleka"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Buka konke"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Sesha"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Ikhamela"</string>
@@ -671,8 +672,7 @@
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"Ikhasi <xliff:g id="ID_1">%1$d</xliff:g> kwangu-<xliff:g id="ID_2">%2$d</xliff:g>"</string>
     <string name="pip_phone_expand" msgid="5889780005575693909">"Nweba"</string>
     <string name="pip_phone_minimize" msgid="1079119422589131792">"Nciphisa"</string>
-    <!-- no translation found for pip_phone_close (8416647892889710330) -->
-    <skip />
+    <string name="pip_phone_close" msgid="8416647892889710330">"Vala"</string>
     <string name="high_temp_title" msgid="4589508026407318374">"Ifoni iyafudumala"</string>
     <string name="high_temp_notif_message" msgid="5642466103153429279">"Ezinye izici zikhawulelwe ngenkathi ifoni iphola"</string>
     <string name="high_temp_dialog_message" msgid="6840700639374113553">"Ifoni yakho izozama ngokuzenzakalela ukuphola. Ungasasebenzisa ifoni yakho, kodwa ingasebenza ngokungasheshi.\n\nUma ifoni yakho isipholile, izosebenza ngokuvamile."</string>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 1249f44..7f30c83 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -96,10 +96,6 @@
 
     <!-- The "inside" of a notification, reached via longpress -->
     <color name="notification_guts_bg_color">#eeeeee</color>
-    <color name="notification_guts_disabled_slider_color">@*android:color/material_grey_300</color>
-    <color name="notification_guts_secondary_slider_color">#858383</color>
-    <color name="notification_guts_icon_tint">#8a000000</color>
-    <color name="notification_guts_disabled_icon_tint">#4d000000</color>
 
     <!-- Colors of the snooze menu reached via snooze icon behind a notification -->
     <color name="snooze_snackbar_bg">#FF4A4A4A</color>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index e69c4a3..e737d2d 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -317,9 +317,6 @@
     <!-- The height of the divider between the individual notifications when the notification wants it to be increased. This is currently the case for notification groups -->
     <dimen name="notification_divider_height_increased">6dp</dimen>
 
-    <!-- The height of an importance selection in the inline notification controls -->
-    <dimen name="notification_inline_importance_height">55dp</dimen>
-
     <!-- The minimum amount of top overscroll to go to the quick settings. -->
     <dimen name="min_top_overscroll_to_qs">36dp</dimen>
 
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index f7cf444..67def4f 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -1335,37 +1335,23 @@
     <!-- Notification Inline Controls: Header for apps that are not yet using notification channels. -->
     <string name="notification_header_default_channel">Notifications</string>
 
+    <!-- The divider symbol between different parts of the notification header including spaces. not translatable [CHAR LIMIT=3] -->
+    <string name="notification_header_divider_symbol_with_spaces" translatable="false">" • "</string>
+
     <!-- Notification Inline Controls: Shown when a channel's notifications are currently blocked -->
     <string name="notification_channel_disabled">You won\'t get these notifications anymore.</string>
 
-    <!-- Notification Inline Controls: Header text for describing from which app this notification
-        originates.  The line below this in the layout will display the channel name.
-        Note for localization:  For languages in which the two separate lines cannot be a continuous
-        sentence, translate this as a separate statement: "[Calendar] notifications" -->
-    <string name="notification_importance_header_app"><xliff:g id="app" example="Calendar">%s</xliff:g> notifications for</string>
-
-    <!-- Notification importance title, min status-->
-    <string name="min_importance">Low</string>
-    <!-- Notification importance title, low status-->
-    <string name="low_importance">Medium</string>
-    <!-- Notification importance title, normal status-->
-    <string name="default_importance">High</string>
-    <!-- Notification importance title, high status-->
-    <string name="high_importance">Urgent</string>
-
-    <!-- [CHAR LIMIT=100] Notification Importance slider: min importance level description -->
-    <string name="notification_importance_min">No sound or visual interruption</string>
-
-    <!-- [CHAR LIMIT=100] Notification Importance slider: low importance level description -->
-    <string name="notification_importance_low">Show silently</string>
-
-    <!-- [CHAR LIMIT=100] Notification Importance slider: normal importance level description -->
-    <string name="notification_importance_default">Make sound</string>
-
-    <!-- [CHAR LIMIT=100] Notification Importance slider: high importance level description -->
-    <string name="notification_importance_high">Make sound and pop on screen</string>
-
-    <!-- Notification: Control panel: Label for button that launches notification settings. [CHAR LIMIT=NONE] -->
+    <!-- Notification: Control panel: Label that shows how many channels this application has
+        defined, describing the current notification channel as "1 out of n". -->
+    <plurals name="notification_num_channels_desc">
+        <item quantity="one">1 out of <xliff:g id="number">%d</xliff:g> category from this app</item>
+        <item quantity="other">1 out of <xliff:g id="number">%d</xliff:g> categories from this app</item>
+    </plurals>
+    <!-- Notification: Control panel: Label for button that launches notification settings. Used
+        when this app has defined more than a single channel for notifications. -->
+    <string name="notification_all_categories">All Categories</string>
+    <!-- Notification: Control panel: Label for button that launches notification settings. Used
+        when this app has only defined a single channel for notifications. -->
     <string name="notification_more_settings">More settings</string>
     <!-- Notification: Control panel: Label for button that dismisses control panel. [CHAR LIMIT=NONE] -->
     <string name="notification_done">Done</string>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index c5a5518..48b7664 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -362,17 +362,12 @@
 
     <style name="TextAppearance.NotificationGuts.Secondary">
         <item name="android:textColor">?android:attr/textColorPrimary</item>
-        <item name="android:alpha">.38</item>
         <item name="android:textSize">12sp</item>
     </style>
 
-    <style name="TextAppearance.NotificationGuts.Primary">
-        <item name="android:textColor">?android:attr/textColorPrimary</item>
-        <item name="android:textSize">16sp</item>
-    </style>
-
-    <style name="TextAppearance.NotificationGuts.Radio">
-        <item name="android:textColor">?android:attr/textColorPrimary</item>
+    <style name="TextAppearance.NotificationGuts.SecondaryWarning">
+        <item name="android:textColor">@color/system_warning_color</item>
+        <item name="android:textSize">12sp</item>
     </style>
 
     <style name="TextAppearance.NotificationGuts.Button">
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/values/strings.xml b/packages/SystemUI/res/xml/fileprovider.xml
similarity index 77%
rename from packages/Keyguard/test/SampleTrustAgent/res/values/strings.xml
rename to packages/SystemUI/res/xml/fileprovider.xml
index 0c6b502..4aaa90f 100644
--- a/packages/Keyguard/test/SampleTrustAgent/res/values/strings.xml
+++ b/packages/SystemUI/res/xml/fileprovider.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 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.
@@ -15,6 +15,6 @@
   ~ limitations under the License
   -->
 
-<resources>
-    <string name="app_name">Sample Trust Agent</string>
-</resources>
\ No newline at end of file
+<paths xmlns:android="http://schemas.android.com/apk/res/android">
+    <cache-path name="leak" path="leak/"/>
+</paths>
\ No newline at end of file
diff --git a/packages/Keyguard/scripts/copy_profile_icons.sh b/packages/SystemUI/scripts/copy_profile_icons.sh
similarity index 100%
rename from packages/Keyguard/scripts/copy_profile_icons.sh
rename to packages/SystemUI/scripts/copy_profile_icons.sh
diff --git a/packages/Keyguard/scripts/new_merge.py b/packages/SystemUI/scripts/new_merge.py
similarity index 100%
rename from packages/Keyguard/scripts/new_merge.py
rename to packages/SystemUI/scripts/new_merge.py
diff --git a/packages/Keyguard/src/com/android/keyguard/AlphaOptimizedImageButton.java b/packages/SystemUI/src/com/android/keyguard/AlphaOptimizedImageButton.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/AlphaOptimizedImageButton.java
rename to packages/SystemUI/src/com/android/keyguard/AlphaOptimizedImageButton.java
diff --git a/packages/Keyguard/src/com/android/keyguard/AlphaOptimizedLinearLayout.java b/packages/SystemUI/src/com/android/keyguard/AlphaOptimizedLinearLayout.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/AlphaOptimizedLinearLayout.java
rename to packages/SystemUI/src/com/android/keyguard/AlphaOptimizedLinearLayout.java
diff --git a/packages/Keyguard/src/com/android/keyguard/AlphaOptimizedRelativeLayout.java b/packages/SystemUI/src/com/android/keyguard/AlphaOptimizedRelativeLayout.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/AlphaOptimizedRelativeLayout.java
rename to packages/SystemUI/src/com/android/keyguard/AlphaOptimizedRelativeLayout.java
diff --git a/packages/Keyguard/src/com/android/keyguard/CarrierText.java b/packages/SystemUI/src/com/android/keyguard/CarrierText.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/CarrierText.java
rename to packages/SystemUI/src/com/android/keyguard/CarrierText.java
diff --git a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java b/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/EmergencyButton.java
rename to packages/SystemUI/src/com/android/keyguard/EmergencyButton.java
diff --git a/packages/Keyguard/src/com/android/keyguard/EmergencyCarrierArea.java b/packages/SystemUI/src/com/android/keyguard/EmergencyCarrierArea.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/EmergencyCarrierArea.java
rename to packages/SystemUI/src/com/android/keyguard/EmergencyCarrierArea.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardConstants.java b/packages/SystemUI/src/com/android/keyguard/KeyguardConstants.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardConstants.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardConstants.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardDisplayManager.java b/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardDisplayManager.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityCallback.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardSecurityCallback.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityModel.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardSecurityModel.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardSecurityView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
rename to packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
diff --git a/packages/Keyguard/src/com/android/keyguard/LatencyTracker.java b/packages/SystemUI/src/com/android/keyguard/LatencyTracker.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/LatencyTracker.java
rename to packages/SystemUI/src/com/android/keyguard/LatencyTracker.java
diff --git a/packages/Keyguard/src/com/android/keyguard/LiftToActivateListener.java b/packages/SystemUI/src/com/android/keyguard/LiftToActivateListener.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/LiftToActivateListener.java
rename to packages/SystemUI/src/com/android/keyguard/LiftToActivateListener.java
diff --git a/packages/Keyguard/src/com/android/keyguard/NumPadKey.java b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/NumPadKey.java
rename to packages/SystemUI/src/com/android/keyguard/NumPadKey.java
diff --git a/packages/Keyguard/src/com/android/keyguard/ObscureSpeechDelegate.java b/packages/SystemUI/src/com/android/keyguard/ObscureSpeechDelegate.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/ObscureSpeechDelegate.java
rename to packages/SystemUI/src/com/android/keyguard/ObscureSpeechDelegate.java
diff --git a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java b/packages/SystemUI/src/com/android/keyguard/PasswordTextView.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
rename to packages/SystemUI/src/com/android/keyguard/PasswordTextView.java
diff --git a/packages/Keyguard/src/com/android/keyguard/SecurityMessageDisplay.java b/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/SecurityMessageDisplay.java
rename to packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java
diff --git a/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java b/packages/SystemUI/src/com/android/keyguard/ViewMediatorCallback.java
similarity index 100%
rename from packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java
rename to packages/SystemUI/src/com/android/keyguard/ViewMediatorCallback.java
diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
index 29a8da0..69e3874 100644
--- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
+++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
@@ -16,18 +16,29 @@
 package com.android.systemui;
 
 import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
+import android.graphics.Rect;
 import android.util.ArraySet;
 import android.util.AttributeSet;
+import android.util.TypedValue;
 import android.view.View;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.policy.BatteryController;
+import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver;
 import com.android.systemui.tuner.TunerService;
+import com.android.systemui.tuner.TunerService.Tunable;
 
 public class BatteryMeterView extends ImageView implements
-        BatteryController.BatteryStateChangeCallback, TunerService.Tunable {
+        BatteryStateChangeCallback, Tunable, DarkReceiver, ConfigurationListener {
 
     private final BatteryMeterDrawable mDrawable;
     private final String mSlotBattery;
@@ -77,6 +88,7 @@
         mBatteryController.addCallback(this);
         mDrawable.startListening();
         Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_BLACKLIST);
+        Dependency.get(ConfigurationController.class).addCallback(this);
     }
 
     @Override
@@ -85,6 +97,7 @@
         mBatteryController.removeCallback(this);
         mDrawable.stopListening();
         Dependency.get(TunerService.class).removeTunable(this);
+        Dependency.get(ConfigurationController.class).removeCallback(this);
     }
 
     @Override
@@ -99,8 +112,35 @@
 
     }
 
-    public void setDarkIntensity(float f) {
-        mDrawable.setDarkIntensity(f);
+    @Override
+    public void onDensityOrFontScaleChanged() {
+        scaleBatteryMeterViews();
+    }
+
+    /**
+     * Looks up the scale factor for status bar icons and scales the battery view by that amount.
+     */
+    private void scaleBatteryMeterViews() {
+        Resources res = getContext().getResources();
+        TypedValue typedValue = new TypedValue();
+
+        res.getValue(R.dimen.status_bar_icon_scale_factor, typedValue, true);
+        float iconScaleFactor = typedValue.getFloat();
+
+        int batteryHeight = res.getDimensionPixelSize(R.dimen.status_bar_battery_icon_height);
+        int batteryWidth = res.getDimensionPixelSize(R.dimen.status_bar_battery_icon_width);
+        int marginBottom = res.getDimensionPixelSize(R.dimen.battery_margin_bottom);
+
+        LinearLayout.LayoutParams scaledLayoutParams = new LinearLayout.LayoutParams(
+                (int) (batteryWidth * iconScaleFactor), (int) (batteryHeight * iconScaleFactor));
+        scaledLayoutParams.setMarginsRelative(0, 0, 0, marginBottom);
+
+        setLayoutParams(scaledLayoutParams);
+    }
+
+    @Override
+    public void onDarkChanged(Rect area, float darkIntensity, int tint) {
+        mDrawable.setDarkIntensity(DarkIconDispatcher.isInArea(area, this) ? darkIntensity : 0);
     }
 
     public void setRawColors(int fgColor, int bgColor) {
diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java
index 7066a1b..273b5e3 100644
--- a/packages/SystemUI/src/com/android/systemui/Dependency.java
+++ b/packages/SystemUI/src/com/android/systemui/Dependency.java
@@ -23,11 +23,16 @@
 import android.util.ArrayMap;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.Preconditions;
 import com.android.systemui.assist.AssistManager;
 import com.android.systemui.plugins.PluginManager;
+import com.android.systemui.statusbar.phone.ConfigurationControllerImpl;
+import com.android.systemui.statusbar.phone.DarkIconDispatcherImpl;
 import com.android.systemui.statusbar.phone.ManagedProfileController;
 import com.android.systemui.statusbar.phone.ManagedProfileControllerImpl;
 import com.android.systemui.statusbar.phone.StatusBarWindowManager;
+import com.android.systemui.statusbar.phone.StatusBarIconController;
+import com.android.systemui.statusbar.phone.StatusBarIconControllerImpl;
 import com.android.systemui.statusbar.policy.AccessibilityController;
 import com.android.systemui.statusbar.policy.BatteryController;
 import com.android.systemui.statusbar.policy.BatteryControllerImpl;
@@ -35,6 +40,8 @@
 import com.android.systemui.statusbar.policy.BluetoothControllerImpl;
 import com.android.systemui.statusbar.policy.CastController;
 import com.android.systemui.statusbar.policy.CastControllerImpl;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
 import com.android.systemui.statusbar.policy.DataSaverController;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
 import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl;
@@ -60,6 +67,9 @@
 import com.android.systemui.statusbar.policy.ZenModeController;
 import com.android.systemui.statusbar.policy.ZenModeControllerImpl;
 import com.android.systemui.tuner.TunerService;
+import com.android.systemui.util.leak.GarbageMonitor;
+import com.android.systemui.util.leak.LeakDetector;
+import com.android.systemui.util.leak.LeakReporter;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -85,18 +95,25 @@
     /**
      * Key for getting a background Looper for background work.
      */
-    public static final String BG_LOOPER = "background_loooper";
+    public static final DependencyKey<Looper> BG_LOOPER = new DependencyKey<>("background_looper");
     /**
      * Key for getting a Handler for receiving time tick broadcasts on.
      */
-    public static final String TIME_TICK_HANDLER = "time_tick_handler";
+    public static final DependencyKey<Handler> TIME_TICK_HANDLER =
+            new DependencyKey<>("time_tick_handler");
     /**
      * Generic handler on the main thread.
      */
-    public static final String MAIN_HANDLER = "main_handler";
+    public static final DependencyKey<Handler> MAIN_HANDLER = new DependencyKey<>("main_handler");
 
-    private final ArrayMap<String, Object> mDependencies = new ArrayMap<>();
-    private final ArrayMap<String, DependencyProvider> mProviders = new ArrayMap<>();
+    /**
+     * An email address to send memory leak reports to by default.
+     */
+    public static final DependencyKey<String> LEAK_REPORT_EMAIL
+            = new DependencyKey<>("leak_report_email");
+
+    private final ArrayMap<Object, Object> mDependencies = new ArrayMap<>();
+    private final ArrayMap<Object, DependencyProvider> mProviders = new ArrayMap<>();
 
     @Override
     public void start() {
@@ -115,78 +132,101 @@
             return thread.getLooper();
         });
         mProviders.put(MAIN_HANDLER, () -> new Handler(Looper.getMainLooper()));
-        mProviders.put(ActivityStarter.class.getName(), () -> new ActivityStarterDelegate());
-        mProviders.put(ActivityStarterDelegate.class.getName(), () ->
+        mProviders.put(ActivityStarter.class, () -> new ActivityStarterDelegate());
+        mProviders.put(ActivityStarterDelegate.class, () ->
                 getDependency(ActivityStarter.class));
 
-        mProviders.put(BluetoothController.class.getName(), () ->
+        mProviders.put(BluetoothController.class, () ->
                 new BluetoothControllerImpl(mContext, getDependency(BG_LOOPER)));
 
-        mProviders.put(LocationController.class.getName(), () ->
+        mProviders.put(LocationController.class, () ->
                 new LocationControllerImpl(mContext, getDependency(BG_LOOPER)));
 
-        mProviders.put(RotationLockController.class.getName(), () ->
+        mProviders.put(RotationLockController.class, () ->
                 new RotationLockControllerImpl(mContext));
 
-        mProviders.put(NetworkController.class.getName(), () ->
+        mProviders.put(NetworkController.class, () ->
                 new NetworkControllerImpl(mContext, getDependency(BG_LOOPER),
                         getDependency(DeviceProvisionedController.class)));
 
-        mProviders.put(ZenModeController.class.getName(), () ->
+        mProviders.put(ZenModeController.class, () ->
                 new ZenModeControllerImpl(mContext, getDependency(MAIN_HANDLER)));
 
-        mProviders.put(HotspotController.class.getName(), () ->
+        mProviders.put(HotspotController.class, () ->
                 new HotspotControllerImpl(mContext));
 
-        mProviders.put(CastController.class.getName(), () ->
+        mProviders.put(CastController.class, () ->
                 new CastControllerImpl(mContext));
 
-        mProviders.put(FlashlightController.class.getName(), () ->
+        mProviders.put(FlashlightController.class, () ->
                 new FlashlightControllerImpl(mContext));
 
-        mProviders.put(KeyguardMonitor.class.getName(), () ->
+        mProviders.put(KeyguardMonitor.class, () ->
                 new KeyguardMonitorImpl(mContext));
 
-        mProviders.put(UserSwitcherController.class.getName(), () ->
+        mProviders.put(UserSwitcherController.class, () ->
                 new UserSwitcherController(mContext, getDependency(KeyguardMonitor.class),
                         getDependency(MAIN_HANDLER), getDependency(ActivityStarter.class)));
 
-        mProviders.put(UserInfoController.class.getName(), () ->
+        mProviders.put(UserInfoController.class, () ->
                 new UserInfoControllerImpl(mContext));
 
-        mProviders.put(BatteryController.class.getName(), () ->
+        mProviders.put(BatteryController.class, () ->
                 new BatteryControllerImpl(mContext));
 
-        mProviders.put(ManagedProfileController.class.getName(), () ->
+        mProviders.put(ManagedProfileController.class, () ->
                 new ManagedProfileControllerImpl(mContext));
 
-        mProviders.put(NextAlarmController.class.getName(), () ->
+        mProviders.put(NextAlarmController.class, () ->
                 new NextAlarmControllerImpl(mContext));
 
-        mProviders.put(DataSaverController.class.getName(), () ->
+        mProviders.put(DataSaverController.class, () ->
                 get(NetworkController.class).getDataSaverController());
 
-        mProviders.put(AccessibilityController.class.getName(), () ->
+        mProviders.put(AccessibilityController.class, () ->
                 new AccessibilityController(mContext));
 
-        mProviders.put(DeviceProvisionedController.class.getName(), () ->
+        mProviders.put(DeviceProvisionedController.class, () ->
                 new DeviceProvisionedControllerImpl(mContext));
 
-        mProviders.put(PluginManager.class.getName(), () ->
+        mProviders.put(PluginManager.class, () ->
                 new PluginManager(mContext));
 
-        mProviders.put(AssistManager.class.getName(), () ->
+        mProviders.put(AssistManager.class, () ->
                 new AssistManager(getDependency(DeviceProvisionedController.class), mContext));
 
-        mProviders.put(SecurityController.class.getName(), () ->
+        mProviders.put(SecurityController.class, () ->
                 new SecurityControllerImpl(mContext));
 
-        mProviders.put(TunerService.class.getName(), () ->
+        mProviders.put(LeakDetector.class, LeakDetector::create);
+
+        mProviders.put(LEAK_REPORT_EMAIL, () -> null);
+
+        mProviders.put(LeakReporter.class, () -> new LeakReporter(
+                mContext,
+                getDependency(LeakDetector.class),
+                getDependency(LEAK_REPORT_EMAIL)));
+
+        mProviders.put(GarbageMonitor.class, () -> new GarbageMonitor(
+                getDependency(BG_LOOPER),
+                getDependency(LeakDetector.class),
+                getDependency(LeakReporter.class)));
+
+        mProviders.put(TunerService.class, () ->
                 new TunerService(mContext));
 
-        mProviders.put(StatusBarWindowManager.class.getName(), () ->
+        mProviders.put(StatusBarWindowManager.class, () ->
                 new StatusBarWindowManager(mContext));
 
+        mProviders.put(DarkIconDispatcher.class, () ->
+                new DarkIconDispatcherImpl(mContext));
+
+        mProviders.put(ConfigurationController.class, () ->
+                new ConfigurationControllerImpl(mContext));
+
+        mProviders.put(StatusBarIconController.class, () ->
+                new StatusBarIconControllerImpl(mContext));
+
         // Put all dependencies above here so the factory can override them if it wants.
         SystemUIFactory.getInstance().injectDependencies(mProviders, mContext);
     }
@@ -207,20 +247,28 @@
     }
 
     protected final <T> T getDependency(Class<T> cls) {
-        return getDependency(cls.getName());
+        return getDependencyInner(cls);
     }
 
-    protected final <T> T getDependency(String cls) {
-        T obj = (T) mDependencies.get(cls);
+    protected final <T> T getDependency(DependencyKey<T> key) {
+        return getDependencyInner(key);
+    }
+
+    private <T> T getDependencyInner(Object key) {
+        @SuppressWarnings("unchecked")
+        T obj = (T) mDependencies.get(key);
         if (obj == null) {
-            obj = createDependency(cls);
-            mDependencies.put(cls, obj);
+            obj = createDependency(key);
+            mDependencies.put(key, obj);
         }
         return obj;
     }
 
     @VisibleForTesting
-    protected <T> T createDependency(String cls) {
+    protected <T> T createDependency(Object cls) {
+        Preconditions.checkArgument(cls instanceof DependencyKey<?> || cls instanceof Class<?>);
+
+        @SuppressWarnings("unchecked")
         DependencyProvider<T> provider = mProviders.get(cls);
         if (provider == null) {
             throw new IllegalArgumentException("Unsupported dependency " + cls);
@@ -246,10 +294,23 @@
     }
 
     public static <T> T get(Class<T> cls) {
-        return sDependency.getDependency(cls.getName());
+        return sDependency.getDependency(cls);
     }
 
-    public static <T> T get(String cls) {
+    public static <T> T get(DependencyKey<T> cls) {
         return sDependency.getDependency(cls);
     }
+
+    public static final class DependencyKey<V> {
+        private final String mDisplayName;
+
+        public DependencyKey(String displayName) {
+            mDisplayName = displayName;
+        }
+
+        @Override
+        public String toString() {
+            return mDisplayName;
+        }
+    }
 }
diff --git a/packages/Keyguard/src/com/android/systemui/EventLogTags.logtags b/packages/SystemUI/src/com/android/systemui/EventLogTags.logtags
similarity index 100%
rename from packages/Keyguard/src/com/android/systemui/EventLogTags.logtags
rename to packages/SystemUI/src/com/android/systemui/EventLogTags.logtags
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
index e5bda7e..187b557 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
@@ -48,6 +48,7 @@
 import com.android.systemui.tuner.TunerService;
 import com.android.systemui.usb.StorageNotification;
 import com.android.systemui.util.NotificationChannels;
+import com.android.systemui.util.leak.GarbageMonitor;
 import com.android.systemui.volume.VolumeUI;
 
 import java.util.HashMap;
@@ -81,6 +82,7 @@
             PipUI.class,
             ShortcutKeyDispatcher.class,
             VendorServices.class,
+            GarbageMonitor.Service.class,
             LatencyTester.class,
     };
 
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
index 1ff0701..411fd3d 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
@@ -113,6 +113,6 @@
         return null;
     }
 
-    public void injectDependencies(ArrayMap<String, DependencyProvider> providers,
+    public void injectDependencies(ArrayMap<Object, DependencyProvider> providers,
             Context context) { }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/fragments/FragmentHostManager.java b/packages/SystemUI/src/com/android/systemui/fragments/FragmentHostManager.java
index 50506a9..0c6bf52 100644
--- a/packages/SystemUI/src/com/android/systemui/fragments/FragmentHostManager.java
+++ b/packages/SystemUI/src/com/android/systemui/fragments/FragmentHostManager.java
@@ -97,7 +97,7 @@
         return p;
     }
 
-    public void addTagListener(String tag, FragmentListener listener) {
+    public FragmentHostManager addTagListener(String tag, FragmentListener listener) {
         ArrayList<FragmentListener> listeners = mListeners.get(tag);
         if (listeners == null) {
             listeners = new ArrayList<>();
@@ -108,6 +108,7 @@
         if (current != null && current.getView() != null) {
             listener.onFragmentViewCreated(tag, current);
         }
+        return this;
     }
 
     // Shouldn't generally be needed, included for completeness sake.
diff --git a/packages/SystemUI/src/com/android/systemui/pip/BasePipManager.java b/packages/SystemUI/src/com/android/systemui/pip/BasePipManager.java
new file mode 100644
index 0000000..69541ec
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/pip/BasePipManager.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2017 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.pip;
+
+import android.content.Context;
+
+import java.io.PrintWriter;
+
+public interface  BasePipManager {
+    void initialize(Context context);
+    void onConfigurationChanged();
+    void dump(PrintWriter pw);
+}
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipUI.java b/packages/SystemUI/src/com/android/systemui/pip/PipUI.java
index 617d8ad..cc35f3c 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipUI.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipUI.java
@@ -24,11 +24,16 @@
 
 import com.android.systemui.SystemUI;
 
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
 /**
  * Controls the picture-in-picture window.
  */
 public class PipUI extends SystemUI {
 
+    private BasePipManager mPipManager;
+
     private boolean mSupportsPip;
     private boolean mIsLeanBackOnly;
 
@@ -36,27 +41,32 @@
     public void start() {
         PackageManager pm = mContext.getPackageManager();
         mSupportsPip = pm.hasSystemFeature(FEATURE_PICTURE_IN_PICTURE);
-        mIsLeanBackOnly = pm.hasSystemFeature(FEATURE_LEANBACK_ONLY);
         if (!mSupportsPip) {
             return;
         }
-        if (mIsLeanBackOnly) {
-            com.android.systemui.pip.tv.PipManager.getInstance().initialize(mContext);
-        } else {
-            com.android.systemui.pip.phone.PipManager.getInstance().initialize(mContext);
-        }
+
+        mPipManager = pm.hasSystemFeature(FEATURE_LEANBACK_ONLY)
+                ? com.android.systemui.pip.tv.PipManager.getInstance()
+                : com.android.systemui.pip.phone.PipManager.getInstance();
+        mPipManager.initialize(mContext);
     }
 
     @Override
     protected void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
-        if (!mSupportsPip) {
+        if (mPipManager == null) {
             return;
         }
-        if (mIsLeanBackOnly) {
-            com.android.systemui.pip.tv.PipManager.getInstance().onConfigurationChanged();
-        } else {
-            com.android.systemui.pip.phone.PipManager.getInstance().onConfigurationChanged();
+
+        mPipManager.onConfigurationChanged();
+    }
+
+    @Override
+    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        if (mPipManager == null) {
+            return;
         }
+
+        mPipManager.dump(pw);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
index f59b2a4..42f1b14 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
@@ -32,13 +32,16 @@
 import android.view.IWindowManager;
 import android.view.WindowManagerGlobal;
 
+import com.android.systemui.pip.BasePipManager;
 import com.android.systemui.recents.misc.SystemServicesProxy;
 import com.android.systemui.recents.misc.SystemServicesProxy.TaskStackListener;
 
+import java.io.PrintWriter;
+
 /**
  * Manages the picture-in-picture (PIP) UI and states for Phones.
  */
-public class PipManager {
+public class PipManager implements BasePipManager {
     private static final String TAG = "PipManager";
 
     private static PipManager sPipController;
@@ -179,4 +182,11 @@
         }
         return sPipController;
     }
+
+    public void dump(PrintWriter pw) {
+        final String innerPrefix = "  ";
+        pw.println(TAG);
+        mMenuController.dump(pw, innerPrefix);
+        mTouchHandler.dump(pw, innerPrefix);
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMediaController.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMediaController.java
index 5a665a9..3a4caa9 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMediaController.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMediaController.java
@@ -83,9 +83,7 @@
     private MediaController.Callback mPlaybackChangedListener = new MediaController.Callback() {
         @Override
         public void onPlaybackStateChanged(PlaybackState state) {
-            if (!mListeners.isEmpty()) {
-                notifyActionsChanged(getMediaActions());
-            }
+            notifyActionsChanged();
         }
     };
 
@@ -146,9 +144,9 @@
         boolean isPlaying = MediaSession.isActiveState(state);
         long actions = mMediaController.getPlaybackState().getActions();
         if (!isPlaying && ((actions & PlaybackState.ACTION_PLAY) != 0)) {
-            mediaActions.add(mPauseAction);
-        } else if (isPlaying && ((actions & PlaybackState.ACTION_PAUSE) != 0)) {
             mediaActions.add(mPlayAction);
+        } else if (isPlaying && ((actions & PlaybackState.ACTION_PAUSE) != 0)) {
+            mediaActions.add(mPauseAction);
         }
         return mediaActions;
     }
@@ -202,9 +200,7 @@
             if (controller != null) {
                 controller.registerCallback(mPlaybackChangedListener);
             }
-            if (!mListeners.isEmpty()) {
-                notifyActionsChanged(getMediaActions());
-            }
+            notifyActionsChanged();
 
             // TODO(winsonc): Consider if we want to close the PIP after a timeout (like on TV)
         }
@@ -213,8 +209,9 @@
     /**
      * Notifies all listeners that the actions have changed.
      */
-    private void notifyActionsChanged(List<RemoteAction> actions) {
+    private void notifyActionsChanged() {
         if (!mListeners.isEmpty()) {
+            List<RemoteAction> actions = getMediaActions();
             mListeners.forEach(l -> l.onMediaActionsChanged(actions));
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java
index f3dc339..91115d0 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivityController.java
@@ -35,6 +35,7 @@
 
 import com.android.systemui.pip.phone.PipMediaController.ActionListener;
 
+import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -264,4 +265,11 @@
         }
         mVisible = visible;
     }
+
+    public void dump(PrintWriter pw, String prefix) {
+        final String innerPrefix = prefix + "  ";
+        pw.println(prefix + TAG);
+        pw.println(innerPrefix + "mVisible=" + mVisible);
+        pw.println(innerPrefix + "mListeners=" + mListeners.size());
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
index fb3ed44..ed0a37f 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
@@ -43,6 +43,8 @@
 import com.android.systemui.recents.misc.SystemServicesProxy;
 import com.android.systemui.statusbar.FlingAnimationUtils;
 
+import java.io.PrintWriter;
+
 /**
  * A helper to animate and manipulate the PiP.
  */
@@ -375,4 +377,11 @@
     private float distanceBetweenRectOffsets(Rect r1, Rect r2) {
         return PointF.length(r1.left - r2.left, r1.top - r2.top);
     }
+
+    public void dump(PrintWriter pw, String prefix) {
+        final String innerPrefix = prefix + "  ";
+        pw.println(prefix + TAG);
+        pw.println(innerPrefix + "mBounds=" + mBounds);
+        pw.println(innerPrefix + "mStableInsets=" + mStableInsets);
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
index b3adee0..e8c0050 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
@@ -41,6 +41,8 @@
 import com.android.systemui.statusbar.FlingAnimationUtils;
 import com.android.systemui.tuner.TunerService;
 
+import java.io.PrintWriter;
+
 /**
  * Manages all the touch handling for PIP on the Phone, including moving, dismissing and expanding
  * the PIP.
@@ -566,4 +568,24 @@
                 ? mExpandedMovementBounds
                 : mNormalMovementBounds;
     }
+
+    public void dump(PrintWriter pw, String prefix) {
+        final String innerPrefix = prefix + "  ";
+        pw.println(prefix + TAG);
+        pw.println(innerPrefix + "mMovementBounds=" + mMovementBounds);
+        pw.println(innerPrefix + "mNormalBounds=" + mNormalBounds);
+        pw.println(innerPrefix + "mNormalMovementBounds=" + mNormalMovementBounds);
+        pw.println(innerPrefix + "mExpandedBounds=" + mExpandedBounds);
+        pw.println(innerPrefix + "mExpandedMovementBounds=" + mExpandedMovementBounds);
+        pw.println(innerPrefix + "mIsTappingThrough=" + mIsTappingThrough);
+        pw.println(innerPrefix + "mIsMinimized=" + mIsMinimized);
+        pw.println(innerPrefix + "mIsMenuVisible=" + mIsMenuVisible);
+        pw.println(innerPrefix + "mIsImeShowing=" + mIsImeShowing);
+        pw.println(innerPrefix + "mImeHeight=" + mImeHeight);
+        pw.println(innerPrefix + "mSavedSnapFraction=" + mSavedSnapFraction);
+        pw.println(innerPrefix + "mEnableDragToDismiss=" + mEnableDragToDismiss);
+        mSnapAlgorithm.dump(pw, innerPrefix);
+        mTouchState.dump(pw, innerPrefix);
+        mMotionHelper.dump(pw, innerPrefix);
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchState.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchState.java
index 868b34b7..702ad0a 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchState.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchState.java
@@ -21,10 +21,13 @@
 import android.view.VelocityTracker;
 import android.view.ViewConfiguration;
 
+import java.io.PrintWriter;
+
 /**
  * This keeps track of the touch state throughout the current touch gesture.
  */
 public class PipTouchState {
+    private static final String TAG = "PipTouchHandler";
 
     private ViewConfiguration mViewConfig;
 
@@ -195,4 +198,18 @@
             mVelocityTracker = null;
         }
     }
+
+    public void dump(PrintWriter pw, String prefix) {
+        final String innerPrefix = prefix + "  ";
+        pw.println(prefix + TAG);
+        pw.println(innerPrefix + "mDownTouch=" + mDownTouch);
+        pw.println(innerPrefix + "mDownDelta=" + mDownDelta);
+        pw.println(innerPrefix + "mLastTouch=" + mLastTouch);
+        pw.println(innerPrefix + "mLastDelta=" + mLastDelta);
+        pw.println(innerPrefix + "mVelocity=" + mVelocity);
+        pw.println(innerPrefix + "mIsUserInteracting=" + mIsUserInteracting);
+        pw.println(innerPrefix + "mIsDragging=" + mIsDragging);
+        pw.println(innerPrefix + "mStartedDragging=" + mStartedDragging);
+        pw.println(innerPrefix + "mAllowDraggingOffscreen=" + mAllowDraggingOffscreen);
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
index e3db16a..112fedb 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
@@ -47,9 +47,11 @@
 
 import com.android.systemui.Prefs;
 import com.android.systemui.R;
+import com.android.systemui.pip.BasePipManager;
 import com.android.systemui.recents.misc.SystemServicesProxy;
 import com.android.systemui.recents.misc.SystemServicesProxy.TaskStackListener;
 
+import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -61,7 +63,7 @@
 /**
  * Manages the picture-in-picture (PIP) UI and states.
  */
-public class PipManager {
+public class PipManager implements BasePipManager {
     private static final String TAG = "PipManager";
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
     private static final boolean DEBUG_FORCE_ONBOARDING =
@@ -779,4 +781,9 @@
     private void updatePipVisibility(final boolean visible) {
         SystemServicesProxy.getInstance(mContext).setTvPipVisibility(visible);
     }
+
+    @Override
+    public void dump(PrintWriter pw) {
+        // Do nothing
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
index a4cd14d..b48b829 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
@@ -179,7 +179,7 @@
         }
 
         @Override
-        public void onKeyguardChanged() {
+        public void onKeyguardShowingChanged() {
             refreshState();
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java
index 5374f18..423a1df 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java
@@ -141,7 +141,7 @@
         }
 
         @Override
-        public void onKeyguardChanged() {
+        public void onKeyguardShowingChanged() {
             refreshState();
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 9245df0..5366da1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -25,7 +25,6 @@
 import android.os.Message;
 import android.support.annotation.VisibleForTesting;
 import android.util.Pair;
-import android.view.KeyEvent;
 
 import com.android.internal.os.SomeArgs;
 import com.android.internal.statusbar.IStatusBar;
@@ -92,6 +91,8 @@
     private final Object mLock = new Object();
     private ArrayList<Callbacks> mCallbacks = new ArrayList<>();
     private Handler mHandler = new H(Looper.getMainLooper());
+    private int mDisable1;
+    private int mDisable2;
 
     /**
      * These methods are called back on the main thread.
@@ -119,9 +120,9 @@
         default void cancelPreloadRecentApps() { }
         default void setWindowState(int window, int state) { }
         default void showScreenPinningRequest(int taskId) { }
-        default void appTransitionPending() { }
+        default void appTransitionPending(boolean forced) { }
         default void appTransitionCancelled() { }
-        default void appTransitionStarting(long startTime, long duration) { }
+        default void appTransitionStarting(long startTime, long duration, boolean forced) { }
         default void appTransitionFinished() { }
         default void showAssistDisclosure() { }
         default void startAssist(Bundle args) { }
@@ -141,6 +142,7 @@
 
     public void addCallbacks(Callbacks callbacks) {
         mCallbacks.add(callbacks);
+        callbacks.disable(mDisable1, mDisable2, false /* animate */);
     }
 
     public void removeCallbacks(Callbacks callbacks) {
@@ -164,6 +166,8 @@
 
     public void disable(int state1, int state2) {
         synchronized (mLock) {
+            mDisable1 = state1;
+            mDisable2 = state2;
             mHandler.removeMessages(MSG_DISABLE);
             mHandler.obtainMessage(MSG_DISABLE, state1, state2, null).sendToTarget();
         }
@@ -315,9 +319,13 @@
     }
 
     public void appTransitionPending() {
+        appTransitionPending(false /* forced */);
+    }
+
+    public void appTransitionPending(boolean forced) {
         synchronized (mLock) {
             mHandler.removeMessages(MSG_APP_TRANSITION_PENDING);
-            mHandler.sendEmptyMessage(MSG_APP_TRANSITION_PENDING);
+            mHandler.obtainMessage(MSG_APP_TRANSITION_PENDING, forced ? 1 : 0, 0).sendToTarget();
         }
     }
 
@@ -329,10 +337,14 @@
     }
 
     public void appTransitionStarting(long startTime, long duration) {
+        appTransitionStarting(startTime, duration, false /* forced */);
+    }
+
+    public void appTransitionStarting(long startTime, long duration, boolean forced) {
         synchronized (mLock) {
             mHandler.removeMessages(MSG_APP_TRANSITION_STARTING);
-            mHandler.obtainMessage(MSG_APP_TRANSITION_STARTING, Pair.create(startTime, duration))
-                    .sendToTarget();
+            mHandler.obtainMessage(MSG_APP_TRANSITION_STARTING, forced ? 1 : 0, 0,
+                    Pair.create(startTime, duration)).sendToTarget();
         }
     }
 
@@ -505,7 +517,7 @@
                     break;
                 case MSG_APP_TRANSITION_PENDING:
                     for (int i = 0; i < mCallbacks.size(); i++) {
-                        mCallbacks.get(i).appTransitionPending();
+                        mCallbacks.get(i).appTransitionPending(msg.arg1 != 0);
                     }
                     break;
                 case MSG_APP_TRANSITION_CANCELLED:
@@ -516,7 +528,8 @@
                 case MSG_APP_TRANSITION_STARTING:
                     for (int i = 0; i < mCallbacks.size(); i++) {
                         Pair<Long, Long> data = (Pair<Long, Long>) msg.obj;
-                        mCallbacks.get(i).appTransitionStarting(data.first, data.second);
+                        mCallbacks.get(i).appTransitionStarting(data.first, data.second,
+                                msg.arg1 != 0);
                     }
                     break;
                 case MSG_APP_TRANSITION_FINISHED:
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
index 8b4225a..b15f090 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
@@ -21,6 +21,7 @@
 import android.animation.ArgbEvaluator;
 import android.animation.PropertyValuesHolder;
 import android.animation.ValueAnimator;
+import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.CanvasProperty;
@@ -78,6 +79,7 @@
     private boolean mSupportHardware;
     private boolean mFinishing;
     private boolean mLaunchingAffordance;
+    private boolean mShouldTint = true;
 
     private CanvasProperty<Float> mHwCircleRadius;
     private CanvasProperty<Float> mHwCenterX;
@@ -137,6 +139,12 @@
         mFlingAnimationUtils = new FlingAnimationUtils(mContext, 0.3f);
     }
 
+    public void setImageDrawable(@Nullable Drawable drawable, boolean tint) {
+        super.setImageDrawable(drawable);
+        mShouldTint = tint;
+        updateIconColor();
+    }
+
     @Override
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);
@@ -165,6 +173,7 @@
     }
 
     private void updateIconColor() {
+        if (!mShouldTint) return;
         Drawable drawable = getDrawable().mutate();
         float alpha = mCircleRadius / mMinBackgroundRadius;
         alpha = Math.min(1.0f, alpha);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java
index f6056dd..b36cfdc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java
@@ -39,12 +39,9 @@
 import android.view.View;
 import android.view.ViewAnimationUtils;
 import android.view.ViewGroup;
-import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
 import android.widget.SeekBar;
 import android.widget.Switch;
 import android.widget.TextView;
@@ -170,14 +167,14 @@
         void onClick(View v, int appUid);
     }
 
-    public void closeControls(int x, int y, boolean saveImportance) {
+    public void closeControls(int x, int y, boolean save) {
         if (getWindowToken() == null) {
             if (mListener != null) {
                 mListener.onGutsClosed(this);
             }
             return;
         }
-        if (mGutsContent == null || !mGutsContent.handleCloseControls()) {
+        if (mGutsContent == null || !mGutsContent.handleCloseControls(save)) {
             animateClose(x, y);
         }
         setExposed(false, mNeedsFalsingProtection);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationInfo.java
index bdbc9b3..5d13e61 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationInfo.java
@@ -1,5 +1,3 @@
-package com.android.systemui.statusbar;
-
 /*
  * Copyright (C) 2017 The Android Open Source Project
  *
@@ -16,15 +14,19 @@
  * limitations under the License
  */
 
+package com.android.systemui.statusbar;
+
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.app.INotificationManager;
 import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
 import android.app.NotificationManager;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.content.pm.ParceledListSlice;
 import android.content.res.ColorStateList;
 import android.content.res.TypedArray;
 import android.graphics.Canvas;
@@ -43,8 +45,6 @@
 import android.widget.CompoundButton;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
 import android.widget.SeekBar;
 import android.widget.Switch;
 import android.widget.TextView;
@@ -77,13 +77,9 @@
     private TextView mImportanceTitle;
     private boolean mAuto;
 
-    private View mImportanceGroup;
-    private View mChannelDisabled;
+    private TextView mNumChannelsView;
+    private View mChannelDisabledView;
     private Switch mChannelEnabledSwitch;
-    private RadioButton mMinImportanceButton;
-    private RadioButton mLowImportanceButton;
-    private RadioButton mDefaultImportanceButton;
-    private RadioButton mHighImportanceButton;
 
     private GutsInteractionListener mGutsInteractionListener;
 
@@ -107,7 +103,7 @@
 
         final String pkg = sbn.getPackageName();
         int appUid = -1;
-        String appname = pkg;
+        String appName = pkg;
         Drawable pkgicon = null;
         try {
             final ApplicationInfo info = pm.getApplicationInfo(pkg,
@@ -117,44 +113,61 @@
                             | PackageManager.MATCH_DIRECT_BOOT_AWARE);
             if (info != null) {
                 appUid = info.uid;
-                appname = String.valueOf(pm.getApplicationLabel(info));
+                appName = String.valueOf(pm.getApplicationLabel(info));
                 pkgicon = pm.getApplicationIcon(info);
             }
         } catch (PackageManager.NameNotFoundException e) {
             // app is gone, just show package name and generic icon
             pkgicon = pm.getDefaultActivityIcon();
         }
+        ((ImageView) findViewById(R.id.pkgicon)).setImageDrawable(pkgicon);
+
+        int numChannels = 1;
+        try {
+            numChannels = iNotificationManager.getNumNotificationChannelsForPackage(
+                    pkg, appUid, false /* includeDeleted */);
+        } catch (RemoteException e) {
+            Log.e(TAG, e.toString());
+        }
+
+        mNumChannelsView = (TextView) (findViewById(R.id.num_channels_desc));
+        mNumChannelsView.setText(String.format(mContext.getResources().getQuantityString(
+                R.plurals.notification_num_channels_desc, numChannels), numChannels));
 
         // If this is the placeholder channel, don't use our channel-specific text.
-        String appNameText;
         CharSequence channelNameText;
         if (channel.getId().equals(NotificationChannel.DEFAULT_CHANNEL_ID)) {
-            appNameText = appname;
             channelNameText = mContext.getString(R.string.notification_header_default_channel);
         } else {
-            appNameText = mContext.getString(R.string.notification_importance_header_app, appname);
             channelNameText = channel.getName();
         }
-        ((TextView) findViewById(R.id.pkgname)).setText(appNameText);
+        ((TextView) findViewById(R.id.pkgname)).setText(appName);
         ((TextView) findViewById(R.id.channel_name)).setText(channelNameText);
 
-        // Settings button.
-        final TextView settingsButton = (TextView) findViewById(R.id.more_settings);
-        if (appUid >= 0 && onSettingsClick != null) {
-            final int appUidF = appUid;
-            settingsButton.setOnClickListener(
-                    (View view) -> {
-                        onSettingsClick.onClick(view, appUidF);
-                    });
-            settingsButton.setText(R.string.notification_more_settings);
-        } else {
-            settingsButton.setVisibility(View.GONE);
+        // Set group information if this channel has an associated group.
+        CharSequence groupName = null;
+        if (channel.getGroup() != null) {
+            try {
+                final NotificationChannelGroup notificationChannelGroup =
+                        iNotificationManager.getNotificationChannelGroupForPackage(
+                                channel.getGroup(), pkg, appUid);
+                if (notificationChannelGroup != null) {
+                    groupName = notificationChannelGroup.getName();
+                }
+            } catch (RemoteException e) {
+                Log.e(TAG, e.toString());
+            }
         }
-
-        // Done button.
-        final TextView doneButton = (TextView) findViewById(R.id.done);
-        doneButton.setText(R.string.notification_done);
-        doneButton.setOnClickListener(onDoneClick);
+        TextView groupNameView = ((TextView) findViewById(R.id.group_name));
+        TextView groupDividerView = ((TextView) findViewById(R.id.pkg_group_divider));
+        if (groupName != null) {
+            groupNameView.setText(groupName);
+            groupNameView.setVisibility(View.VISIBLE);
+            groupDividerView.setVisibility(View.VISIBLE);
+        } else {
+            groupNameView.setVisibility(View.GONE);
+            groupDividerView.setVisibility(View.GONE);
+        }
 
         boolean nonBlockable = false;
         try {
@@ -167,53 +180,41 @@
             nonBlockable |= nonBlockablePkgs.contains(pkg);
         }
 
-        final View importanceButtons = findViewById(R.id.importance_buttons);
-        bindToggles(importanceButtons, mStartingUserImportance, nonBlockable);
-
-        // Importance Text (hardcoded to 4 importance levels)
-        final ViewGroup importanceTextGroup = (ViewGroup) findViewById(
-                R.id.importance_buttons_text);
-        final int size = importanceTextGroup.getChildCount();
-        for (int i = 0; i < size; i++) {
-            int importanceNameResId = 0;
-            int importanceDescResId = 0;
-            switch (i) {
-                case 0:
-                    importanceNameResId = R.string.high_importance;
-                    importanceDescResId = R.string.notification_importance_high;
-                    break;
-                case 1:
-                    importanceNameResId = R.string.default_importance;
-                    importanceDescResId = R.string.notification_importance_default;
-                    break;
-                case 2:
-                    importanceNameResId = R.string.low_importance;
-                    importanceDescResId = R.string.notification_importance_low;
-                    break;
-                case 3:
-                    importanceNameResId = R.string.min_importance;
-                    importanceDescResId = R.string.notification_importance_min;
-                    break;
-                default:
-                    Log.e(TAG, "Too many importance groups in this layout.");
-                    break;
-            }
-            final ViewGroup importanceChildGroup = (ViewGroup) importanceTextGroup.getChildAt(i);
-            ((TextView) importanceChildGroup.getChildAt(0)).setText(importanceNameResId);
-            ((TextView) importanceChildGroup.getChildAt(1)).setText(importanceDescResId);
-        }
+        bindButtons(nonBlockable);
 
         // Top-level importance group
-        mImportanceGroup = findViewById(R.id.importance);
-        mChannelDisabled = findViewById(R.id.channel_disabled);
-        updateImportanceGroup();
+        mChannelDisabledView = findViewById(R.id.channel_disabled);
+        updateImportanceDisplay();
+
+        // Settings button.
+        final TextView settingsButton = (TextView) findViewById(R.id.more_settings);
+        if (appUid >= 0 && onSettingsClick != null) {
+            final int appUidF = appUid;
+            settingsButton.setOnClickListener(
+                    (View view) -> {
+                        onSettingsClick.onClick(view, appUidF);
+                    });
+            if (numChannels > 1) {
+                settingsButton.setText(R.string.notification_all_categories);
+            } else {
+                settingsButton.setText(R.string.notification_more_settings);
+            }
+
+        } else {
+            settingsButton.setVisibility(View.GONE);
+        }
+
+        // Done button.
+        final TextView doneButton = (TextView) findViewById(R.id.done);
+        doneButton.setText(R.string.notification_done);
+        doneButton.setOnClickListener(onDoneClick);
     }
 
     public boolean hasImportanceChanged() {
         return mStartingUserImportance != getSelectedImportance();
     }
 
-    public void saveImportance() {
+    private void saveImportance() {
         int selectedImportance = getSelectedImportance();
         if (selectedImportance == mStartingUserImportance) {
             return;
@@ -233,73 +234,37 @@
     private int getSelectedImportance() {
         if (!mChannelEnabledSwitch.isChecked()) {
             return NotificationManager.IMPORTANCE_NONE;
-        } else if (mMinImportanceButton.isChecked()) {
-            return NotificationManager.IMPORTANCE_MIN;
-        } else if (mLowImportanceButton.isChecked()) {
-            return NotificationManager.IMPORTANCE_LOW;
-        } else if (mDefaultImportanceButton.isChecked()) {
-            return NotificationManager.IMPORTANCE_DEFAULT;
-        } else if (mHighImportanceButton.isChecked()) {
-            return NotificationManager.IMPORTANCE_HIGH;
         } else {
-            return NotificationManager.IMPORTANCE_UNSPECIFIED;
+            return mStartingUserImportance;
         }
     }
 
-    private void bindToggles(final View importanceButtons, final int importance,
-            final boolean nonBlockable) {
+    private void bindButtons(final boolean nonBlockable) {
         // Enabled Switch
         mChannelEnabledSwitch = (Switch) findViewById(R.id.channel_enabled_switch);
-        mChannelEnabledSwitch.setChecked(importance != NotificationManager.IMPORTANCE_NONE);
+        mChannelEnabledSwitch.setChecked(
+                mStartingUserImportance != NotificationManager.IMPORTANCE_NONE);
         mChannelEnabledSwitch.setVisibility(nonBlockable ? View.INVISIBLE : View.VISIBLE);
 
-        // Importance Buttons
-        mMinImportanceButton = (RadioButton) importanceButtons.findViewById(R.id.min_importance);
-        mLowImportanceButton = (RadioButton) importanceButtons.findViewById(R.id.low_importance);
-        mDefaultImportanceButton = (RadioButton) importanceButtons
-                .findViewById(R.id.default_importance);
-        mHighImportanceButton = (RadioButton) importanceButtons.findViewById(R.id.high_importance);
-
-        // Set to current importance setting
-        switch (importance) {
-            case NotificationManager.IMPORTANCE_UNSPECIFIED:
-            case NotificationManager.IMPORTANCE_NONE:
-                break;
-            case NotificationManager.IMPORTANCE_MIN:
-                mMinImportanceButton.setChecked(true);
-                break;
-            case NotificationManager.IMPORTANCE_LOW:
-                mLowImportanceButton.setChecked(true);
-                break;
-            case NotificationManager.IMPORTANCE_DEFAULT:
-                mDefaultImportanceButton.setChecked(true);
-                break;
-            case NotificationManager.IMPORTANCE_HIGH:
-            case NotificationManager.IMPORTANCE_MAX:
-                mHighImportanceButton.setChecked(true);
-                break;
-        }
-
         // Callback when checked.
         mChannelEnabledSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
-            mGutsInteractionListener.onInteraction(NotificationInfo.this);
-            updateImportanceGroup();
+            if (mGutsInteractionListener != null) {
+                mGutsInteractionListener.onInteraction(NotificationInfo.this);
+            }
+            updateImportanceDisplay();
         });
-        ((RadioGroup) importanceButtons).setOnCheckedChangeListener(
-                (buttonView, isChecked) -> {
-                    mGutsInteractionListener.onInteraction(NotificationInfo.this);
-                });
     }
 
-    private void updateImportanceGroup() {
+    private void updateImportanceDisplay() {
         final boolean disabled = getSelectedImportance() == NotificationManager.IMPORTANCE_NONE;
-        mImportanceGroup.setVisibility(disabled ? View.GONE : View.VISIBLE);
-        mChannelDisabled.setVisibility(disabled ? View.VISIBLE : View.GONE);
-    }
-
-    public void closeControls() {
-        if (mGutsInteractionListener != null) {
-            mGutsInteractionListener.closeGuts(this);
+        mChannelDisabledView.setVisibility(disabled ? View.VISIBLE : View.GONE);
+        if (disabled) {
+            // To be replaced by disabled text.
+            mNumChannelsView.setVisibility(View.GONE);
+        } else if (mNotificationChannel.getId().equals(NotificationChannel.DEFAULT_CHANNEL_ID)) {
+            mNumChannelsView.setVisibility(View.INVISIBLE);
+        } else {
+            mNumChannelsView.setVisibility(View.VISIBLE);
         }
     }
 
@@ -314,7 +279,10 @@
     }
 
     @Override
-    public boolean handleCloseControls() {
+    public boolean handleCloseControls(boolean save) {
+        if (save) {
+            saveImportance();
+        }
         return false;
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSnooze.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSnooze.java
index 1992b6c..0657dc1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSnooze.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSnooze.java
@@ -195,7 +195,7 @@
     }
 
     @Override
-    public boolean handleCloseControls() {
+    public boolean handleCloseControls(boolean save) {
         // When snooze is closed (i.e. there was interaction outside of the notification)
         // then we commit the snooze action.
         if (mSnoozeListener != null && mSelectedOption != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index 45eb5df..89041f9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -43,6 +43,8 @@
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver;
 import com.android.systemui.statusbar.policy.NetworkController;
 import com.android.systemui.statusbar.policy.NetworkController.IconState;
 import com.android.systemui.statusbar.policy.NetworkControllerImpl;
@@ -54,10 +56,9 @@
 import java.util.List;
 
 // Intimately tied to the design of res/layout/signal_cluster_view.xml
-public class SignalClusterView
-        extends LinearLayout
-        implements NetworkControllerImpl.SignalCallback,
-        SecurityController.SecurityControllerCallback, Tunable {
+public class SignalClusterView extends LinearLayout implements NetworkControllerImpl.SignalCallback,
+        SecurityController.SecurityControllerCallback, Tunable,
+        DarkReceiver {
 
     static final String TAG = "SignalClusterView";
     static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
@@ -581,7 +582,8 @@
         return colorAccent;
     }
 
-    public void setIconTint(int tint, float darkIntensity, Rect tintArea) {
+    @Override
+    public void onDarkChanged(Rect tintArea, float darkIntensity, int tint) {
         boolean changed = tint != mIconTint || darkIntensity != mDarkIntensity
                 || !mTintArea.equals(tintArea);
         mIconTint = tint;
@@ -593,16 +595,16 @@
     }
 
     private void applyIconTint() {
-        setTint(mVpn, StatusBarIconController.getTint(mTintArea, mVpn, mIconTint));
-        setTint(mAirplane, StatusBarIconController.getTint(mTintArea, mAirplane, mIconTint));
+        setTint(mVpn, DarkIconDispatcher.getTint(mTintArea, mVpn, mIconTint));
+        setTint(mAirplane, DarkIconDispatcher.getTint(mTintArea, mAirplane, mIconTint));
         applyDarkIntensity(
-                StatusBarIconController.getDarkIntensity(mTintArea, mNoSims, mDarkIntensity),
+                DarkIconDispatcher.getDarkIntensity(mTintArea, mNoSims, mDarkIntensity),
                 mNoSims, mNoSimsDark);
         applyDarkIntensity(
-                StatusBarIconController.getDarkIntensity(mTintArea, mWifi, mDarkIntensity),
+                DarkIconDispatcher.getDarkIntensity(mTintArea, mWifi, mDarkIntensity),
                 mWifi, mWifiDark);
         applyDarkIntensity(
-                StatusBarIconController.getDarkIntensity(mTintArea, mEthernet, mDarkIntensity),
+                DarkIconDispatcher.getDarkIntensity(mTintArea, mEthernet, mDarkIntensity),
                 mEthernet, mEthernetDark);
         for (int i = 0; i < mPhoneStates.size(); i++) {
             mPhoneStates.get(i).setIconTint(mIconTint, mDarkIntensity, mTintArea);
@@ -740,10 +742,10 @@
 
         public void setIconTint(int tint, float darkIntensity, Rect tintArea) {
             applyDarkIntensity(
-                    StatusBarIconController.getDarkIntensity(tintArea, mMobile, darkIntensity),
+                    DarkIconDispatcher.getDarkIntensity(tintArea, mMobile, darkIntensity),
                     mMobile, mMobileDark);
-            setTint(mMobileType, StatusBarIconController.getTint(tintArea, mMobileType, tint));
-            setTint(mMobileRoaming, StatusBarIconController.getTint(tintArea, mMobileRoaming,
+            setTint(mMobileType, DarkIconDispatcher.getTint(tintArea, mMobileType, tint));
+            setTint(mMobileRoaming, DarkIconDispatcher.getTint(tintArea, mMobileRoaming,
                     tint));
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
index 4161389..f53dad5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
@@ -32,17 +32,19 @@
 import android.view.ViewStub;
 import android.view.WindowManager;
 import android.widget.LinearLayout;
+
 import com.android.systemui.BatteryMeterView;
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
 import com.android.systemui.SwipeHelper;
+import com.android.systemui.fragments.FragmentHostManager;
 import com.android.systemui.recents.Recents;
 import com.android.systemui.recents.misc.SystemServicesProxy;
 import com.android.systemui.recents.misc.SystemServicesProxy.TaskStackListener;
 import com.android.systemui.statusbar.StatusBarState;
+import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
 import com.android.systemui.statusbar.phone.NavigationBarView;
 import com.android.systemui.statusbar.phone.StatusBar;
-import com.android.systemui.statusbar.phone.PhoneStatusBarView;
 import com.android.systemui.statusbar.policy.BatteryController;
 import com.android.systemui.statusbar.policy.UserSwitcherController;
 
@@ -75,7 +77,6 @@
 
         createBatteryController();
         mCarBatteryController.startListening();
-        mConnectedDeviceSignalController.startListening();
     }
 
     @Override
@@ -87,32 +88,40 @@
     }
 
     @Override
-    protected PhoneStatusBarView makeStatusBarView() {
-        PhoneStatusBarView statusBarView = super.makeStatusBarView();
+    protected void makeStatusBarView() {
+        super.makeStatusBarView();
 
-        mBatteryMeterView = ((BatteryMeterView) statusBarView.findViewById(R.id.battery));
+        FragmentHostManager manager = FragmentHostManager.get(mStatusBarWindow);
+        manager.addTagListener(CollapsedStatusBarFragment.TAG, (tag, fragment) -> {
+            mBatteryMeterView = ((BatteryMeterView) fragment.getView().findViewById(
+                    R.id.battery));
 
-        // By default, the BatteryMeterView should not be visible. It will be toggled visible
-        // when a device has connected by bluetooth.
-        mBatteryMeterView.setVisibility(View.GONE);
+            // By default, the BatteryMeterView should not be visible. It will be toggled
+            // when a device has connected by bluetooth.
+            mBatteryMeterView.setVisibility(View.GONE);
 
-        ViewStub stub = (ViewStub) statusBarView.findViewById(R.id.connected_device_signals_stub);
-        View signalsView = stub.inflate();
+            ViewStub stub = (ViewStub) fragment.getView().findViewById(
+                    R.id.connected_device_signals_stub);
+            View signalsView = stub.inflate();
 
-        // When a ViewStub if inflated, it does not respect the margins on the inflated view.
-        // As a result, manually add the ending margin.
-        ((LinearLayout.LayoutParams) signalsView.getLayoutParams()).setMarginEnd(
-                mContext.getResources().getDimensionPixelOffset(
-                        R.dimen.status_bar_connected_device_signal_margin_end));
+            // When a ViewStub if inflated, it does not respect the margins on the
+            // inflated view.
+            // As a result, manually add the ending margin.
+            ((LinearLayout.LayoutParams) signalsView.getLayoutParams()).setMarginEnd(
+                    mContext.getResources().getDimensionPixelOffset(
+                            R.dimen.status_bar_connected_device_signal_margin_end));
 
-        mConnectedDeviceSignalController = new ConnectedDeviceSignalController(mContext,
-                signalsView);
+            if (mConnectedDeviceSignalController != null) {
+                mConnectedDeviceSignalController.stopListening();
+            }
+            mConnectedDeviceSignalController = new ConnectedDeviceSignalController(mContext,
+                    signalsView);
+            mConnectedDeviceSignalController.startListening();
 
-        if (Log.isLoggable(TAG, Log.DEBUG)) {
-            Log.d(TAG, "makeStatusBarView(). mBatteryMeterView: " + mBatteryMeterView);
-        }
-
-        return statusBarView;
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "makeStatusBarView(). mBatteryMeterView: " + mBatteryMeterView);
+            }
+        });
     }
 
     private BatteryController createBatteryController() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
new file mode 100644
index 0000000..1f56c56
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
@@ -0,0 +1,223 @@
+/*
+ * Copyright (C) 2017 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.phone;
+
+import static com.android.systemui.statusbar.phone.StatusBar.reinflateSignalCluster;
+
+import android.annotation.Nullable;
+import android.app.Fragment;
+import android.app.StatusBarManager;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+import com.android.systemui.Dependency;
+import com.android.systemui.Interpolators;
+import com.android.systemui.R;
+import com.android.systemui.SysUiServiceProvider;
+import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.SignalClusterView;
+import com.android.systemui.statusbar.phone.StatusBarIconController.DarkIconManager;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
+import com.android.systemui.statusbar.policy.EncryptionHelper;
+import com.android.systemui.statusbar.policy.KeyguardMonitor;
+import com.android.systemui.statusbar.policy.NetworkController;
+
+/**
+ * Contains the collapsed status bar and handles hiding/showing based on disable flags
+ * and keyguard state. Also manages lifecycle to make sure the views it contains are being
+ * updated by the StatusBarIconController and DarkIconManager while it is attached.
+ */
+public class CollapsedStatusBarFragment extends Fragment implements CommandQueue.Callbacks {
+
+    public static final String TAG = "CollapsedStatusBarFragment";
+    private PhoneStatusBarView mStatusBar;
+    private KeyguardMonitor mKeyguardMonitor;
+    private NetworkController mNetworkController;
+    private LinearLayout mSystemIconArea;
+    private View mNotificationIconAreaInner;
+    private int mDisabled1;
+    private StatusBar mStatusBarComponent;
+    private DarkIconManager mDarkIconManager;
+    private SignalClusterView mSignalClusterView;
+
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
+        mNetworkController = Dependency.get(NetworkController.class);
+        mStatusBarComponent = SysUiServiceProvider.getComponent(getContext(), StatusBar.class);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
+            Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.status_bar, container, false);
+    }
+
+    @Override
+    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        mStatusBar = (PhoneStatusBarView) view;
+        mDarkIconManager = new DarkIconManager((LinearLayout) view.findViewById(R.id.statusIcons));
+        Dependency.get(StatusBarIconController.class).addIconGroup(mDarkIconManager);
+        mSystemIconArea = (LinearLayout) mStatusBar.findViewById(R.id.system_icon_area);
+        mSignalClusterView = reinflateSignalCluster(mStatusBar);
+        Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mSignalClusterView);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).addCallbacks(this);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).removeCallbacks(this);
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(mSignalClusterView);
+        Dependency.get(StatusBarIconController.class).removeIconGroup(mDarkIconManager);
+    }
+
+    public void initNotificationIconArea(NotificationIconAreaController
+            notificationIconAreaController) {
+        ViewGroup notificationIconArea = (ViewGroup) mStatusBar
+                .findViewById(R.id.notification_icon_area);
+        mNotificationIconAreaInner =
+                notificationIconAreaController.getNotificationInnerAreaView();
+        if (mNotificationIconAreaInner.getParent() != null) {
+            ((ViewGroup) mNotificationIconAreaInner.getParent())
+                    .removeView(mNotificationIconAreaInner);
+        }
+        notificationIconArea.addView(mNotificationIconAreaInner);
+    }
+
+    @Override
+    public void disable(int state1, int state2, boolean animate) {
+        state1 = adjustDisableFlags(state1);
+        final int old1 = mDisabled1;
+        final int diff1 = state1 ^ old1;
+        mDisabled1 = state1;
+        if ((diff1 & StatusBarManager.DISABLE_SYSTEM_INFO) != 0) {
+            if ((state1 & StatusBarManager.DISABLE_SYSTEM_INFO) != 0) {
+                hideSystemIconArea(animate);
+            } else {
+                showSystemIconArea(animate);
+            }
+        }
+        if ((diff1 & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
+            if ((state1 & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
+                hideNotificationIconArea(animate);
+            } else {
+                showNotificationIconArea(animate);
+            }
+        }
+    }
+
+    protected int adjustDisableFlags(int state) {
+        if (!mStatusBarComponent.isLaunchTransitionFadingAway()
+                && !mKeyguardMonitor.isKeyguardFadingAway()
+                && shouldHideNotificationIcons()) {
+            state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS;
+            state |= StatusBarManager.DISABLE_SYSTEM_INFO;
+        }
+        if (mNetworkController != null && EncryptionHelper.IS_DATA_ENCRYPTED) {
+            if (mNetworkController.hasEmergencyCryptKeeperText()) {
+                state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS;
+            }
+            if (!mNetworkController.isRadioOn()) {
+                state |= StatusBarManager.DISABLE_SYSTEM_INFO;
+            }
+        }
+        return state;
+    }
+
+    private boolean shouldHideNotificationIcons() {
+        return !mStatusBar.isClosed() && mStatusBarComponent.shouldHideNotificationIcons();
+    }
+
+    public void hideSystemIconArea(boolean animate) {
+        animateHide(mSystemIconArea, animate);
+    }
+
+    public void showSystemIconArea(boolean animate) {
+        animateShow(mSystemIconArea, animate);
+    }
+
+    public void hideNotificationIconArea(boolean animate) {
+        animateHide(mNotificationIconAreaInner, animate);
+    }
+
+    public void showNotificationIconArea(boolean animate) {
+        animateShow(mNotificationIconAreaInner, animate);
+    }
+
+    /**
+     * Hides a view.
+     */
+    private void animateHide(final View v, boolean animate) {
+        v.animate().cancel();
+        if (!animate) {
+            v.setAlpha(0f);
+            v.setVisibility(View.INVISIBLE);
+            return;
+        }
+        v.animate()
+                .alpha(0f)
+                .setDuration(160)
+                .setStartDelay(0)
+                .setInterpolator(Interpolators.ALPHA_OUT)
+                .withEndAction(() -> v.setVisibility(View.INVISIBLE));
+    }
+
+    /**
+     * Shows a view, and synchronizes the animation with Keyguard exit animations, if applicable.
+     */
+    private void animateShow(View v, boolean animate) {
+        v.animate().cancel();
+        v.setVisibility(View.VISIBLE);
+        if (!animate) {
+            v.setAlpha(1f);
+            return;
+        }
+        v.animate()
+                .alpha(1f)
+                .setDuration(320)
+                .setInterpolator(Interpolators.ALPHA_IN)
+                .setStartDelay(50)
+
+                // We need to clean up any pending end action from animateHide if we call
+                // both hide and show in the same frame before the animation actually gets started.
+                // cancel() doesn't really remove the end action.
+                .withEndAction(null);
+
+        // Synchronize the motion with the Keyguard fading if necessary.
+        if (mKeyguardMonitor.isKeyguardFadingAway()) {
+            v.animate()
+                    .setDuration(mKeyguardMonitor.getKeyguardFadingAwayDuration())
+                    .setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN)
+                    .setStartDelay(mKeyguardMonitor.getKeyguardFadingAwayDelay())
+                    .start();
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ConfigurationControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ConfigurationControllerImpl.java
new file mode 100644
index 0000000..020dc25
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ConfigurationControllerImpl.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2017 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.phone;
+
+import android.content.Context;
+import android.content.res.Configuration;
+
+import com.android.systemui.ConfigurationChangedReceiver;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+
+import java.util.ArrayList;
+
+public class ConfigurationControllerImpl implements ConfigurationController,
+        ConfigurationChangedReceiver {
+
+    private final ArrayList<ConfigurationListener> mListeners = new ArrayList<>();
+    private int mDensity;
+    private float mFontScale;
+
+    public ConfigurationControllerImpl(Context context) {
+        Configuration currentConfig = context.getResources().getConfiguration();
+        mFontScale = currentConfig.fontScale;
+        mDensity = currentConfig.densityDpi;
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        mListeners.forEach(l -> l.onConfigChanged(newConfig));
+        final float fontScale = newConfig.fontScale;
+        final int density = newConfig.densityDpi;
+        if (density != mDensity || mFontScale != fontScale) {
+            mListeners.forEach(l -> l.onDensityOrFontScaleChanged());
+            mDensity = density;
+            mFontScale = fontScale;
+        }
+    }
+
+    @Override
+    public void addCallback(ConfigurationListener listener) {
+        mListeners.add(listener);
+        listener.onDensityOrFontScaleChanged();
+    }
+
+    @Override
+    public void removeCallback(ConfigurationListener listener) {
+        mListeners.remove(listener);
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java
new file mode 100644
index 0000000..3f9ae80
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2017 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.phone;
+
+import static com.android.systemui.statusbar.policy.DarkIconDispatcher.getTint;
+
+import android.animation.ArgbEvaluator;
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.graphics.Rect;
+import android.util.ArrayMap;
+import android.widget.ImageView;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
+
+public class DarkIconDispatcherImpl implements DarkIconDispatcher {
+
+    private final LightBarTransitionsController mTransitionsController;
+    private final Rect mTintArea = new Rect();
+    private final ArrayMap<Object, DarkReceiver> mReceivers = new ArrayMap<>();
+
+    private int mIconTint = DEFAULT_ICON_TINT;
+    private float mDarkIntensity;
+    private int mDarkModeIconColorSingleTone;
+    private int mLightModeIconColorSingleTone;
+
+    public DarkIconDispatcherImpl(Context context) {
+        mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone);
+        mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone);
+
+        mTransitionsController = new LightBarTransitionsController(context,
+                this::setIconTintInternal);
+    }
+
+    public LightBarTransitionsController getTransitionsController() {
+        return mTransitionsController;
+    }
+
+    public void addDarkReceiver(DarkReceiver receiver) {
+        mReceivers.put(receiver, receiver);
+        receiver.onDarkChanged(mTintArea, mDarkIntensity, mIconTint);
+    }
+
+    public void addDarkReceiver(ImageView imageView) {
+        DarkReceiver receiver = (area, darkIntensity, tint) -> imageView.setImageTintList(
+                ColorStateList.valueOf(getTint(mTintArea, imageView, mIconTint)));
+        mReceivers.put(imageView, receiver);
+        receiver.onDarkChanged(mTintArea, mDarkIntensity, mIconTint);
+    }
+
+    public void removeDarkReceiver(DarkReceiver object) {
+        mReceivers.remove(object);
+    }
+
+    public void removeDarkReceiver(ImageView object) {
+        mReceivers.remove(object);
+    }
+
+    public void applyDark(ImageView object) {
+        mReceivers.get(object).onDarkChanged(mTintArea, mDarkIntensity, mIconTint);
+    }
+
+    /**
+     * Sets the dark area so {@link #setIconsDark} only affects the icons in the specified area.
+     *
+     * @param darkArea the area in which icons should change it's tint, in logical screen
+     *                 coordinates
+     */
+    public void setIconsDarkArea(Rect darkArea) {
+        if (darkArea == null && mTintArea.isEmpty()) {
+            return;
+        }
+        if (darkArea == null) {
+            mTintArea.setEmpty();
+        } else {
+            mTintArea.set(darkArea);
+        }
+        applyIconTint();
+    }
+
+    private void setIconTintInternal(float darkIntensity) {
+        mDarkIntensity = darkIntensity;
+        mIconTint = (int) ArgbEvaluator.getInstance().evaluate(darkIntensity,
+                mLightModeIconColorSingleTone, mDarkModeIconColorSingleTone);
+        applyIconTint();
+    }
+
+    private void applyIconTint() {
+        for (int i = 0; i < mReceivers.size(); i++) {
+            mReceivers.valueAt(i).onDarkChanged(mTintArea, mDarkIntensity, mIconTint);
+        }
+    }
+}
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 14f9919..2836f41 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -324,7 +324,7 @@
     private void updateRightAffordanceIcon() {
         IconState state = mRightButton.getIcon();
         mRightAffordanceView.setVisibility(state.isVisible ? View.VISIBLE : View.GONE);
-        mRightAffordanceView.setImageDrawable(state.drawable);
+        mRightAffordanceView.setImageDrawable(state.drawable, state.tint);
         mRightAffordanceView.setContentDescription(state.contentDescription);
     }
 
@@ -376,7 +376,7 @@
     private void updateLeftAffordanceIcon() {
         IconState state = mLeftButton.getIcon();
         mLeftAffordanceView.setVisibility(state.isVisible ? View.VISIBLE : View.GONE);
-        mLeftAffordanceView.setImageDrawable(state.drawable);
+        mLeftAffordanceView.setImageDrawable(state.drawable, state.tint);
         mLeftAffordanceView.setContentDescription(state.contentDescription);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java
index 7c458898..9d699cf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java
@@ -22,6 +22,7 @@
 import com.android.systemui.Dependency;
 import com.android.systemui.Dumpable;
 import com.android.systemui.statusbar.policy.BatteryController;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -36,7 +37,7 @@
 
     private static final float NAV_BAR_INVERSION_SCRIM_ALPHA_THRESHOLD = 0.1f;
 
-    private final StatusBarIconController mStatusBarIconController;
+    private final DarkIconDispatcher mStatusBarIconController;
     private final BatteryController mBatteryController;
     private FingerprintUnlockController mFingerprintUnlockController;
 
@@ -65,8 +66,8 @@
     private final Rect mLastFullscreenBounds = new Rect();
     private final Rect mLastDockedBounds = new Rect();
 
-    public LightBarController(StatusBarIconController statusBarIconController) {
-        mStatusBarIconController = statusBarIconController;
+    public LightBarController() {
+        mStatusBarIconController = Dependency.get(DarkIconDispatcher.class);
         mBatteryController = Dependency.get(BatteryController.class);
         mBatteryController.addCallback(this);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java
index 07f37ab..6bd959f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java
@@ -17,13 +17,19 @@
 package com.android.systemui.statusbar.phone;
 
 import android.animation.ValueAnimator;
+import android.content.Context;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.SystemClock;
 import android.util.TimeUtils;
 
 import com.android.systemui.Dumpable;
+import com.android.systemui.Dependency;
 import com.android.systemui.Interpolators;
+import com.android.systemui.SysUiServiceProvider;
+import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.CommandQueue.Callbacks;
+import com.android.systemui.statusbar.policy.KeyguardMonitor;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -31,13 +37,14 @@
 /**
  * Class to control all aspects about light bar changes.
  */
-public class LightBarTransitionsController implements Dumpable {
+public class LightBarTransitionsController implements Dumpable, Callbacks {
 
     public static final long DEFAULT_TINT_ANIMATION_DURATION = 120;
     private static final String EXTRA_DARK_INTENSITY = "dark_intensity";
 
     private final Handler mHandler;
     private final DarkIntensityApplier mApplier;
+    private final KeyguardMonitor mKeyguardMonitor;
 
     private boolean mTransitionDeferring;
     private long mTransitionDeferringStartTime;
@@ -56,9 +63,17 @@
         }
     };
 
-    public LightBarTransitionsController(DarkIntensityApplier applier) {
+    public LightBarTransitionsController(Context context, DarkIntensityApplier applier) {
         mApplier = applier;
         mHandler = new Handler();
+        mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
+        SysUiServiceProvider.getComponent(context, CommandQueue.class)
+                .addCallbacks(this);
+    }
+
+    public void destroy(Context context) {
+        SysUiServiceProvider.getComponent(context, CommandQueue.class)
+                .removeCallbacks(this);
     }
 
     public void saveState(Bundle outState) {
@@ -71,10 +86,15 @@
         setIconTintInternal(savedInstanceState.getFloat(EXTRA_DARK_INTENSITY, 0));
     }
 
-    public void appTransitionPending() {
+    @Override
+    public void appTransitionPending(boolean forced) {
+        if (mKeyguardMonitor.isKeyguardGoingAway() && !forced) {
+            return;
+        }
         mTransitionPending = true;
     }
 
+    @Override
     public void appTransitionCancelled() {
         if (mTransitionPending && mTintChangePending) {
             mTintChangePending = false;
@@ -83,7 +103,11 @@
         mTransitionPending = false;
     }
 
-    public void appTransitionStarting(long startTime, long duration) {
+    @Override
+    public void appTransitionStarting(long startTime, long duration, boolean forced) {
+        if (mKeyguardMonitor.isKeyguardGoingAway() && !forced) {
+            return;
+        }
         if (mTransitionPending && mTintChangePending) {
             mTintChangePending = false;
             animateIconTint(mPendingDarkIntensity,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
index 808cd21..99f8aaf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
@@ -118,7 +118,6 @@
 
     private int mSystemUiVisibility;
     private LightBarController mLightBarController;
-    private boolean mKeyguardGoingAway;
 
     public boolean mHomeBlockedThisTouch;
 
@@ -195,6 +194,7 @@
     @Override
     public void onDestroyView() {
         super.onDestroyView();
+        mNavigationBarView.getLightTransitionsController().destroy(getContext());
         getContext().unregisterReceiver(mBroadcastReceiver);
     }
 
@@ -287,31 +287,6 @@
         }
     }
 
-    @Override
-    public void appTransitionPending() {
-        mNavigationBarView.getLightTransitionsController().appTransitionPending();
-    }
-
-    @Override
-    public void appTransitionCancelled() {
-        mNavigationBarView.getLightTransitionsController().appTransitionCancelled();
-    }
-
-    @Override
-    public void appTransitionStarting(long startTime, long duration) {
-        if (mKeyguardGoingAway) return;
-        doAppTransitionStarting(startTime, duration);
-    }
-
-    /**
-     * Calls appTransitionStarting for the nav bar regardless of whether keyguard is going away.
-     * public so StatusBar can force this when needed.
-     */
-    public void doAppTransitionStarting(long startTime, long duration) {
-        mNavigationBarView.getLightTransitionsController().appTransitionStarting(startTime,
-                duration);
-    }
-
     // Injected from StatusBar at creation.
     public void setCurrentSysuiVisibility(int systemUiVisibility) {
         mSystemUiVisibility = systemUiVisibility;
@@ -612,10 +587,6 @@
                 delay + StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE);
     }
 
-    public void setKeyguardGoingAway(boolean keyguardGoingAway) {
-        mKeyguardGoingAway = keyguardGoingAway;
-    }
-
     public BarTransitions getBarTransitions() {
         return mNavigationBarView.getBarTransitions();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java
index 3be5e57..cb925d5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java
@@ -38,7 +38,8 @@
         mView = view;
         mBarService = IStatusBarService.Stub.asInterface(
                 ServiceManager.getService(Context.STATUS_BAR_SERVICE));
-        mLightTransitionsController = new LightBarTransitionsController(this::applyDarkIntensity);
+        mLightTransitionsController = new LightBarTransitionsController(view.getContext(),
+                this::applyDarkIntensity);
     }
 
     public void init() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
index 0386398..6d7ab47 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
@@ -17,6 +17,8 @@
 import com.android.systemui.statusbar.NotificationShelf;
 import com.android.systemui.statusbar.StatusBarIconView;
 import com.android.systemui.statusbar.notification.NotificationUtils;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver;
 import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 
 import java.util.ArrayList;
@@ -26,7 +28,7 @@
  * A controller for the space in the status bar to the left of the system icons. This area is
  * normally reserved for notifications.
  */
-public class NotificationIconAreaController {
+public class NotificationIconAreaController implements DarkReceiver {
     private final NotificationColorUtil mNotificationColorUtil;
 
     private int mIconSize;
@@ -64,11 +66,12 @@
         mNotificationIcons = (NotificationIconContainer) mNotificationIconArea.findViewById(
                 R.id.notificationIcons);
 
-        NotificationShelf shelf = mStatusBar.getNotificationShelf();
+        mNotificationScrollLayout = mStatusBar.getNotificationScrollLayout();
+    }
+
+    public void setupShelf(NotificationShelf shelf) {
         mShelfIcons = shelf.getShelfIcons();
         shelf.setCollapsedIcons(mNotificationIcons);
-
-        mNotificationScrollLayout = mStatusBar.getNotificationScrollLayout();
     }
 
     public void onDensityOrFontScaleChanged(Context context) {
@@ -102,23 +105,18 @@
     }
 
     /**
-     * See {@link StatusBarIconController#setIconsDarkArea}.
+     * See {@link com.android.systemui.statusbar.policy.DarkIconDispatcher#setIconsDarkArea}.
+     * Sets the color that should be used to tint any icons in the notification area.
      *
      * @param tintArea the area in which to tint the icons, specified in screen coordinates
+     * @param darkIntensity
      */
-    public void setTintArea(Rect tintArea) {
+    public void onDarkChanged(Rect tintArea, float darkIntensity, int iconTint) {
         if (tintArea == null) {
             mTintArea.setEmpty();
         } else {
             mTintArea.set(tintArea);
         }
-        applyNotificationIconsTint();
-    }
-
-    /**
-     * Sets the color that should be used to tint any icons in the notification area.
-     */
-    public void setIconTint(int iconTint) {
         mIconTint = iconTint;
         applyNotificationIconsTint();
     }
@@ -231,7 +229,7 @@
             boolean colorize = !isPreL || NotificationUtils.isGrayscale(v, mNotificationColorUtil);
             if (colorize) {
                 v.setImageTintList(ColorStateList.valueOf(
-                        StatusBarIconController.getTint(mTintArea, v, mIconTint)));
+                        DarkIconDispatcher.getTint(mTintArea, v, mIconTint)));
             }
             v.setIconTint(mIconTint);
         }
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 87a3848..23d3816 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
@@ -166,6 +166,10 @@
         if (DEBUG) LOG("onPanelPeeked");
     }
 
+    public boolean isClosed() {
+        return mState == STATE_CLOSED;
+    }
+
     public void onPanelCollapsed() {
         if (DEBUG) LOG("onPanelCollapsed");
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
index 1044ecf..93f874d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
@@ -38,24 +38,35 @@
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
+import com.android.systemui.SysUiServiceProvider;
 import com.android.systemui.qs.tiles.DndTile;
 import com.android.systemui.qs.tiles.RotationLockTile;
+import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.CommandQueue.Callbacks;
 import com.android.systemui.statusbar.policy.BluetoothController;
 import com.android.systemui.statusbar.policy.BluetoothController.Callback;
 import com.android.systemui.statusbar.policy.CastController;
 import com.android.systemui.statusbar.policy.CastController.CastDevice;
 import com.android.systemui.statusbar.policy.DataSaverController;
+import com.android.systemui.statusbar.policy.DataSaverController.Listener;
+import com.android.systemui.statusbar.policy.DeviceProvisionedController;
+import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener;
 import com.android.systemui.statusbar.policy.HotspotController;
+import com.android.systemui.statusbar.policy.KeyguardMonitor;
 import com.android.systemui.statusbar.policy.NextAlarmController;
 import com.android.systemui.statusbar.policy.RotationLockController;
+import com.android.systemui.statusbar.policy.RotationLockController.RotationLockControllerCallback;
 import com.android.systemui.statusbar.policy.UserInfoController;
+import com.android.systemui.statusbar.policy.ZenModeController;
 
 /**
  * This class contains all of the policy about which icons are installed in the status
  * bar at boot time.  It goes through the normal API for icons, even though it probably
  * strictly doesn't need to.
  */
-public class PhoneStatusBarPolicy implements Callback, RotationLockController.RotationLockControllerCallback, DataSaverController.Listener {
+public class PhoneStatusBarPolicy implements Callback, Callbacks,
+        RotationLockControllerCallback, Listener,
+        ZenModeController.Callback, DeviceProvisionedListener, KeyguardMonitor.Callback {
     private static final String TAG = "PhoneStatusBarPolicy";
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
@@ -82,7 +93,9 @@
     private final StatusBarIconController mIconController;
     private final RotationLockController mRotationLockController;
     private final DataSaverController mDataSaver;
-    private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
+    private final ZenModeController mZenController;
+    private final DeviceProvisionedController mProvisionedController;
+    private final KeyguardMonitor mKeyguardMonitor;
 
     // Assume it's all good unless we hear otherwise.  We don't always seem
     // to get broadcasts that it *is* there.
@@ -106,13 +119,15 @@
         mCast = Dependency.get(CastController.class);
         mHotspot = Dependency.get(HotspotController.class);
         mBluetooth = Dependency.get(BluetoothController.class);
-        mBluetooth.addCallback(this);
         mNextAlarm = Dependency.get(NextAlarmController.class);
         mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
         mUserInfoController = Dependency.get(UserInfoController.class);
         mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
         mRotationLockController = Dependency.get(RotationLockController.class);
         mDataSaver = Dependency.get(DataSaverController.class);
+        mZenController = Dependency.get(ZenModeController.class);
+        mProvisionedController = Dependency.get(DeviceProvisionedController.class);
+        mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
 
         mSlotCast = context.getString(com.android.internal.R.string.status_bar_cast);
         mSlotHotspot = context.getString(com.android.internal.R.string.status_bar_hotspot);
@@ -127,7 +142,6 @@
         mSlotHeadset = context.getString(com.android.internal.R.string.status_bar_headset);
         mSlotDataSaver = context.getString(com.android.internal.R.string.status_bar_data_saver);
 
-        mRotationLockController.addCallback(this);
 
         // listen for broadcasts
         IntentFilter filter = new IntentFilter();
@@ -158,7 +172,6 @@
         // Alarm clock
         mIconController.setIcon(mSlotAlarmClock, R.drawable.stat_sys_alarm, null);
         mIconController.setIconVisibility(mSlotAlarmClock, false);
-        mNextAlarm.addCallback(mNextAlarmCallback);
 
         // zen
         mIconController.setIcon(mSlotZen, R.drawable.stat_sys_zen_important, null);
@@ -172,13 +185,11 @@
         // cast
         mIconController.setIcon(mSlotCast, R.drawable.stat_sys_cast, null);
         mIconController.setIconVisibility(mSlotCast, false);
-        mCast.addCallback(mCastCallback);
 
         // hotspot
         mIconController.setIcon(mSlotHotspot, R.drawable.stat_sys_hotspot,
                 mContext.getString(R.string.accessibility_status_bar_hotspot));
         mIconController.setIconVisibility(mSlotHotspot, mHotspot.isHotspotEnabled());
-        mHotspot.addCallback(mHotspotCallback);
 
         // managed profile
         mIconController.setIcon(mSlotManagedProfile, R.drawable.stat_sys_managed_profile_status,
@@ -189,15 +200,36 @@
         mIconController.setIcon(mSlotDataSaver, R.drawable.stat_sys_data_saver,
                 context.getString(R.string.accessibility_data_saver_on));
         mIconController.setIconVisibility(mSlotDataSaver, false);
+
+        mRotationLockController.addCallback(this);
+        mBluetooth.addCallback(this);
+        mProvisionedController.addCallback(this);
+        mZenController.addCallback(this);
+        mCast.addCallback(mCastCallback);
+        mHotspot.addCallback(mHotspotCallback);
+        mNextAlarm.addCallback(mNextAlarmCallback);
         mDataSaver.addCallback(this);
+        mKeyguardMonitor.addCallback(this);
+
+        SysUiServiceProvider.getComponent(mContext, CommandQueue.class).addCallbacks(this);
     }
 
-    public void setStatusBarKeyguardViewManager(
-            StatusBarKeyguardViewManager statusBarKeyguardViewManager) {
-        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
+    public void destroy() {
+        mRotationLockController.removeCallback(this);
+        mBluetooth.removeCallback(this);
+        mProvisionedController.removeCallback(this);
+        mZenController.removeCallback(this);
+        mCast.removeCallback(mCastCallback);
+        mHotspot.removeCallback(mHotspotCallback);
+        mNextAlarm.removeCallback(mNextAlarmCallback);
+        mDataSaver.removeCallback(this);
+        mKeyguardMonitor.removeCallback(this);
+        SysUiServiceProvider.getComponent(mContext, CommandQueue.class).removeCallbacks(this);
+        mContext.unregisterReceiver(mIntentReceiver);
     }
 
-    public void setZenMode(int zen) {
+    @Override
+    public void onZenChanged(int zen) {
         mZen = zen;
         updateVolumeZen();
     }
@@ -394,7 +426,7 @@
         if (DEBUG) Log.v(TAG, "updateManagedProfile: mManagedProfileFocused: "
                 + mManagedProfileFocused);
         final boolean showIcon;
-        if (mManagedProfileFocused && !mStatusBarKeyguardViewManager.isShowing()) {
+        if (mManagedProfileFocused && !mKeyguardMonitor.isShowing()) {
             showIcon = true;
             mIconController.setIcon(mSlotManagedProfile,
                     R.drawable.stat_sys_managed_profile_status,
@@ -471,15 +503,20 @@
         }
     };
 
-    public void appTransitionStarting(long startTime, long duration) {
+    @Override
+    public void appTransitionStarting(long startTime, long duration, boolean forced) {
         updateManagedProfile();
     }
 
-    public void notifyKeyguardShowingChanged() {
+    @Override
+    public void onKeyguardShowingChanged() {
         updateManagedProfile();
     }
 
-    public void setCurrentUserSetup(boolean userSetup) {
+    @Override
+    public void onUserSetupChanged() {
+        boolean userSetup = mProvisionedController.isUserSetup(
+                mProvisionedController.getCurrentUser());
         if (mCurrentUserSetup == userSetup) return;
         mCurrentUserSetup = userSetup;
         updateAlarm();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index 7e08812..b52c26f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -24,9 +24,13 @@
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
 
+import com.android.systemui.BatteryMeterView;
 import com.android.systemui.DejankUtils;
+import com.android.systemui.Dependency;
 import com.android.systemui.EventLogTags;
 import com.android.systemui.R;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver;
 
 public class PhoneStatusBarView extends PanelBar {
     private static final String TAG = "PhoneStatusBarView";
@@ -48,6 +52,7 @@
             }
         }
     };
+    private DarkReceiver mBattery;
 
     public PhoneStatusBarView(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -70,6 +75,20 @@
     @Override
     public void onFinishInflate() {
         mBarTransitions.init();
+        mBattery = (DarkReceiver) findViewById(R.id.battery);
+    }
+
+    @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        // Always have Battery meters in the status bar observe the dark/light modes.
+        Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mBattery);
+    }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        super.onDetachedFromWindow();
+        Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(mBattery);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
index 4307a2e..457ed6c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
@@ -178,7 +178,7 @@
         SignalClusterView cluster = (SignalClusterView) findViewById(R.id.signal_cluster);
         int colorForeground = Utils.getColorAttr(getContext(), android.R.attr.colorForeground);
         float intensity = colorForeground == Color.WHITE ? 0 : 1;
-        cluster.setIconTint(colorForeground, intensity, new Rect(0, 0, 0, 0));
+        cluster.onDarkChanged(new Rect(0, 0, 0, 0), intensity, colorForeground);
         BatteryMeterView battery = (BatteryMeterView) findViewById(R.id.battery);
         int colorSecondary = Utils.getColorAttr(getContext(), android.R.attr.textColorSecondary);
         battery.setRawColors(colorForeground, colorSecondary);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 942cf0e..bc43663 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -173,13 +173,16 @@
 import com.android.systemui.statusbar.SignalClusterView;
 import com.android.systemui.statusbar.StatusBarState;
 import com.android.systemui.statusbar.notification.VisualStabilityManager;
+import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
 import com.android.systemui.statusbar.phone.UnlockMethodCache.OnUnlockMethodChangedListener;
 import com.android.systemui.statusbar.policy.BatteryController;
 import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
 import com.android.systemui.statusbar.policy.BrightnessMirrorController;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener;
-import com.android.systemui.statusbar.policy.EncryptionHelper;
 import com.android.systemui.statusbar.policy.HeadsUpManager;
 import com.android.systemui.statusbar.policy.KeyguardMonitor;
 import com.android.systemui.statusbar.policy.KeyguardMonitorImpl;
@@ -193,6 +196,8 @@
 import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 import com.android.systemui.statusbar.stack.NotificationStackScrollLayout.OnChildLocationsChangedListener;
 
+
+import com.android.systemui.util.leak.LeakDetector;
 import com.android.systemui.volume.VolumeComponent;
 
 import java.io.FileDescriptor;
@@ -504,9 +509,6 @@
                 }
                 updateQsExpansionEnabled();
             }
-            if (mIconPolicy != null) {
-                mIconPolicy.setCurrentUserSetup(mUserSetup);
-            }
         }
     };
 
@@ -712,6 +714,8 @@
     private BatteryController mBatteryController;
     private LogMaker mStatusBarStateLog;
     private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
+    private NotificationIconAreaController mNotificationIconAreaController;
+    private ConfigurationListener mDensityChangeListener;
 
     private void recycleAllVisibilityObjects(ArraySet<NotificationVisibility> array) {
         final int N = array.size();
@@ -809,8 +813,6 @@
         final Configuration currentConfig = mContext.getResources().getConfiguration();
         mLocale = currentConfig.locale;
         mLayoutDirection = TextUtils.getLayoutDirectionFromLocale(mLocale);
-        mFontScale = currentConfig.fontScale;
-        mDensity = currentConfig.densityDpi;
 
         mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
         mKeyguardManager = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
@@ -847,7 +849,7 @@
         int N = iconSlots.size();
         int viewIndex = 0;
         for (int i=0; i < N; i++) {
-            setIcon(iconSlots.get(i), icons.get(i));
+            mCommandQueue.setIcon(iconSlots.get(i), icons.get(i));
         }
 
         // Set up the initial notification state.
@@ -914,7 +916,6 @@
 
         // Lastly, call to the icon policy to install/update all the icons.
         mIconPolicy = new PhoneStatusBarPolicy(mContext, mIconController);
-        mIconPolicy.setCurrentUserSetup(mUserSetup);
         mSettingsObserver.onChange(false); // set up
 
         mHeadsUpObserver.onChange(true); // set up
@@ -938,18 +939,25 @@
 
         mScreenPinningRequest = new ScreenPinningRequest(mContext);
         mFalsingManager = FalsingManager.getInstance(mContext);
+
         Dependency.get(ActivityStarterDelegate.class).setActivityStarterImpl(this);
+
+        mDensityChangeListener = new ConfigurationListener() {
+            @Override
+            public void onDensityOrFontScaleChanged() {
+                StatusBar.this.onDensityOrFontScaleChanged();
+            }
+        };
+        Dependency.get(ConfigurationController.class).addCallback(mDensityChangeListener);
     }
 
     protected void createIconController() {
-        mIconController = new StatusBarIconController(
-                mContext, mStatusBarView, mKeyguardStatusBar, this);
     }
 
     // ================================================================================
     // Constructing the view
     // ================================================================================
-    protected PhoneStatusBarView makeStatusBarView() {
+    protected void makeStatusBarView() {
         final Context context = mContext;
         updateDisplaySize(); // populates mDisplayMetrics
         updateResources();
@@ -958,14 +966,37 @@
         mStatusBarWindow.setService(this);
         mStatusBarWindow.setOnTouchListener(getStatusBarWindowTouchListener());
 
+        // TODO: Deal with the ugliness that comes from having some of the statusbar broken out
+        // into fragments, but the rest here, it leaves some awkward lifecycle and whatnot.
         mNotificationPanel = (NotificationPanelView) mStatusBarWindow.findViewById(
                 R.id.notification_panel);
+        mStackScroller = (NotificationStackScrollLayout) mStatusBarWindow.findViewById(
+                R.id.notification_stack_scroller);
         mNotificationPanel.setStatusBar(this);
         mNotificationPanel.setGroupManager(mGroupManager);
+        mKeyguardStatusBar = (KeyguardStatusBarView) mStatusBarWindow.findViewById(R.id.keyguard_header);
 
-        mStatusBarView = (PhoneStatusBarView) mStatusBarWindow.findViewById(R.id.status_bar);
-        mStatusBarView.setBar(this);
-        mStatusBarView.setPanel(mNotificationPanel);
+        mNotificationIconAreaController = SystemUIFactory.getInstance()
+                .createNotificationIconAreaController(context, this);
+        inflateShelf();
+        mNotificationIconAreaController.setupShelf(mNotificationShelf);
+        Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mNotificationIconAreaController);
+        FragmentHostManager.get(mStatusBarWindow)
+                .addTagListener(CollapsedStatusBarFragment.TAG, (tag, fragment) -> {
+                    CollapsedStatusBarFragment statusBarFragment = (CollapsedStatusBarFragment) fragment;
+                    statusBarFragment.initNotificationIconArea(mNotificationIconAreaController);
+                    mStatusBarView = (PhoneStatusBarView) fragment.getView();
+                    mStatusBarView.setBar(this);
+                    mStatusBarView.setPanel(mNotificationPanel);
+                    mStatusBarView.setScrimController(mScrimController);
+                    setAreThereNotifications();
+                }).getFragmentManager()
+                .beginTransaction()
+                .replace(R.id.status_bar_container, new CollapsedStatusBarFragment(), CollapsedStatusBarFragment.TAG)
+                .commit();
+        Dependency.get(StatusBarIconController.class).addIconGroup(
+                new IconManager((ViewGroup) mKeyguardStatusBar.findViewById(R.id.statusIcons)));
+        mIconController = Dependency.get(StatusBarIconController.class);
 
         if (!ActivityManager.isHighEndGfx()) {
             mStatusBarWindow.setBackground(null);
@@ -1003,8 +1034,6 @@
         // figure out which pixel-format to use for the status bar.
         mPixelFormat = PixelFormat.OPAQUE;
 
-        mStackScroller = (NotificationStackScrollLayout) mStatusBarWindow.findViewById(
-                R.id.notification_stack_scroller);
         mStackScroller.setLongPressListener(getNotificationLongClicker());
         mStackScroller.setStatusBar(this);
         mStackScroller.setGroupManager(mGroupManager);
@@ -1012,7 +1041,6 @@
         mGroupManager.setOnGroupChangeListener(mStackScroller);
         mVisualStabilityManager.setVisibilityLocationProvider(mStackScroller);
 
-        inflateShelf();
         inflateEmptyShadeView();
         inflateDismissView();
         mExpandedContents = mStackScroller;
@@ -1025,7 +1053,6 @@
             mLockscreenWallpaper = new LockscreenWallpaper(mContext, this, mHandler);
         }
 
-        mKeyguardStatusBar = (KeyguardStatusBarView) mStatusBarWindow.findViewById(R.id.keyguard_header);
         mKeyguardStatusView =
                 (KeyguardStatusView) mStatusBarWindow.findViewById(R.id.keyguard_status_view);
         mKeyguardBottomArea =
@@ -1039,8 +1066,6 @@
         // set the initial view visibility
         setAreThereNotifications();
 
-        createIconController();
-
         // TODO: Find better place for this callback.
         mBatteryController.addCallback(new BatteryStateChangeCallback() {
             @Override
@@ -1057,7 +1082,7 @@
             }
         });
 
-        mLightBarController = new LightBarController(mIconController);
+        mLightBarController = new LightBarController();
         if (mNavigationBar != null) {
             mNavigationBar.setLightBarController(mLightBarController);
         }
@@ -1081,7 +1106,6 @@
         }
         mHeadsUpManager.addListener(mScrimController);
         mStackScroller.setScrimController(mScrimController);
-        mStatusBarView.setScrimController(mScrimController);
         mDozeScrimController = new DozeScrimController(mScrimController, context, mStackScroller,
                 mNotificationPanel);
 
@@ -1187,8 +1211,6 @@
 
         // Private API call to make the shadows look better for Recents
         ThreadedRenderer.overrideProperty("ambientRatio", String.valueOf(1.5f));
-
-        return mStatusBarView;
     }
 
     protected void createNavigationBar() {
@@ -1262,12 +1284,13 @@
         }
         // end old BaseStatusBar.onDensityOrFontScaleChanged().
         mScrimController.onDensityOrFontScaleChanged();
-        mStatusBarView.onDensityOrFontScaleChanged();
+        // TODO: Remove this.
+        if (mStatusBarView != null) mStatusBarView.onDensityOrFontScaleChanged();
         if (mBrightnessMirrorController != null) {
             mBrightnessMirrorController.onDensityOrFontScaleChanged();
         }
         inflateSignalClusters();
-        mIconController.onDensityOrFontScaleChanged();
+        mNotificationIconAreaController.onDensityOrFontScaleChanged(mContext);
         inflateDismissView();
         updateClearAll();
         inflateEmptyShadeView();
@@ -1283,12 +1306,11 @@
     }
 
     private void inflateSignalClusters() {
-        SignalClusterView signalClusterView = reinflateSignalCluster(mStatusBarView);
-        mIconController.setSignalCluster(signalClusterView);
         reinflateSignalCluster(mKeyguardStatusBar);
     }
 
-    private SignalClusterView reinflateSignalCluster(View view) {
+    public static SignalClusterView reinflateSignalCluster(View view) {
+        Context context = view.getContext();
         SignalClusterView signalCluster =
                 (SignalClusterView) view.findViewById(R.id.signal_cluster);
         if (signalCluster != null) {
@@ -1297,12 +1319,12 @@
                 ViewGroup viewParent = (ViewGroup) parent;
                 int index = viewParent.indexOfChild(signalCluster);
                 viewParent.removeView(signalCluster);
-                SignalClusterView newCluster = (SignalClusterView) LayoutInflater.from(mContext)
+                SignalClusterView newCluster = (SignalClusterView) LayoutInflater.from(context)
                         .inflate(R.layout.signal_cluster_view, viewParent, false);
                 ViewGroup.MarginLayoutParams layoutParams =
                         (ViewGroup.MarginLayoutParams) viewParent.getLayoutParams();
                 layoutParams.setMarginsRelative(
-                        mContext.getResources().getDimensionPixelSize(
+                        context.getResources().getDimensionPixelSize(
                                 R.dimen.signal_cluster_margin_start),
                         0, 0, 0);
                 newCluster.setLayoutParams(layoutParams);
@@ -1426,9 +1448,6 @@
             updateNotifications();
         }
         // end old BaseStatusBar.setZenMode().
-        if (mIconPolicy != null) {
-            mIconPolicy.setZenMode(mode);
-        }
     }
 
     protected void startKeyguard() {
@@ -1445,7 +1464,6 @@
         mKeyguardIndicationController.setUserInfoController(
                 Dependency.get(UserInfoController.class));
         mFingerprintUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
-        mIconPolicy.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
         mRemoteInputController.addCallback(mStatusBarKeyguardViewManager);
 
         mRemoteInputController.addCallback(new RemoteInputController.Callback() {
@@ -1526,16 +1544,6 @@
         }
     }
 
-    @Override
-    public void setIcon(String slot, StatusBarIcon icon) {
-        mIconController.setIcon(slot, icon);
-    }
-
-    @Override
-    public void removeIcon(String slot) {
-        mIconController.removeIcon(slot);
-    }
-
     public UserHandle getCurrentUserHandle() {
         return new UserHandle(mCurrentUserId);
     }
@@ -1898,7 +1906,7 @@
         updateQsExpansionEnabled();
 
         // Let's also update the icons
-        mIconController.updateNotificationIcons(mNotificationData);
+        mNotificationIconAreaController.updateNotificationIcons(mNotificationData);
     }
 
     /**
@@ -2079,24 +2087,26 @@
                     hasActiveNotifications() + " clearable=" + clearable);
         }
 
-        final View nlo = mStatusBarView.findViewById(R.id.notification_lights_out);
-        final boolean showDot = hasActiveNotifications() && !areLightsOn();
-        if (showDot != (nlo.getAlpha() == 1.0f)) {
-            if (showDot) {
-                nlo.setAlpha(0f);
-                nlo.setVisibility(View.VISIBLE);
+        if (mStatusBarView != null) {
+            final View nlo = mStatusBarView.findViewById(R.id.notification_lights_out);
+            final boolean showDot = hasActiveNotifications() && !areLightsOn();
+            if (showDot != (nlo.getAlpha() == 1.0f)) {
+                if (showDot) {
+                    nlo.setAlpha(0f);
+                    nlo.setVisibility(View.VISIBLE);
+                }
+                nlo.animate()
+                        .alpha(showDot ? 1 : 0)
+                        .setDuration(showDot ? 750 : 250)
+                        .setInterpolator(new AccelerateInterpolator(2.0f))
+                        .setListener(showDot ? null : new AnimatorListenerAdapter() {
+                            @Override
+                            public void onAnimationEnd(Animator _a) {
+                                nlo.setVisibility(View.GONE);
+                            }
+                        })
+                        .start();
             }
-            nlo.animate()
-                .alpha(showDot?1:0)
-                .setDuration(showDot?750:250)
-                .setInterpolator(new AccelerateInterpolator(2.0f))
-                .setListener(showDot ? null : new AnimatorListenerAdapter() {
-                    @Override
-                    public void onAnimationEnd(Animator _a) {
-                        nlo.setVisibility(View.GONE);
-                    }
-                })
-                .start();
         }
 
         findAndUpdateMediaNotifications();
@@ -2420,26 +2430,6 @@
                 && mFalsingManager.isReportingEnabled() ? View.VISIBLE : View.INVISIBLE);
     }
 
-    protected int adjustDisableFlags(int state) {
-        if (!mLaunchTransitionFadingAway && !mKeyguardFadingAway && shouldHideNotificationIcons()) {
-            state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS;
-            state |= StatusBarManager.DISABLE_SYSTEM_INFO;
-        }
-        if (mNetworkController != null && EncryptionHelper.IS_DATA_ENCRYPTED) {
-            if (mNetworkController.hasEmergencyCryptKeeperText()) {
-                state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS;
-            }
-            if (!mNetworkController.isRadioOn()) {
-                state |= StatusBarManager.DISABLE_SYSTEM_INFO;
-            }
-        }
-        return state;
-    }
-
-    private boolean shouldHideNotificationIcons() {
-        return mExpandedVisible && mNotificationPanel.shouldHideNotificationIcons();
-    }
-
     /**
      * State is one or more of the DISABLE constants from StatusBarManager.
      */
@@ -2448,7 +2438,6 @@
         animate &= mStatusBarWindowState != WINDOW_STATE_HIDDEN;
         mDisabledUnmodified1 = state1;
         mDisabledUnmodified2 = state2;
-        state1 = adjustDisableFlags(state1);
         final int old1 = mDisabled1;
         final int diff1 = state1 ^ old1;
         mDisabled1 = state1;
@@ -2490,28 +2479,13 @@
         flagdbg.append(">");
         Log.d(TAG, flagdbg.toString());
 
-        if ((diff1 & StatusBarManager.DISABLE_SYSTEM_INFO) != 0) {
-            if ((state1 & StatusBarManager.DISABLE_SYSTEM_INFO) != 0) {
-                mIconController.hideSystemIconArea(animate);
-            } else {
-                mIconController.showSystemIconArea(animate);
-            }
-        }
-
-        if ((diff1 & StatusBarManager.DISABLE_CLOCK) != 0) {
-            boolean visible = (state1 & StatusBarManager.DISABLE_CLOCK) == 0;
-            mIconController.setClockVisibilityByPolicy(visible);
-        }
         if ((diff1 & StatusBarManager.DISABLE_EXPAND) != 0) {
             if ((state1 & StatusBarManager.DISABLE_EXPAND) != 0) {
                 animateCollapsePanels();
             }
         }
 
-        if ((diff1 & (StatusBarManager.DISABLE_HOME
-                        | StatusBarManager.DISABLE_RECENT
-                        | StatusBarManager.DISABLE_BACK
-                        | StatusBarManager.DISABLE_SEARCH)) != 0) {
+        if ((diff1 & StatusBarManager.DISABLE_RECENT) != 0) {
             if ((state1 & StatusBarManager.DISABLE_RECENT) != 0) {
                 // close recents if it's visible
                 mHandler.removeMessages(MSG_HIDE_RECENT_APPS);
@@ -2519,14 +2493,6 @@
             }
         }
 
-        if ((diff1 & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
-            if ((state1 & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
-                mIconController.hideNotificationIconArea(animate);
-            } else {
-                mIconController.showNotificationIconArea(animate);
-            }
-        }
-
         if ((diff1 & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) != 0) {
             mDisableNotificationAlerts =
                     (state1 & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) != 0;
@@ -2740,10 +2706,6 @@
         mFalsingManager.onScreenOff();
     }
 
-    public NotificationShelf getNotificationShelf() {
-        return mNotificationShelf;
-    }
-
     public NotificationStackScrollLayout getNotificationScrollLayout() {
         return mStackScroller;
     }
@@ -2757,6 +2719,14 @@
         updateNotifications();
     }
 
+    public boolean isLaunchTransitionFadingAway() {
+        return mLaunchTransitionFadingAway;
+    }
+
+    public boolean shouldHideNotificationIcons() {
+        return mNotificationPanel.shouldHideNotificationIcons();
+    }
+
     /**
      * All changes to the status bar and notifications funnel through here and are batched.
      */
@@ -3162,7 +3132,8 @@
 
     void checkBarModes() {
         if (mDemoMode) return;
-        checkBarMode(mStatusBarMode, mStatusBarWindowState, getStatusBarTransitions());
+        if (mStatusBarView != null) checkBarMode(mStatusBarMode, mStatusBarWindowState,
+                getStatusBarTransitions());
         if (mNavigationBar != null) mNavigationBar.checkNavBarModes();
         mNoAnimationOnNextBarModeChange = false;
     }
@@ -3183,7 +3154,9 @@
     }
 
     private void finishBarAnimations() {
-        mStatusBarView.getBarTransitions().finishAnimations();
+        if (mStatusBarView != null) {
+            mStatusBarView.getBarTransitions().finishAnimations();
+        }
         if (mNavigationBar != null) {
             mNavigationBar.finishBarAnimations();
         }
@@ -3363,8 +3336,6 @@
                 mNotificationData.dump(pw, "  ");
             }
 
-            mIconController.dump(pw);
-
             if (false) {
                 pw.println("see the logcat for a dump of the views we have created.");
                 // must happen on ui thread
@@ -3617,15 +3588,6 @@
     protected void onConfigurationChanged(Configuration newConfig) {
         updateResources();
         updateDisplaySize(); // populates mDisplayMetrics
-        // Begin old BaseStatusBar.onConfigurationChanged
-        final float fontScale = newConfig.fontScale;
-        final int density = newConfig.densityDpi;
-        if (density != mDensity || mFontScale != fontScale) {
-            onDensityOrFontScaleChanged();
-            mDensity = density;
-            mFontScale = fontScale;
-        }
-        // End old BaseStatusBar.onConfigurationChanged
 
         if (DEBUG) {
             Log.v(TAG, "configuration changed: " + mContext.getResources().getConfiguration());
@@ -3946,17 +3908,12 @@
         mContext.unregisterReceiver(mDemoReceiver);
         mAssistManager.destroy();
 
-        final SignalClusterView signalCluster =
-                (SignalClusterView) mStatusBarView.findViewById(R.id.signal_cluster);
-        final SignalClusterView signalClusterKeyguard =
-                (SignalClusterView) mKeyguardStatusBar.findViewById(R.id.signal_cluster);
-        final SignalClusterView signalClusterQs =
-                (SignalClusterView) mHeader.findViewById(R.id.signal_cluster);
         if (mQSPanel != null && mQSPanel.getHost() != null) {
             mQSPanel.getHost().destroy();
         }
         Dependency.get(ActivityStarterDelegate.class).setActivityStarterImpl(null);
         mDeviceProvisionedController.removeCallback(mUserSetupObserver);
+        Dependency.get(ConfigurationController.class).removeCallback(mDensityChangeListener);
     }
 
     private boolean mDemoModeAllowed;
@@ -3989,7 +3946,7 @@
             mBatteryController.dispatchDemoCommand(command, args);
         }
         if (modeChange || command.equals(COMMAND_STATUS)) {
-            mIconController.dispatchDemoCommand(command, args);
+            ((StatusBarIconControllerImpl) mIconController).dispatchDemoCommand(command, args);
         }
         if (mNetworkController != null && (modeChange || command.equals(COMMAND_NETWORK))) {
             mNetworkController.dispatchDemoCommand(command, args);
@@ -4132,14 +4089,8 @@
                                 onLaunchTransitionFadingEnded();
                             }
                         });
-                mIconController.getTransitionsController().appTransitionStarting(
-                        SystemClock.uptimeMillis(),
-                        LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION);
-                if (mNavigationBar != null) {
-                    mNavigationBar.doAppTransitionStarting(
-                            SystemClock.uptimeMillis(),
-                            LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION);
-                }
+                mCommandQueue.appTransitionStarting(SystemClock.uptimeMillis(),
+                        LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION, true);
             }
         };
         if (mNotificationPanel.isLaunchTransitionRunning()) {
@@ -4264,11 +4215,8 @@
         // Treat Keyguard exit animation as an app transition to achieve nice transition for status
         // bar.
         mKeyguardGoingAway = true;
-        mIconController.getTransitionsController().appTransitionPending();
-        if (mNavigationBar != null) {
-            mNavigationBar.setKeyguardGoingAway(true);
-            mNavigationBar.appTransitionPending();
-        }
+        mKeyguardMonitor.notifyKeyguardGoingAway(true);
+        mCommandQueue.appTransitionPending(true);
     }
 
     /**
@@ -4283,16 +4231,14 @@
         mKeyguardFadingAwayDelay = delay;
         mKeyguardFadingAwayDuration = fadeoutDuration;
         mWaitingForKeyguardExit = false;
-        mIconController.getTransitionsController().appTransitionStarting(
-                startTime + fadeoutDuration
+        mCommandQueue.appTransitionStarting(startTime + fadeoutDuration
                         - LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION,
-                LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION);
+                LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION, true);
         recomputeDisableFlags(fadeoutDuration > 0 /* animate */);
-        if (mNavigationBar != null) {
-            mNavigationBar.doAppTransitionStarting(
+        mCommandQueue.appTransitionStarting(
                     startTime - LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION,
-                    LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION);
-        }
+                    LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION, true);
+        mKeyguardMonitor.notifyKeyguardFadingAway(delay, fadeoutDuration);
     }
 
     public boolean isKeyguardFadingAway() {
@@ -4305,9 +4251,7 @@
     public void finishKeyguardFadingAway() {
         mKeyguardFadingAway = false;
         mKeyguardGoingAway = false;
-        if (mNavigationBar != null) {
-            mNavigationBar.setKeyguardGoingAway(false);
-        }
+        mKeyguardMonitor.notifyKeyguardDoneFading();
     }
 
     public void stopWaitingForKeyguardExit() {
@@ -4357,7 +4301,6 @@
         } else {
             mScrimController.setKeyguardShowing(false);
         }
-        mIconPolicy.notifyKeyguardShowingChanged();
         mNotificationPanel.setBarState(mState, mKeyguardFadingAway, goingToFullShade);
         updateDozingState();
         updatePublicMode();
@@ -4945,33 +4888,11 @@
     }
 
     @Override
-    public void appTransitionPending() {
-        // Use own timings when Keyguard is going away, see keyguardGoingAway and
-        // setKeyguardFadingAway
-        if (!mKeyguardFadingAway) {
-            mIconController.getTransitionsController().appTransitionPending();
-        }
-    }
-
-    @Override
     public void appTransitionCancelled() {
-        mIconController.getTransitionsController().appTransitionCancelled();
         EventBus.getDefault().send(new AppTransitionFinishedEvent());
     }
 
     @Override
-    public void appTransitionStarting(long startTime, long duration) {
-        // Use own timings when Keyguard is going away, see keyguardGoingAway and
-        // setKeyguardFadingAway.
-        if (!mKeyguardGoingAway) {
-            mIconController.getTransitionsController().appTransitionStarting(startTime, duration);
-        }
-        if (mIconPolicy != null) {
-            mIconPolicy.appTransitionStarting(startTime, duration);
-        }
-    }
-
-    @Override
     public void appTransitionFinished() {
         EventBus.getDefault().send(new AppTransitionFinishedEvent());
     }
@@ -5180,7 +5101,6 @@
     private boolean mVisibleToUser;
 
     private Locale mLocale;
-    private float mFontScale;
 
     protected boolean mUseHeadsUp = false;
     protected boolean mHeadsUpTicker = false;
@@ -5197,7 +5117,6 @@
     private final SparseBooleanArray mUsersAllowingNotifications = new SparseBooleanArray();
 
     private UserManager mUserManager;
-    private int mDensity;
 
     protected KeyguardManager mKeyguardManager;
     private LockPatternUtils mLockPatternUtils;
@@ -5888,7 +5807,6 @@
     private void saveAndCloseNotificationMenu(NotificationInfo info,
             ExpandableNotificationRow row, NotificationGuts guts, View done) {
         guts.resetFalsingCheck();
-        info.saveImportance();
         int[] rowLocation = new int[2];
         int[] doneLocation = new int[2];
         row.getLocationOnScreen(rowLocation);
@@ -6679,6 +6597,7 @@
             return null;
         }
         updateNotifications();
+        Dependency.get(LeakDetector.class).trackGarbage(entry);
         return entry.notification;
     }
 
@@ -6687,6 +6606,7 @@
             Log.d(TAG, "createNotificationViews(notification=" + sbn);
         }
         NotificationData.Entry entry = new NotificationData.Entry(sbn);
+        Dependency.get(LeakDetector.class).trackInstance(entry);
         try {
             entry.createIcons(mContext, sbn);
         } catch (NotificationData.IconException exception) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
index 41f8a91..c339da7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
@@ -1,502 +1,48 @@
 /*
- * Copyright (C) 2015 The Android Open Source Project
+ * Copyright (C) 2017 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
+ * 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
+ * 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.phone;
 
-import android.animation.ArgbEvaluator;
 import android.content.Context;
-import android.content.res.ColorStateList;
-import android.content.res.Resources;
-import android.graphics.Color;
-import android.graphics.Rect;
-import android.graphics.drawable.Icon;
-import android.os.Bundle;
-import android.os.UserHandle;
 import android.text.TextUtils;
 import android.util.ArraySet;
-import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.TextView;
+
 import com.android.internal.statusbar.StatusBarIcon;
-import com.android.systemui.BatteryMeterView;
 import com.android.systemui.Dependency;
-import com.android.systemui.FontSizeUtils;
-import com.android.systemui.Interpolators;
 import com.android.systemui.R;
-import com.android.systemui.SystemUIFactory;
-import com.android.systemui.statusbar.NotificationData;
-import com.android.systemui.statusbar.NotificationShelf;
-import com.android.systemui.statusbar.SignalClusterView;
 import com.android.systemui.statusbar.StatusBarIconView;
-import com.android.systemui.tuner.TunerService;
-import com.android.systemui.tuner.TunerService.Tunable;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
 
-import java.io.PrintWriter;
-import java.util.ArrayList;
+public interface StatusBarIconController {
 
-/**
- * Controls everything regarding the icons in the status bar and on Keyguard, including, but not
- * limited to: notification icons, signal cluster, additional status icons, and clock in the status
- * bar.
- */
-public class StatusBarIconController extends StatusBarIconList implements Tunable {
+    public void addIconGroup(IconManager iconManager);
+    public void removeIconGroup(IconManager iconManager);
+    public void setExternalIcon(String slot);
+    public void setIcon(String slot, int resourceId, CharSequence contentDescription);
+    public void setIcon(String slot, StatusBarIcon icon);
+    public void setIconVisibility(String slotTty, boolean b);
+    public void removeIcon(String slot);
 
     public static final String ICON_BLACKLIST = "icon_blacklist";
-    public static final int DEFAULT_ICON_TINT = Color.WHITE;
-
-    private Context mContext;
-    private StatusBar mStatusBar;
-    private DemoStatusIcons mDemoStatusIcons;
-
-    private LinearLayout mSystemIconArea;
-    private LinearLayout mStatusIcons;
-    private SignalClusterView mSignalCluster;
-    private LinearLayout mStatusIconsKeyguard;
-
-    private NotificationIconAreaController mNotificationIconAreaController;
-    private View mNotificationIconAreaInner;
-    private NotificationShelf mNotificationShelf;
-
-    private BatteryMeterView mBatteryMeterView;
-    private BatteryMeterView mBatteryMeterViewKeyguard;
-    private TextView mClock;
-
-    private int mIconSize;
-    private int mIconHPadding;
-
-    private int mIconTint = DEFAULT_ICON_TINT;
-    private float mDarkIntensity;
-    private final Rect mTintArea = new Rect();
-    private static final Rect sTmpRect = new Rect();
-    private static final int[] sTmpInt2 = new int[2];
-
-    private int mDarkModeIconColorSingleTone;
-    private int mLightModeIconColorSingleTone;
-
-    private final LightBarTransitionsController mTransitionsController;
-
-    private boolean mClockVisibleByPolicy = true;
-    private boolean mClockVisibleByUser = true;
-
-    private final ArraySet<String> mIconBlacklist = new ArraySet<>();
-
-    public StatusBarIconController(Context context, View statusBar, View keyguardStatusBar,
-            StatusBar phoneStatusBar) {
-        super(context.getResources().getStringArray(
-                com.android.internal.R.array.config_statusBarIcons));
-        mContext = context;
-        mStatusBar = phoneStatusBar;
-        mSystemIconArea = (LinearLayout) statusBar.findViewById(R.id.system_icon_area);
-        mStatusIcons = (LinearLayout) statusBar.findViewById(R.id.statusIcons);
-        mSignalCluster = (SignalClusterView) statusBar.findViewById(R.id.signal_cluster);
-
-        mNotificationShelf = phoneStatusBar.getNotificationShelf();
-        mNotificationIconAreaController = SystemUIFactory.getInstance()
-                .createNotificationIconAreaController(context, phoneStatusBar);
-        mNotificationIconAreaInner =
-                mNotificationIconAreaController.getNotificationInnerAreaView();
-
-        ViewGroup notificationIconArea =
-                (ViewGroup) statusBar.findViewById(R.id.notification_icon_area);
-        notificationIconArea.addView(mNotificationIconAreaInner);
-
-        mStatusIconsKeyguard = (LinearLayout) keyguardStatusBar.findViewById(R.id.statusIcons);
-
-        mBatteryMeterView = (BatteryMeterView) statusBar.findViewById(R.id.battery);
-        mBatteryMeterViewKeyguard = (BatteryMeterView) keyguardStatusBar.findViewById(R.id.battery);
-        scaleBatteryMeterViews(context);
-
-        mClock = (TextView) statusBar.findViewById(R.id.clock);
-        mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone);
-        mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone);
-        loadDimens();
-
-        Dependency.get(TunerService.class).addTunable(this, ICON_BLACKLIST);
-
-        mTransitionsController = new LightBarTransitionsController(this::setIconTintInternal);
-    }
-
-    public void setSignalCluster(SignalClusterView signalCluster) {
-        mSignalCluster = signalCluster;
-    }
-
-    public LightBarTransitionsController getTransitionsController() {
-        return mTransitionsController;
-    }
-
-    /**
-     * Looks up the scale factor for status bar icons and scales the battery view by that amount.
-     */
-    private void scaleBatteryMeterViews(Context context) {
-        Resources res = context.getResources();
-        TypedValue typedValue = new TypedValue();
-
-        res.getValue(R.dimen.status_bar_icon_scale_factor, typedValue, true);
-        float iconScaleFactor = typedValue.getFloat();
-
-        int batteryHeight = res.getDimensionPixelSize(R.dimen.status_bar_battery_icon_height);
-        int batteryWidth = res.getDimensionPixelSize(R.dimen.status_bar_battery_icon_width);
-        int marginBottom = res.getDimensionPixelSize(R.dimen.battery_margin_bottom);
-
-        LinearLayout.LayoutParams scaledLayoutParams = new LinearLayout.LayoutParams(
-                (int) (batteryWidth * iconScaleFactor), (int) (batteryHeight * iconScaleFactor));
-        scaledLayoutParams.setMarginsRelative(0, 0, 0, marginBottom);
-
-        mBatteryMeterView.setLayoutParams(scaledLayoutParams);
-        mBatteryMeterViewKeyguard.setLayoutParams(scaledLayoutParams);
-    }
-
-    @Override
-    public void onTuningChanged(String key, String newValue) {
-        if (!ICON_BLACKLIST.equals(key)) {
-            return;
-        }
-        mIconBlacklist.clear();
-        mIconBlacklist.addAll(getIconBlacklist(newValue));
-        ArrayList<StatusBarIconView> views = new ArrayList<StatusBarIconView>();
-        // Get all the current views.
-        for (int i = 0; i < mStatusIcons.getChildCount(); i++) {
-            views.add((StatusBarIconView) mStatusIcons.getChildAt(i));
-        }
-        // Remove all the icons.
-        for (int i = views.size() - 1; i >= 0; i--) {
-            removeIcon(views.get(i).getSlot());
-        }
-        // Add them all back
-        for (int i = 0; i < views.size(); i++) {
-            setIcon(views.get(i).getSlot(), views.get(i).getStatusBarIcon());
-        }
-
-        setClockVisibleByUser(!StatusBarIconController.getIconBlacklist(newValue)
-                .contains("clock"));
-        updateClockVisibility();
-    }
-    private void loadDimens() {
-        mIconSize = mContext.getResources().getDimensionPixelSize(
-                com.android.internal.R.dimen.status_bar_icon_size);
-        mIconHPadding = mContext.getResources().getDimensionPixelSize(
-                R.dimen.status_bar_icon_padding);
-    }
-
-    private void addSystemIcon(int index, StatusBarIcon icon) {
-        String slot = getSlot(index);
-        int viewIndex = getViewIndex(index);
-        boolean blocked = mIconBlacklist.contains(slot);
-        StatusBarIconView view = new StatusBarIconView(mContext, slot, null, blocked);
-        view.set(icon);
-
-        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
-                ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize);
-        lp.setMargins(mIconHPadding, 0, mIconHPadding, 0);
-        mStatusIcons.addView(view, viewIndex, lp);
-
-        view = new StatusBarIconView(mContext, slot, null, blocked);
-        view.set(icon);
-        mStatusIconsKeyguard.addView(view, viewIndex, new LinearLayout.LayoutParams(
-                ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize));
-        applyIconTint();
-    }
-
-    public void setIcon(String slot, int resourceId, CharSequence contentDescription) {
-        int index = getSlotIndex(slot);
-        StatusBarIcon icon = getIcon(index);
-        if (icon == null) {
-            icon = new StatusBarIcon(UserHandle.SYSTEM, mContext.getPackageName(),
-                    Icon.createWithResource(mContext, resourceId), 0, 0, contentDescription);
-            setIcon(slot, icon);
-        } else {
-            icon.icon = Icon.createWithResource(mContext, resourceId);
-            icon.contentDescription = contentDescription;
-            handleSet(index, icon);
-        }
-    }
-
-    public void setExternalIcon(String slot) {
-        int viewIndex = getViewIndex(getSlotIndex(slot));
-        int height = mContext.getResources().getDimensionPixelSize(
-                R.dimen.status_bar_icon_drawing_size);
-        ImageView imageView = (ImageView) mStatusIcons.getChildAt(viewIndex);
-        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
-        imageView.setAdjustViewBounds(true);
-        setHeightAndCenter(imageView, height);
-        imageView = (ImageView) mStatusIconsKeyguard.getChildAt(viewIndex);
-        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
-        imageView.setAdjustViewBounds(true);
-        setHeightAndCenter(imageView, height);
-    }
-
-    private void setHeightAndCenter(ImageView imageView, int height) {
-        ViewGroup.LayoutParams params = imageView.getLayoutParams();
-        params.height = height;
-        if (params instanceof LinearLayout.LayoutParams) {
-            ((LinearLayout.LayoutParams) params).gravity = Gravity.CENTER_VERTICAL;
-        }
-        imageView.setLayoutParams(params);
-    }
-
-    public void setIcon(String slot, StatusBarIcon icon) {
-        setIcon(getSlotIndex(slot), icon);
-    }
-
-    public void removeIcon(String slot) {
-        int index = getSlotIndex(slot);
-        removeIcon(index);
-    }
-
-    public void setIconVisibility(String slot, boolean visibility) {
-        int index = getSlotIndex(slot);
-        StatusBarIcon icon = getIcon(index);
-        if (icon == null || icon.visible == visibility) {
-            return;
-        }
-        icon.visible = visibility;
-        handleSet(index, icon);
-    }
-
-    @Override
-    public void removeIcon(int index) {
-        if (getIcon(index) == null) {
-            return;
-        }
-        super.removeIcon(index);
-        int viewIndex = getViewIndex(index);
-        mStatusIcons.removeViewAt(viewIndex);
-        mStatusIconsKeyguard.removeViewAt(viewIndex);
-    }
-
-    @Override
-    public void setIcon(int index, StatusBarIcon icon) {
-        if (icon == null) {
-            removeIcon(index);
-            return;
-        }
-        boolean isNew = getIcon(index) == null;
-        super.setIcon(index, icon);
-        if (isNew) {
-            addSystemIcon(index, icon);
-        } else {
-            handleSet(index, icon);
-        }
-    }
-
-    private void handleSet(int index, StatusBarIcon icon) {
-        int viewIndex = getViewIndex(index);
-        StatusBarIconView view = (StatusBarIconView) mStatusIcons.getChildAt(viewIndex);
-        view.set(icon);
-        view = (StatusBarIconView) mStatusIconsKeyguard.getChildAt(viewIndex);
-        view.set(icon);
-        applyIconTint();
-    }
-
-    public void updateNotificationIcons(NotificationData notificationData) {
-        mNotificationIconAreaController.updateNotificationIcons(notificationData);
-    }
-
-    public void hideSystemIconArea(boolean animate) {
-        animateHide(mSystemIconArea, animate);
-    }
-
-    public void showSystemIconArea(boolean animate) {
-        animateShow(mSystemIconArea, animate);
-    }
-
-    public void hideNotificationIconArea(boolean animate) {
-        animateHide(mNotificationIconAreaInner, animate);
-    }
-
-    public void showNotificationIconArea(boolean animate) {
-        animateShow(mNotificationIconAreaInner, animate);
-    }
-
-    public void setClockVisibleByUser(boolean visible) {
-        mClockVisibleByUser = visible;
-        updateClockVisibility();
-    }
-
-    public void setClockVisibilityByPolicy(boolean visible) {
-        mClockVisibleByPolicy = visible;
-        updateClockVisibility();
-    }
-
-    private void updateClockVisibility() {
-        int visibility = (mClockVisibleByPolicy && mClockVisibleByUser)
-                ? View.VISIBLE : View.GONE;
-        mClock.setVisibility(visibility);
-    }
-
-    public void dump(PrintWriter pw) {
-        int N = mStatusIcons.getChildCount();
-        pw.println("  icon views: " + N);
-        for (int i=0; i<N; i++) {
-            StatusBarIconView ic = (StatusBarIconView) mStatusIcons.getChildAt(i);
-            pw.println("    [" + i + "] icon=" + ic);
-        }
-        super.dump(pw);
-    }
-
-    public void dispatchDemoCommand(String command, Bundle args) {
-        if (mDemoStatusIcons == null) {
-            mDemoStatusIcons = new DemoStatusIcons(mStatusIcons, mIconSize);
-        }
-        mDemoStatusIcons.dispatchDemoCommand(command, args);
-    }
-
-    /**
-     * Hides a view.
-     */
-    private void animateHide(final View v, boolean animate) {
-        v.animate().cancel();
-        if (!animate) {
-            v.setAlpha(0f);
-            v.setVisibility(View.INVISIBLE);
-            return;
-        }
-        v.animate()
-                .alpha(0f)
-                .setDuration(160)
-                .setStartDelay(0)
-                .setInterpolator(Interpolators.ALPHA_OUT)
-                .withEndAction(new Runnable() {
-                    @Override
-                    public void run() {
-                        v.setVisibility(View.INVISIBLE);
-                    }
-                });
-    }
-
-    /**
-     * Shows a view, and synchronizes the animation with Keyguard exit animations, if applicable.
-     */
-    private void animateShow(View v, boolean animate) {
-        v.animate().cancel();
-        v.setVisibility(View.VISIBLE);
-        if (!animate) {
-            v.setAlpha(1f);
-            return;
-        }
-        v.animate()
-                .alpha(1f)
-                .setDuration(320)
-                .setInterpolator(Interpolators.ALPHA_IN)
-                .setStartDelay(50)
-
-                // We need to clean up any pending end action from animateHide if we call
-                // both hide and show in the same frame before the animation actually gets started.
-                // cancel() doesn't really remove the end action.
-                .withEndAction(null);
-
-        // Synchronize the motion with the Keyguard fading if necessary.
-        if (mStatusBar.isKeyguardFadingAway()) {
-            v.animate()
-                    .setDuration(mStatusBar.getKeyguardFadingAwayDuration())
-                    .setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN)
-                    .setStartDelay(mStatusBar.getKeyguardFadingAwayDelay())
-                    .start();
-        }
-    }
-
-    /**
-     * Sets the dark area so {@link #setIconsDark} only affects the icons in the specified area.
-     *
-     * @param darkArea the area in which icons should change it's tint, in logical screen
-     *                 coordinates
-     */
-    public void setIconsDarkArea(Rect darkArea) {
-        if (darkArea == null && mTintArea.isEmpty()) {
-            return;
-        }
-        if (darkArea == null) {
-            mTintArea.setEmpty();
-        } else {
-            mTintArea.set(darkArea);
-        }
-        applyIconTint();
-        mNotificationIconAreaController.setTintArea(darkArea);
-    }
-
-    private void setIconTintInternal(float darkIntensity) {
-        mDarkIntensity = darkIntensity;
-        mIconTint = (int) ArgbEvaluator.getInstance().evaluate(darkIntensity,
-                mLightModeIconColorSingleTone, mDarkModeIconColorSingleTone);
-        mNotificationIconAreaController.setIconTint(mIconTint);
-        applyIconTint();
-    }
-
-    /**
-     * @return the tint to apply to {@param view} depending on the desired tint {@param color} and
-     *         the screen {@param tintArea} in which to apply that tint
-     */
-    public static int getTint(Rect tintArea, View view, int color) {
-        if (isInArea(tintArea, view)) {
-            return color;
-        } else {
-            return DEFAULT_ICON_TINT;
-        }
-    }
-
-    /**
-     * @return the dark intensity to apply to {@param view} depending on the desired dark
-     *         {@param intensity} and the screen {@param tintArea} in which to apply that intensity
-     */
-    public static float getDarkIntensity(Rect tintArea, View view, float intensity) {
-        if (isInArea(tintArea, view)) {
-            return intensity;
-        } else {
-            return 0f;
-        }
-    }
-
-    /**
-     * @return true if more than half of the {@param view} area are in {@param area}, false
-     *         otherwise
-     */
-    private static boolean isInArea(Rect area, View view) {
-        if (area.isEmpty()) {
-            return true;
-        }
-        sTmpRect.set(area);
-        view.getLocationOnScreen(sTmpInt2);
-        int left = sTmpInt2[0];
-
-        int intersectStart = Math.max(left, area.left);
-        int intersectEnd = Math.min(left + view.getWidth(), area.right);
-        int intersectAmount = Math.max(0, intersectEnd - intersectStart);
-
-        boolean coversFullStatusBar = area.top <= 0;
-        boolean majorityOfWidth = 2 * intersectAmount > view.getWidth();
-        return majorityOfWidth && coversFullStatusBar;
-    }
-
-    private void applyIconTint() {
-        for (int i = 0; i < mStatusIcons.getChildCount(); i++) {
-            StatusBarIconView v = (StatusBarIconView) mStatusIcons.getChildAt(i);
-            v.setImageTintList(ColorStateList.valueOf(getTint(mTintArea, v, mIconTint)));
-        }
-        mSignalCluster.setIconTint(mIconTint, mDarkIntensity, mTintArea);
-        mBatteryMeterView.setDarkIntensity(
-                isInArea(mTintArea, mBatteryMeterView) ? mDarkIntensity : 0);
-        mClock.setTextColor(getTint(mTintArea, mClock, mIconTint));
-    }
 
     public static ArraySet<String> getIconBlacklist(String blackListStr) {
-        ArraySet<String> ret = new ArraySet<String>();
+        ArraySet<String> ret = new ArraySet<>();
         if (blackListStr == null) {
             blackListStr = "rotate,headset";
         }
@@ -509,34 +55,110 @@
         return ret;
     }
 
-    public void onDensityOrFontScaleChanged() {
-        loadDimens();
-        mNotificationIconAreaController.onDensityOrFontScaleChanged(mContext);
-        updateClock();
-        for (int i = 0; i < mStatusIcons.getChildCount(); i++) {
-            View child = mStatusIcons.getChildAt(i);
+
+    /**
+     * Version of ViewGroup that observers state from the DarkIconDispatcher.
+     */
+    public static class DarkIconManager extends IconManager {
+        private final DarkIconDispatcher mDarkIconDispatcher;
+        private int mIconHPadding;
+
+        public DarkIconManager(LinearLayout linearLayout) {
+            super(linearLayout);
+            mIconHPadding = mContext.getResources().getDimensionPixelSize(
+                    R.dimen.status_bar_icon_padding);
+            mDarkIconDispatcher = Dependency.get(DarkIconDispatcher.class);
+        }
+
+        @Override
+        protected void onIconAdded(int index, String slot, boolean blocked, StatusBarIcon icon) {
+            StatusBarIconView view = new StatusBarIconView(mContext, slot, null, blocked);
             LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                     ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize);
             lp.setMargins(mIconHPadding, 0, mIconHPadding, 0);
-            child.setLayoutParams(lp);
+            mGroup.addView(view, index, lp);
+            mDarkIconDispatcher.addDarkReceiver(view);
         }
-        for (int i = 0; i < mStatusIconsKeyguard.getChildCount(); i++) {
-            View child = mStatusIconsKeyguard.getChildAt(i);
-            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
-                    ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize);
-            child.setLayoutParams(lp);
+
+        @Override
+        protected void destroy() {
+            for (int i = 0; i < mGroup.getChildCount(); i++) {
+                mDarkIconDispatcher.removeDarkReceiver((ImageView) mGroup.getChildAt(i));
+            }
+            mGroup.removeAllViews();
         }
-        scaleBatteryMeterViews(mContext);
+
+        @Override
+        protected void onRemoveIcon(int viewIndex) {
+            mDarkIconDispatcher.removeDarkReceiver((ImageView) mGroup.getChildAt(viewIndex));
+            super.onRemoveIcon(viewIndex);
+        }
+
+        @Override
+        public void onSetIcon(int viewIndex, StatusBarIcon icon) {
+            super.onSetIcon(viewIndex, icon);
+            mDarkIconDispatcher.applyDark((ImageView) mGroup.getChildAt(viewIndex));
+        }
     }
 
-    private void updateClock() {
-        FontSizeUtils.updateFontSize(mClock, R.dimen.status_bar_clock_size);
-        mClock.setPaddingRelative(
-                mContext.getResources().getDimensionPixelSize(
-                        R.dimen.status_bar_clock_starting_padding),
-                0,
-                mContext.getResources().getDimensionPixelSize(
-                        R.dimen.status_bar_clock_end_padding),
-                0);
+    /**
+     * Turns info from StatusBarIconController into ImageViews in a ViewGroup.
+     */
+    public static class IconManager {
+        protected final ViewGroup mGroup;
+        protected final Context mContext;
+        protected final int mIconSize;
+
+        public IconManager(ViewGroup group) {
+            mGroup = group;
+            mContext = group.getContext();
+            mIconSize = mContext.getResources().getDimensionPixelSize(
+                    com.android.internal.R.dimen.status_bar_icon_size);
+        }
+
+        protected void onIconAdded(int index, String slot, boolean blocked, StatusBarIcon icon) {
+            StatusBarIconView view = new StatusBarIconView(mContext, slot, null, blocked);
+            view.set(icon);
+            mGroup.addView(view, index, new LinearLayout.LayoutParams(
+                    ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize));
+        }
+
+        protected void destroy() {
+            mGroup.removeAllViews();
+        }
+
+        protected void onIconExternal(int viewIndex, int height) {
+            ImageView imageView = (ImageView) mGroup.getChildAt(viewIndex);
+            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
+            imageView.setAdjustViewBounds(true);
+            setHeightAndCenter(imageView, height);
+        }
+
+        protected void onDensityOrFontScaleChanged() {
+            for (int i = 0; i < mGroup.getChildCount(); i++) {
+                View child = mGroup.getChildAt(i);
+                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
+                        ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize);
+                child.setLayoutParams(lp);
+            }
+        }
+
+        private void setHeightAndCenter(ImageView imageView, int height) {
+            ViewGroup.LayoutParams params = imageView.getLayoutParams();
+            params.height = height;
+            if (params instanceof LinearLayout.LayoutParams) {
+                ((LinearLayout.LayoutParams) params).gravity = Gravity.CENTER_VERTICAL;
+            }
+            imageView.setLayoutParams(params);
+        }
+
+        protected void onRemoveIcon(int viewIndex) {
+            mGroup.removeViewAt(viewIndex);
+        }
+
+        public void onSetIcon(int viewIndex, StatusBarIcon icon) {
+            StatusBarIconView view = (StatusBarIconView) mGroup.getChildAt(viewIndex);
+            view.set(icon);
+        }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
new file mode 100644
index 0000000..70b92ad
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2017 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.phone;
+
+import android.content.Context;
+import android.graphics.drawable.Icon;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.text.TextUtils;
+import android.util.ArraySet;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+
+import com.android.internal.statusbar.StatusBarIcon;
+import com.android.systemui.Dependency;
+import com.android.systemui.Dumpable;
+import com.android.systemui.R;
+import com.android.systemui.SysUiServiceProvider;
+import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.StatusBarIconView;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher;
+import com.android.systemui.tuner.TunerService;
+import com.android.systemui.tuner.TunerService.Tunable;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+/**
+ * Receives the callbacks from CommandQueue related to icons and tracks the state of
+ * all the icons. Dispatches this state to any IconManagers that are currently
+ * registered with it.
+ */
+public class StatusBarIconControllerImpl extends StatusBarIconList implements Tunable,
+        ConfigurationListener, Dumpable, CommandQueue.Callbacks, StatusBarIconController {
+
+    private final DarkIconDispatcher mDarkIconDispatcher;
+
+    private Context mContext;
+    private DemoStatusIcons mDemoStatusIcons;
+
+    private final ArrayList<IconManager> mIconGroups = new ArrayList<>();
+
+    private final ArraySet<String> mIconBlacklist = new ArraySet<>();
+
+    public StatusBarIconControllerImpl(Context context) {
+        super(context.getResources().getStringArray(
+                com.android.internal.R.array.config_statusBarIcons));
+        Dependency.get(ConfigurationController.class).addCallback(this);
+        mDarkIconDispatcher = Dependency.get(DarkIconDispatcher.class);
+        mContext = context;
+
+        loadDimens();
+
+        SysUiServiceProvider.getComponent(context, CommandQueue.class)
+                .addCallbacks(this);
+        Dependency.get(TunerService.class).addTunable(this, ICON_BLACKLIST);
+    }
+
+    @Override
+    public void addIconGroup(IconManager group) {
+        mIconGroups.add(group);
+        for (int i = 0; i < mIcons.size(); i++) {
+            StatusBarIcon icon = mIcons.get(i);
+            if (icon != null) {
+                String slot = mSlots.get(i);
+                boolean blocked = mIconBlacklist.contains(slot);
+                group.onIconAdded(getViewIndex(getSlotIndex(slot)), slot, blocked, icon);
+            }
+        }
+    }
+
+    @Override
+    public void removeIconGroup(IconManager group) {
+        group.destroy();
+        mIconGroups.remove(group);
+    }
+
+    @Override
+    public void onTuningChanged(String key, String newValue) {
+        if (!ICON_BLACKLIST.equals(key)) {
+            return;
+        }
+        mIconBlacklist.clear();
+        mIconBlacklist.addAll(StatusBarIconController.getIconBlacklist(newValue));
+        ArrayList<StatusBarIcon> current = new ArrayList<>(mIcons);
+        ArrayList<String> currentSlots = new ArrayList<>(mSlots);
+        // Remove all the icons.
+        for (int i = current.size() - 1; i >= 0; i--) {
+            removeIcon(currentSlots.get(i));
+        }
+        // Add them all back
+        for (int i = 0; i < current.size(); i++) {
+            setIcon(currentSlots.get(i), current.get(i));
+        }
+    }
+
+    private void loadDimens() {
+    }
+
+    private void addSystemIcon(int index, StatusBarIcon icon) {
+        String slot = getSlot(index);
+        int viewIndex = getViewIndex(index);
+        boolean blocked = mIconBlacklist.contains(slot);
+
+        mIconGroups.forEach(l -> l.onIconAdded(viewIndex, slot, blocked, icon));
+    }
+
+    @Override
+    public void setIcon(String slot, int resourceId, CharSequence contentDescription) {
+        int index = getSlotIndex(slot);
+        StatusBarIcon icon = getIcon(index);
+        if (icon == null) {
+            icon = new StatusBarIcon(UserHandle.SYSTEM, mContext.getPackageName(),
+                    Icon.createWithResource(mContext, resourceId), 0, 0, contentDescription);
+            setIcon(slot, icon);
+        } else {
+            icon.icon = Icon.createWithResource(mContext, resourceId);
+            icon.contentDescription = contentDescription;
+            handleSet(index, icon);
+        }
+    }
+
+    @Override
+    public void setExternalIcon(String slot) {
+        int viewIndex = getViewIndex(getSlotIndex(slot));
+        int height = mContext.getResources().getDimensionPixelSize(
+                R.dimen.status_bar_icon_drawing_size);
+        mIconGroups.forEach(l -> l.onIconExternal(viewIndex, height));
+    }
+
+    @Override
+    public void setIcon(String slot, StatusBarIcon icon) {
+        setIcon(getSlotIndex(slot), icon);
+    }
+
+    @Override
+    public void removeIcon(String slot) {
+        int index = getSlotIndex(slot);
+        removeIcon(index);
+    }
+
+    public void setIconVisibility(String slot, boolean visibility) {
+        int index = getSlotIndex(slot);
+        StatusBarIcon icon = getIcon(index);
+        if (icon == null || icon.visible == visibility) {
+            return;
+        }
+        icon.visible = visibility;
+        handleSet(index, icon);
+    }
+
+    @Override
+    public void removeIcon(int index) {
+        if (getIcon(index) == null) {
+            return;
+        }
+        super.removeIcon(index);
+        int viewIndex = getViewIndex(index);
+        mIconGroups.forEach(l -> l.onRemoveIcon(viewIndex));
+    }
+
+    @Override
+    public void setIcon(int index, StatusBarIcon icon) {
+        if (icon == null) {
+            removeIcon(index);
+            return;
+        }
+        boolean isNew = getIcon(index) == null;
+        super.setIcon(index, icon);
+        if (isNew) {
+            addSystemIcon(index, icon);
+        } else {
+            handleSet(index, icon);
+        }
+    }
+
+    private void handleSet(int index, StatusBarIcon icon) {
+        int viewIndex = getViewIndex(index);
+        mIconGroups.forEach(l -> l.onSetIcon(viewIndex, icon));
+    }
+
+    @Override
+    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        // TODO: Dump info about all icon groups?
+        ViewGroup statusIcons = mIconGroups.get(0).mGroup;
+        int N = statusIcons.getChildCount();
+        pw.println("  icon views: " + N);
+        for (int i = 0; i < N; i++) {
+            StatusBarIconView ic = (StatusBarIconView) statusIcons.getChildAt(i);
+            pw.println("    [" + i + "] icon=" + ic);
+        }
+        super.dump(pw);
+    }
+
+    public void dispatchDemoCommand(String command, Bundle args) {
+        if (mDemoStatusIcons == null) {
+            // TODO: Rework how we handle demo mode.
+            int iconSize = mContext.getResources().getDimensionPixelSize(
+                    com.android.internal.R.dimen.status_bar_icon_size);
+            mDemoStatusIcons = new DemoStatusIcons((LinearLayout) mIconGroups.get(0).mGroup,
+                    iconSize);
+        }
+        mDemoStatusIcons.dispatchDemoCommand(command, args);
+    }
+
+    @Override
+    public void onDensityOrFontScaleChanged() {
+        loadDimens();
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java
index 660672d..f600908 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java
@@ -22,8 +22,8 @@
 import java.util.ArrayList;
 
 public class StatusBarIconList {
-    private ArrayList<String> mSlots = new ArrayList<>();
-    private ArrayList<StatusBarIcon> mIcons = new ArrayList<>();
+    protected ArrayList<String> mSlots = new ArrayList<>();
+    protected ArrayList<StatusBarIcon> mIcons = new ArrayList<>();
 
     public StatusBarIconList(String[] slots) {
         final int N = slots.length;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
index ffc0d97..bb0748c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
@@ -19,11 +19,14 @@
 import libcore.icu.LocaleData;
 
 import android.app.ActivityManager;
+import android.app.StatusBarManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.res.Configuration;
 import android.content.res.TypedArray;
+import android.graphics.Rect;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.SystemClock;
@@ -35,12 +38,18 @@
 import android.text.style.RelativeSizeSpan;
 import android.util.AttributeSet;
 import android.view.Display;
+import android.view.View;
 import android.widget.TextView;
 
 import com.android.systemui.DemoMode;
 import com.android.systemui.Dependency;
+import com.android.systemui.FontSizeUtils;
 import com.android.systemui.R;
+import com.android.systemui.SysUiServiceProvider;
+import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
+import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver;
 import com.android.systemui.tuner.TunerService;
 import com.android.systemui.tuner.TunerService.Tunable;
 
@@ -52,10 +61,14 @@
 /**
  * Digital clock for the status bar.
  */
-public class Clock extends TextView implements DemoMode, Tunable {
+public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.Callbacks,
+        DarkReceiver, ConfigurationListener {
 
     public static final String CLOCK_SECONDS = "clock_seconds";
 
+    private boolean mClockVisibleByPolicy = true;
+    private boolean mClockVisibleByUser = true;
+
     private boolean mAttached;
     private Calendar mCalendar;
     private String mClockFormatString;
@@ -110,6 +123,8 @@
                     null, Dependency.get(Dependency.TIME_TICK_HANDLER));
             Dependency.get(TunerService.class).addTunable(this, CLOCK_SECONDS,
                     StatusBarIconController.ICON_BLACKLIST);
+            SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).addCallbacks(this);
+            Dependency.get(DarkIconDispatcher.class).addDarkReceiver(this);
         }
 
         // NOTE: It's safe to do these after registering the receiver since the receiver always runs
@@ -130,6 +145,9 @@
             getContext().unregisterReceiver(mIntentReceiver);
             mAttached = false;
             Dependency.get(TunerService.class).removeTunable(this);
+            SysUiServiceProvider.getComponent(getContext(), CommandQueue.class)
+                    .removeCallbacks(this);
+            Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(this);
         }
     }
 
@@ -158,6 +176,22 @@
         }
     };
 
+    public void setClockVisibleByUser(boolean visible) {
+        mClockVisibleByUser = visible;
+        updateClockVisibility();
+    }
+
+    public void setClockVisibilityByPolicy(boolean visible) {
+        mClockVisibleByPolicy = visible;
+        updateClockVisibility();
+    }
+
+    private void updateClockVisibility() {
+        int visibility = (mClockVisibleByPolicy && mClockVisibleByUser)
+                ? View.VISIBLE : View.GONE;
+        setVisibility(visibility);
+    }
+
     final void updateClock() {
         if (mDemoMode) return;
         mCalendar.setTimeInMillis(System.currentTimeMillis());
@@ -170,9 +204,38 @@
         if (CLOCK_SECONDS.equals(key)) {
             mShowSeconds = newValue != null && Integer.parseInt(newValue) != 0;
             updateShowSeconds();
+        } else {
+            setClockVisibleByUser(!StatusBarIconController.getIconBlacklist(newValue)
+                    .contains("clock"));
+            updateClockVisibility();
         }
     }
 
+    @Override
+    public void disable(int state1, int state2, boolean animate) {
+        boolean clockVisibleByPolicy = (state1 & StatusBarManager.DISABLE_CLOCK) == 0;
+        if (clockVisibleByPolicy != mClockVisibleByPolicy) {
+            setClockVisibilityByPolicy(clockVisibleByPolicy);
+        }
+    }
+
+    @Override
+    public void onDarkChanged(Rect area, float darkIntensity, int tint) {
+        setTextColor(DarkIconDispatcher.getTint(area, this, tint));
+    }
+
+    @Override
+    public void onDensityOrFontScaleChanged() {
+        FontSizeUtils.updateFontSize(this, R.dimen.status_bar_clock_size);
+        setPaddingRelative(
+                mContext.getResources().getDimensionPixelSize(
+                        R.dimen.status_bar_clock_starting_padding),
+                0,
+                mContext.getResources().getDimensionPixelSize(
+                        R.dimen.status_bar_clock_end_padding),
+                0);
+    }
+
     private void updateShowSeconds() {
         if (mShowSeconds) {
             // Wait until we have a display to start trying to show seconds.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ConfigurationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ConfigurationController.java
new file mode 100644
index 0000000..788fda8
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ConfigurationController.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2017 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 android.content.res.Configuration;
+
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
+
+/**
+ * Common listener for configuration or subsets of configuration changes (like density or
+ * font scaling), providing easy static dependence on these events.
+ */
+public interface ConfigurationController extends CallbackController<ConfigurationListener> {
+
+    interface ConfigurationListener {
+        default void onConfigChanged(Configuration newConfig) {}
+        default void onDensityOrFontScaleChanged() {}
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DarkIconDispatcher.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DarkIconDispatcher.java
new file mode 100644
index 0000000..58944c6
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DarkIconDispatcher.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2017 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 android.graphics.Color;
+import android.graphics.Rect;
+import android.view.View;
+import android.widget.ImageView;
+
+import com.android.systemui.statusbar.phone.LightBarTransitionsController;
+
+public interface DarkIconDispatcher {
+
+    void setIconsDarkArea(Rect r);
+    LightBarTransitionsController getTransitionsController();
+
+    void addDarkReceiver(DarkReceiver receiver);
+    void addDarkReceiver(ImageView imageView);
+
+    // Must have been previously been added through one of the addDarkReceive methods above.
+    void removeDarkReceiver(DarkReceiver object);
+    void removeDarkReceiver(ImageView object);
+
+    // Used to reapply darkness on an object, must have previously been added through
+    // addDarkReceiver.
+    void applyDark(ImageView object);
+
+    int DEFAULT_ICON_TINT = Color.WHITE;
+    Rect sTmpRect = new Rect();
+    int[] sTmpInt2 = new int[2];
+
+    /**
+     * @return the tint to apply to {@param view} depending on the desired tint {@param color} and
+     *         the screen {@param tintArea} in which to apply that tint
+     */
+    static int getTint(Rect tintArea, View view, int color) {
+        if (isInArea(tintArea, view)) {
+            return color;
+        } else {
+            return DEFAULT_ICON_TINT;
+        }
+    }
+
+    /**
+     * @return the dark intensity to apply to {@param view} depending on the desired dark
+     *         {@param intensity} and the screen {@param tintArea} in which to apply that intensity
+     */
+    static float getDarkIntensity(Rect tintArea, View view, float intensity) {
+        if (isInArea(tintArea, view)) {
+            return intensity;
+        } else {
+            return 0f;
+        }
+    }
+
+    /**
+     * @return true if more than half of the {@param view} area are in {@param area}, false
+     *         otherwise
+     */
+    static boolean isInArea(Rect area, View view) {
+        if (area.isEmpty()) {
+            return true;
+        }
+        sTmpRect.set(area);
+        view.getLocationOnScreen(sTmpInt2);
+        int left = sTmpInt2[0];
+
+        int intersectStart = Math.max(left, area.left);
+        int intersectEnd = Math.min(left + view.getWidth(), area.right);
+        int intersectAmount = Math.max(0, intersectEnd - intersectStart);
+
+        boolean coversFullStatusBar = area.top <= 0;
+        boolean majorityOfWidth = 2 * intersectAmount > view.getWidth();
+        return majorityOfWidth && coversFullStatusBar;
+    }
+
+    interface DarkReceiver {
+        void onDarkChanged(Rect area, float darkIntensity, int tint);
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
index 8c805fe..96c70c4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
@@ -602,7 +602,7 @@
      */
     public void setExpanded(NotificationData.Entry entry, boolean expanded) {
         HeadsUpEntry headsUpEntry = mHeadsUpEntries.get(entry.key);
-        if (headsUpEntry != null && headsUpEntry.expanded != expanded) {
+        if (headsUpEntry != null && headsUpEntry.expanded != expanded && entry.row.isPinned()) {
             headsUpEntry.expanded = expanded;
             if (expanded) {
                 headsUpEntry.removeAutoRemovalCallbacks();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java
index de47267..728005d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java
@@ -21,8 +21,12 @@
     boolean isSecure();
     boolean canSkipBouncer();
     boolean isShowing();
+    boolean isKeyguardFadingAway();
+    boolean isKeyguardGoingAway();
+    long getKeyguardFadingAwayDuration();
+    long getKeyguardFadingAwayDelay();
 
     public interface Callback {
-        void onKeyguardChanged();
+        void onKeyguardShowingChanged();
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
index 769f93f..821e635 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
@@ -18,13 +18,10 @@
 
 import android.app.ActivityManager;
 import android.content.Context;
-import android.os.RemoteException;
-import android.view.WindowManagerGlobal;
 
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.keyguard.KeyguardUpdateMonitorCallback;
 import com.android.systemui.settings.CurrentUserTracker;
-import com.android.systemui.statusbar.policy.KeyguardMonitor.Callback;
 
 import java.util.ArrayList;
 
@@ -44,6 +41,10 @@
     private boolean mCanSkipBouncer;
 
     private boolean mListening;
+    private boolean mKeyguardFadingAway;
+    private long mKeyguardFadingAwayDelay;
+    private long mKeyguardFadingAwayDuration;
+    private boolean mKeyguardGoingAway;
 
     public KeyguardMonitorImpl(Context context) {
         mContext = context;
@@ -115,8 +116,42 @@
     }
 
     private void notifyKeyguardChanged() {
-        for (Callback callback : mCallbacks) {
-            callback.onKeyguardChanged();
-        }
+        mCallbacks.forEach(Callback::onKeyguardShowingChanged);
+    }
+
+    public void notifyKeyguardFadingAway(long delay, long fadeoutDuration) {
+        mKeyguardFadingAway = true;
+        mKeyguardFadingAwayDelay = delay;
+        mKeyguardFadingAwayDuration = fadeoutDuration;
+        mCallbacks.forEach(Callback::onKeyguardShowingChanged);
+    }
+
+    public void notifyKeyguardDoneFading() {
+        mKeyguardFadingAway = false;
+        mCallbacks.forEach(Callback::onKeyguardShowingChanged);
+    }
+
+    @Override
+    public boolean isKeyguardFadingAway() {
+        return mKeyguardFadingAway;
+    }
+
+    @Override
+    public boolean isKeyguardGoingAway() {
+        return mKeyguardGoingAway;
+    }
+
+    @Override
+    public long getKeyguardFadingAwayDelay() {
+        return mKeyguardFadingAwayDelay;
+    }
+
+    @Override
+    public long getKeyguardFadingAwayDuration() {
+        return mKeyguardFadingAwayDuration;
+    }
+
+    public void notifyKeyguardGoingAway(boolean keyguardGoingAway) {
+        mKeyguardGoingAway = keyguardGoingAway;
     }
 }
\ No newline at end of file
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 7a32bf1..6df4a21 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
@@ -850,7 +850,7 @@
 
     private final KeyguardMonitor.Callback mCallback = new KeyguardMonitor.Callback() {
         @Override
-        public void onKeyguardChanged() {
+        public void onKeyguardShowingChanged() {
             notifyAdapters();
         }
     };
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 f195f7a..8777aa6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java
@@ -36,14 +36,14 @@
     int getCurrentUser();
     boolean isVolumeRestricted();
 
-    public static class Callback {
-        public void onZenChanged(int zen) {}
-        public void onConditionsChanged(Condition[] conditions) {}
-        public void onNextAlarmChanged() {}
-        public void onZenAvailableChanged(boolean available) {}
-        public void onEffectsSupressorChanged() {}
-        public void onManualRuleChanged(ZenRule rule) {}
-        public void onConfigChanged(ZenModeConfig config) {}
+    public static interface Callback {
+        default void onZenChanged(int zen) {}
+        default void onConditionsChanged(Condition[] conditions) {}
+        default void onNextAlarmChanged() {}
+        default void onZenAvailableChanged(boolean available) {}
+        default void onEffectsSupressorChanged() {}
+        default void onManualRuleChanged(ZenRule rule) {}
+        default void onConfigChanged(ZenModeConfig config) {}
     }
 
 }
\ No newline at end of file
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 11927729..dd4e876 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -364,6 +364,7 @@
     private boolean mHeadsUpAnimatingAway;
     private int mStatusBarState;
     private int mCachedBackgroundColor;
+    private Runnable mAnimateScroll = this::animateScroll;
 
     public NotificationStackScrollLayout(Context context) {
         this(context, null);
@@ -1169,7 +1170,7 @@
         if (mOwnScrollY < targetScroll || outOfViewScroll < mOwnScrollY) {
             mScroller.startScroll(mScrollX, mOwnScrollY, 0, targetScroll - mOwnScrollY);
             mDontReportNextOverScroll = true;
-            postInvalidateOnAnimation();
+            animateScroll();
             return true;
         }
         return false;
@@ -1209,7 +1210,7 @@
             mScroller.startScroll(mScrollX, mOwnScrollY, 0, range - mOwnScrollY);
             mDontReportNextOverScroll = true;
             mDontClampNextScroll = true;
-            postInvalidateOnAnimation();
+            animateScroll();
         }
     };
 
@@ -1326,7 +1327,7 @@
                                 newScrollY = range;
                             }
                             if (newScrollY != oldScrollY) {
-                                customScrollTo(newScrollY);
+                                setOwnScrollY(newScrollY);
                                 return true;
                             }
                         }
@@ -1406,13 +1407,13 @@
                         scrollAmount = overScrollUp(deltaY, range);
                     }
 
-                    // Calling overScrollBy will call onOverScrolled, which
-                    // calls onScrollChanged if applicable.
+                    // Calling customOverScrollBy will call onCustomOverScrolled, which
+                    // sets the scrolling if applicable.
                     if (scrollAmount != 0.0f) {
                         // The scrolling motion could not be compensated with the
                         // existing overScroll, we have to scroll the view
-                        overScrollBy(0, (int) scrollAmount, 0, mOwnScrollY,
-                                0, range, 0, getHeight() / 2, true);
+                        customOverScrollBy((int) scrollAmount, mOwnScrollY,
+                                range, getHeight() / 2);
                     }
                 }
                 break;
@@ -1436,7 +1437,7 @@
                             } else {
                                 if (mScroller.springBack(mScrollX, mOwnScrollY, 0, 0, 0,
                                         getScrollRange())) {
-                                    postInvalidateOnAnimation();
+                                    animateScroll();
                                 }
                             }
                         }
@@ -1449,7 +1450,7 @@
             case MotionEvent.ACTION_CANCEL:
                 if (mIsBeingDragged && getChildCount() > 0) {
                     if (mScroller.springBack(mScrollX, mOwnScrollY, 0, 0, 0, getScrollRange())) {
-                        postInvalidateOnAnimation();
+                        animateScroll();
                     }
                     mActivePointerId = INVALID_POINTER;
                     endDrag();
@@ -1589,16 +1590,12 @@
         mFinishScrollingCallback = runnable;
     }
 
-    @Override
-    public void computeScroll() {
+    private void animateScroll() {
         if (mScroller.computeScrollOffset()) {
-            // This is called at drawing time by ViewGroup.
-            int oldX = mScrollX;
             int oldY = mOwnScrollY;
-            int x = mScroller.getCurrX();
             int y = mScroller.getCurrY();
 
-            if (oldX != x || oldY != y) {
+            if (oldY != y) {
                 int range = getScrollRange();
                 if (y < 0 && oldY >= 0 || y > range && oldY <= range) {
                     float currVelocity = mScroller.getCurrVelocity();
@@ -1610,13 +1607,11 @@
                 if (mDontClampNextScroll) {
                     range = Math.max(range, oldY);
                 }
-                overScrollBy(x - oldX, y - oldY, oldX, oldY, 0, range,
-                        0, (int) (mMaxOverScroll), false);
-                onScrollChanged(mScrollX, mOwnScrollY, oldX, oldY);
+                customOverScrollBy(y - oldY, oldY, range,
+                        (int) (mMaxOverScroll));
             }
 
-            // Keep on drawing until the animation has finished.
-            postInvalidateOnAnimation();
+            postOnAnimation(mAnimateScroll);
         } else {
             mDontClampNextScroll = false;
             if (mFinishScrollingCallback != null) {
@@ -1625,12 +1620,8 @@
         }
     }
 
-    @Override
-    protected boolean overScrollBy(int deltaX, int deltaY,
-            int scrollX, int scrollY,
-            int scrollRangeX, int scrollRangeY,
-            int maxOverScrollX, int maxOverScrollY,
-            boolean isTouchEvent) {
+    private boolean customOverScrollBy(int deltaY, int scrollY, int scrollRangeY,
+            int maxOverScrollY) {
 
         int newScrollY = scrollY + deltaY;
         final int top = -maxOverScrollY;
@@ -1645,7 +1636,7 @@
             clampedY = true;
         }
 
-        onOverScrolled(0, newScrollY, false, clampedY);
+        onCustomOverScrolled(newScrollY, clampedY);
 
         return clampedY;
     }
@@ -1754,25 +1745,13 @@
         }
     }
 
-    private void customScrollTo(int y) {
-        setOwnScrollY(y);
-        updateChildren();
-    }
-
-    @Override
-    protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
+    private void onCustomOverScrolled(int scrollY, boolean clampedY) {
         // Treat animating scrolls differently; see #computeScroll() for why.
         if (!mScroller.isFinished()) {
-            final int oldX = mScrollX;
-            final int oldY = mOwnScrollY;
-            mScrollX = scrollX;
             setOwnScrollY(scrollY);
             if (clampedY) {
                 springBack();
             } else {
-                onScrollChanged(mScrollX, mOwnScrollY, oldX, oldY);
-                invalidateParentIfNeeded();
-                updateChildren();
                 float overScrollTop = getCurrentOverScrollAmount(true);
                 if (mOwnScrollY < 0) {
                     notifyOverscrollTopListener(-mOwnScrollY, isRubberbanded(true));
@@ -1781,8 +1760,7 @@
                 }
             }
         } else {
-            customScrollTo(scrollY);
-            scrollTo(scrollX, mScrollY);
+            setOwnScrollY(scrollY);
         }
     }
 
@@ -2291,10 +2269,10 @@
             if (mExpandedInThisMotion) {
                 minScrollY = Math.min(minScrollY, mMaxScrollAfterExpand);
             }
-            mScroller.fling(mScrollX, mOwnScrollY, 1, velocityY, 0, 0, 0,
-                    minScrollY, 0, mExpandedInThisMotion && mOwnScrollY >= 0 ? 0 : Integer.MAX_VALUE / 2);
+            mScroller.fling(mScrollX, mOwnScrollY, 1, velocityY, 0, 0, 0, minScrollY, 0,
+                    mExpandedInThisMotion && mOwnScrollY >= 0 ? 0 : Integer.MAX_VALUE / 2);
 
-            postInvalidateOnAnimation();
+            animateScroll();
         }
     }
 
@@ -3149,7 +3127,7 @@
                 mActivePointerId = INVALID_POINTER;
                 recycleVelocityTracker();
                 if (mScroller.springBack(mScrollX, mOwnScrollY, 0, 0, 0, getScrollRange())) {
-                    postInvalidateOnAnimation();
+                    animateScroll();
                 }
                 break;
             case MotionEvent.ACTION_POINTER_UP:
@@ -3927,7 +3905,7 @@
                         Math.min(mOwnScrollY + direction * viewportHeight, getScrollRange()));
                 if (targetScrollY != mOwnScrollY) {
                     mScroller.startScroll(mScrollX, mOwnScrollY, 0, targetScrollY - mOwnScrollY);
-                    postInvalidateOnAnimation();
+                    animateScroll();
                     return true;
                 }
                 break;
@@ -4077,8 +4055,11 @@
 
     public void setOwnScrollY(int ownScrollY) {
         if (ownScrollY != mOwnScrollY) {
+            // We still want to call the normal scrolled changed for accessibility reasons
+            onScrollChanged(mScrollX, ownScrollY, mScrollX, mOwnScrollY);
             mOwnScrollY = ownScrollY;
             updateForwardAndBackwardScrollability();
+            requestChildrenUpdate();
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java
index 9d579f5..6f4a3a4 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java
@@ -26,6 +26,7 @@
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ShortcutInfo;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.ScaleDrawable;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Process;
@@ -37,6 +38,9 @@
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.text.TextUtils;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -46,6 +50,7 @@
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
 import com.android.systemui.plugins.IntentButtonProvider.IntentButton;
+import com.android.systemui.statusbar.ScalingDrawableWrapper;
 import com.android.systemui.statusbar.phone.ExpandableIndicator;
 import com.android.systemui.tuner.ShortcutParser.Shortcut;
 import com.android.systemui.tuner.TunerService.Tunable;
@@ -365,8 +370,13 @@
             mShortcut = shortcut;
             mIconState = new IconState();
             mIconState.isVisible = true;
-            mIconState.drawable = shortcut.icon.loadDrawable(context);
+            mIconState.drawable = shortcut.icon.loadDrawable(context).mutate();
             mIconState.contentDescription = mShortcut.label;
+            int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32,
+                    context.getResources().getDisplayMetrics());
+            mIconState.drawable = new ScalingDrawableWrapper(mIconState.drawable,
+                    size / (float) mIconState.drawable.getIntrinsicWidth());
+            mIconState.tint = false;
         }
 
         @Override
@@ -388,8 +398,13 @@
             mIntent = new Intent().setComponent(new ComponentName(info.packageName, info.name));
             mIconState = new IconState();
             mIconState.isVisible = true;
-            mIconState.drawable = info.loadIcon(context.getPackageManager());
+            mIconState.drawable = info.loadIcon(context.getPackageManager()).mutate();
             mIconState.contentDescription = info.loadLabel(context.getPackageManager());
+            int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32,
+                    context.getResources().getDisplayMetrics());
+            mIconState.drawable = new ScalingDrawableWrapper(mIconState.drawable,
+                    size / (float) mIconState.drawable.getIntrinsicWidth());
+            mIconState.tint = false;
         }
 
         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java
index 489c05b..85be4d7 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java
@@ -42,11 +42,16 @@
 import com.android.systemui.DemoMode;
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
+import com.android.systemui.SysUiServiceProvider;
+import com.android.systemui.SystemUI;
+import com.android.systemui.SystemUIApplication;
 import com.android.systemui.settings.CurrentUserTracker;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.phone.SystemUIDialog;
+import com.android.systemui.util.leak.LeakDetector;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Set;
 
 
@@ -63,6 +68,8 @@
     private final ArrayMap<Uri, String> mListeningUris = new ArrayMap<>();
     // Map of settings keys to the listener.
     private final HashMap<String, Set<Tunable>> mTunableLookup = new HashMap<>();
+    // Set of all tunables, used for leak detection.
+    private final HashSet<Tunable> mTunables = LeakDetector.ENABLED ? new HashSet<>() : null;
     private final Context mContext;
 
     private ContentResolver mContentResolver;
@@ -147,6 +154,10 @@
             mTunableLookup.put(key, new ArraySet<Tunable>());
         }
         mTunableLookup.get(key).add(tunable);
+        if (LeakDetector.ENABLED) {
+            mTunables.add(tunable);
+            Dependency.get(LeakDetector.class).trackCollection(mTunables, "TunerService.mTunables");
+        }
         Uri uri = Settings.Secure.getUriFor(key);
         if (!mListeningUris.containsKey(uri)) {
             mListeningUris.put(uri, key);
@@ -161,6 +172,9 @@
         for (Set<Tunable> list : mTunableLookup.values()) {
             list.remove(tunable);
         }
+        if (LeakDetector.ENABLED) {
+            mTunables.remove(tunable);
+        }
     }
 
     protected void reregisterAll() {
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/AbstractCollection.java b/packages/SystemUI/src/com/android/systemui/util/leak/AbstractCollection.java
new file mode 100644
index 0000000..1534def
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/AbstractCollection.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+abstract class AbstractCollection<T> implements Collection<T> {
+    @Override
+    public abstract int size();
+
+    @Override
+    public abstract boolean isEmpty();
+
+    @Override
+    public boolean contains(Object o) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public Iterator<T> iterator() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public Object[] toArray() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public <T1> T1[] toArray(T1[] t1s) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean add(T t) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean remove(Object o) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean containsAll(Collection<?> collection) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean addAll(Collection<? extends T> collection) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean removeAll(Collection<?> collection) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean retainAll(Collection<?> collection) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void clear() {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
new file mode 100644
index 0000000..ef743e3
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+
+import android.os.Build;
+import android.os.Handler;
+import android.os.Looper;
+import android.support.annotation.VisibleForTesting;
+
+import com.android.systemui.Dependency;
+import com.android.systemui.SystemUI;
+
+public class GarbageMonitor {
+
+    private static final String TAG = "GarbageMonitor";
+
+    private static final long GARBAGE_INSPECTION_INTERVAL = 5 * 60 * 1000; // 5min
+    private static final int GARBAGE_ALLOWANCE = 5;
+
+    private final Handler mHandler;
+    private final TrackedGarbage mTrackedGarbage;
+    private final LeakReporter mLeakReporter;
+
+    public GarbageMonitor(Looper bgLooper, LeakDetector leakDetector,
+            LeakReporter leakReporter) {
+        mHandler = bgLooper != null ? new Handler(bgLooper): null;
+        mTrackedGarbage = leakDetector.getTrackedGarbage();
+        mLeakReporter = leakReporter;
+    }
+
+    public void start() {
+        if (mTrackedGarbage == null) {
+            return;
+        }
+
+        scheduleInspectGarbage(this::inspectGarbage);
+    }
+
+    @VisibleForTesting
+    void scheduleInspectGarbage(Runnable runnable) {
+        mHandler.postDelayed(runnable, GARBAGE_INSPECTION_INTERVAL);
+    }
+
+    private void inspectGarbage() {
+        if (mTrackedGarbage.countOldGarbage() > GARBAGE_ALLOWANCE) {
+            Runtime.getRuntime().gc();
+
+            // Allow some time to for ReferenceQueue to catch up.
+            scheduleReinspectGarbage(this::reinspectGarbageAfterGc);
+        }
+        scheduleInspectGarbage(this::inspectGarbage);
+    }
+
+    @VisibleForTesting
+    void scheduleReinspectGarbage(Runnable runnable) {
+        mHandler.postDelayed(runnable, (long) 100);
+    }
+
+    private void reinspectGarbageAfterGc() {
+        int count = mTrackedGarbage.countOldGarbage();
+        if (count > GARBAGE_ALLOWANCE) {
+            mLeakReporter.dumpLeak(count);
+        }
+    }
+
+    public static class Service extends SystemUI {
+
+        private GarbageMonitor mGarbageMonitor;
+
+        @Override
+        public void start() {
+            if (!Build.IS_DEBUGGABLE) {
+                return;
+            }
+            mGarbageMonitor = Dependency.get(GarbageMonitor.class);
+            mGarbageMonitor.start();
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/LeakDetector.java b/packages/SystemUI/src/com/android/systemui/util/leak/LeakDetector.java
new file mode 100644
index 0000000..574fdb98
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/LeakDetector.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import android.os.Build;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.systemui.Dumpable;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.util.Collection;
+
+/**
+ * Detects leaks.
+ */
+public class LeakDetector implements Dumpable {
+
+    public static final boolean ENABLED = Build.IS_DEBUGGABLE;
+
+    private final TrackedCollections mTrackedCollections;
+    private final TrackedGarbage mTrackedGarbage;
+    private final TrackedObjects mTrackedObjects;
+
+    @VisibleForTesting
+    public LeakDetector(TrackedCollections trackedCollections,
+            TrackedGarbage trackedGarbage,
+            TrackedObjects trackedObjects) {
+        mTrackedCollections = trackedCollections;
+        mTrackedGarbage = trackedGarbage;
+        mTrackedObjects = trackedObjects;
+    }
+
+    /**
+     * Tracks an instance that has a high leak risk (i.e. has complex ownership and references
+     * a large amount of memory).
+     *
+     * The LeakDetector will monitor and keep weak references to such instances, dump statistics
+     * about them in a bugreport, and in the future dump the heap if their count starts growing
+     * unreasonably.
+     *
+     * This should be called when the instance is first constructed.
+     */
+    public <T> void trackInstance(T object) {
+        if (mTrackedObjects != null) {
+            mTrackedObjects.track(object);
+        }
+    }
+
+    /**
+     * Tracks a collection that is at risk of leaking large objects, e.g. a collection of
+     * dynamically registered listeners.
+     *
+     * The LeakDetector will monitor and keep weak references to such collections, dump
+     * statistics about them in a bugreport, and in the future dump the heap if their size starts
+     * growing unreasonably.
+     *
+     * This should be called whenever the collection grows.
+     *
+     * @param tag A tag for labeling the collection in a bugreport
+     */
+    public <T> void trackCollection(Collection<T> collection, String tag) {
+        if (mTrackedCollections != null) {
+            mTrackedCollections.track(collection, tag);
+        }
+    }
+
+    /**
+     * Tracks an instance that should become garbage soon.
+     *
+     * The LeakDetector will monitor and keep weak references to such garbage, dump
+     * statistics about them in a bugreport, and in the future dump the heap if it is not
+     * collected reasonably soon.
+     *
+     * This should be called when the last strong reference to the instance is dropped.
+     */
+    public void trackGarbage(Object o) {
+        if (mTrackedGarbage != null) {
+            mTrackedGarbage.track(o);
+        }
+    }
+
+    TrackedGarbage getTrackedGarbage() {
+        return mTrackedGarbage;
+    }
+
+    @Override
+    public void dump(FileDescriptor df, PrintWriter w, String[] args) {
+        IndentingPrintWriter pw = new IndentingPrintWriter(w, "  ");
+
+        pw.println("SYSUI LEAK DETECTOR");
+        pw.increaseIndent();
+
+        if (mTrackedCollections != null && mTrackedGarbage != null) {
+            pw.println("TrackedCollections:");
+            pw.increaseIndent();
+            mTrackedCollections.dump(pw, (col) -> !TrackedObjects.isTrackedObject(col));
+            pw.decreaseIndent();
+            pw.println();
+
+            pw.println("TrackedObjects:");
+            pw.increaseIndent();
+            mTrackedCollections.dump(pw, TrackedObjects::isTrackedObject);
+            pw.decreaseIndent();
+            pw.println();
+
+            pw.print("TrackedGarbage:");
+            pw.increaseIndent();
+            mTrackedGarbage.dump(pw);
+            pw.decreaseIndent();
+        } else {
+            pw.println("disabled");
+        }
+        pw.decreaseIndent();
+        pw.println();
+    }
+
+    public static LeakDetector create() {
+        if (ENABLED) {
+            TrackedCollections collections = new TrackedCollections();
+            return new LeakDetector(collections, new TrackedGarbage(collections),
+                    new TrackedObjects(collections));
+        } else {
+            return new LeakDetector(null, null, null);
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/LeakReporter.java b/packages/SystemUI/src/com/android/systemui/util/leak/LeakReporter.java
new file mode 100644
index 0000000..a247f3f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/LeakReporter.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.ClipData;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Debug;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.support.v4.content.FileProvider;
+import android.util.Log;
+
+import com.google.android.collect.Lists;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+/**
+ * Dumps data to debug leaks and posts a notification to share the data.
+ */
+public class LeakReporter {
+
+    static final String TAG = "LeakReporter";
+
+    public static final String FILEPROVIDER_AUTHORITY = "com.android.systemui.fileprovider";
+
+    static final String LEAK_DIR = "leak";
+    static final String LEAK_HPROF = "leak.hprof";
+    static final String LEAK_DUMP = "leak.dump";
+
+    private final Context mContext;
+    private final LeakDetector mLeakDetector;
+    private final String mLeakReportEmail;
+
+    public LeakReporter(Context context, LeakDetector leakDetector, String leakReportEmail) {
+        mContext = context;
+        mLeakDetector = leakDetector;
+        mLeakReportEmail = leakReportEmail;
+    }
+
+    public void dumpLeak(int garbageCount) {
+        try {
+            File leakDir = new File(mContext.getCacheDir(), LEAK_DIR);
+            leakDir.mkdir();
+
+            File hprofFile = new File(leakDir, LEAK_HPROF);
+            Debug.dumpHprofData(hprofFile.getAbsolutePath());
+
+            File dumpFile = new File(leakDir, LEAK_DUMP);
+            try (FileOutputStream fos = new FileOutputStream(dumpFile)) {
+                PrintWriter w = new PrintWriter(fos);
+                w.print("Build: "); w.println(SystemProperties.get("ro.build.description"));
+                w.println();
+                w.flush();
+                mLeakDetector.dump(fos.getFD(), w, new String[0]);
+                w.close();
+            }
+
+            NotificationManager notiMan = mContext.getSystemService(NotificationManager.class);
+
+            NotificationChannel channel = new NotificationChannel("leak", "Leak Alerts",
+                    NotificationManager.IMPORTANCE_HIGH);
+            channel.enableVibration(true);
+
+            notiMan.createNotificationChannel(channel);
+            Notification.Builder builder = new Notification.Builder(mContext, channel.getId())
+                    .setAutoCancel(true)
+                    .setShowWhen(true)
+                    .setContentTitle("Memory Leak Detected")
+                    .setContentText(String.format(
+                            "SystemUI has detected %d leaked objects. Tap to send", garbageCount))
+                    .setSmallIcon(com.android.internal.R.drawable.stat_sys_adb)
+                    .setContentIntent(PendingIntent.getActivityAsUser(mContext, 0,
+                            getIntent(hprofFile, dumpFile),
+                            PendingIntent.FLAG_UPDATE_CURRENT, null, UserHandle.CURRENT));
+            notiMan.notify(TAG, 0, builder.build());
+        } catch (IOException e) {
+            Log.e(TAG, "Couldn't dump heap for leak", e);
+        }
+    }
+
+    private Intent getIntent(File hprofFile, File dumpFile) {
+        Uri dumpUri = FileProvider.getUriForFile(mContext, FILEPROVIDER_AUTHORITY, dumpFile);
+        Uri hprofUri = FileProvider.getUriForFile(mContext, FILEPROVIDER_AUTHORITY, hprofFile);
+
+        Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
+        String mimeType = "application/vnd.android.leakreport";
+
+        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        intent.addCategory(Intent.CATEGORY_DEFAULT);
+        intent.setType(mimeType);
+
+        final String subject = "SystemUI leak report";
+        intent.putExtra(Intent.EXTRA_SUBJECT, subject);
+
+        // EXTRA_TEXT should be an ArrayList, but some clients are expecting a single String.
+        // So, to avoid an exception on Intent.migrateExtraStreamToClipData(), we need to manually
+        // create the ClipData object with the attachments URIs.
+        final StringBuilder messageBody = new StringBuilder("Build info: ")
+                .append(SystemProperties.get("ro.build.description"));
+        intent.putExtra(Intent.EXTRA_TEXT, messageBody.toString());
+        final ClipData clipData = new ClipData(null, new String[] { mimeType },
+                new ClipData.Item(null, null, null, dumpUri));
+        final ArrayList<Uri> attachments = Lists.newArrayList(dumpUri);
+
+        clipData.addItem(new ClipData.Item(null, null, null, hprofUri));
+        attachments.add(hprofUri);
+
+        intent.setClipData(clipData);
+        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachments);
+
+        String leakReportEmail = mLeakReportEmail;
+        if (leakReportEmail != null) {
+            intent.putExtra(Intent.EXTRA_EMAIL, new String[] { leakReportEmail });
+        }
+
+        return intent;
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/TrackedCollections.java b/packages/SystemUI/src/com/android/systemui/util/leak/TrackedCollections.java
new file mode 100644
index 0000000..5577daf
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/TrackedCollections.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import android.os.SystemClock;
+
+import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
+import java.util.Collection;
+import java.util.Map;
+import java.util.function.Predicate;
+
+/**
+ * Tracks the size of collections.
+ */
+public class TrackedCollections {
+    private static final long MILLIS_IN_MINUTE = 60 * 1000;
+    private static final long HALFWAY_DELAY = 30 * MILLIS_IN_MINUTE;
+
+    private final WeakIdentityHashMap<Collection<?>, CollectionState> mCollections
+            = new WeakIdentityHashMap<>();
+
+    /**
+     * @see LeakDetector#trackCollection(Collection, String)
+     */
+    public synchronized void track(Collection<?> collection, String tag) {
+        CollectionState collectionState = mCollections.get(collection);
+        if (collectionState == null) {
+            collectionState = new CollectionState();
+            collectionState.tag = tag;
+            collectionState.startUptime = SystemClock.uptimeMillis();
+            mCollections.put(collection, collectionState);
+        }
+        if (collectionState.halfwayCount == -1
+                && SystemClock.uptimeMillis() - collectionState.startUptime > HALFWAY_DELAY) {
+            collectionState.halfwayCount = collectionState.lastCount;
+        }
+        collectionState.lastCount = collection.size();
+        collectionState.lastUptime = SystemClock.uptimeMillis();
+    }
+
+    private static class CollectionState {
+        String tag;
+        long startUptime;
+        /** The number of elements in the collection at startUptime + HALFWAY_DELAY */
+        int halfwayCount = -1;
+        /** The number of elements in the collection at lastUptime */
+        int lastCount = -1;
+        long lastUptime;
+
+        /**
+         * Dump statistics about the tracked collection:
+         * - the tag
+         * - average elements inserted per hour during
+         *   - the first 30min of its existence
+         *   - after the first 30min
+         *   - overall
+         * - the current size of the collection
+         */
+        void dump(PrintWriter pw) {
+            long now = SystemClock.uptimeMillis();
+
+            pw.format("%s: %.2f (start-30min) / %.2f (30min-now) / %.2f (start-now)"
+                            + " (growth rate in #/hour); %d (current size)",
+                    tag,
+                    ratePerHour(startUptime, 0, startUptime + HALFWAY_DELAY, halfwayCount),
+                    ratePerHour(startUptime + HALFWAY_DELAY, halfwayCount, now, lastCount),
+                    ratePerHour(startUptime, 0, now, lastCount),
+                    lastCount);
+        }
+
+        private float ratePerHour(long uptime1, int count1, long uptime2, int count2) {
+            if (uptime1 >= uptime2 || count1 < 0 || count2 < 0) {
+                return Float.NaN;
+            }
+            return ((float) count2 - count1) / (uptime2 - uptime1) * 60 * MILLIS_IN_MINUTE;
+        }
+    }
+
+    public synchronized void dump(PrintWriter pw, Predicate<Collection<?>> filter) {
+        for (Map.Entry<WeakReference<Collection<?>>, CollectionState> entry
+                : mCollections.entrySet()) {
+            Collection<?> key = entry.getKey().get();
+            if (filter == null || key != null && filter.test(key)) {
+                entry.getValue().dump(pw);
+                pw.println();
+            }
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/TrackedGarbage.java b/packages/SystemUI/src/com/android/systemui/util/leak/TrackedGarbage.java
new file mode 100644
index 0000000..98a6450
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/TrackedGarbage.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import android.os.SystemClock;
+import android.util.ArrayMap;
+
+import java.io.PrintWriter;
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+import java.util.HashSet;
+import java.util.Map;
+
+/**
+ * Tracks objects that have been marked as garbage.
+ */
+public class TrackedGarbage {
+
+    /** Duration after which we consider garbage to be old. */
+    private static final long GARBAGE_COLLECTION_DEADLINE_MILLIS = 60000; // 1min
+
+    private final HashSet<LeakReference> mGarbage = new HashSet<>();
+    private final ReferenceQueue<Object> mRefQueue = new ReferenceQueue<>();
+    private final TrackedCollections mTrackedCollections;
+
+    public TrackedGarbage(TrackedCollections trackedCollections) {
+        mTrackedCollections = trackedCollections;
+    }
+
+    /**
+     * @see LeakDetector#trackGarbage(Object)
+     */
+    public synchronized void track(Object o) {
+        cleanUp();
+        mGarbage.add(new LeakReference(o, mRefQueue));
+        mTrackedCollections.track(mGarbage, "Garbage");
+    }
+
+    private void cleanUp() {
+        Reference<?> ref;
+        while ((ref = mRefQueue.poll()) != null) {
+            mGarbage.remove(ref);
+        }
+    }
+
+    /**
+     * A reference to something we consider leaked if it still has strong references.
+     *
+     * Helpful for finding potential leaks in a heapdump: Simply find an instance of
+     * LeakReference, find the object it refers to, then find a strong path to a GC root.
+     */
+    private static class LeakReference extends WeakReference<Object> {
+        private final Class<?> clazz;
+        private final long createdUptimeMillis;
+
+        LeakReference(Object t, ReferenceQueue<Object> queue) {
+            super(t, queue);
+            clazz = t.getClass();
+            createdUptimeMillis = SystemClock.uptimeMillis();
+        }
+    }
+
+    /**
+     * Dump statistics about the garbage.
+     *
+     * For each class, dumps the number of "garbage objects" that have not been collected yet.
+     * A large number of old instances indicates a probable leak.
+     */
+    public synchronized void dump(PrintWriter pw) {
+        cleanUp();
+
+        long now = SystemClock.uptimeMillis();
+
+        ArrayMap<Class<?>, Integer> acc = new ArrayMap<>();
+        ArrayMap<Class<?>, Integer> accOld = new ArrayMap<>();
+        for (LeakReference ref : mGarbage) {
+            acc.put(ref.clazz, acc.getOrDefault(ref.clazz, 0) + 1);
+            if (isOld(ref.createdUptimeMillis, now)) {
+                accOld.put(ref.clazz, accOld.getOrDefault(ref.clazz, 0) + 1);
+            }
+        }
+
+        for (Map.Entry<Class<?>, Integer> entry : acc.entrySet()) {
+            pw.print(entry.getKey().getName());
+            pw.print(": ");
+            pw.print(entry.getValue());
+            pw.print(" total, ");
+            pw.print(accOld.getOrDefault(entry.getKey(), 0));
+            pw.print(" old");
+            pw.println();
+        }
+    }
+
+    public synchronized int countOldGarbage() {
+        cleanUp();
+
+        long now = SystemClock.uptimeMillis();
+
+        int result = 0;
+        for (LeakReference ref : mGarbage) {
+            if (isOld(ref.createdUptimeMillis, now)) {
+                result++;
+            }
+        }
+        return result;
+    }
+
+    private boolean isOld(long createdUptimeMillis, long now) {
+        return createdUptimeMillis + GARBAGE_COLLECTION_DEADLINE_MILLIS < now;
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/TrackedObjects.java b/packages/SystemUI/src/com/android/systemui/util/leak/TrackedObjects.java
new file mode 100644
index 0000000..88f8b4c
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/TrackedObjects.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import java.util.Collection;
+import java.util.WeakHashMap;
+
+/**
+ * Tracks instances of classes.
+ */
+public class TrackedObjects {
+
+    private final TrackedCollections mTrackedCollections;
+    private final WeakHashMap<Class<?>, TrackedClass<?>> mTrackedClasses = new WeakHashMap<>();
+
+    public TrackedObjects(TrackedCollections trackedCollections) {
+        mTrackedCollections = trackedCollections;
+    }
+
+    /**
+     * @see LeakDetector#trackInstance(Object)
+     */
+    public synchronized <T> void track(T object) {
+        Class<?> clazz = object.getClass();
+        @SuppressWarnings("unchecked")
+        TrackedClass<T> trackedClass = (TrackedClass<T>) mTrackedClasses.get(clazz);
+
+        if (trackedClass == null) {
+            trackedClass = new TrackedClass<T>();
+            mTrackedClasses.put(clazz, trackedClass);
+        }
+
+        trackedClass.track(object);
+        mTrackedCollections.track(trackedClass, clazz.getName());
+    }
+
+    public static boolean isTrackedObject(Collection<?> collection) {
+        return collection instanceof TrackedClass;
+    }
+
+    private static class TrackedClass<T> extends AbstractCollection<T> {
+        final WeakIdentityHashMap<T, Void> instances = new WeakIdentityHashMap<>();
+
+        void track(T object) {
+            instances.put(object, null);
+        }
+
+        @Override
+        public int size() {
+            return instances.size();
+        }
+
+        @Override
+        public boolean isEmpty() {
+            return instances.isEmpty();
+        }
+
+    }
+
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/WeakIdentityHashMap.java b/packages/SystemUI/src/com/android/systemui/util/leak/WeakIdentityHashMap.java
new file mode 100644
index 0000000..d370ac1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/WeakIdentityHashMap.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Like WeakHashMap, but uses identity instead of equality when comparing keys.
+ */
+public class WeakIdentityHashMap<K,V> {
+
+    private final HashMap<WeakReference<K>,V> mMap = new HashMap<>();
+    private final ReferenceQueue<Object> mRefQueue = new ReferenceQueue<>();
+
+    private void cleanUp() {
+        Reference<?> ref;
+        while ((ref = mRefQueue.poll()) != null) {
+            mMap.remove(ref);
+        }
+    }
+
+    public void put(K key, V value) {
+        cleanUp();
+        mMap.put(new CmpWeakReference<>(key, mRefQueue), value);
+    }
+
+    public V get(K key) {
+        cleanUp();
+        return mMap.get(new CmpWeakReference<>(key));
+    }
+
+    public Collection<V> values() {
+        cleanUp();
+        return mMap.values();
+    }
+
+    public Set<Map.Entry<WeakReference<K>, V>> entrySet() {
+        return mMap.entrySet();
+    }
+
+    public int size() {
+        cleanUp();
+        return mMap.size();
+    }
+
+    public boolean isEmpty() {
+        cleanUp();
+        return mMap.isEmpty();
+    }
+
+    private static class CmpWeakReference<K> extends WeakReference<K> {
+        private final int mHashCode;
+
+        public CmpWeakReference(K key) {
+            super(key);
+            mHashCode = System.identityHashCode(key);
+        }
+
+        public CmpWeakReference(K key, ReferenceQueue<Object> refQueue) {
+            super(key, refQueue);
+            mHashCode = System.identityHashCode(key);
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o == this) {
+                return true;
+            }
+            K k = get();
+            if (k != null && o instanceof CmpWeakReference) {
+                return ((CmpWeakReference) o).get() == k;
+            }
+            return false;
+        }
+
+        @Override
+        public int hashCode() {
+            return mHashCode;
+        }
+    }
+}
diff --git a/packages/SystemUI/tests/Android.mk b/packages/SystemUI/tests/Android.mk
index cefade0..8f5df7b 100644
--- a/packages/SystemUI/tests/Android.mk
+++ b/packages/SystemUI/tests/Android.mk
@@ -32,10 +32,10 @@
 
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
     frameworks/base/packages/SystemUI/res \
+    frameworks/base/packages/SystemUI/res-keyguard \
 
 LOCAL_STATIC_ANDROID_LIBRARIES := \
     SystemUIPluginLib \
-    Keyguard \
     android-support-v7-recyclerview \
     android-support-v7-preference \
     android-support-v7-appcompat \
@@ -52,7 +52,7 @@
 
 LOCAL_JAVA_LIBRARIES := android.test.runner telephony-common android.car
 
-LOCAL_AAPT_FLAGS := --extra-packages com.android.systemui
+LOCAL_AAPT_FLAGS := --extra-packages com.android.systemui:com.android.keyguard
 
 # sign this with platform cert, so this test is allowed to inject key events into
 # UI it doesn't own. This is necessary to allow screenshots to be taken
diff --git a/packages/SystemUI/tests/AndroidManifest.xml b/packages/SystemUI/tests/AndroidManifest.xml
index 6d62435..41b75ff 100644
--- a/packages/SystemUI/tests/AndroidManifest.xml
+++ b/packages/SystemUI/tests/AndroidManifest.xml
@@ -35,6 +35,7 @@
     <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
     <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
     <uses-permission android:name="android.permission.REQUEST_NETWORK_SCORES" />
+    <uses-permission android:name="android.permission.CONTROL_VPN" />
 
     <application>
         <uses-library android:name="android.test.runner" />
diff --git a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java
index fb4b6bd..27955ec 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java
@@ -22,19 +22,25 @@
 
 import android.os.Looper;
 
+import com.android.systemui.Dependency.DependencyKey;
 import com.android.systemui.statusbar.policy.FlashlightController;
 
+import org.junit.Assert;
 import org.junit.Test;
 
 import java.io.PrintWriter;
 
 public class DependencyTest extends SysuiTestCase {
 
+    public static final DependencyKey<Dumpable> DUMPABLE = new DependencyKey<>("dumpable");
+    public static final DependencyKey<ConfigurationChangedReceiver> CONFIGURATION_CHANGED_RECEIVER
+            = new DependencyKey<>("config_changed_receiver");
+
     @Test
     public void testClassDependency() {
         FlashlightController f = mock(FlashlightController.class);
         injectTestDependency(FlashlightController.class, f);
-        assertEquals(f, Dependency.get(FlashlightController.class));
+        Assert.assertEquals(f, Dependency.get(FlashlightController.class));
     }
 
     @Test
@@ -47,8 +53,8 @@
     @Test
     public void testDump() {
         Dumpable d = mock(Dumpable.class);
-        injectTestDependency("test", d);
-        Dependency.get("test");
+        injectTestDependency(DUMPABLE, d);
+        Dependency.get(DUMPABLE);
         mDependency.dump(null, mock(PrintWriter.class), null);
         verify(d).dump(eq(null), any(), eq(null));
     }
@@ -56,8 +62,8 @@
     @Test
     public void testConfigurationChanged() {
         ConfigurationChangedReceiver d = mock(ConfigurationChangedReceiver.class);
-        injectTestDependency("test", d);
-        Dependency.get("test");
+        injectTestDependency(CONFIGURATION_CHANGED_RECEIVER, d);
+        Dependency.get(CONFIGURATION_CHANGED_RECEIVER);
         mDependency.onConfigurationChanged(null);
         verify(d).onConfigurationChanged(eq(null));
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/FragmentTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/FragmentTestCase.java
index f8f67bb..1678d92 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/FragmentTestCase.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/FragmentTestCase.java
@@ -29,6 +29,7 @@
 import android.view.WindowManager.LayoutParams;
 import android.widget.FrameLayout;
 
+import com.android.systemui.utils.TestableLooper;
 import com.android.systemui.utils.ViewUtils;
 import com.android.systemui.utils.leaks.LeakCheckedTest;
 
@@ -59,12 +60,14 @@
     }
 
     @Before
-    public void setupFragment() throws IllegalAccessException, InstantiationException {
+    public void setupFragment() throws Exception {
         mView = new FrameLayout(mContext);
         mView.setId(VIEW_ID);
-        mHandler = new Handler(Looper.getMainLooper());
-        mFragment = mCls.newInstance();
-        postAndWait(() -> {
+
+        TestableLooper.get(this).runWithLooper(() -> {
+            mHandler = new Handler();
+
+            mFragment = mCls.newInstance();
             mFragments = FragmentController.createController(new HostCallbacks());
             mFragments.attachHost(null);
             mFragments.getFragmentManager().beginTransaction()
@@ -73,30 +76,39 @@
         });
     }
 
+    private String hex(Looper looper) {
+        return Integer.toHexString(System.identityHashCode(looper));
+    }
+
     @After
-    public void tearDown() {
+    public void tearDown() throws Exception {
         if (mFragments != null) {
             // Set mFragments to null to let it know not to destroy.
-            postAndWait(() -> mFragments.dispatchDestroy());
+            TestableLooper.get(this).runWithLooper(() -> mFragments.dispatchDestroy());
         }
     }
 
     @Test
     public void testCreateDestroy() {
-        postAndWait(() -> mFragments.dispatchCreate());
+        mFragments.dispatchCreate();
+        processAllMessages();
         destroyFragments();
     }
 
     @Test
     public void testStartStop() {
-        postAndWait(() -> mFragments.dispatchStart());
-        postAndWait(() -> mFragments.dispatchStop());
+        mFragments.dispatchStart();
+        processAllMessages();
+        mFragments.dispatchStop();
+        processAllMessages();
     }
 
     @Test
     public void testResumePause() {
-        postAndWait(() -> mFragments.dispatchResume());
-        postAndWait(() -> mFragments.dispatchPause());
+        mFragments.dispatchResume();
+        processAllMessages();
+        mFragments.dispatchPause();
+        processAllMessages();
     }
 
     @Test
@@ -105,54 +117,57 @@
                 LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
                 LayoutParams.TYPE_SYSTEM_ALERT,
                 0, PixelFormat.TRANSLUCENT);
-        postAndWait(() -> mFragments.dispatchResume());
+        mFragments.dispatchResume();
+        processAllMessages();
         attachFragmentToWindow();
         detachFragmentToWindow();
-        postAndWait(() -> mFragments.dispatchPause());
-    }
-
-    protected void attachFragmentToWindow() {
-        ViewUtils.attachView(mView);
-    }
-
-    protected void detachFragmentToWindow() {
-        ViewUtils.detachView(mView);
+        mFragments.dispatchPause();
+        processAllMessages();
     }
 
     @Test
     public void testRecreate() {
-        postAndWait(() -> mFragments.dispatchResume());
-        postAndWait(() -> {
-            mFragments.dispatchPause();
-            Parcelable p = mFragments.saveAllState();
-            mFragments.dispatchDestroy();
+        mFragments.dispatchResume();
+        processAllMessages();
+        mFragments.dispatchPause();
+        Parcelable p = mFragments.saveAllState();
+        mFragments.dispatchDestroy();
 
-            mFragments = FragmentController.createController(new HostCallbacks());
-            mFragments.attachHost(null);
-            mFragments.restoreAllState(p, (FragmentManagerNonConfig) null);
-            mFragments.dispatchResume();
-        });
+        mFragments = FragmentController.createController(new HostCallbacks());
+        mFragments.attachHost(null);
+        mFragments.restoreAllState(p, (FragmentManagerNonConfig) null);
+        mFragments.dispatchResume();
+        processAllMessages();
     }
 
     @Test
     public void testMultipleResumes() {
-        postAndWait(() -> mFragments.dispatchResume());
-        postAndWait(() -> mFragments.dispatchStop());
-        postAndWait(() -> mFragments.dispatchResume());
+        mFragments.dispatchResume();
+        processAllMessages();
+        mFragments.dispatchStop();
+        processAllMessages();
+        mFragments.dispatchResume();
+        processAllMessages();
+    }
+
+    protected void attachFragmentToWindow() {
+        ViewUtils.attachView(mView);
+        TestableLooper.get(this).processMessages(1);
+    }
+
+    protected void detachFragmentToWindow() {
+        ViewUtils.detachView(mView);
+        TestableLooper.get(this).processMessages(1);
     }
 
     protected void destroyFragments() {
-        postAndWait(() -> mFragments.dispatchDestroy());
+        mFragments.dispatchDestroy();
+        processAllMessages();
         mFragments = null;
     }
 
-    protected void postAndWait(Runnable r) {
-        mHandler.post(r);
-        waitForFragments();
-    }
-
-    protected void waitForFragments() {
-        waitForIdleSync(mHandler);
+    protected void processAllMessages() {
+        TestableLooper.get(this).processAllMessages();
     }
 
     private View findViewById(int id) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysUIRunner.java b/packages/SystemUI/tests/src/com/android/systemui/SysUIRunner.java
new file mode 100644
index 0000000..1607b70
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/SysUIRunner.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2017 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;
+
+import android.support.test.internal.runner.junit4.statement.RunAfters;
+import android.support.test.internal.runner.junit4.statement.RunBefores;
+import android.support.test.internal.runner.junit4.statement.UiThreadStatement;
+
+import com.android.systemui.utils.TestableLooper.LooperStatement;
+import com.android.systemui.utils.TestableLooper.RunWithLooper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.internal.runners.statements.FailOnTimeout;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+import org.junit.runners.model.Statement;
+
+import java.util.List;
+
+public class SysUIRunner extends BlockJUnit4ClassRunner {
+
+    private final long mTimeout;
+    private final Class<?> mKlass;
+
+    public SysUIRunner(Class<?> klass) throws InitializationError {
+        super(klass);
+        mKlass = klass;
+        // Can't seem to get reference to timeout parameter from here, so set default to 10 mins.
+        mTimeout = 10 * 60 * 1000;
+    }
+
+    @Override
+    protected Statement methodInvoker(FrameworkMethod method, Object test) {
+        return UiThreadStatement.shouldRunOnUiThread(method) ? new UiThreadStatement(
+                methodInvokerInt(method, test), true) : methodInvokerInt(method, test);
+    }
+
+    protected Statement methodInvokerInt(FrameworkMethod method, Object test) {
+        RunWithLooper annotation = method.getAnnotation(RunWithLooper.class);
+        if (annotation == null) annotation = mKlass.getAnnotation(RunWithLooper.class);
+        if (annotation != null) {
+            return new LooperStatement(super.methodInvoker(method, test),
+                    annotation.setAsMainLooper(), test);
+        }
+        return super.methodInvoker(method, test);
+    }
+
+    protected Statement withBefores(FrameworkMethod method, Object target, Statement statement) {
+        List befores = this.getTestClass().getAnnotatedMethods(Before.class);
+        return befores.isEmpty() ? statement : new RunBefores(method, statement,
+                befores, target);
+    }
+
+    protected Statement withAfters(FrameworkMethod method, Object target, Statement statement) {
+        List afters = this.getTestClass().getAnnotatedMethods(After.class);
+        return afters.isEmpty() ? statement : new RunAfters(method, statement, afters,
+                target);
+    }
+
+    protected Statement withPotentialTimeout(FrameworkMethod method, Object test, Statement next) {
+        long timeout = this.getTimeout(method.getAnnotation(Test.class));
+        if (timeout <= 0L && mTimeout > 0L) {
+            timeout = mTimeout;
+        }
+
+        return timeout <= 0L ? next : new FailOnTimeout(next, timeout);
+    }
+
+    private long getTimeout(Test annotation) {
+        return annotation == null ? 0L : annotation.timeout();
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
index 81a50d9..6c454e1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
@@ -18,29 +18,35 @@
 import static org.mockito.Mockito.mock;
 
 import android.content.Context;
-import android.support.test.InstrumentationRegistry;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.MessageQueue;
+import android.support.test.InstrumentationRegistry;
 import android.util.ArrayMap;
+import android.util.Log;
 
+import com.android.systemui.Dependency.DependencyKey;
 import com.android.systemui.utils.TestableContext;
 import com.android.systemui.utils.leaks.Tracker;
 
 import org.junit.After;
 import org.junit.Before;
 
+import java.lang.Thread.UncaughtExceptionHandler;
+
 /**
  * Base class that does System UI specific setup.
  */
 public abstract class SysuiTestCase {
 
+    private Throwable mException;
     private Handler mHandler;
     protected TestableContext mContext;
     protected TestDependency mDependency;
 
     @Before
     public void SysuiSetup() throws Exception {
+        mException = null;
         System.setProperty("dexmaker.share_classloader", "true");
         mContext = new TestableContext(InstrumentationRegistry.getTargetContext(), this);
         SystemUIFactory.createFromConfig(mContext);
@@ -86,15 +92,15 @@
         return null;
     }
 
-    public void injectMockDependency(Class<?> cls) {
-        mDependency.injectTestDependency(cls.getName(), mock(cls));
+    public <T> void injectMockDependency(Class<T> cls) {
+        injectTestDependency(cls, mock(cls));
     }
 
-    public void injectTestDependency(Class<?> cls, Object obj) {
-        mDependency.injectTestDependency(cls.getName(), obj);
+    public <T> void injectTestDependency(Class<T> cls, T obj) {
+        mDependency.injectTestDependency(cls, obj);
     }
 
-    public void injectTestDependency(String key, Object obj) {
+    public <T> void injectTestDependency(DependencyKey<T> key, T obj) {
         mDependency.injectTestDependency(key, obj);
     }
 
@@ -104,16 +110,20 @@
     }
 
     public static class TestDependency extends Dependency {
-        private final ArrayMap<String, Object> mObjs = new ArrayMap<>();
+        private final ArrayMap<Object, Object> mObjs = new ArrayMap<>();
 
-        private void injectTestDependency(String key, Object obj) {
+        private <T> void injectTestDependency(DependencyKey<T> key, T obj) {
+            mObjs.put(key, obj);
+        }
+
+        private <T> void injectTestDependency(Class<T> key, T obj) {
             mObjs.put(key, obj);
         }
 
         @Override
-        protected <T> T createDependency(String cls) {
-            if (mObjs.containsKey(cls)) return (T) mObjs.get(cls);
-            return super.createDependency(cls);
+        protected <T> T createDependency(Object key) {
+            if (mObjs.containsKey(key)) return (T) mObjs.get(key);
+            return super.createDependency(key);
         }
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
index f22c1af..e7fa799 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
@@ -14,26 +14,37 @@
 
 package com.android.systemui.qs;
 
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 
+import android.os.Looper;
+
 import com.android.systemui.Dependency;
 import com.android.systemui.FragmentTestCase;
 import com.android.systemui.R;
+import com.android.systemui.SysUIRunner;
 import com.android.systemui.statusbar.phone.QSTileHost;
 import com.android.systemui.statusbar.phone.QuickStatusBarHeader;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.policy.UserSwitcherController;
 import com.android.systemui.tuner.TunerService;
+import com.android.systemui.util.LayoutInflaterBuilder;
+import com.android.systemui.utils.TestableLooper;
+import com.android.systemui.utils.TestableLooper.RunWithLooper;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import android.content.Context;
 import android.os.Handler;
 import android.os.Looper;
 import android.support.test.runner.AndroidJUnit4;
+import android.view.View;
+import android.widget.FrameLayout;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(SysUIRunner.class)
+@RunWithLooper(setAsMainLooper = true)
 public class QSFragmentTest extends FragmentTestCase {
 
     public QSFragmentTest() {
@@ -42,32 +53,38 @@
 
     @Before
     public void addLeakCheckDependencies() {
-        injectTestDependency(Dependency.BG_LOOPER, Looper.getMainLooper());
+        mContext.addMockSystemService(Context.LAYOUT_INFLATER_SERVICE,
+                new LayoutInflaterBuilder(mContext)
+                        .replace("com.android.systemui.statusbar.policy.SplitClockView",
+                                FrameLayout.class)
+                        .replace("TextClock", View.class)
+                        .build());
+
+        injectTestDependency(Dependency.BG_LOOPER, TestableLooper.get(this).getLooper());
         injectMockDependency(UserSwitcherController.class);
         injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
     }
 
     @Test
     public void testListening() {
+        assertEquals(Looper.myLooper(), Looper.getMainLooper());
         QSFragment qs = (QSFragment) mFragment;
-        postAndWait(() -> mFragments.dispatchResume());
-        QSTileHost host = new QSTileHost(mContext, null,
-                mock(StatusBarIconController.class));
+        mFragments.dispatchResume();
+        processAllMessages();
+        QSTileHost host = new QSTileHost(mContext, null, mock(StatusBarIconController.class));
         qs.setHost(host);
-        Handler h = new Handler((Looper) Dependency.get(Dependency.BG_LOOPER));
 
         qs.setListening(true);
-        waitForIdleSync(h);
+        processAllMessages();
 
         qs.setListening(false);
-        waitForIdleSync(h);
+        processAllMessages();
 
         // Manually push header through detach so it can handle standard cleanup it does on
         // removed from window.
         ((QuickStatusBarHeader) qs.getView().findViewById(R.id.header)).onDetachedFromWindow();
 
         host.destroy();
-        // Ensure the tuner cleans up its persistent listeners.
-        Dependency.get(TunerService.class).destroy();
+        processAllMessages();
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java
index 5b22986..930e560 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java
@@ -41,6 +41,7 @@
         mCommandQueue = new CommandQueue();
         mCallbacks = mock(Callbacks.class);
         mCommandQueue.addCallbacks(mCallbacks);
+        verify(mCallbacks).disable(eq(0), eq(0), eq(false));
     }
 
     @After
@@ -181,7 +182,7 @@
     public void testAppTransitionPending() {
         mCommandQueue.appTransitionPending();
         waitForIdleSync();
-        verify(mCallbacks).appTransitionPending();
+        verify(mCallbacks).appTransitionPending(eq(false));
     }
 
     @Test
@@ -195,7 +196,7 @@
     public void testAppTransitionStarting() {
         mCommandQueue.appTransitionStarting(1, 2);
         waitForIdleSync();
-        verify(mCallbacks).appTransitionStarting(eq(1L), eq(2L));
+        verify(mCallbacks).appTransitionStarting(eq(1L), eq(2L), eq(false));
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationGutsTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationGutsTest.java
deleted file mode 100644
index 3e0d15d..0000000
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationGutsTest.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright (C) 2016 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;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.INotificationManager;
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
-import android.service.notification.StatusBarNotification;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.annotation.UiThreadTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.RadioButton;
-import android.widget.Switch;
-import android.widget.TextView;
-import com.android.systemui.R;
-import org.junit.Before;
-import org.junit.runner.RunWith;
-import org.junit.Test;
-import org.mockito.Mockito;
-import java.util.Collections;
-import java.util.concurrent.CountDownLatch;
-
-@SmallTest
-@RunWith(AndroidJUnit4.class)
-public class NotificationGutsTest {
-    private static final String TEST_PACKAGE_NAME = "test_package";
-    private static final String TEST_CHANNEL = "test_channel";
-    private static final String TEST_CHANNEL_NAME = "TEST CHANNEL NAME";
-
-    private NotificationGuts mNotificationGuts;
-    private NotificationInfo mNotificationInfo;
-    private final INotificationManager mMockINotificationManager = mock(INotificationManager.class);
-    private final PackageManager mMockPackageManager = mock(PackageManager.class);
-    private NotificationChannel mNotificationChannel;
-    private final StatusBarNotification mMockStatusBarNotification =
-            mock(StatusBarNotification.class);
-
-    @Before
-    @UiThreadTest
-    public void setUp() throws Exception {
-        // Inflate the layout
-        final LayoutInflater layoutInflater =
-                LayoutInflater.from(InstrumentationRegistry.getTargetContext());
-        mNotificationInfo = (NotificationInfo) layoutInflater.inflate(R.layout.notification_info,
-                null);
-        mNotificationGuts = (NotificationGuts) layoutInflater.inflate(R.layout.notification_guts,
-                null);
-        mNotificationInfo.setInteractionListener(mNotificationGuts);
-
-        // PackageManager must return a packageInfo and applicationInfo.
-        final PackageInfo packageInfo = new PackageInfo();
-        packageInfo.packageName = TEST_PACKAGE_NAME;
-        when(mMockPackageManager.getPackageInfo(anyString(), anyInt())).thenReturn(packageInfo);
-        final ApplicationInfo applicationInfo = new ApplicationInfo();
-        applicationInfo.uid = 1;  // non-zero
-        when(mMockPackageManager.getApplicationInfo(anyString(), anyInt())).thenReturn(
-                applicationInfo);
-
-        // mMockStatusBarNotification with a test channel.
-        mNotificationChannel = new NotificationChannel(
-                TEST_CHANNEL, TEST_CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW);
-        when(mMockStatusBarNotification.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
-    }
-
-    @Test
-    @UiThreadTest
-    public void testBindNotification_SetsTextApplicationName() throws Exception {
-        when(mMockPackageManager.getApplicationLabel(any())).thenReturn("App Name");
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-        final TextView textView = (TextView) mNotificationInfo.findViewById(R.id.pkgname);
-        assertTrue(textView.getText().toString().contains("App Name"));
-    }
-
-    @Test
-    @UiThreadTest
-    public void testBindNotification_SetsTextChannelName() throws Exception {
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-        final TextView textView = (TextView) mNotificationInfo.findViewById(R.id.channel_name);
-        assertEquals(TEST_CHANNEL_NAME, textView.getText());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testBindNotification_SetsOnClickListenerForSettings() throws Exception {
-        final CountDownLatch latch = new CountDownLatch(1);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel,
-                (View v, int appUid) -> { latch.countDown(); }, null, null);
-
-        final TextView settingsButton = 
-                (TextView) mNotificationInfo.findViewById(R.id.more_settings);
-        settingsButton.performClick();
-        // Verify that listener was triggered.
-        assertEquals(0, latch.getCount());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testBindNotification_SetsOnClickListenerForDone() throws Exception {
-        final CountDownLatch latch = new CountDownLatch(1);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null,
-                (View v) -> { latch.countDown(); },
-                null);
-
-        final TextView doneButton = (TextView) mNotificationInfo.findViewById(R.id.done);
-        doneButton.performClick();
-        // Verify that listener was triggered.
-        assertEquals(0, latch.getCount());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testHasImportanceChanged_DefaultsToFalse() throws Exception {
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-        assertFalse(mNotificationInfo.hasImportanceChanged());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testHasImportanceChanged_ReturnsTrueAfterButtonChecked() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-        // Find the high button and check it.
-        RadioButton highButton = (RadioButton) mNotificationInfo.findViewById(R.id.high_importance);
-        highButton.setChecked(true);
-        assertTrue(mNotificationInfo.hasImportanceChanged());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testImportanceButtonCheckedBasedOnInitialImportance() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_HIGH);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        RadioButton highButton = (RadioButton) mNotificationInfo.findViewById(R.id.high_importance);
-        assertTrue(highButton.isChecked());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testBindNotification_DoesNotUpdateNotificationChannel() throws Exception {
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), anyInt(), any());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testDoesNotUpdateNotificationChannelAfterImportanceChanged() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        RadioButton highButton = (RadioButton) mNotificationInfo.findViewById(R.id.high_importance);
-        highButton.setChecked(true);
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), anyInt(), any());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testSaveImportance_DoesNotUpdateNotificationChannelIfUnchanged() throws Exception {
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        mNotificationInfo.saveImportance();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), anyInt(), any());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testSaveImportance_DoesNotUpdateNotificationChannelIfUnspecified()
-            throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_UNSPECIFIED);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        mNotificationInfo.saveImportance();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), anyInt(), any());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testSaveImportance_CallsUpdateNotificationChannelIfChanged() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        RadioButton highButton = (RadioButton) mNotificationInfo.findViewById(R.id.high_importance);
-        highButton.setChecked(true);
-        mNotificationInfo.saveImportance();
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                eq(TEST_PACKAGE_NAME), anyInt(), eq(mNotificationChannel));
-        assertEquals(NotificationManager.IMPORTANCE_HIGH, mNotificationChannel.getImportance());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testEnabledSwitchOnByDefault() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
-        assertTrue(enabledSwitch.isChecked());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testEnabledSwitchVisibleByDefault() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
-        assertEquals(View.VISIBLE, enabledSwitch.getVisibility());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testEnabledSwitchInvisibleIfNonBlockable() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null,
-                Collections.singleton(TEST_PACKAGE_NAME));
-
-        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
-        assertEquals(View.INVISIBLE, enabledSwitch.getVisibility());
-    }
-
-    @Test
-    @UiThreadTest
-    public void testEnabledSwitchChangedCallsUpdateNotificationChannel() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null,
-                Collections.singleton(TEST_PACKAGE_NAME));
-
-        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
-        enabledSwitch.setChecked(false);
-        mNotificationInfo.saveImportance();
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                eq(TEST_PACKAGE_NAME), anyInt(), eq(mNotificationChannel));
-    }
-
-    @Test
-    @UiThreadTest
-    public void testEnabledSwitchOverridesOtherButtons() throws Exception {
-        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                mMockStatusBarNotification, mNotificationChannel, null, null, null);
-
-        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
-        RadioButton lowButton = (RadioButton) mNotificationInfo.findViewById(R.id.low_importance);
-        lowButton.setChecked(true);
-        enabledSwitch.setChecked(false);
-        mNotificationInfo.saveImportance();
-        assertEquals(NotificationManager.IMPORTANCE_NONE, mNotificationChannel.getImportance());
-    }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationInfoTest.java
new file mode 100644
index 0000000..0491fc4
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationInfoTest.java
@@ -0,0 +1,437 @@
+/*
+ * Copyright (C) 2016 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;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyBoolean;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.INotificationManager;
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
+import android.app.NotificationManager;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ParceledListSlice;
+import android.graphics.drawable.Drawable;
+import android.service.notification.StatusBarNotification;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.annotation.UiThreadTest;
+import android.support.test.runner.AndroidJUnit4;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.Switch;
+import android.widget.TextView;
+import com.android.internal.util.CharSequences;
+import com.android.systemui.R;
+import com.android.systemui.SysuiTestCase;
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.mockito.Mockito;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.concurrent.CountDownLatch;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class NotificationInfoTest extends SysuiTestCase {
+    private static final String TEST_PACKAGE_NAME = "test_package";
+    private static final String TEST_CHANNEL = "test_channel";
+    private static final String TEST_CHANNEL_NAME = "TEST CHANNEL NAME";
+
+    private NotificationInfo mNotificationInfo;
+    private final INotificationManager mMockINotificationManager = mock(INotificationManager.class);
+    private final PackageManager mMockPackageManager = mock(PackageManager.class);
+    private NotificationChannel mNotificationChannel;
+    private final StatusBarNotification mMockStatusBarNotification =
+            mock(StatusBarNotification.class);
+
+    @Before
+    @UiThreadTest
+    public void setUp() throws Exception {
+        // Inflate the layout
+        final LayoutInflater layoutInflater =
+                LayoutInflater.from(mContext);
+        mNotificationInfo = (NotificationInfo) layoutInflater.inflate(R.layout.notification_info,
+                null);
+
+        // PackageManager must return a packageInfo and applicationInfo.
+        final PackageInfo packageInfo = new PackageInfo();
+        packageInfo.packageName = TEST_PACKAGE_NAME;
+        when(mMockPackageManager.getPackageInfo(anyString(), anyInt())).thenReturn(packageInfo);
+        final ApplicationInfo applicationInfo = new ApplicationInfo();
+        applicationInfo.uid = 1;  // non-zero
+        when(mMockPackageManager.getApplicationInfo(anyString(), anyInt())).thenReturn(
+                applicationInfo);
+
+        // mMockStatusBarNotification with a test channel.
+        mNotificationChannel = new NotificationChannel(
+                TEST_CHANNEL, TEST_CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW);
+        when(mMockStatusBarNotification.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
+
+        when(mMockINotificationManager.getNumNotificationChannelsForPackage(
+                eq(TEST_PACKAGE_NAME), anyInt(), anyBoolean())).thenReturn(1);
+    }
+
+    private CharSequence getStringById(int resId) {
+        return mContext.getString(resId);
+    }
+
+    private CharSequence getNumChannelsString(int numChannels) {
+        return String.format(
+                mContext.getResources().getQuantityString(
+                        R.plurals.notification_num_channels_desc, numChannels),
+                numChannels);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SetsTextApplicationName() throws Exception {
+        when(mMockPackageManager.getApplicationLabel(any())).thenReturn("App Name");
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView textView = (TextView) mNotificationInfo.findViewById(R.id.pkgname);
+        assertTrue(textView.getText().toString().contains("App Name"));
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SetsPackageIcon() throws Exception {
+        final Drawable iconDrawable = mock(Drawable.class);
+        when(mMockPackageManager.getApplicationIcon(any(ApplicationInfo.class)))
+                .thenReturn(iconDrawable);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final ImageView iconView = (ImageView) mNotificationInfo.findViewById(R.id.pkgicon);
+        assertEquals(iconDrawable, iconView.getDrawable());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_GroupNameHiddenIfNoGroup() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView groupNameView = (TextView) mNotificationInfo.findViewById(R.id.group_name);
+        assertEquals(View.GONE, groupNameView.getVisibility());
+        final TextView groupDividerView =
+                (TextView) mNotificationInfo.findViewById(R.id.pkg_group_divider);
+        assertEquals(View.GONE, groupDividerView.getVisibility());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SetsGroupNameIfNonNull() throws Exception {
+        mNotificationChannel.setGroup("test_group_id");
+        final NotificationChannelGroup notificationChannelGroup =
+                new NotificationChannelGroup("test_group_id", "Test Group Name");
+        when(mMockINotificationManager.getNotificationChannelGroupForPackage(
+                eq("test_group_id"), eq(TEST_PACKAGE_NAME), anyInt()))
+                .thenReturn(notificationChannelGroup);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView groupNameView = (TextView) mNotificationInfo.findViewById(R.id.group_name);
+        assertEquals(View.VISIBLE, groupNameView.getVisibility());
+        assertEquals("Test Group Name", groupNameView.getText());
+        final TextView groupDividerView =
+                (TextView) mNotificationInfo.findViewById(R.id.pkg_group_divider);
+        assertEquals(View.VISIBLE, groupDividerView.getVisibility());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SetsTextChannelName() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView textView = (TextView) mNotificationInfo.findViewById(R.id.channel_name);
+        assertEquals(TEST_CHANNEL_NAME, textView.getText());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SetsOnClickListenerForSettings() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel,
+                (View v, int appUid) -> { latch.countDown(); }, null, null);
+
+        final TextView settingsButton =
+                (TextView) mNotificationInfo.findViewById(R.id.more_settings);
+        settingsButton.performClick();
+        // Verify that listener was triggered.
+        assertEquals(0, latch.getCount());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SettingsTextWithOneChannel() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, (View v, int appUid) -> {}, null,
+                null);
+        final TextView settingsButton =
+                (TextView) mNotificationInfo.findViewById(R.id.more_settings);
+        assertEquals(getStringById(R.string.notification_more_settings), settingsButton.getText());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SettingsTextWithMultipleChannels() throws Exception {
+        when(mMockINotificationManager.getNumNotificationChannelsForPackage(
+                eq(TEST_PACKAGE_NAME), anyInt(), anyBoolean())).thenReturn(2);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, (View v, int appUid) -> {}, null,
+                null);
+        final TextView settingsButton =
+                (TextView) mNotificationInfo.findViewById(R.id.more_settings);
+        assertEquals(getStringById(R.string.notification_all_categories), settingsButton.getText());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_SetsOnClickListenerForDone() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null,
+                (View v) -> { latch.countDown(); },
+                null);
+
+        final TextView doneButton = (TextView) mNotificationInfo.findViewById(R.id.done);
+        doneButton.performClick();
+        // Verify that listener was triggered.
+        assertEquals(0, latch.getCount());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_NumChannelsTextHiddenWhenDefaultChannel() throws Exception {
+        final NotificationChannel defaultChannel = new NotificationChannel(
+                NotificationChannel.DEFAULT_CHANNEL_ID, TEST_CHANNEL_NAME,
+                NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, defaultChannel, null, null, null);
+        final TextView numChannelsView =
+                (TextView) mNotificationInfo.findViewById(R.id.num_channels_desc);
+        assertTrue(numChannelsView.getVisibility() != View.VISIBLE);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_NumChannelsTextDisplaysWhenNotDefaultChannel()
+            throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView numChannelsView =
+                (TextView) mNotificationInfo.findViewById(R.id.num_channels_desc);
+        assertEquals(numChannelsView.getVisibility(), View.VISIBLE);
+        assertEquals(getNumChannelsString(1), numChannelsView.getText());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_NumChannelsTextScalesWithNumberOfChannels()
+            throws Exception {
+        when(mMockINotificationManager.getNumNotificationChannelsForPackage(
+                eq(TEST_PACKAGE_NAME), anyInt(), anyBoolean())).thenReturn(2);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView numChannelsView =
+                (TextView) mNotificationInfo.findViewById(R.id.num_channels_desc);
+        assertEquals(getNumChannelsString(2), numChannelsView.getText());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testbindNotification_ChannelDisabledTextGoneWhenNotDisabled() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView channelDisabledView =
+                (TextView) mNotificationInfo.findViewById(R.id.channel_disabled);
+        assertEquals(channelDisabledView.getVisibility(), View.GONE);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testbindNotification_ChannelDisabledTextVisibleWhenDisabled() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_NONE);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        final TextView channelDisabledView =
+                (TextView) mNotificationInfo.findViewById(R.id.channel_disabled);
+        assertEquals(channelDisabledView.getVisibility(), View.VISIBLE);
+        // Replaces the numChannelsView
+        final TextView numChannelsView =
+                (TextView) mNotificationInfo.findViewById(R.id.num_channels_desc);
+        assertEquals(numChannelsView.getVisibility(), View.GONE);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testHasImportanceChanged_DefaultsToFalse() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        assertFalse(mNotificationInfo.hasImportanceChanged());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testHasImportanceChanged_ReturnsTrueAfterChannelDisabled() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        // Find the high button and check it.
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        enabledSwitch.setChecked(false);
+        assertTrue(mNotificationInfo.hasImportanceChanged());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testBindNotification_DoesNotUpdateNotificationChannel() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                anyString(), anyInt(), any());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testDoesNotUpdateNotificationChannelAfterImportanceChanged() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        enabledSwitch.setChecked(false);
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                anyString(), anyInt(), any());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testHandleCloseControls_DoesNotUpdateNotificationChannelIfUnchanged()
+            throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+
+        mNotificationInfo.handleCloseControls(true);
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                anyString(), anyInt(), any());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testHandleCloseControls_DoesNotUpdateNotificationChannelIfUnspecified()
+            throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_UNSPECIFIED);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+
+        mNotificationInfo.handleCloseControls(true);
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                anyString(), anyInt(), any());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testEnabledSwitchOnByDefault() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        assertTrue(enabledSwitch.isChecked());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testEnabledButtonOffWhenAlreadyBanned() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_NONE);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        assertFalse(enabledSwitch.isChecked());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testEnabledSwitchVisibleByDefault() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null, null);
+
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        assertEquals(View.VISIBLE, enabledSwitch.getVisibility());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testEnabledSwitchInvisibleIfNonBlockable() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null,
+                Collections.singleton(TEST_PACKAGE_NAME));
+
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        assertEquals(View.INVISIBLE, enabledSwitch.getVisibility());
+    }
+
+    @Test
+    @UiThreadTest
+    public void testEnabledSwitchChangedCallsUpdateNotificationChannel() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null,
+                Collections.singleton(TEST_PACKAGE_NAME));
+
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        enabledSwitch.setChecked(false);
+        mNotificationInfo.handleCloseControls(true);
+        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
+                eq(TEST_PACKAGE_NAME), anyInt(), eq(mNotificationChannel));
+    }
+
+    @Test
+    @UiThreadTest
+    public void testCloseControlsDoesNotUpdateIfSaveIsFalse() throws Exception {
+        mNotificationChannel.setImportance(NotificationManager.IMPORTANCE_LOW);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                mMockStatusBarNotification, mNotificationChannel, null, null,
+                Collections.singleton(TEST_PACKAGE_NAME));
+
+        Switch enabledSwitch = (Switch) mNotificationInfo.findViewById(R.id.channel_enabled_switch);
+        enabledSwitch.setChecked(false);
+        mNotificationInfo.handleCloseControls(false);
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                eq(TEST_PACKAGE_NAME), anyInt(), eq(mNotificationChannel));
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java
index 7141170..72f6ca8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java
@@ -14,12 +14,18 @@
 
 package com.android.systemui.statusbar;
 
+import com.android.systemui.SysUIRunner;
+import com.android.systemui.utils.TestableLooper;
+import com.android.systemui.utils.TestableLooper.RunWithLooper;
 import com.android.systemui.utils.ViewUtils;
 import com.android.systemui.utils.leaks.LeakCheckedTest;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 
+@RunWith(SysUIRunner.class)
+@RunWithLooper
 public class NotificationMenuRowTest extends LeakCheckedTest {
 
     @Before
@@ -31,6 +37,8 @@
     public void testAttachDetach() {
         NotificationMenuRow row = new NotificationMenuRow(mContext);
         ViewUtils.attachView(row);
+        TestableLooper.get(this).processAllMessages();
         ViewUtils.detachView(row);
+        TestableLooper.get(this).processAllMessages();
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
new file mode 100644
index 0000000..f55115e
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2017 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.phone;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.app.StatusBarManager;
+import android.view.View;
+import android.view.ViewPropertyAnimator;
+
+import com.android.systemui.FragmentTestCase;
+import com.android.systemui.R;
+import com.android.systemui.SysUIRunner;
+import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.policy.KeyguardMonitor;
+import com.android.systemui.statusbar.policy.NetworkController;
+import com.android.systemui.statusbar.policy.SecurityController;
+import com.android.systemui.tuner.TunerService;
+import com.android.systemui.utils.TestableLooper.RunWithLooper;
+
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+@RunWith(SysUIRunner.class)
+@RunWithLooper(setAsMainLooper = true)
+public class CollapsedStatusBarFragmentTest extends FragmentTestCase {
+
+    private NotificationIconAreaController mMockNotificiationAreaController;
+    private View mNotificationAreaInner;
+
+    public CollapsedStatusBarFragmentTest() {
+        super(CollapsedStatusBarFragment.class);
+    }
+
+    @Before
+    public void setup() {
+        mContext.putComponent(CommandQueue.class, mock(CommandQueue.class));
+        mContext.putComponent(StatusBar.class, mock(StatusBar.class));
+        mContext.putComponent(TunerService.class, mock(TunerService.class));
+        injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
+        mMockNotificiationAreaController = mock(NotificationIconAreaController.class);
+        mNotificationAreaInner = mock(View.class);
+        when(mNotificationAreaInner.animate()).thenReturn(mock(ViewPropertyAnimator.class));
+        when(mMockNotificiationAreaController.getNotificationInnerAreaView()).thenReturn(
+                mNotificationAreaInner);
+    }
+
+    @Test
+    public void testDisableNone() throws Exception {
+        mFragments.dispatchResume();
+        processAllMessages();
+
+        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
+        fragment.initNotificationIconArea(mMockNotificiationAreaController);
+        fragment.disable(0, 0, false);
+
+        assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
+                .getVisibility());
+    }
+
+    @Test
+    public void testDisableSystemInfo() throws Exception {
+        mFragments.dispatchResume();
+        processAllMessages();
+
+        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
+        fragment.initNotificationIconArea(mMockNotificiationAreaController);
+        fragment.disable(StatusBarManager.DISABLE_SYSTEM_INFO, 0, false);
+
+        assertEquals(View.INVISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
+                .getVisibility());
+
+        fragment.disable(0, 0, false);
+
+        assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
+                .getVisibility());
+    }
+
+    @Test
+    public void testDisableNotifications() throws Exception {
+        mFragments.dispatchResume();
+        processAllMessages();
+
+        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
+        fragment.initNotificationIconArea(mMockNotificiationAreaController);
+        fragment.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS, 0, false);
+
+        Mockito.verify(mNotificationAreaInner).setVisibility(eq(View.INVISIBLE));
+
+        fragment.disable(0, 0, false);
+
+        Mockito.verify(mNotificationAreaInner).setVisibility(eq(View.VISIBLE));
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
index a9d6df7..1fa9846 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
@@ -15,18 +15,27 @@
 package com.android.systemui.statusbar.phone;
 
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.os.Looper;
+import android.view.Display;
 import android.view.WindowManager;
 
+import com.android.systemui.Dependency;
 import com.android.systemui.FragmentTestCase;
+import com.android.systemui.SysUIRunner;
 import com.android.systemui.recents.Recents;
 import com.android.systemui.stackdivider.Divider;
 import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.utils.TestableLooper.RunWithLooper;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 
+@RunWith(SysUIRunner.class)
+@RunWithLooper(setAsMainLooper = true)
 public class NavigationBarFragmentTest extends FragmentTestCase {
 
     public NavigationBarFragmentTest() {
@@ -35,20 +44,25 @@
 
     @Before
     public void setup() {
+        injectTestDependency(Dependency.BG_LOOPER, Looper.getMainLooper());
         mContext.putComponent(CommandQueue.class, mock(CommandQueue.class));
         mContext.putComponent(StatusBar.class, mock(StatusBar.class));
         mContext.putComponent(Recents.class, mock(Recents.class));
         mContext.putComponent(Divider.class, mock(Divider.class));
-        mContext.addMockSystemService(Context.WINDOW_SERVICE, mock(WindowManager.class));
         injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
+        WindowManager windowManager = mock(WindowManager.class);
+        Display defaultDisplay = mContext.getSystemService(WindowManager.class).getDefaultDisplay();
+        when(windowManager.getDefaultDisplay()).thenReturn(
+                defaultDisplay);
+        mContext.addMockSystemService(Context.WINDOW_SERVICE, windowManager);
     }
 
     @Test
     public void testHomeLongPress() {
-        mContext.addMockSystemService(Context.WINDOW_SERVICE, mock(WindowManager.class));
         NavigationBarFragment navigationBarFragment = (NavigationBarFragment) mFragment;
 
-        postAndWait(() -> mFragments.dispatchResume());
+        mFragments.dispatchResume();
+        processAllMessages();
         navigationBarFragment.onHomeLongClick(navigationBarFragment.getView());
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index 21c7fce..9f56da7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -24,6 +24,7 @@
 
 import android.metrics.LogMaker;
 import android.metrics.MetricsReader;
+import android.support.test.filters.FlakyTest;
 import android.support.test.filters.SmallTest;
 import android.support.test.metricshelper.MetricsAsserts;
 import android.support.test.runner.AndroidJUnit4;
@@ -38,9 +39,13 @@
 import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+// TODO(gpitsch): We have seen some flakes in these tests, needs some investigation.
+// Q: How is mMetricsReader being used by the tested code?
+// A: StatusBar uses MetricsLogger to write to the event log, then read back by MetricsReader
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class StatusBarTest extends SysuiTestCase {
@@ -79,6 +84,12 @@
 
         mMetricsReader = new MetricsReader();
         mMetricsReader.checkpoint(); // clear out old logs
+        try {
+            // pause so that no new events arrive in the rest of this millisecond.
+            Thread.sleep(2);
+        } catch (InterruptedException e) {
+            // pass
+        }
     }
 
     @Test
@@ -105,6 +116,8 @@
         mStatusBar.executeRunnableDismissingKeyguard(null, null, false, false, false);
     }
 
+    @Ignore("flaky test")
+    @FlakyTest
     @Test
     public void lockscreenStateMetrics_notShowing() {
         // uninteresting state, except that fingerprint must be non-zero
@@ -123,6 +136,8 @@
                         .setSubtype(0));
     }
 
+    @Ignore("flaky test")
+    @FlakyTest
     @Test
     public void lockscreenStateMetrics_notShowing_secure() {
         // uninteresting state, except that fingerprint must be non-zero
@@ -141,6 +156,8 @@
                         .setSubtype(1));
     }
 
+    @Ignore("flaky test")
+    @FlakyTest
     @Test
     public void lockscreenStateMetrics_isShowing() {
         // uninteresting state, except that fingerprint must be non-zero
@@ -159,6 +176,8 @@
                         .setSubtype(0));
     }
 
+    @Ignore("flaky test")
+    @FlakyTest
     @Test
     public void lockscreenStateMetrics_isShowing_secure() {
         // uninteresting state, except that fingerprint must be non-zero
@@ -177,6 +196,8 @@
                         .setSubtype(1));
     }
 
+    @Ignore("flaky test")
+    @FlakyTest
     @Test
     public void lockscreenStateMetrics_isShowingBouncer() {
         // uninteresting state, except that fingerprint must be non-zero
@@ -195,6 +216,8 @@
                         .setSubtype(1));
     }
 
+    @Ignore("flaky test")
+    @FlakyTest
     @Test
     public void onActivatedMetrics() {
         ActivatableNotificationView view =  mock(ActivatableNotificationView.class);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/GarbageMonitorTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/GarbageMonitorTest.java
new file mode 100644
index 0000000..9a825c1
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/GarbageMonitorTest.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class GarbageMonitorTest {
+
+    private LeakReporter mLeakReporter;
+    private TrackedGarbage mTrackedGarbage;
+    private TestableGarbageMonitor mGarbageMonitor;
+
+    @Before
+    public void setup() {
+        mTrackedGarbage = mock(TrackedGarbage.class);
+        mLeakReporter = mock(LeakReporter.class);
+        mGarbageMonitor = new TestableGarbageMonitor(
+                new LeakDetector(null, mTrackedGarbage, null),
+                mLeakReporter);
+    }
+
+    @Test
+    public void testCallbacks_getScheduled() {
+        mGarbageMonitor.start();
+        mGarbageMonitor.runCallbacksOnce();
+        mGarbageMonitor.runCallbacksOnce();
+        mGarbageMonitor.runCallbacksOnce();
+    }
+
+    @Test
+    public void testNoGarbage_doesntDump() {
+        when(mTrackedGarbage.countOldGarbage()).thenReturn(0);
+
+        mGarbageMonitor.start();
+        mGarbageMonitor.runCallbacksOnce();
+        mGarbageMonitor.runCallbacksOnce();
+        mGarbageMonitor.runCallbacksOnce();
+
+        verify(mLeakReporter, never()).dumpLeak(anyInt());
+    }
+
+    @Test
+    public void testALittleGarbage_doesntDump() {
+        when(mTrackedGarbage.countOldGarbage()).thenReturn(4);
+
+        mGarbageMonitor.start();
+        mGarbageMonitor.runCallbacksOnce();
+        mGarbageMonitor.runCallbacksOnce();
+        mGarbageMonitor.runCallbacksOnce();
+
+        verify(mLeakReporter, never()).dumpLeak(anyInt());
+    }
+
+    @Test
+    public void testTransientGarbage_doesntDump() {
+        when(mTrackedGarbage.countOldGarbage()).thenReturn(100);
+
+        mGarbageMonitor.start();
+        mGarbageMonitor.runInspectCallback();
+
+        when(mTrackedGarbage.countOldGarbage()).thenReturn(0);
+
+        mGarbageMonitor.runReinspectCallback();
+
+        verify(mLeakReporter, never()).dumpLeak(anyInt());
+    }
+
+    @Test
+    public void testLotsOfPersistentGarbage_dumps() {
+        when(mTrackedGarbage.countOldGarbage()).thenReturn(100);
+
+        mGarbageMonitor.start();
+        mGarbageMonitor.runCallbacksOnce();
+
+        verify(mLeakReporter).dumpLeak(anyInt());
+    }
+
+    private static class TestableGarbageMonitor extends GarbageMonitor {
+        Runnable mInspectCallback;
+        Runnable mReinspectCallback;
+
+        public TestableGarbageMonitor(LeakDetector leakDetector,
+                LeakReporter leakReporter) {
+            super(null /* bgLooper */, leakDetector, leakReporter);
+        }
+
+        @Override
+        void scheduleInspectGarbage(Runnable runnable) {
+            assertNull("must not have more than one pending inspect callback", mInspectCallback);
+            mInspectCallback = runnable;
+        }
+
+        void runInspectCallback() {
+            assertNotNull("expected an inspect callback to be scheduled", mInspectCallback);
+            Runnable callback = mInspectCallback;
+            mInspectCallback = null;
+            callback.run();
+        }
+
+        @Override
+        void scheduleReinspectGarbage(Runnable runnable) {
+            assertNull("must not have more than one reinspect callback", mReinspectCallback);
+            mReinspectCallback = runnable;
+        }
+
+        void runReinspectCallback() {
+            assertNotNull("expected a reinspect callback to be scheduled", mInspectCallback);
+            maybeRunReinspectCallback();
+        }
+
+        void maybeRunReinspectCallback() {
+            Runnable callback = mReinspectCallback;
+            mReinspectCallback = null;
+            if (callback != null) {
+                callback.run();
+            }
+        }
+
+        void runCallbacksOnce() {
+            runInspectCallback();
+            maybeRunReinspectCallback();
+        }
+    }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java
new file mode 100644
index 0000000..11722fe
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.systemui.util.leak.ReferenceTestUtils.CollectionWaiter;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.FileDescriptor;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class LeakDetectorTest {
+
+    private LeakDetector mLeakDetector;
+
+    @Before
+    public void setup() {
+        mLeakDetector = LeakDetector.create();
+
+        // Note: Do not try to factor out object / collection waiter creation. The optimizer will
+        // try and cache accesses to fields and thus create a GC root for the duration of the test
+        // method, thus breaking the test.
+    }
+
+    @Test
+    public void trackInstance_doesNotLeakTrackedObject() {
+        Object object = new Object();
+        CollectionWaiter collectionWaiter = ReferenceTestUtils.createCollectionWaiter(object);
+
+        mLeakDetector.trackInstance(object);
+        object = null;
+        collectionWaiter.waitForCollection();
+    }
+
+    @Test
+    public void trackCollection_doesNotLeakTrackedObject() {
+        Collection<?> object = new ArrayList<>();
+        CollectionWaiter collectionWaiter = ReferenceTestUtils.createCollectionWaiter(object);
+
+        mLeakDetector.trackCollection(object, "tag");
+        object = null;
+        collectionWaiter.waitForCollection();
+    }
+
+    @Test
+    public void trackGarbage_doesNotLeakTrackedObject() {
+        Object object = new Object();
+        CollectionWaiter collectionWaiter = ReferenceTestUtils.createCollectionWaiter(object);
+
+        mLeakDetector.trackGarbage(object);
+        object = null;
+        collectionWaiter.waitForCollection();
+    }
+
+    @Test
+    public void testDump() throws Exception {
+        Object o1 = new Object();
+        Object o2 = new Object();
+        Collection<Object> col1 = new ArrayList<>();
+
+        mLeakDetector.trackInstance(o1);
+        mLeakDetector.trackCollection(col1, "tag");
+        mLeakDetector.trackGarbage(o2);
+
+        FileOutputStream fos = new FileOutputStream("/dev/null");
+        mLeakDetector.dump(fos.getFD(), new PrintWriter(fos), new String[0]);
+    }
+
+    @Test
+    public void testDisabled() throws Exception {
+        mLeakDetector = new LeakDetector(null, null, null);
+
+        Object o1 = new Object();
+        Object o2 = new Object();
+        Collection<Object> col1 = new ArrayList<>();
+
+        mLeakDetector.trackInstance(o1);
+        mLeakDetector.trackCollection(col1, "tag");
+        mLeakDetector.trackGarbage(o2);
+
+        FileOutputStream fos = new FileOutputStream("/dev/null");
+        mLeakDetector.dump(fos.getFD(), new PrintWriter(fos), new String[0]);
+    }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakReporterTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakReporterTest.java
new file mode 100644
index 0000000..96a9bee
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakReporterTest.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import android.app.NotificationManager;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.systemui.SysuiTestCase;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.io.PrintWriter;
+
+@RunWith(AndroidJUnit4.class)
+public class LeakReporterTest extends SysuiTestCase {
+
+    private LeakDetector mLeakDetector;
+    private LeakReporter mLeakReporter;
+    private File mLeakDir;
+    private File mLeakDump;
+    private File mLeakHprof;
+    private NotificationManager mNotificationManager;
+
+    @Before
+    public void setup() {
+        mLeakDir = new File(mContext.getCacheDir(), LeakReporter.LEAK_DIR);
+        mLeakDump = new File(mLeakDir, LeakReporter.LEAK_DUMP);
+        mLeakHprof = new File(mLeakDir, LeakReporter.LEAK_HPROF);
+
+        mNotificationManager = mock(NotificationManager.class);
+        mContext.addMockSystemService(NotificationManager.class, mNotificationManager);
+
+        mLeakDetector = mock(LeakDetector.class);
+        doAnswer(invocation -> {
+            invocation.<PrintWriter>getArgument(1).println("test");
+            return null;
+        }).when(mLeakDetector).dump(any(), any(), any());
+
+        mLeakReporter = new LeakReporter(mContext, mLeakDetector, "test@example.com");
+    }
+
+    @After
+    public void teardown() {
+        mLeakDump.delete();
+        mLeakHprof.delete();
+        mLeakDir.delete();
+    }
+
+    @Test
+    public void testDump_postsNotification() {
+        mLeakReporter.dumpLeak(5);
+        verify(mNotificationManager).notify(any(), anyInt(), any());
+    }
+
+    @Test
+    public void testDump_Repeated() {
+        mLeakReporter.dumpLeak(1);
+        mLeakReporter.dumpLeak(2);
+    }
+
+    @Test
+    public void testDump_ProducesNonZeroFiles() {
+        mLeakReporter.dumpLeak(5);
+
+        assertTrue(mLeakDump.exists());
+        assertTrue(mLeakDump.length() > 0);
+
+        assertTrue(mLeakHprof.exists());
+        assertTrue(mLeakHprof.length() > 0);
+    }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtils.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtils.java
new file mode 100644
index 0000000..b433e7a
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtils.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import android.os.SystemClock;
+
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+
+/**
+ * Utilities for writing tests that manipulate weak or other references.
+ */
+public class ReferenceTestUtils {
+
+    /** Returns a runnable that blocks until {@code o} has been collected. */
+    public static CollectionWaiter createCollectionWaiter(Object o) {
+        ReferenceQueue<Object> q = new ReferenceQueue<>();
+        Reference<?> ref = new WeakReference<>(o, q);
+        o = null; // Ensure this variable can't be referenced from the lambda.
+
+        return () -> {
+            Runtime.getRuntime().gc();
+            while (true) {
+                try {
+                    if (q.remove(5_000) == ref) {
+                        return;
+                    } else {
+                        throw new RuntimeException("timeout while waiting for object collection");
+                    }
+                } catch (InterruptedException e) {
+                    Thread.currentThread().interrupt();
+                }
+            }
+        };
+    }
+
+    public static void waitForCondition(Condition p) {
+        long deadline = SystemClock.uptimeMillis() + 5_000;
+        while (!p.apply()) {
+            if (SystemClock.uptimeMillis() > deadline) {
+                throw new RuntimeException("timeout while waiting for condition");
+            }
+            SystemClock.sleep(100);
+        }
+    }
+
+    public interface Condition {
+        boolean apply();
+    }
+
+    public interface CollectionWaiter {
+        void waitForCollection();
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtilsTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtilsTest.java
new file mode 100644
index 0000000..9da67b7
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtilsTest.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import static org.junit.Assert.assertEquals;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class ReferenceTestUtilsTest {
+
+    @Test
+    public void testCollectionWaiter_doesntBlockIndefinitely() {
+        ReferenceTestUtils.createCollectionWaiter(new Object()).waitForCollection();
+    }
+
+    @Test
+    public void testConditionWaiter_doesntBlockIndefinitely() {
+        ReferenceTestUtils.waitForCondition(() -> true);
+    }
+
+    @Test
+    public void testConditionWaiter_waitsUntilConditionIsTrue() {
+        int[] countHolder = new int[]{0};
+
+        ReferenceTestUtils.waitForCondition(() -> {
+            countHolder[0] += 1;
+            return countHolder[0] >= 5;
+        });
+
+        assertEquals(5, countHolder[0]);
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/WeakIdentityHashMapTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/WeakIdentityHashMapTest.java
new file mode 100644
index 0000000..fb1c1aa
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/WeakIdentityHashMapTest.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2017 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.util.leak;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.systemui.util.leak.ReferenceTestUtils.CollectionWaiter;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class WeakIdentityHashMapTest {
+
+    WeakIdentityHashMap<Object, Object> mMap;
+
+    @Before
+    public void setup() {
+        mMap = new WeakIdentityHashMap<>();
+    }
+
+    @Test
+    public void testUsesIdentity() {
+        String a1 = new String("a");
+        String a2 = new String("a");
+        assertNotSame(a1, a2);
+
+        mMap.put(a1, "value1");
+        mMap.put(a2, "value2");
+
+        assertEquals("value1", mMap.get(a1));
+        assertEquals("value2", mMap.get(a2));
+    }
+
+    @Test
+    public void testWeaklyReferences() {
+        Object object = new Object();
+        CollectionWaiter collectionWaiter = ReferenceTestUtils.createCollectionWaiter(object);
+
+        mMap.put(object, "value");
+        object = null;
+
+        // Wait until object has been collected. We'll also need to wait for mMap to become empty,
+        // because our collection waiter may be told about the collection earlier than mMap.
+        collectionWaiter.waitForCollection();
+        ReferenceTestUtils.waitForCondition(mMap::isEmpty);
+
+        assertEquals(0, mMap.size());
+        assertTrue(mMap.isEmpty());
+    }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/TestableContext.java b/packages/SystemUI/tests/src/com/android/systemui/utils/TestableContext.java
index 62c007f..1429390 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/utils/TestableContext.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/TestableContext.java
@@ -30,10 +30,11 @@
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.ArrayMap;
+import android.view.LayoutInflater;
 
 import com.android.systemui.SysUiServiceProvider;
-import com.android.systemui.utils.leaks.Tracker;
 import com.android.systemui.SysuiTestCase;
+import com.android.systemui.utils.leaks.Tracker;
 
 public class TestableContext extends ContextWrapper implements SysUiServiceProvider {
 
@@ -80,6 +81,10 @@
         return super.getResources();
     }
 
+    public <T> void addMockSystemService(Class<T> service, T mock) {
+        addMockSystemService(getSystemServiceName(service), mock);
+    }
+
     public void addMockSystemService(String name, Object service) {
         mMockSystemServices = lazyInit(mMockSystemServices);
         mMockSystemServices.put(name, service);
@@ -99,6 +104,9 @@
         if (mMockSystemServices != null && mMockSystemServices.containsKey(name)) {
             return mMockSystemServices.get(name);
         }
+        if (name.equals(LAYOUT_INFLATER_SERVICE)) {
+            return getBaseContext().getSystemService(LayoutInflater.class).cloneInContext(this);
+        }
         return super.getSystemService(name);
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/TestableLooper.java b/packages/SystemUI/tests/src/com/android/systemui/utils/TestableLooper.java
new file mode 100644
index 0000000..d275973
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/TestableLooper.java
@@ -0,0 +1,260 @@
+/*
+ * Copyright (C) 2017 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.utils;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.MessageQueue;
+import android.util.ArrayMap;
+
+import org.junit.runners.model.Statement;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Map;
+
+/**
+ * Creates a looper on the current thread with control over if/when messages are
+ * executed. Warning: This class works through some reflection and may break/need
+ * to be updated from time to time.
+ */
+public class TestableLooper {
+
+    private final Method mNext;
+    private final Method mRecycleUnchecked;
+
+    private Looper mLooper;
+    private MessageQueue mQueue;
+    private boolean mMain;
+    private Object mOriginalMain;
+    private MessageHandler mMessageHandler;
+
+    private int mParsedCount;
+    private Handler mHandler;
+    private Message mEmptyMessage;
+
+    public TestableLooper() throws Exception {
+        this(true);
+    }
+
+    public TestableLooper(boolean setMyLooper) throws Exception {
+        setupQueue(setMyLooper);
+        mNext = mQueue.getClass().getDeclaredMethod("next");
+        mNext.setAccessible(true);
+        mRecycleUnchecked = Message.class.getDeclaredMethod("recycleUnchecked");
+        mRecycleUnchecked.setAccessible(true);
+    }
+
+    public Looper getLooper() {
+        return mLooper;
+    }
+
+    private void clearLooper() throws NoSuchFieldException, IllegalAccessException {
+        Field field = Looper.class.getDeclaredField("sThreadLocal");
+        field.setAccessible(true);
+        ThreadLocal<Looper> sThreadLocal = (ThreadLocal<Looper>) field.get(null);
+        sThreadLocal.set(null);
+    }
+
+    private boolean setForCurrentThread() throws NoSuchFieldException, IllegalAccessException {
+        if (Looper.myLooper() != mLooper) {
+            Field field = Looper.class.getDeclaredField("sThreadLocal");
+            field.setAccessible(true);
+            ThreadLocal<Looper> sThreadLocal = (ThreadLocal<Looper>) field.get(null);
+            sThreadLocal.set(mLooper);
+            return true;
+        }
+        return false;
+    }
+
+    private void setupQueue(boolean setMyLooper) throws Exception {
+        if (setMyLooper) {
+            clearLooper();
+            Looper.prepare();
+            mLooper = Looper.myLooper();
+        } else {
+            Constructor<Looper> constructor = Looper.class.getDeclaredConstructor(
+                    boolean.class);
+            constructor.setAccessible(true);
+            mLooper = constructor.newInstance(true);
+        }
+
+        mQueue = mLooper.getQueue();
+        mHandler = new Handler(mLooper);
+    }
+
+    public void setAsMainLooper() throws NoSuchFieldException, IllegalAccessException {
+        mMain = true;
+        setAsMainInt();
+    }
+
+    private void setAsMainInt() throws NoSuchFieldException, IllegalAccessException {
+        Field field = mLooper.getClass().getDeclaredField("sMainLooper");
+        field.setAccessible(true);
+        if (mOriginalMain == null) {
+            mOriginalMain = field.get(null);
+        }
+        field.set(null, mLooper);
+    }
+
+    /**
+     * Must be called if setAsMainLooper is called to restore the main looper when the
+     * test is complete, otherwise the main looper will not be available for any subsequent
+     * tests.
+     */
+    public void destroy() throws NoSuchFieldException, IllegalAccessException {
+        if (Looper.myLooper() == mLooper) {
+            clearLooper();
+        }
+        if (mMain && mOriginalMain != null) {
+            Field field = mLooper.getClass().getDeclaredField("sMainLooper");
+            field.setAccessible(true);
+            field.set(null, mOriginalMain);
+            mOriginalMain = null;
+        }
+    }
+
+    public void setMessageHandler(MessageHandler handler) {
+        mMessageHandler = handler;
+    }
+
+    /**
+     * Parse num messages from the message queue.
+     *
+     * @param num Number of messages to parse
+     */
+    public int processMessages(int num) {
+        for (int i = 0; i < num; i++) {
+            if (!parseMessageInt()) {
+                return i + 1;
+            }
+        }
+        return num;
+    }
+
+    public void processAllMessages() {
+        while (processQueuedMessages() != 0) ;
+    }
+
+    private int processQueuedMessages() {
+        int count = 0;
+        mEmptyMessage = mHandler.obtainMessage(1);
+        mHandler.sendMessageDelayed(mEmptyMessage, 1);
+        while (parseMessageInt()) count++;
+        return count;
+    }
+
+    private boolean parseMessageInt() {
+        try {
+            Message result = (Message) mNext.invoke(mQueue);
+            if (result != null) {
+                // This is a break message.
+                if (result == mEmptyMessage) {
+                    mRecycleUnchecked.invoke(result);
+                    return false;
+                }
+
+                if (mMessageHandler != null) {
+                    if (mMessageHandler.onMessageHandled(result)) {
+                        result.getTarget().dispatchMessage(result);
+                        mRecycleUnchecked.invoke(result);
+                    } else {
+                        mRecycleUnchecked.invoke(result);
+                        // Message handler indicated it doesn't want us to continue.
+                        return false;
+                    }
+                } else {
+                    result.getTarget().dispatchMessage(result);
+                    mRecycleUnchecked.invoke(result);
+                }
+            } else {
+                // No messages, don't continue parsing
+                return false;
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return true;
+    }
+
+    /**
+     * Runs an executable with myLooper set and processes all messages added.
+     */
+    public void runWithLooper(RunnableWithException runnable) throws Exception {
+        boolean set = setForCurrentThread();
+        runnable.run();
+        processAllMessages();
+        if (set) clearLooper();
+    }
+
+    public interface RunnableWithException {
+        void run() throws Exception;
+    }
+
+    @Retention(RetentionPolicy.RUNTIME)
+    @Target({ElementType.METHOD, ElementType.TYPE})
+    public @interface RunWithLooper {
+        boolean setAsMainLooper() default false;
+    }
+
+    private static final Map<Object, TestableLooper> sLoopers = new ArrayMap<>();
+
+    public static TestableLooper get(Object test) {
+        return sLoopers.get(test);
+    }
+
+    public static class LooperStatement extends Statement {
+        private final boolean mSetAsMain;
+        private final Statement mBase;
+        private final TestableLooper mLooper;
+
+        public LooperStatement(Statement base, boolean setAsMain, Object test) {
+            mBase = base;
+            try {
+                mLooper = new TestableLooper(false);
+                sLoopers.put(test, mLooper);
+                mSetAsMain = setAsMain;
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        @Override
+        public void evaluate() throws Throwable {
+            mLooper.setForCurrentThread();
+            if (mSetAsMain) {
+                mLooper.setAsMainLooper();
+            }
+
+            mBase.evaluate();
+
+            mLooper.destroy();
+        }
+    }
+
+    public interface MessageHandler {
+        /**
+         * Return true to have the message executed and delivered to target.
+         * Return false to not execute the message and stop executing messages.
+         */
+        boolean onMessageHandled(Message m);
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/TestableLooperTest.java b/packages/SystemUI/tests/src/com/android/systemui/utils/TestableLooperTest.java
new file mode 100644
index 0000000..2416e1d
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/TestableLooperTest.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2017 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.utils;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+
+import com.android.systemui.SysUIRunner;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.utils.TestableLooper.MessageHandler;
+import com.android.systemui.utils.TestableLooper.RunWithLooper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(SysUIRunner.class)
+@RunWithLooper
+public class TestableLooperTest extends SysuiTestCase {
+
+    private TestableLooper mTestableLooper;
+
+    @Before
+    public void setup() throws Exception {
+        mTestableLooper = TestableLooper.get(this);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        mTestableLooper.destroy();
+    }
+
+    @Test
+    public void testMessageExecuted() throws Exception {
+        Handler h = new Handler();
+        Runnable r = mock(Runnable.class);
+        h.post(r);
+        verify(r, never()).run();
+        mTestableLooper.processAllMessages();
+        verify(r).run();
+    }
+
+    @Test
+    public void testMessageCallback() throws Exception {
+        Handler h = new Handler();
+        Message m = h.obtainMessage(3);
+        Runnable r = mock(Runnable.class);
+        MessageHandler messageHandler = mock(MessageHandler.class);
+        when(messageHandler.onMessageHandled(any())).thenReturn(false);
+        mTestableLooper.setMessageHandler(messageHandler);
+
+        m.sendToTarget();
+        h.post(r);
+
+        mTestableLooper.processAllMessages();
+
+        verify(messageHandler).onMessageHandled(eq(m));
+        // This should never be run becaus the mock returns false on the first message, and
+        // the second will get skipped.
+        verify(r, never()).run();
+    }
+
+    @Test
+    public void testProcessNumberOfMessages() throws Exception {
+        Handler h = new Handler();
+        Runnable r = mock(Runnable.class);
+        h.post(r);
+        h.post(r);
+        h.post(r);
+
+        mTestableLooper.processMessages(2);
+
+        verify(r, times(2)).run();
+    }
+
+    @Test
+    public void testProcessAllMessages() throws Exception {
+        Handler h = new Handler();
+        Runnable r = mock(Runnable.class);
+        Runnable poster = () -> h.post(r);
+        h.post(poster);
+
+        mTestableLooper.processAllMessages();
+        verify(r).run();
+    }
+
+    @Test
+    public void test3Chain() throws Exception {
+        Handler h = new Handler();
+        Runnable r = mock(Runnable.class);
+        Runnable poster = () -> h.post(r);
+        Runnable poster2 = () -> h.post(poster);
+        h.post(poster2);
+
+        mTestableLooper.processAllMessages();
+        verify(r).run();
+    }
+
+    @Test
+    public void testProcessAllMessages_2Messages() throws Exception {
+        Handler h = new Handler();
+        Runnable r = mock(Runnable.class);
+        Runnable r2 = mock(Runnable.class);
+        h.post(r);
+        h.post(r2);
+
+        mTestableLooper.processAllMessages();
+        verify(r).run();
+        verify(r2).run();
+    }
+
+    @Test
+    public void testMainLooper() throws Exception {
+        assertNotEquals(Looper.myLooper(), Looper.getMainLooper());
+
+        Looper originalMain = Looper.getMainLooper();
+        mTestableLooper.setAsMainLooper();
+        assertEquals(Looper.myLooper(), Looper.getMainLooper());
+        Runnable r = mock(Runnable.class);
+
+        new Handler(Looper.getMainLooper()).post(r);
+        mTestableLooper.processAllMessages();
+
+        verify(r).run();
+        mTestableLooper.destroy();
+
+        assertEquals(originalMain, Looper.getMainLooper());
+    }
+
+    @Test
+    public void testNotMyLooper() throws Exception {
+        TestableLooper looper = new TestableLooper(false);
+
+        assertEquals(Looper.myLooper(), mTestableLooper.getLooper());
+        assertNotEquals(Looper.myLooper(), looper.getLooper());
+
+        Runnable r = mock(Runnable.class);
+        Runnable r2 = mock(Runnable.class);
+        new Handler().post(r);
+        new Handler(looper.getLooper()).post(r2);
+
+        looper.processAllMessages();
+        verify(r2).run();
+        verify(r, never()).run();
+
+        mTestableLooper.processAllMessages();
+        verify(r).run();
+    }
+
+    @Test
+    public void testNonMainLooperAnnotation() {
+        assertNotEquals(Looper.myLooper(), Looper.getMainLooper());
+    }
+
+    @Test
+    @RunWithLooper(setAsMainLooper = true)
+    public void testMainLooperAnnotation() {
+        assertEquals(Looper.myLooper(), Looper.getMainLooper());
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/ViewUtils.java b/packages/SystemUI/tests/src/com/android/systemui/utils/ViewUtils.java
index 202c4cf..07e5f66 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/utils/ViewUtils.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/ViewUtils.java
@@ -34,13 +34,11 @@
         Handler handler = new Handler(Looper.getMainLooper());
         handler.post(() -> InstrumentationRegistry.getContext()
                 .getSystemService(WindowManager.class).addView(view, lp));
-        SysuiTestCase.waitForIdleSync(handler);
     }
 
     public static void detachView(View view) {
         Handler handler = new Handler(Looper.getMainLooper());
         handler.post(() -> InstrumentationRegistry.getContext()
                 .getSystemService(WindowManager.class).removeView(view));
-        SysuiTestCase.waitForIdleSync(handler);
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java
index 39bbf2d..21871fc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java
@@ -45,6 +45,26 @@
     }
 
     @Override
+    public boolean isKeyguardFadingAway() {
+        return false;
+    }
+
+    @Override
+    public boolean isKeyguardGoingAway() {
+        return false;
+    }
+
+    @Override
+    public long getKeyguardFadingAwayDuration() {
+        return 0;
+    }
+
+    @Override
+    public long getKeyguardFadingAwayDelay() {
+        return 0;
+    }
+
+    @Override
     public boolean canSkipBouncer() {
         return false;
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java
new file mode 100644
index 0000000..b13535f
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2017 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.utils.leaks;
+
+import com.android.internal.statusbar.StatusBarIcon;
+import com.android.systemui.statusbar.phone.StatusBarIconController;
+import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
+
+public class FakeStatusBarIconController extends BaseLeakChecker<IconManager>
+        implements StatusBarIconController {
+
+    public FakeStatusBarIconController(LeakCheckedTest test) {
+        super(test, "StatusBarGroup");
+    }
+
+    @Override
+    public void addIconGroup(IconManager iconManager) {
+        addCallback(iconManager);
+    }
+
+    @Override
+    public void removeIconGroup(IconManager iconManager) {
+        removeCallback(iconManager);
+    }
+
+    @Override
+    public void setExternalIcon(String slot) {
+
+    }
+
+    @Override
+    public void setIcon(String slot, int resourceId, CharSequence contentDescription) {
+
+    }
+
+    @Override
+    public void setIcon(String slot, StatusBarIcon icon) {
+
+    }
+
+    @Override
+    public void setIconVisibility(String slotTty, boolean b) {
+
+    }
+
+    @Override
+    public void removeIcon(String slot) {
+
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java
index c2048c7..6c51524 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java
@@ -22,6 +22,7 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.plugins.PluginManager;
 import com.android.systemui.statusbar.phone.ManagedProfileController;
+import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.policy.BatteryController;
 import com.android.systemui.statusbar.policy.BluetoothController;
 import com.android.systemui.statusbar.policy.CallbackController;
@@ -75,6 +76,7 @@
             NetworkController.class,
             PluginManager.class,
             TunerService.class,
+            StatusBarIconController.class,
     };
 
     @Rule
@@ -121,6 +123,8 @@
                 obj = new FakePluginManager(mContext, this);
             } else if (cls == TunerService.class) {
                 obj = new FakeTunerService(mContext, this);
+            } else if (cls == StatusBarIconController.class) {
+                obj = new FakeStatusBarIconController(this);
             } else {
                 Assert.fail(cls.getName() + " is not supported by LeakCheckedTest yet");
             }
@@ -145,10 +149,14 @@
 
     public void injectLeakCheckedDependencies(Class<?>... cls) {
         for (Class<?> c : cls) {
-            injectTestDependency(c, getLeakChecker(c));
+            injectLeakCheckedDependency(c);
         }
     }
 
+    public <T> void injectLeakCheckedDependency(Class<T> c) {
+        injectTestDependency(c, getLeakChecker(c));
+    }
+
     public <T extends CallbackController> T addListening(T mock, Class<T> cls, String tag) {
         doAnswer(new Answer<Void>() {
             @Override
diff --git a/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java b/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
index ff934ef..4254a0b 100644
--- a/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
+++ b/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
@@ -217,9 +217,6 @@
         final int sysWhich = FLAG_SYSTEM | (lockImageStage.exists() ? 0 : FLAG_LOCK);
 
         try {
-            // First off, revert to the factory state
-            mWm.clear(FLAG_SYSTEM | FLAG_LOCK);
-
             // It is valid for the imagery to be absent; it means that we were not permitted
             // to back up the original image on the source device, or there was no user-supplied
             // wallpaper image present.
@@ -233,6 +230,11 @@
                     Slog.i(TAG, "Using wallpaper service " + wpService);
                 }
                 mWm.setWallpaperComponent(wpService, UserHandle.USER_SYSTEM);
+                if (!lockImageStage.exists()) {
+                    // We have a live wallpaper and no static lock image,
+                    // allow live wallpaper to show "through" on lock screen.
+                    mWm.clear(FLAG_LOCK);
+                }
             } else {
                 if (DEBUG) {
                     Slog.v(TAG, "Can't use wallpaper service " + wpService);
diff --git a/services/autofill/java/com/android/server/autofill/AutoFillManagerService.java b/services/autofill/java/com/android/server/autofill/AutoFillManagerService.java
index 9347350..c16a51c 100644
--- a/services/autofill/java/com/android/server/autofill/AutoFillManagerService.java
+++ b/services/autofill/java/com/android/server/autofill/AutoFillManagerService.java
@@ -34,6 +34,7 @@
 import android.graphics.Rect;
 import android.net.Uri;
 import android.os.Binder;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
@@ -54,12 +55,14 @@
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.os.HandlerCaller;
+import com.android.internal.os.IResultReceiver;
 import com.android.internal.os.SomeArgs;
 import com.android.server.LocalServices;
 import com.android.server.SystemService;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -77,6 +80,10 @@
     private static final int MSG_UPDATE_SESSION = 2;
     private static final int MSG_FINISH_SESSION = 3;
     private static final int MSG_REQUEST_SAVE_FOR_USER = 4;
+    private static final int MSG_LIST_SESSIONS = 5;
+    private static final int MSG_RESET = 6;
+
+    static final String RECEIVER_BUNDLE_EXTRA_SESSIONS = "sessions";
 
     private final Context mContext;
     private final AutoFillUI mUi;
@@ -111,6 +118,12 @@
                 final int flags = args.argi6;
                 handleUpdateSession(userId, activityToken, autoFillId, bounds, value, flags);
                 return;
+            } case MSG_LIST_SESSIONS: {
+                handleListForUser(msg.arg1, (IResultReceiver) msg.obj);
+                return;
+            } case MSG_RESET: {
+                handleReset();
+                return;
             } default: {
                 Slog.w(TAG, "Invalid message: " + msg);
             }
@@ -203,6 +216,29 @@
         return service;
     }
 
+    // Called by Shell command.
+    void requestSaveForUser(int userId) {
+        Slog.i(TAG, "requestSaveForUser(): " + userId);
+        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        mHandlerCaller.sendMessage(mHandlerCaller.obtainMessageI(
+                MSG_REQUEST_SAVE_FOR_USER, userId));
+    }
+
+    // Called by Shell command.
+    void listSessions(int userId, IResultReceiver receiver) {
+        Slog.i(TAG, "listSessions() for userId " + userId);
+        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        mHandlerCaller.sendMessage(
+                mHandlerCaller.obtainMessageIO(MSG_LIST_SESSIONS, userId, receiver));
+    }
+
+    // Called by Shell command.
+    void reset() {
+        Slog.i(TAG, "reset()");
+        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        mHandlerCaller.sendMessage(mHandlerCaller.obtainMessage(MSG_RESET));
+    }
+
     /**
      * Removes a cached service for a given user.
      */
@@ -273,6 +309,39 @@
         }
     }
 
+    private void handleListForUser(int userId, IResultReceiver receiver) {
+        final Bundle resultData = new Bundle();
+        final ArrayList<String> sessions = new ArrayList<>();
+
+        synchronized (mLock) {
+            if (userId != UserHandle.USER_ALL) {
+                mServicesCache.get(userId).listSessionsLocked(sessions);
+            } else {
+                final int size = mServicesCache.size();
+                for (int i = 0; i < size; i++) {
+                    mServicesCache.valueAt(i).listSessionsLocked(sessions);
+                }
+            }
+        }
+
+        resultData.putStringArrayList(RECEIVER_BUNDLE_EXTRA_SESSIONS, sessions);
+        try {
+            receiver.send(0, resultData);
+        } catch (RemoteException e) {
+            // Just ignore it...
+        }
+    }
+
+    private void handleReset() {
+        synchronized (mLock) {
+            final int size = mServicesCache.size();
+            for (int i = 0; i < size; i++) {
+                mServicesCache.valueAt(i).destroyLocked();
+            }
+            mServicesCache.clear();
+        }
+    }
+
     final class AutoFillManagerServiceStub extends IAutoFillManagerService.Stub {
 
         @Override
@@ -318,13 +387,6 @@
         }
 
         @Override
-        public void requestSaveForUser(int userId) {
-            mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
-            mHandlerCaller.sendMessage(mHandlerCaller.obtainMessageI(MSG_REQUEST_SAVE_FOR_USER,
-                    userId));
-        }
-
-        @Override
         public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
             if (mContext.checkCallingPermission(
                     Manifest.permission.DUMP) != PackageManager.PERMISSION_GRANTED) {
@@ -355,7 +417,7 @@
         @Override
         public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
                 String[] args, ShellCallback callback, ResultReceiver resultReceiver) {
-            (new AutoFillManagerServiceShellCommand(this)).exec(
+            (new AutoFillManagerServiceShellCommand(AutoFillManagerService.this)).exec(
                     this, in, out, err, args, callback, resultReceiver);
         }
     }
diff --git a/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceImpl.java b/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceImpl.java
index 859e1a1..2891518 100644
--- a/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceImpl.java
+++ b/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceImpl.java
@@ -70,6 +70,7 @@
 import com.android.server.FgThread;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.Map;
 import java.util.Map.Entry;
 
@@ -330,6 +331,12 @@
         }
     }
 
+    void listSessionsLocked(ArrayList<String> output) {
+        for (IBinder activityToken : mSessions.keySet()) {
+            output.add(mComponentName + ":" + activityToken);
+        }
+    }
+
     @Override
     public String toString() {
         return "AutoFillManagerServiceImpl: [userId=" + mUserId
@@ -886,8 +893,10 @@
         }
 
         private AutoFillUI getUiForShowing() {
-            mUi.setCallback(this, mActivityToken);
-            return mUi;
+            synchronized (mLock) {
+                mUi.setCallbackLocked(this, mActivityToken);
+                return mUi;
+            }
         }
 
         private ViewNode findViewNodeByIdLocked(AutoFillId id) {
@@ -926,7 +935,7 @@
         private void destroyLocked() {
             mRemoteFillService.destroy();
             mUi.hideAll();
-            mUi.setCallback(null, null);
+            mUi.setCallbackLocked(null, null);
         }
 
         private void removeSelf() {
diff --git a/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceShellCommand.java b/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceShellCommand.java
index 201a889..cfa4a1d 100644
--- a/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceShellCommand.java
+++ b/services/autofill/java/com/android/server/autofill/AutoFillManagerServiceShellCommand.java
@@ -16,19 +16,26 @@
 
 package com.android.server.autofill;
 
+import static com.android.server.autofill.AutoFillManagerService.RECEIVER_BUNDLE_EXTRA_SESSIONS;
+
 import android.app.ActivityManager;
+import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ShellCommand;
 import android.os.UserHandle;
-import android.service.autofill.IAutoFillManagerService;
+
+import com.android.internal.os.IResultReceiver;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 public final class AutoFillManagerServiceShellCommand extends ShellCommand {
 
-    private final IAutoFillManagerService.Stub mService;
+    private final AutoFillManagerService mService;
 
-    public AutoFillManagerServiceShellCommand(IAutoFillManagerService.Stub service) {
+    public AutoFillManagerServiceShellCommand(AutoFillManagerService service) {
         mService = service;
     }
 
@@ -38,17 +45,16 @@
             return handleDefaultCommands(cmd);
         }
         final PrintWriter pw = getOutPrintWriter();
-        try {
-            switch (cmd) {
-                case "save":
-                    return requestSave();
-                default:
-                    return handleDefaultCommands(cmd);
-            }
-        } catch (RemoteException e) {
-            pw.println("error: " + e);
+        switch (cmd) {
+            case "save":
+                return requestSave();
+            case "list":
+                return requestList(pw);
+            case "reset":
+                return requestReset();
+            default:
+                return handleDefaultCommands(cmd);
         }
-        return -1;
     }
 
     @Override
@@ -58,22 +64,79 @@
             pw.println("  help");
             pw.println("    Prints this help text.");
             pw.println("");
+            pw.println("  list sessions [--user USER_ID]");
+            pw.println("    List all pending sessions.");
+            pw.println("");
             pw.println("  save [--user USER_ID]");
             pw.println("    Request provider to save contents of the top activity. ");
             pw.println("");
+            pw.println("  reset");
+            pw.println("    Reset all pending sessions and cached service connections.");
+            pw.println("");
         }
     }
 
-    private int requestSave() throws RemoteException {
-        final int userId = getUserIdFromArgs();
+    private int requestSave() {
+        final int userId = getUserIdFromArgsOrCurrentUser();
         mService.requestSaveForUser(userId);
         return 0;
     }
 
-    private int getUserIdFromArgs() {
+    private int requestList(PrintWriter pw) {
+        final String type = getNextArgRequired();
+        if (!type.equals("sessions")) {
+            pw.println("Error: invalid list type");
+            return -1;
+
+        }
+        final int userId = getUserIdFromArgsOrAllUsers();
+        final CountDownLatch latch = new CountDownLatch(1);
+        final IResultReceiver receiver = new IResultReceiver.Stub() {
+
+            @Override
+            public void send(int resultCode, Bundle resultData) throws RemoteException {
+                final ArrayList<String> sessions = resultData
+                        .getStringArrayList(RECEIVER_BUNDLE_EXTRA_SESSIONS);
+
+                for (String session : sessions) {
+                    pw.println(session);
+                }
+                latch.countDown();
+            }
+        };
+
+        mService.listSessions(userId, receiver);
+
+        try {
+            final boolean received = latch.await(5, TimeUnit.SECONDS);
+            if (!received) {
+                pw.println("Timed out after 5 seconds");
+                return -1;
+            }
+        } catch (InterruptedException e) {
+            pw.println("System call interrupted");
+            Thread.currentThread().interrupt();
+            return -1;
+        }
+        return 0;
+    }
+
+    private int requestReset() {
+        mService.reset();
+        return 0;
+    }
+
+    private int getUserIdFromArgsOrCurrentUser() {
         if ("--user".equals(getNextArg())) {
             return UserHandle.parseUserArg(getNextArgRequired());
         }
         return ActivityManager.getCurrentUser();
     }
+
+    private int getUserIdFromArgsOrAllUsers() {
+        if ("--user".equals(getNextArg())) {
+            return UserHandle.parseUserArg(getNextArgRequired());
+        }
+        return UserHandle.USER_ALL;
+    }
 }
diff --git a/services/autofill/java/com/android/server/autofill/AutoFillUI.java b/services/autofill/java/com/android/server/autofill/AutoFillUI.java
index e9fc044..0763c74 100644
--- a/services/autofill/java/com/android/server/autofill/AutoFillUI.java
+++ b/services/autofill/java/com/android/server/autofill/AutoFillUI.java
@@ -100,7 +100,7 @@
         mWm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
     }
 
-    void setCallback(AutoFillUiCallback callback, IBinder activityToken) {
+    void setCallbackLocked(AutoFillUiCallback callback, IBinder activityToken) {
         hideAll();
         mCallback = callback;
         mActivityToken = activityToken;
@@ -180,7 +180,11 @@
                             synchronized (mLock) {
                                 callback = mCallback;
                             }
-                            callback.fill(dataset);
+                            if (callback != null) {
+                                callback.fill(dataset);
+                            } else {
+                                Slog.w(TAG, "null callback on showFillUi() for " + viewState.mId);
+                            }
                             hideFillUi();
                         });
 
diff --git a/services/autofill/java/com/android/server/autofill/DatasetPicker.java b/services/autofill/java/com/android/server/autofill/DatasetPicker.java
index 8212cf1..9bee61a 100644
--- a/services/autofill/java/com/android/server/autofill/DatasetPicker.java
+++ b/services/autofill/java/com/android/server/autofill/DatasetPicker.java
@@ -17,6 +17,7 @@
 
 import android.content.Context;
 import android.graphics.Color;
+import android.text.TextUtils;
 import android.util.ArraySet;
 import android.view.autofill.Dataset;
 import android.view.View;
@@ -62,8 +63,10 @@
             @Override
             public View getView(int position, View convertView, ViewGroup parent) {
                 final TextView textView = (TextView) super.getView(position, convertView, parent);
+                textView.setSingleLine();
+                textView.setEllipsize(TextUtils.TruncateAt.END);
                 textView.setMinHeight(
-                    getDimen(com.android.internal.R.dimen.autofill_fill_item_height));
+                        getDimen(com.android.internal.R.dimen.autofill_fill_item_height));
                 return textView;
             }
         };
diff --git a/services/autofill/java/com/android/server/autofill/Helper.java b/services/autofill/java/com/android/server/autofill/Helper.java
index 7400a64..0f2bb60 100644
--- a/services/autofill/java/com/android/server/autofill/Helper.java
+++ b/services/autofill/java/com/android/server/autofill/Helper.java
@@ -38,7 +38,7 @@
     static void append(StringBuilder builder, Bundle bundle) {
         if (bundle == null) {
             builder.append("N/A");
-        } else if (!DEBUG) {
+        } else if (!VERBOSE) {
             builder.append(REDACTED);
         } else {
             final Set<String> keySet = bundle.keySet();
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index 88c05b5..6bf0e8d 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -30,18 +30,20 @@
 import android.app.backup.BackupDataInput;
 import android.app.backup.BackupDataOutput;
 import android.app.backup.BackupManager;
+import android.app.backup.BackupManagerMonitor;
 import android.app.backup.BackupProgress;
 import android.app.backup.BackupTransport;
 import android.app.backup.FullBackup;
 import android.app.backup.FullBackupDataOutput;
-import android.app.backup.IBackupManager;
 import android.app.backup.IBackupObserver;
+import android.app.backup.IBackupManagerMonitor;
+import android.app.backup.RestoreDescription;
+import android.app.backup.RestoreSet;
+import android.app.backup.IBackupManager;
 import android.app.backup.IFullBackupRestoreObserver;
 import android.app.backup.IRestoreObserver;
 import android.app.backup.IRestoreSession;
 import android.app.backup.ISelectBackupTransportCallback;
-import android.app.backup.RestoreDescription;
-import android.app.backup.RestoreSet;
 import android.app.backup.SelectBackupTransportCallback;
 import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
@@ -414,12 +416,14 @@
         public IBackupTransport transport;
         public ActiveRestoreSession session;
         public IRestoreObserver observer;
+        public IBackupManagerMonitor monitor;
 
         RestoreGetSetsParams(IBackupTransport _transport, ActiveRestoreSession _session,
-                IRestoreObserver _observer) {
+                IRestoreObserver _observer, IBackupManagerMonitor _monitor) {
             transport = _transport;
             session = _session;
             observer = _observer;
+            monitor = _monitor;
         }
     }
 
@@ -427,6 +431,7 @@
         public IBackupTransport transport;
         public String dirName;
         public IRestoreObserver observer;
+        public IBackupManagerMonitor monitor;
         public long token;
         public PackageInfo pkgInfo;
         public int pmToken; // in post-install restore, the PM's token for this transaction
@@ -437,10 +442,11 @@
          * Restore a single package; no kill after restore
          */
         RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
-                long _token, PackageInfo _pkg) {
+                IBackupManagerMonitor _monitor, long _token, PackageInfo _pkg) {
             transport = _transport;
             dirName = _dirName;
             observer = _obs;
+            monitor = _monitor;
             token = _token;
             pkgInfo = _pkg;
             pmToken = 0;
@@ -452,10 +458,11 @@
          * Restore at install: PM token needed, kill after restore
          */
         RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
-                long _token, String _pkgName, int _pmToken) {
+                IBackupManagerMonitor _monitor, long _token, String _pkgName, int _pmToken) {
             transport = _transport;
             dirName = _dirName;
             observer = _obs;
+            monitor = _monitor;
             token = _token;
             pkgInfo = null;
             pmToken = _pmToken;
@@ -468,10 +475,11 @@
          * restore UXes use.
          */
         RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
-                long _token) {
+                IBackupManagerMonitor _monitor, long _token) {
             transport = _transport;
             dirName = _dirName;
             observer = _obs;
+            monitor = _monitor;
             token = _token;
             pkgInfo = null;
             pmToken = 0;
@@ -484,10 +492,12 @@
          * whether it's to be considered a system-level restore.
          */
         RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
-                long _token, String[] _filterSet, boolean _isSystemRestore) {
+                IBackupManagerMonitor _monitor, long _token,
+                String[] _filterSet, boolean _isSystemRestore) {
             transport = _transport;
             dirName = _dirName;
             observer = _obs;
+            monitor = _monitor;
             token = _token;
             pkgInfo = null;
             pmToken = 0;
@@ -565,17 +575,19 @@
         public ArrayList<String> kvPackages;
         public ArrayList<String> fullPackages;
         public IBackupObserver observer;
+        public IBackupManagerMonitor monitor;
         public boolean userInitiated;
         public boolean nonIncrementalBackup;
 
         BackupParams(IBackupTransport transport, String dirName, ArrayList<String> kvPackages,
-                ArrayList<String> fullPackages, IBackupObserver observer, boolean userInitiated,
-                boolean nonIncrementalBackup) {
+                ArrayList<String> fullPackages, IBackupObserver observer,
+                IBackupManagerMonitor monitor,boolean userInitiated, boolean nonIncrementalBackup) {
             this.transport = transport;
             this.dirName = dirName;
             this.kvPackages = kvPackages;
             this.fullPackages = fullPackages;
             this.observer = observer;
+            this.monitor = monitor;
             this.userInitiated = userInitiated;
             this.nonIncrementalBackup = nonIncrementalBackup;
         }
@@ -785,8 +797,8 @@
                     // Spin up a backup state sequence and set it running
                     try {
                         String dirName = transport.transportDirName();
-                        PerformBackupTask pbt = new PerformBackupTask(transport, dirName,
-                                queue, oldJournal, null, null, false, false /* nonIncremental */);
+                        PerformBackupTask pbt = new PerformBackupTask(transport, dirName, queue,
+                                oldJournal, null, null, null, false, false /* nonIncremental */);
                         Message pbtMessage = obtainMessage(MSG_BACKUP_RESTORE_STEP, pbt);
                         sendMessage(pbtMessage);
                     } catch (Exception e) {
@@ -861,8 +873,8 @@
                 RestoreParams params = (RestoreParams)msg.obj;
                 Slog.d(TAG, "MSG_RUN_RESTORE observer=" + params.observer);
                 BackupRestoreTask task = new PerformUnifiedRestoreTask(params.transport,
-                        params.observer, params.token, params.pkgInfo, params.pmToken,
-                        params.isSystemRestore, params.filterSet);
+                        params.observer, params.monitor, params.token, params.pkgInfo,
+                        params.pmToken, params.isSystemRestore, params.filterSet);
                 Message restoreMsg = obtainMessage(MSG_BACKUP_RESTORE_STEP, task);
                 sendMessage(restoreMsg);
                 break;
@@ -1025,7 +1037,7 @@
                 mWakelock.acquire();
 
                 PerformBackupTask pbt = new PerformBackupTask(params.transport, params.dirName,
-                        kvQueue, null, params.observer, params.fullPackages, true,
+                        kvQueue, null, params.observer, params.monitor, params.fullPackages, true,
                         params.nonIncrementalBackup);
                 Message pbtMessage = obtainMessage(MSG_BACKUP_RESTORE_STEP, pbt);
                 sendMessage(pbtMessage);
@@ -1515,10 +1527,14 @@
                 // This isn't the current journal, so it must be a leftover.  Read
                 // out the package names mentioned there and schedule them for
                 // backup.
-                RandomAccessFile in = null;
+                DataInputStream in = null;
                 try {
                     Slog.i(TAG, "Found stale backup journal, scheduling");
-                    in = new RandomAccessFile(f, "r");
+                    // Journals will tend to be on the order of a few kilobytes(around 4k), hence,
+                    // setting the buffer size to 8192.
+                    InputStream bufferedInputStream = new BufferedInputStream(
+                            new FileInputStream(f), 8192);
+                    in = new DataInputStream(bufferedInputStream);
                     while (true) {
                         String packageName = in.readUTF();
                         if (MORE_DEBUG) Slog.i(TAG, "  " + packageName);
@@ -2277,11 +2293,18 @@
     }
 
     public int requestBackup(String[] packages, IBackupObserver observer, int flags) {
+        return requestBackup(packages, observer, null, flags);
+    }
+
+    public int requestBackup(String[] packages, IBackupObserver observer,
+            IBackupManagerMonitor monitor, int flags) {
         mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "requestBackup");
 
         if (packages == null || packages.length < 1) {
             Slog.e(TAG, "No packages named for backup request");
             sendBackupFinished(observer, BackupManager.ERROR_TRANSPORT_ABORTED);
+            monitor = monitorEvent(monitor, BackupManagerMonitor.LOG_EVENT_ID_NO_PACKAGES,
+                    null, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT);
             throw new IllegalArgumentException("No packages are provided for backup");
         }
 
@@ -2336,7 +2359,7 @@
 
         Message msg = mBackupHandler.obtainMessage(MSG_REQUEST_BACKUP);
         msg.obj = new BackupParams(transport, dirName, kvBackupList, fullBackupList, observer,
-                true, nonIncrementalBackup);
+                monitor, true, nonIncrementalBackup);
         mBackupHandler.sendMessage(msg);
         return BackupManager.SUCCESS;
     }
@@ -2452,6 +2475,7 @@
         BackupState mCurrentState;
         ArrayList<String> mPendingFullBackups;
         IBackupObserver mObserver;
+        IBackupManagerMonitor mMonitor;
 
         // carried information about the current in-flight operation
         IBackupAgent mAgentBinder;
@@ -2469,12 +2493,13 @@
 
         public PerformBackupTask(IBackupTransport transport, String dirName,
                 ArrayList<BackupRequest> queue, File journal, IBackupObserver observer,
-                ArrayList<String> pendingFullBackups, boolean userInitiated,
-                boolean nonIncremental) {
+                IBackupManagerMonitor monitor, ArrayList<String> pendingFullBackups,
+                boolean userInitiated, boolean nonIncremental) {
             mTransport = transport;
             mOriginalQueue = queue;
             mJournal = journal;
             mObserver = observer;
+            mMonitor = monitor;
             mPendingFullBackups = pendingFullBackups;
             mUserInitiated = userInitiated;
             mNonIncremental = nonIncremental;
@@ -2834,7 +2859,7 @@
                 PerformFullTransportBackupTask task =
                         new PerformFullTransportBackupTask(/*fullBackupRestoreObserver*/ null,
                                 fullBackups, /*updateSchedule*/ false, /*runningJob*/ null, latch,
-                                mObserver, mUserInitiated);
+                                mObserver, mMonitor, mUserInitiated);
                 // Acquiring wakelock for PerformFullTransportBackupTask before its start.
                 mWakelock.acquire();
                 (new Thread(task, "full-transport-requested")).start();
@@ -2881,6 +2906,7 @@
             mNewState = null;
 
             final int token = generateToken();
+            boolean callingAgent = false;
             try {
                 // Look up the package info & signatures.  This is first so that if it
                 // throws an exception, there's no file setup yet that would need to
@@ -2914,18 +2940,24 @@
                         ParcelFileDescriptor.MODE_CREATE |
                         ParcelFileDescriptor.MODE_TRUNCATE);
 
+                final long quota = mTransport.getBackupQuota(packageName, false /* isFullBackup */);
+                callingAgent = true;
+
                 // Initiate the target's backup pass
                 addBackupTrace("setting timeout");
                 prepareOperationTimeout(token, TIMEOUT_BACKUP_INTERVAL, this);
                 addBackupTrace("calling agent doBackup()");
-                agent.doBackup(mSavedState, mBackupData, mNewState, token, mBackupManagerBinder);
+
+                agent.doBackup(mSavedState, mBackupData, mNewState, quota, token,
+                        mBackupManagerBinder);
             } catch (Exception e) {
-                Slog.e(TAG, "Error invoking for backup on " + packageName);
+                Slog.e(TAG, "Error invoking for backup on " + packageName + ". " + e);
                 addBackupTrace("exception: " + e);
                 EventLog.writeEvent(EventLogTags.BACKUP_AGENT_FAILURE, packageName,
                         e.toString());
-                agentErrorCleanup();
-                return BackupTransport.AGENT_ERROR;
+                errorCleanup();
+                return callingAgent ? BackupTransport.AGENT_ERROR
+                        : BackupTransport.TRANSPORT_ERROR;
             } finally {
                 if (mNonIncremental) {
                     blankStateName.delete();
@@ -3068,8 +3100,8 @@
                                 mBackupHandler.removeMessages(MSG_TIMEOUT);
                                 sendBackupOnPackageResult(mObserver, pkgName,
                                         BackupManager.ERROR_AGENT_FAILURE);
-                                agentErrorCleanup();
-                                // agentErrorCleanup() implicitly executes next state properly
+                                errorCleanup();
+                                // errorCleanup() implicitly executes next state properly
                                 return;
                             }
                             in.skipEntityData();
@@ -3211,8 +3243,11 @@
             Slog.e(TAG, "Timeout backing up " + mCurrentPackage.packageName);
             EventLog.writeEvent(EventLogTags.BACKUP_AGENT_FAILURE, mCurrentPackage.packageName,
                     "timeout");
+            mMonitor = monitorEvent(mMonitor,
+                    BackupManagerMonitor.LOG_EVENT_ID_KEY_VALUE_BACKUP_TIMEOUT,
+                    mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT);
             addBackupTrace("timeout of " + mCurrentPackage.packageName);
-            agentErrorCleanup();
+            errorCleanup();
             dataChangedImpl(mCurrentPackage.packageName);
         }
 
@@ -3237,7 +3272,7 @@
 
         }
 
-        void agentErrorCleanup() {
+        void errorCleanup() {
             mBackupDataName.delete();
             mNewStateName.delete();
             clearAgentState();
@@ -3371,7 +3406,7 @@
                 this.notifyAll();
             }
         }
-        
+
     }
 
     private void routeSocketDataToOutput(ParcelFileDescriptor inPipe, OutputStream out)
@@ -3445,6 +3480,7 @@
         File mMetadataFile;
         boolean mIncludeApks;
         PackageInfo mPkg;
+        private final long mQuota;
 
         class FullBackupRunner implements Runnable {
             PackageInfo mPackage;
@@ -3500,7 +3536,7 @@
                     if (DEBUG) Slog.d(TAG, "Calling doFullBackup() on " + mPackage.packageName);
                     prepareOperationTimeout(mToken, TIMEOUT_FULL_BACKUP_INTERVAL,
                             mTimeoutMonitor /* in parent class */);
-                    mAgent.doFullBackup(mPipe, mToken, mBackupManagerBinder);
+                    mAgent.doFullBackup(mPipe, mQuota, mToken, mBackupManagerBinder);
                 } catch (IOException e) {
                     Slog.e(TAG, "Error running full backup for " + mPackage.packageName);
                 } catch (RemoteException e) {
@@ -3515,7 +3551,7 @@
         }
 
         FullBackupEngine(OutputStream output, FullBackupPreflight preflightHook, PackageInfo pkg,
-                         boolean alsoApks, BackupRestoreTask timeoutMonitor) {
+                         boolean alsoApks, BackupRestoreTask timeoutMonitor, long quota) {
             mOutput = output;
             mPreflightHook = preflightHook;
             mPkg = pkg;
@@ -3524,6 +3560,7 @@
             mFilesDir = new File("/data/system");
             mManifestFile = new File(mFilesDir, BACKUP_MANIFEST_FILENAME);
             mMetadataFile = new File(mFilesDir, BACKUP_METADATA_FILENAME);
+            mQuota = quota;
         }
 
         public int preflightCheck() throws RemoteException {
@@ -3829,7 +3866,7 @@
         String mCurrentPassword;
         String mEncryptPassword;
 
-        PerformAdbBackupTask(ParcelFileDescriptor fd, IFullBackupRestoreObserver observer, 
+        PerformAdbBackupTask(ParcelFileDescriptor fd, IFullBackupRestoreObserver observer,
                 boolean includeApks, boolean includeObbs, boolean includeShared,
                 boolean doWidgets, String curPassword, String encryptPassword, boolean doAllApps,
                 boolean doSystem, boolean doCompress, String[] packages, AtomicBoolean latch) {
@@ -4119,7 +4156,8 @@
                     final boolean isSharedStorage =
                             pkg.packageName.equals(SHARED_BACKUP_AGENT_PACKAGE);
 
-                    mBackupEngine = new FullBackupEngine(out, null, pkg, mIncludeApks, this);
+                    mBackupEngine = new FullBackupEngine(out, null, pkg, mIncludeApks,
+                            this /* BackupRestoreTask */, Long.MAX_VALUE /* quota */);
                     sendOnBackupPackage(isSharedStorage ? "Shared storage" : pkg.packageName);
 
                     // Don't need to check preflight result as there is no preflight hook.
@@ -4193,17 +4231,19 @@
     class PerformFullTransportBackupTask extends FullBackupTask {
         static final String TAG = "PFTBT";
         ArrayList<PackageInfo> mPackages;
+        PackageInfo mCurrentPackage;
         boolean mUpdateSchedule;
         CountDownLatch mLatch;
         AtomicBoolean mKeepRunning;     // signal from job scheduler
         FullBackupJob mJob;             // if a scheduled job needs to be finished afterwards
         IBackupObserver mBackupObserver;
+        IBackupManagerMonitor mMonitor;
         boolean mUserInitiated;
 
-        PerformFullTransportBackupTask(IFullBackupRestoreObserver observer, 
+        PerformFullTransportBackupTask(IFullBackupRestoreObserver observer,
                 String[] whichPackages, boolean updateSchedule,
                 FullBackupJob runningJob, CountDownLatch latch, IBackupObserver backupObserver,
-                boolean userInitiated) {
+                IBackupManagerMonitor monitor, boolean userInitiated) {
             super(observer);
             mUpdateSchedule = updateSchedule;
             mLatch = latch;
@@ -4211,12 +4251,14 @@
             mJob = runningJob;
             mPackages = new ArrayList<PackageInfo>(whichPackages.length);
             mBackupObserver = backupObserver;
+            mMonitor = monitor;
             mUserInitiated = userInitiated;
 
             for (String pkg : whichPackages) {
                 try {
                     PackageInfo info = mPackageManager.getPackageInfo(pkg,
                             PackageManager.GET_SIGNATURES);
+                    mCurrentPackage = info;
                     if (!appIsEligibleForBackup(info.applicationInfo)) {
                         // Cull any packages that have indicated that backups are not permitted,
                         // that run as system-domain uids but do not define their own backup agents,
@@ -4308,6 +4350,9 @@
                     int backupPackageStatus = transport.performFullBackup(currentPackage,
                             transportPipes[0], flags);
                     if (backupPackageStatus == BackupTransport.TRANSPORT_OK) {
+                        final long quota = transport.getBackupQuota(currentPackage.packageName,
+                                true /* isFullBackup */);
+
                         // The transport has its own copy of the read end of the pipe,
                         // so close ours now
                         transportPipes[0].close();
@@ -4315,9 +4360,10 @@
 
                         // Now set up the backup engine / data source end of things
                         enginePipes = ParcelFileDescriptor.createPipe();
+
                         SinglePackageBackupRunner backupRunner =
                                 new SinglePackageBackupRunner(enginePipes[1], currentPackage,
-                                        transport);
+                                        transport, quota);
                         // The runner dup'd the pipe half, so we close it here
                         enginePipes[1].close();
                         enginePipes[1] = null;
@@ -4370,7 +4416,6 @@
 
                             // Despite preflight succeeded, package still can hit quota on flight.
                             if (backupPackageStatus == BackupTransport.TRANSPORT_QUOTA_EXCEEDED) {
-                                long quota = transport.getBackupQuota(packageName, true);
                                 Slog.w(TAG, "Package hit quota limit in-flight " + packageName
                                         + ": " + totalRead + " of " + quota);
                                 backupRunner.sendQuotaExceeded(totalRead, quota);
@@ -4555,9 +4600,11 @@
             final AtomicLong mResult = new AtomicLong(BackupTransport.AGENT_ERROR);
             final CountDownLatch mLatch = new CountDownLatch(1);
             final IBackupTransport mTransport;
+            final long mQuota;
 
-            public SinglePackageBackupPreflight(IBackupTransport transport) {
+            public SinglePackageBackupPreflight(IBackupTransport transport, long quota) {
                 mTransport = transport;
+                mQuota = quota;
             }
 
             @Override
@@ -4570,7 +4617,7 @@
                     if (MORE_DEBUG) {
                         Slog.d(TAG, "Preflighting full payload of " + pkg.packageName);
                     }
-                    agent.doMeasureFullBackup(token, mBackupManagerBinder);
+                    agent.doMeasureFullBackup(mQuota, token, mBackupManagerBinder);
 
                     // Now wait to get our result back.  If this backstop timeout is reached without
                     // the latch being thrown, flow will continue as though a result or "normal"
@@ -4590,12 +4637,11 @@
 
                     result = mTransport.checkFullBackupSize(totalSize);
                     if (result == BackupTransport.TRANSPORT_QUOTA_EXCEEDED) {
-                        final long quota = mTransport.getBackupQuota(pkg.packageName, true);
                         if (MORE_DEBUG) {
                             Slog.d(TAG, "Package hit quota limit on preflight " +
-                                    pkg.packageName + ": " + totalSize + " of " + quota);
+                                    pkg.packageName + ": " + totalSize + " of " + mQuota);
                         }
-                        agent.doQuotaExceeded(totalSize, quota);
+                        agent.doQuotaExceeded(totalSize, mQuota);
                     }
                 } catch (Exception e) {
                     Slog.w(TAG, "Exception preflighting " + pkg.packageName + ": " + e.getMessage());
@@ -4648,22 +4694,24 @@
             private FullBackupEngine mEngine;
             private volatile int mPreflightResult;
             private volatile int mBackupResult;
+            private final long mQuota;
 
             SinglePackageBackupRunner(ParcelFileDescriptor output, PackageInfo target,
-                    IBackupTransport transport) throws IOException {
+                    IBackupTransport transport, long quota) throws IOException {
                 mOutput = ParcelFileDescriptor.dup(output.getFileDescriptor());
                 mTarget = target;
-                mPreflight = new SinglePackageBackupPreflight(transport);
+                mPreflight = new SinglePackageBackupPreflight(transport, quota);
                 mPreflightLatch = new CountDownLatch(1);
                 mBackupLatch = new CountDownLatch(1);
                 mPreflightResult = BackupTransport.AGENT_ERROR;
                 mBackupResult = BackupTransport.AGENT_ERROR;
+                mQuota = quota;
             }
 
             @Override
             public void run() {
                 FileOutputStream out = new FileOutputStream(mOutput.getFileDescriptor());
-                mEngine = new FullBackupEngine(out, mPreflight, mTarget, false, this);
+                mEngine = new FullBackupEngine(out, mPreflight, mTarget, false, this, mQuota);
                 try {
                     try {
                         mPreflightResult = mEngine.preflightCheck();
@@ -4728,6 +4776,9 @@
                 if (DEBUG) {
                     Slog.w(TAG, "Full backup timeout of " + mTarget.packageName);
                 }
+                mMonitor = monitorEvent(mMonitor,
+                        BackupManagerMonitor.LOG_EVENT_ID_FULL_BACKUP_TIMEOUT,
+                        mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT);
                 tearDownAgentAndKill(mTarget.applicationInfo);
             }
         }
@@ -4989,7 +5040,7 @@
             CountDownLatch latch = new CountDownLatch(1);
             String[] pkg = new String[] {entry.packageName};
             mRunningFullBackupTask = new PerformFullTransportBackupTask(null, pkg, true,
-                    scheduledJob, latch, null, false /* userInitiated */);
+                    scheduledJob, latch, null, null, false /* userInitiated */);
             // Acquiring wakelock for PerformFullTransportBackupTask before its start.
             mWakelock.acquire();
             (new Thread(mRunningFullBackupTask)).start();
@@ -7757,6 +7808,9 @@
         // Restore observer; may be null
         private IRestoreObserver mObserver;
 
+        // BackuoManagerMonitor; may be null
+        private IBackupManagerMonitor mMonitor;
+
         // Token identifying the dataset to the transport
         private long mToken;
 
@@ -7821,13 +7875,14 @@
         // Invariant: mWakelock is already held, and this task is responsible for
         // releasing it at the end of the restore operation.
         PerformUnifiedRestoreTask(IBackupTransport transport, IRestoreObserver observer,
-                long restoreSetToken, PackageInfo targetPackage, int pmToken,
-                boolean isFullSystemRestore, String[] filterSet) {
+                IBackupManagerMonitor monitor, long restoreSetToken, PackageInfo targetPackage,
+                int pmToken, boolean isFullSystemRestore, String[] filterSet) {
             mState = UnifiedRestoreState.INITIAL;
             mStartRealtime = SystemClock.elapsedRealtime();
 
             mTransport = transport;
             mObserver = observer;
+            mMonitor = monitor;
             mToken = restoreSetToken;
             mPmToken = pmToken;
             mTargetPackage = targetPackage;
@@ -7947,20 +8002,20 @@
 
         /*
          * SKETCH OF OPERATION
-         * 
+         *
          * create one of these PerformUnifiedRestoreTask objects, telling it which
          * dataset & transport to address, and then parameters within the restore
          * operation: single target package vs many, etc.
          *
          * 1. transport.startRestore(token, list-of-packages).  If we need @pm@  it is
          * always placed first and the settings provider always placed last [for now].
-         * 
+         *
          * 1a [if we needed @pm@ then nextRestorePackage() and restore the PMBA inline]
-         * 
+         *
          *   [ state change => RUNNING_QUEUE ]
-         * 
+         *
          * NOW ITERATE:
-         * 
+         *
          * { 3. t.nextRestorePackage()
          *   4. does the metadata for this package allow us to restore it?
          *      does the on-disk app permit us to restore it? [re-check allowBackup etc]
@@ -7971,7 +8026,7 @@
          *       5c. call into agent to perform restore
          *       5d. tear down agent
          *       [ state change => RUNNING_QUEUE ]
-         * 
+         *
          *   6. else it's a stream dataset:
          *       [ state change => RESTORE_FULL ]
          *       6a. instantiate the engine for a stream restore: engine handles agent lifecycles
@@ -7979,12 +8034,12 @@
          *       6c. ITERATE getNextFullRestoreDataChunk() and copy data to engine runner socket
          *       [ state change => RUNNING_QUEUE ]
          * }
-         * 
+         *
          *   [ state change => FINAL ]
-         * 
+         *
          * 7. t.finishRestore(), release wakelock, etc.
-         * 
-         * 
+         *
+         *
          */
 
         // state INITIAL : set up for the restore and read the metadata if necessary
@@ -8554,6 +8609,8 @@
                 if (DEBUG) {
                     Slog.w(TAG, "Full-data restore target timed out; shutting down");
                 }
+                mMonitor = monitorEvent(mMonitor, BackupManagerMonitor.LOG_EVENT_ID_FULL_RESTORE_TIMEOUT,
+                        mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT);
                 mEngineThread.handleTimeout();
 
                 IoUtils.closeQuietly(mEnginePipes[1]);
@@ -8797,6 +8854,8 @@
         @Override
         public void handleTimeout() {
             Slog.e(TAG, "Timeout restoring application " + mCurrentPackage.packageName);
+            mMonitor = monitorEvent(mMonitor, BackupManagerMonitor.LOG_EVENT_ID_KEY_VALUE_RESTORE_TIMEOUT,
+                    mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT);
             EventLog.writeEvent(EventLogTags.RESTORE_AGENT_FAILURE,
                     mCurrentPackage.packageName, "restore timeout");
             // Handle like an agent that threw on invocation: wipe it and go on to the next
@@ -9243,7 +9302,7 @@
             try {
                 CountDownLatch latch = new CountDownLatch(1);
                 PerformFullTransportBackupTask task = new PerformFullTransportBackupTask(null,
-                        pkgNames, false, null, latch, null, false /* userInitiated */);
+                        pkgNames, false, null, latch, null, null, false /* userInitiated */);
                 // Acquiring wakelock for PerformFullTransportBackupTask before its start.
                 mWakelock.acquire();
                 (new Thread(task, "full-transport-master")).start();
@@ -9573,7 +9632,14 @@
 
     public String[] getTransportWhitelist() {
         // No permission check, intentionally.
-        return mTransportManager.getTransportWhitelist().toArray(new String[0]);
+        Set<ComponentName> whitelistedComponents = mTransportManager.getTransportWhitelist();
+        String[] whitelistedTransports = new String[whitelistedComponents.size()];
+        int i = 0;
+        for (ComponentName component : whitelistedComponents) {
+            whitelistedTransports[i] = component.flattenToShortString();
+            i++;
+        }
+        return whitelistedTransports;
     }
 
     // Select which transport to use for the next backup operation.
@@ -9804,7 +9870,7 @@
                     Slog.d(TAG, "Restore at install of " + packageName);
                 }
                 Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
-                msg.obj = new RestoreParams(transport, dirName, null,
+                msg.obj = new RestoreParams(transport, dirName, null, null,
                         restoreSet, packageName, token);
                 mBackupHandler.sendMessage(msg);
             } catch (Exception e) {
@@ -9962,7 +10028,8 @@
         }
 
         // --- Binder interface ---
-        public synchronized int getAvailableRestoreSets(IRestoreObserver observer) {
+        public synchronized int getAvailableRestoreSets(IRestoreObserver observer,
+                IBackupManagerMonitor monitor) {
             mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
                     "getAvailableRestoreSets");
             if (observer == null) {
@@ -9993,7 +10060,8 @@
                 // spin off the transport request to our service thread
                 mWakelock.acquire();
                 Message msg = mBackupHandler.obtainMessage(MSG_RUN_GET_RESTORE_SETS,
-                        new RestoreGetSetsParams(mRestoreTransport, this, observer));
+                        new RestoreGetSetsParams(mRestoreTransport, this, observer,
+                                monitor));
                 mBackupHandler.sendMessage(msg);
                 return 0;
             } catch (Exception e) {
@@ -10004,7 +10072,8 @@
             }
         }
 
-        public synchronized int restoreAll(long token, IRestoreObserver observer) {
+        public synchronized int restoreAll(long token, IRestoreObserver observer,
+                IBackupManagerMonitor monitor) {
             mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
                     "performRestore");
 
@@ -10052,7 +10121,7 @@
                         }
                         Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
                         msg.obj = new RestoreParams(mRestoreTransport, dirName,
-                                observer, token);
+                                observer, monitor, token);
                         mBackupHandler.sendMessage(msg);
                         Binder.restoreCallingIdentity(oldId);
                         return 0;
@@ -10066,7 +10135,7 @@
 
         // Restores of more than a single package are treated as 'system' restores
         public synchronized int restoreSome(long token, IRestoreObserver observer,
-                String[] packages) {
+                IBackupManagerMonitor monitor, String[] packages) {
             mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
                     "performRestore");
 
@@ -10076,6 +10145,12 @@
                 b.append(Long.toHexString(token));
                 b.append(" observer=");
                 b.append(observer.toString());
+                b.append(" monitor=");
+                if (monitor == null) {
+                    b.append("null");
+                } else {
+                    b.append(monitor.toString());
+                }
                 b.append(" packages=");
                 if (packages == null) {
                     b.append("null");
@@ -10133,8 +10208,8 @@
                             Slog.d(TAG, "restoreSome() of " + packages.length + " packages");
                         }
                         Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
-                        msg.obj = new RestoreParams(mRestoreTransport, dirName, observer, token,
-                                packages, packages.length > 1);
+                        msg.obj = new RestoreParams(mRestoreTransport, dirName, observer, monitor,
+                                token, packages, packages.length > 1);
                         mBackupHandler.sendMessage(msg);
                         Binder.restoreCallingIdentity(oldId);
                         return 0;
@@ -10146,8 +10221,10 @@
             return -1;
         }
 
-        public synchronized int restorePackage(String packageName, IRestoreObserver observer) {
-            if (DEBUG) Slog.v(TAG, "restorePackage pkg=" + packageName + " obs=" + observer);
+        public synchronized int restorePackage(String packageName, IRestoreObserver observer,
+                IBackupManagerMonitor monitor) {
+            if (DEBUG) Slog.v(TAG, "restorePackage pkg=" + packageName + " obs=" + observer
+                    + "monitor=" + monitor);
 
             if (mEnded) {
                 throw new IllegalStateException("Restore session already ended");
@@ -10220,7 +10297,8 @@
                     Slog.d(TAG, "restorePackage() : " + packageName);
                 }
                 Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
-                msg.obj = new RestoreParams(mRestoreTransport, dirName, observer, token, app);
+                msg.obj = new RestoreParams(mRestoreTransport, dirName, observer, monitor,
+                        token, app);
                 mBackupHandler.sendMessage(msg);
             } finally {
                 Binder.restoreCallingIdentity(oldId);
@@ -10432,4 +10510,28 @@
             }
         }
     }
+
+    private static IBackupManagerMonitor monitorEvent(IBackupManagerMonitor monitor, int id,
+            PackageInfo pkg, int category) {
+        if (monitor != null) {
+            try {
+                Bundle bundle = new Bundle();
+                bundle.putInt(BackupManagerMonitor.EXTRA_LOG_EVENT_ID, id);
+                bundle.putInt(BackupManagerMonitor.EXTRA_LOG_EVENT_CATEGORY, category);
+                if (pkg != null) {
+                    bundle.putString(BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_NAME,
+                            pkg.packageName);
+                    bundle.putInt(BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_VERSION,
+                            pkg.versionCode);
+                }
+                monitor.onEvent(bundle);
+                return monitor;
+            } catch(RemoteException e) {
+                if (DEBUG) {
+                    Slog.w(TAG, "backup manager monitor went away");
+                }
+            }
+        }
+        return null;
+    }
 }
diff --git a/services/backup/java/com/android/server/backup/Trampoline.java b/services/backup/java/com/android/server/backup/Trampoline.java
index a1a2c95..da0cee5 100644
--- a/services/backup/java/com/android/server/backup/Trampoline.java
+++ b/services/backup/java/com/android/server/backup/Trampoline.java
@@ -18,6 +18,7 @@
 
 import android.app.backup.IBackupManager;
 import android.app.backup.IBackupObserver;
+import android.app.backup.IBackupManagerMonitor;
 import android.app.backup.IFullBackupRestoreObserver;
 import android.app.backup.IRestoreSession;
 import android.app.backup.ISelectBackupTransportCallback;
@@ -355,10 +356,10 @@
     }
 
     @Override
-    public int requestBackup(String[] packages, IBackupObserver observer, int flags)
-            throws RemoteException {
+    public int requestBackup(String[] packages, IBackupObserver observer,
+            IBackupManagerMonitor monitor, int flags) throws RemoteException {
         BackupManagerService svc = mService;
-        return (svc != null) ? svc.requestBackup(packages, observer, flags) : null;
+        return (svc != null) ? svc.requestBackup(packages, observer, monitor, flags) : null;
     }
 
     @Override
diff --git a/services/backup/java/com/android/server/backup/TransportManager.java b/services/backup/java/com/android/server/backup/TransportManager.java
index 93d5a1e..b9dbe13 100644
--- a/services/backup/java/com/android/server/backup/TransportManager.java
+++ b/services/backup/java/com/android/server/backup/TransportManager.java
@@ -31,6 +31,7 @@
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.util.ArrayMap;
+import android.util.ArraySet;
 import android.util.EventLog;
 import android.util.Log;
 import android.util.Slog;
@@ -84,7 +85,7 @@
             TransportBoundListener listener) {
         mContext = context;
         mPackageManager = context.getPackageManager();
-        mTransportWhitelist = whitelist;
+        mTransportWhitelist = (whitelist != null) ? whitelist : new ArraySet<>();
         mCurrentTransportName = defaultTransport;
         mTransportBoundListener = listener;
     }
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
index 97edb15..44ca6a9 100644
--- a/services/core/java/com/android/server/DeviceIdleController.java
+++ b/services/core/java/com/android/server/DeviceIdleController.java
@@ -1252,11 +1252,20 @@
     }
 
     public class LocalService {
+        // duration in milliseconds
+        public void addPowerSaveTempWhitelistApp(int callingUid, String packageName,
+                long duration, int userId, boolean sync, String reason) {
+            addPowerSaveTempWhitelistAppInternal(callingUid, packageName, duration,
+                    userId, sync, reason);
+        }
+
+        // duration in milliseconds
         public void addPowerSaveTempWhitelistAppDirect(int appId, long duration, boolean sync,
                 String reason) {
             addPowerSaveTempWhitelistAppDirectInternal(0, appId, duration, sync, reason);
         }
 
+        // duration in milliseconds
         public long getNotificationWhitelistDuration() {
             return mConstants.NOTIFICATION_WHITELIST_DURATION;
         }
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index 08cb109..5935600 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -21,6 +21,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
+import com.android.internal.annotations.GuardedBy;
 import com.android.internal.content.PackageMonitor;
 import com.android.internal.inputmethod.IInputContentUriToken;
 import com.android.internal.inputmethod.InputMethodSubtypeSwitchingController;
@@ -123,6 +124,7 @@
 import android.view.WindowManagerInternal;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputBinding;
+import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputConnectionInspector;
 import android.view.inputmethod.InputMethod;
 import android.view.inputmethod.InputMethodInfo;
@@ -151,6 +153,7 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
+import java.util.WeakHashMap;
 
 /**
  * This class provides a system service that manages input methods.
@@ -174,13 +177,13 @@
     static final int MSG_CREATE_SESSION = 1050;
 
     static final int MSG_START_INPUT = 2000;
-    static final int MSG_RESTART_INPUT = 2010;
 
     static final int MSG_UNBIND_CLIENT = 3000;
     static final int MSG_BIND_CLIENT = 3010;
     static final int MSG_SET_ACTIVE = 3020;
     static final int MSG_SET_INTERACTIVE = 3030;
     static final int MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER = 3040;
+    static final int MSG_REPORT_FULLSCREEN_MODE = 3045;
     static final int MSG_SWITCH_IME = 3050;
 
     static final int MSG_HARD_KEYBOARD_SWITCH_CHANGED = 4000;
@@ -225,6 +228,12 @@
             new LruCache<>(SECURE_SUGGESTION_SPANS_MAX_SIZE);
     private final InputMethodSubtypeSwitchingController mSwitchingController;
 
+    /**
+     * Tracks how many times {@link #mMethodMap} was updated.
+     */
+    @GuardedBy("mMethodMap")
+    private int mMethodMapUpdateCount = 0;
+
     // Used to bring IME service up to visible adjustment while it is being shown.
     final ServiceConnection mVisibleConnection = new ServiceConnection() {
         @Override public void onServiceConnected(ComponentName name, IBinder service) {
@@ -340,6 +349,13 @@
     IBinder mCurFocusedWindow;
 
     /**
+     * {@link WindowManager.LayoutParams#softInputMode} of {@link #mCurFocusedWindow}.
+     *
+     * @see #mCurFocusedWindow
+     */
+    int mCurFocusedWindowSoftInputMode;
+
+    /**
      * The client by which {@link #mCurFocusedWindow} was reported.  Used only for debugging.
      */
     ClientState mCurFocusedWindowClient;
@@ -411,6 +427,11 @@
     boolean mInputShown;
 
     /**
+     * {@code true} if the current input method is in fullscreen mode.
+     */
+    boolean mInFullscreenMode;
+
+    /**
      * The Intent used to connect to the current input method.
      */
     Intent mCurIntent;
@@ -487,6 +508,36 @@
     @HardKeyboardBehavior
     private final int mHardKeyboardBehavior;
 
+    /**
+     * Internal state snapshot when {@link #MSG_START_INPUT} message is about to be posted to the
+     * internal message queue. Any subsequent state change inside {@link InputMethodManagerService}
+     * will not affect those tasks that are already posted.
+     *
+     * <p>Posting {@link #MSG_START_INPUT} message basically means that
+     * {@link InputMethodService#doStartInput(InputConnection, EditorInfo, boolean)} will be called
+     * back in the current IME process shortly, which will also affect what the current IME starts
+     * receiving from {@link InputMethodService#getCurrentInputConnection()}. In other words, this
+     * snapshot will be taken every time when {@link InputMethodManagerService} is initiating a new
+     * logical input session between the client application and the current IME.</p>
+     *
+     * <p>Be careful to not keep strong references to this object forever, which can prevent
+     * {@link StartInputInfo#mImeToken} and {@link StartInputInfo#mTargetWindow} from being GC-ed.
+     * </p>
+     */
+    private static class StartInputInfo {
+        @NonNull
+        final IBinder mImeToken;
+        @Nullable
+        final IBinder mTargetWindow;
+
+        StartInputInfo(@NonNull IBinder imeToken, @Nullable IBinder targetWindow) {
+            mImeToken = imeToken;
+            mTargetWindow = targetWindow;
+        }
+    }
+
+    private WeakHashMap<IBinder, StartInputInfo> mStartInputMap = new WeakHashMap<>();
+
     class SettingsObserver extends ContentObserver {
         int mUserId;
         boolean mRegistered = false;
@@ -587,15 +638,35 @@
                     restoreEnabledInputMethods(mContext, prevValue, newValue);
                 }
             } else if (Intent.ACTION_LOCALE_CHANGED.equals(action)) {
-                synchronized (mMethodMap) {
-                    resetStateIfCurrentLocaleChangedLocked();
-                }
+                onActionLocaleChanged();
             } else {
                 Slog.w(TAG, "Unexpected intent " + intent);
             }
         }
     }
 
+    /**
+     * Handles {@link Intent#ACTION_LOCALE_CHANGED}.
+     *
+     * <p>Note: For historical reasons, {@link Intent#ACTION_LOCALE_CHANGED} has been sent to all
+     * the users. We should ignore this event if this is about any background user's locale.</p>
+     *
+     * <p>Caution: This method must not be called when system is not ready.</p>
+     */
+    void onActionLocaleChanged() {
+        synchronized (mMethodMap) {
+            final LocaleList possibleNewLocale = mRes.getConfiguration().getLocales();
+            if (possibleNewLocale != null && possibleNewLocale.equals(mLastSystemLocales)) {
+                return;
+            }
+            buildInputMethodListLocked(true);
+            // If the locale is changed, needs to reset the default ime
+            resetDefaultImeLocked(mContext);
+            updateFromSettingsLocked(true);
+            mLastSystemLocales = possibleNewLocale;
+        }
+    }
+
     // Apply the results of a restore operation to the set of enabled IMEs.  Note that this
     // does not attempt to validate on the fly with any installed device policy, so must only
     // be run in the context of initial device setup.
@@ -634,7 +705,28 @@
                 Settings.Secure.ENABLED_INPUT_METHODS, mergedImesAndSubtypesString);
     }
 
-    class MyPackageMonitor extends PackageMonitor {
+    final class MyPackageMonitor extends PackageMonitor {
+        /**
+         * Set of packages to be monitored.
+         *
+         * <p>No need to include packages because of direct-boot unaware IMEs since we always rescan
+         * all the packages when the user is unlocked, and direct-boot awareness will not be changed
+         * dynamically unless the entire package is updated, which also always triggers package
+         * rescanning.</p>
+         */
+        @GuardedBy("mMethodMap")
+        private ArraySet<String> mPackagesToMonitorComponentChange = new ArraySet<>();
+
+        @GuardedBy("mMethodMap")
+        void clearPackagesToMonitorComponentChangeLocked() {
+            mPackagesToMonitorComponentChange.clear();
+        }
+
+        @GuardedBy("mMethodMap")
+        final void addPackageToMonitorComponentChangeLocked(@NonNull String packageName) {
+            mPackagesToMonitorComponentChange.add(packageName);
+        }
+
         private boolean isChangingPackagesOfCurrentUser() {
             final int userId = getChangingUserId();
             final boolean retval = userId == mSettings.getCurrentUserId();
@@ -676,6 +768,14 @@
         }
 
         @Override
+        public boolean onPackageChanged(String packageName, int uid, String[] components) {
+            // If this package is in the watch list, we want to check it.
+            synchronized (mMethodMap) {
+                return mPackagesToMonitorComponentChange.contains(packageName);
+            }
+        }
+
+        @Override
         public void onSomePackagesChanged() {
             if (!isChangingPackagesOfCurrentUser()) {
                 return;
@@ -938,51 +1038,6 @@
         setSelectedInputMethodAndSubtypeLocked(defIm, NOT_A_SUBTYPE_ID, false);
     }
 
-    private void resetAllInternalStateLocked(final boolean updateOnlyWhenLocaleChanged,
-            final boolean resetDefaultEnabledIme) {
-        if (!mSystemReady) {
-            // not system ready
-            return;
-        }
-        final LocaleList newLocales = mRes.getConfiguration().getLocales();
-        if (!updateOnlyWhenLocaleChanged
-                || (newLocales != null && !newLocales.equals(mLastSystemLocales))) {
-            if (!updateOnlyWhenLocaleChanged) {
-                hideCurrentInputLocked(0, null);
-                resetCurrentMethodAndClient(InputMethodClient.UNBIND_REASON_RESET_IME);
-            }
-            if (DEBUG) {
-                Slog.i(TAG, "LocaleList has been changed to " + newLocales);
-            }
-            buildInputMethodListLocked(resetDefaultEnabledIme);
-            if (!updateOnlyWhenLocaleChanged) {
-                final String selectedImiId = mSettings.getSelectedInputMethod();
-                if (TextUtils.isEmpty(selectedImiId)) {
-                    // This is the first time of the user switch and
-                    // set the current ime to the proper one.
-                    resetDefaultImeLocked(mContext);
-                }
-            } else {
-                // If the locale is changed, needs to reset the default ime
-                resetDefaultImeLocked(mContext);
-            }
-            updateFromSettingsLocked(true);
-            mLastSystemLocales = newLocales;
-            if (!updateOnlyWhenLocaleChanged) {
-                try {
-                    startInputInnerLocked();
-                } catch (RuntimeException e) {
-                    Slog.w(TAG, "Unexpected exception", e);
-                }
-            }
-        }
-    }
-
-    private void resetStateIfCurrentLocaleChangedLocked() {
-        resetAllInternalStateLocked(true /* updateOnlyWhenLocaleChanged */,
-                true /* resetDefaultImeLocked */);
-    }
-
     private void switchUserLocked(int newUserId) {
         if (DEBUG) Slog.d(TAG, "Switching user stage 1/3. newUserId=" + newUserId
                 + " currentUserId=" + mSettings.getCurrentUserId());
@@ -1009,8 +1064,26 @@
         // Even in such cases, IMMS works fine because it will find the most applicable
         // IME for that user.
         final boolean initialUserSwitch = TextUtils.isEmpty(defaultImiId);
-        resetAllInternalStateLocked(false  /* updateOnlyWhenLocaleChanged */,
-                initialUserSwitch /* needsToResetDefaultIme */);
+        mLastSystemLocales = mRes.getConfiguration().getLocales();
+
+        // TODO: Is it really possible that switchUserLocked() happens before system ready?
+        if (mSystemReady) {
+            hideCurrentInputLocked(0, null);
+            resetCurrentMethodAndClient(InputMethodClient.UNBIND_REASON_SWITCH_USER);
+            buildInputMethodListLocked(initialUserSwitch);
+            if (TextUtils.isEmpty(mSettings.getSelectedInputMethod())) {
+                // This is the first time of the user switch and
+                // set the current ime to the proper one.
+                resetDefaultImeLocked(mContext);
+            }
+            updateFromSettingsLocked(true);
+            try {
+                startInputInnerLocked();
+            } catch (RuntimeException e) {
+                Slog.w(TAG, "Unexpected exception", e);
+            }
+        }
+
         if (initialUserSwitch) {
             InputMethodUtils.setNonSelectedSystemImesDisabledUntilUsed(mIPackageManager,
                     mSettings.getEnabledInputMethodListLocked(), newUserId,
@@ -1265,8 +1338,8 @@
                 }
             }
 
-            executeOrSendMessage(mCurClient.client, mCaller.obtainMessageIO(
-                    MSG_SET_ACTIVE, 0, mCurClient));
+            executeOrSendMessage(mCurClient.client, mCaller.obtainMessageIIO(
+                    MSG_SET_ACTIVE, 0, 0, mCurClient));
             executeOrSendMessage(mCurClient.client, mCaller.obtainMessageIIO(
                     MSG_UNBIND_CLIENT, mCurSeq, unbindClientReason, mCurClient.client));
             mCurClient.sessionRequested = false;
@@ -1304,16 +1377,15 @@
                     MSG_BIND_INPUT, mCurMethod, mCurClient.binding));
             mBoundToMethod = true;
         }
+
+        final Binder startInputToken = new Binder();
+        final StartInputInfo info = new StartInputInfo(mCurToken, mCurFocusedWindow);
+        mStartInputMap.put(startInputToken, info);
+
         final SessionState session = mCurClient.curSession;
-        if (initial) {
-            executeOrSendMessage(session.method, mCaller.obtainMessageIOOO(
-                    MSG_START_INPUT, mCurInputContextMissingMethods, session, mCurInputContext,
-                    mCurAttribute));
-        } else {
-            executeOrSendMessage(session.method, mCaller.obtainMessageIOOO(
-                    MSG_RESTART_INPUT, mCurInputContextMissingMethods, session, mCurInputContext,
-                    mCurAttribute));
-        }
+        executeOrSendMessage(session.method, mCaller.obtainMessageIIOOOO(
+                MSG_START_INPUT, mCurInputContextMissingMethods, initial ? 0 : 1 /* restarting */,
+                startInputToken, session, mCurInputContext, mCurAttribute));
         if (mShowRequested) {
             if (DEBUG) Slog.v(TAG, "Attach new input asks to show input");
             showCurrentInputLocked(getAppShowFlags(), null);
@@ -1649,6 +1721,7 @@
         if (mStatusBar != null) {
             mStatusBar.setIconVisibility(mSlotIme, false);
         }
+        mInFullscreenMode = false;
     }
 
     @Override
@@ -1780,12 +1853,21 @@
 
     @SuppressWarnings("deprecation")
     @Override
-    public void setImeWindowStatus(IBinder token, int vis, int backDisposition) {
+    public void setImeWindowStatus(IBinder token, IBinder startInputToken, int vis,
+            int backDisposition) {
+        if (startInputToken == null) {
+            throw new InvalidParameterException("startInputToken cannot be null");
+        }
+
         if (!calledWithValidToken(token)) {
             return;
         }
 
         synchronized (mMethodMap) {
+            final StartInputInfo info = mStartInputMap.get(startInputToken);
+            if (info == null) {
+                throw new InvalidParameterException("Unknown startInputToken=" + startInputToken);
+            }
             mImeWindowVis = vis;
             mBackDisposition = backDisposition;
             updateSystemUiLocked(token, vis, backDisposition);
@@ -2235,7 +2317,8 @@
 
     private InputBindResult windowGainedFocus(
             /* @InputMethodClient.StartInputReason */ final int startInputReason,
-            IInputMethodClient client, IBinder windowToken, int controlFlags, int softInputMode,
+            IInputMethodClient client, IBinder windowToken, int controlFlags,
+            /* @android.view.WindowManager.LayoutParams.SoftInputModeFlags */ int softInputMode,
             int windowFlags, EditorInfo attribute, IInputContext inputContext,
             /* @InputConnectionInspector.missingMethods */  final int missingMethods) {
         // Needs to check the validity before clearing calling identity
@@ -2252,7 +2335,7 @@
                         + InputConnectionInspector.getMissingMethodFlagsAsString(missingMethods)
                         + " attribute=" + attribute
                         + " controlFlags=#" + Integer.toHexString(controlFlags)
-                        + " softInputMode=#" + Integer.toHexString(softInputMode)
+                        + " softInputMode=" + InputMethodClient.softInputModeToString(softInputMode)
                         + " windowFlags=#" + Integer.toHexString(windowFlags));
 
                 ClientState cs = mClients.get(client.asBinder());
@@ -2297,6 +2380,7 @@
                     return null;
                 }
                 mCurFocusedWindow = windowToken;
+                mCurFocusedWindowSoftInputMode = softInputMode;
                 mCurFocusedWindowClient = cs;
 
                 // Should we auto-show the IME even if the caller has not
@@ -2860,26 +2944,17 @@
             // ---------------------------------------------------------
 
             case MSG_START_INPUT: {
-                int missingMethods = msg.arg1;
+                final int missingMethods = msg.arg1;
+                final boolean restarting = msg.arg2 != 0;
                 args = (SomeArgs) msg.obj;
+                final IBinder startInputToken = (IBinder) args.arg1;
+                final SessionState session = (SessionState) args.arg2;
+                final IInputContext inputContext = (IInputContext) args.arg3;
+                final EditorInfo editorInfo = (EditorInfo) args.arg4;
                 try {
-                    SessionState session = (SessionState) args.arg1;
                     setEnabledSessionInMainThread(session);
-                    session.method.startInput((IInputContext) args.arg2, missingMethods,
-                            (EditorInfo) args.arg3);
-                } catch (RemoteException e) {
-                }
-                args.recycle();
-                return true;
-            }
-            case MSG_RESTART_INPUT: {
-                int missingMethods = msg.arg1;
-                args = (SomeArgs) msg.obj;
-                try {
-                    SessionState session = (SessionState) args.arg1;
-                    setEnabledSessionInMainThread(session);
-                    session.method.restartInput((IInputContext) args.arg2, missingMethods,
-                            (EditorInfo) args.arg3);
+                    session.method.startInput(startInputToken, inputContext, missingMethods,
+                            editorInfo, restarting);
                 } catch (RemoteException e) {
                 }
                 args.recycle();
@@ -2915,7 +2990,7 @@
             }
             case MSG_SET_ACTIVE:
                 try {
-                    ((ClientState)msg.obj).client.setActive(msg.arg1 != 0);
+                    ((ClientState)msg.obj).client.setActive(msg.arg1 != 0, msg.arg2 != 0);
                 } catch (RemoteException e) {
                     Slog.w(TAG, "Got RemoteException sending setActive(false) notification to pid "
                             + ((ClientState)msg.obj).pid + " uid "
@@ -2942,6 +3017,18 @@
                 }
                 return true;
             }
+            case MSG_REPORT_FULLSCREEN_MODE: {
+                final boolean fullscreen = msg.arg1 != 0;
+                final ClientState clientState = (ClientState)msg.obj;
+                try {
+                    clientState.client.reportFullscreenMode(fullscreen);
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Got RemoteException sending "
+                            + "reportFullscreen(" + fullscreen + ") notification to pid="
+                            + clientState.pid + " uid=" + clientState.uid);
+                }
+                return true;
+            }
 
             // --------------------------------------------------------------
             case MSG_HARD_KEYBOARD_SWITCH_CHANGED:
@@ -2962,8 +3049,9 @@
 
             // Inform the current client of the change in active status
             if (mCurClient != null && mCurClient.client != null) {
-                executeOrSendMessage(mCurClient.client, mCaller.obtainMessageIO(
-                        MSG_SET_ACTIVE, mIsInteractive ? 1 : 0, mCurClient));
+                executeOrSendMessage(mCurClient.client, mCaller.obtainMessageIIO(
+                        MSG_SET_ACTIVE, mIsInteractive ? 1 : 0, mInFullscreenMode ? 1 : 0,
+                        mCurClient));
             }
         }
     }
@@ -3019,6 +3107,8 @@
         }
         mMethodList.clear();
         mMethodMap.clear();
+        mMethodMapUpdateCount++;
+        mMyPackageMonitor.clearPackagesToMonitorComponentChangeLocked();
 
         // Use for queryIntentServicesAsUser
         final PackageManager pm = mContext.getPackageManager();
@@ -3061,6 +3151,26 @@
             }
         }
 
+        // Construct the set of possible IME packages for onPackageChanged() to avoid false
+        // negatives when the package state remains to be the same but only the component state is
+        // changed.
+        {
+            // Here we intentionally use PackageManager.MATCH_DISABLED_COMPONENTS since the purpose
+            // of this query is to avoid false negatives.  PackageManager.MATCH_ALL could be more
+            // conservative, but it seems we cannot use it for now (Issue 35176630).
+            final List<ResolveInfo> allInputMethodServices = pm.queryIntentServicesAsUser(
+                    new Intent(InputMethod.SERVICE_INTERFACE),
+                    PackageManager.MATCH_DISABLED_COMPONENTS, mSettings.getCurrentUserId());
+            final int N = allInputMethodServices.size();
+            for (int i = 0; i < N; ++i) {
+                final ServiceInfo si = allInputMethodServices.get(i).serviceInfo;
+                if (!android.Manifest.permission.BIND_INPUT_METHOD.equals(si.permission)) {
+                    continue;
+                }
+                mMyPackageMonitor.addPackageToMonitorComponentChangeLocked(si.packageName);
+            }
+        }
+
         // TODO: The following code should find better place to live.
         if (!resetDefaultEnabledIme) {
             boolean enabledImeFound = false;
@@ -3963,6 +4073,23 @@
     }
 
     @Override
+    public void reportFullscreenMode(IBinder token, boolean fullscreen) {
+        if (!calledFromValidUser()) {
+            return;
+        }
+        synchronized (mMethodMap) {
+            if (!calledWithValidToken(token)) {
+                return;
+            }
+            if (mCurClient != null && mCurClient.client != null) {
+                mInFullscreenMode = fullscreen;
+                executeOrSendMessage(mCurClient.client, mCaller.obtainMessageIO(
+                        MSG_REPORT_FULLSCREEN_MODE, fullscreen ? 1 : 0, mCurClient));
+            }
+        }
+    }
+
+    @Override
     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                 != PackageManager.PERMISSION_GRANTED) {
@@ -3982,7 +4109,7 @@
         synchronized (mMethodMap) {
             p.println("Current Input Method Manager state:");
             int N = mMethodList.size();
-            p.println("  Input Methods:");
+            p.println("  Input Methods: mMethodMapUpdateCount=" + mMethodMapUpdateCount);
             for (int i=0; i<N; i++) {
                 InputMethodInfo info = mMethodList.get(i);
                 p.println("  InputMethod #" + i + ":");
@@ -3999,9 +4126,11 @@
             p.println("  mCurMethodId=" + mCurMethodId);
             client = mCurClient;
             p.println("  mCurClient=" + client + " mCurSeq=" + mCurSeq);
-            p.println("  mCurFocusedWindow=" + mCurFocusedWindow);
+            p.println("  mCurFocusedWindow=" + mCurFocusedWindow
+                    + " softInputMode=" +
+                    InputMethodClient.softInputModeToString(mCurFocusedWindowSoftInputMode)
+                    + " client=" + mCurFocusedWindowClient);
             focusedWindowClient = mCurFocusedWindowClient;
-            p.println("  mCurFocusedWindowClient=" + focusedWindowClient);
             p.println("  mCurId=" + mCurId + " mHaveConnect=" + mHaveConnection
                     + " mBoundToMethod=" + mBoundToMethod);
             p.println("  mCurToken=" + mCurToken);
@@ -4014,6 +4143,7 @@
                     + " mShowExplicitlyRequested=" + mShowExplicitlyRequested
                     + " mShowForced=" + mShowForced
                     + " mInputShown=" + mInputShown);
+            p.println("  mInFullscreenMode=" + mInFullscreenMode);
             p.println("  mCurUserActionNotificationSequenceNumber="
                     + mCurUserActionNotificationSequenceNumber);
             p.println("  mSystemReady=" + mSystemReady + " mInteractive=" + mIsInteractive);
diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java
index 0ac51b9..3e89852 100644
--- a/services/core/java/com/android/server/NetworkScoreService.java
+++ b/services/core/java/com/android/server/NetworkScoreService.java
@@ -718,6 +718,15 @@
         return null;
     }
 
+    /**
+     * Returns the list of available scorer apps. The list will be empty if there are
+     * no valid scorers.
+     */
+    @Override
+    public List<NetworkScorerAppData> getAllValidScorers() {
+        return mNetworkScorerAppManager.getAllValidScorers();
+    }
+
     @Override
     public void disableScoring() {
         // Only the active scorer or the system should be allowed to disable scoring.
@@ -908,6 +917,7 @@
                 return;
             }
             writer.println("Current scorer: " + currentScorer);
+            writer.println("RecommendationRequestTimeoutMs: " + mRecommendationRequestTimeoutMs);
 
             sendCacheUpdateCallback(new BiConsumer<INetworkScoreCache, Object>() {
                 @Override
@@ -1077,6 +1087,7 @@
                     final RecommendationResult result =
                             data.getParcelable(EXTRA_RECOMMENDATION_RESULT);
                     final int sequence = data.getInt(EXTRA_SEQUENCE, -1);
+                    if (VERBOSE) Log.v(TAG, "callback received for sequence " + sequence);
                     onRemoteMethodResult(result, sequence);
                 }
             };
@@ -1096,6 +1107,7 @@
         RecommendationResult getRecommendationResult(INetworkRecommendationProvider target,
                 RecommendationRequest request) throws RemoteException, TimeoutException {
             final int sequence = onBeforeRemoteCall();
+            if (VERBOSE) Log.v(TAG, "getRecommendationResult() seq=" + sequence);
             target.requestRecommendation(request, mCallback, sequence);
             return getResultTimed(sequence);
         }
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index c07add0..32b7e4d 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -59,6 +59,7 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.ParcelFileDescriptor;
+import android.os.ParcelableException;
 import android.os.PowerManager;
 import android.os.Process;
 import android.os.RemoteCallbackList;
@@ -3291,6 +3292,18 @@
         }
     }
 
+    @Override
+    public long getAllocatableBytes(String path, int flags) {
+        return new File(path).getUsableSpace();
+    }
+
+    @Override
+    public void allocateBytes(String path, long bytes, int flags) {
+        if (bytes > new File(path).getUsableSpace()) {
+            throw new ParcelableException(new IOException("Not enough usable space"));
+        }
+    }
+
     private void addObbStateLocked(ObbState obbState) throws RemoteException {
         final IBinder binder = obbState.getBinder();
         List<ObbState> obbStates = mObbMounts.get(binder);
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index 0834eb8..ea33906 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -16,7 +16,6 @@
 
 package com.android.server;
 
-import android.Manifest;
 import android.app.ActivityManager;
 import android.app.AppOpsManager;
 import android.content.BroadcastReceiver;
@@ -142,6 +141,10 @@
 
     private ServiceState[] mServiceState;
 
+    private int[] mVoiceActivationState;
+
+    private int[] mDataActivationState;
+
     private SignalStrength[] mSignalStrength;
 
     private boolean[] mMessageWaiting;
@@ -301,6 +304,8 @@
         mDataConnectionNetworkType = new int[numPhones];
         mCallIncomingNumber = new String[numPhones];
         mServiceState = new ServiceState[numPhones];
+        mVoiceActivationState = new int[numPhones];
+        mDataActivationState = new int[numPhones];
         mSignalStrength = new SignalStrength[numPhones];
         mMessageWaiting = new boolean[numPhones];
         mDataConnectionPossible = new boolean[numPhones];
@@ -315,6 +320,8 @@
             mCallState[i] =  TelephonyManager.CALL_STATE_IDLE;
             mDataActivity[i] = TelephonyManager.DATA_ACTIVITY_NONE;
             mDataConnectionState[i] = TelephonyManager.DATA_UNKNOWN;
+            mVoiceActivationState[i] = TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN;
+            mDataActivationState[i] = TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN;
             mCallIncomingNumber[i] =  "";
             mServiceState[i] =  new ServiceState();
             mSignalStrength[i] =  new SignalStrength();
@@ -644,6 +651,20 @@
                             remove(r.binder);
                         }
                     }
+                    if ((events & PhoneStateListener.LISTEN_VOICE_ACTIVATION_STATE) !=0) {
+                        try {
+                            r.callback.onVoiceActivationStateChanged(mVoiceActivationState[phoneId]);
+                        } catch (RemoteException ex) {
+                            remove(r.binder);
+                        }
+                    }
+                    if ((events & PhoneStateListener.LISTEN_DATA_ACTIVATION_STATE) !=0) {
+                        try {
+                            r.callback.onDataActivationStateChanged(mDataActivationState[phoneId]);
+                        } catch (RemoteException ex) {
+                            remove(r.binder);
+                        }
+                    }
                 }
             }
         } else {
@@ -795,6 +816,67 @@
         broadcastServiceStateChanged(state, phoneId, subId);
     }
 
+    public void notifySimActivationStateChangedForPhoneId(int phoneId, int subId,
+            int activationType, int activationState) {
+        if (!checkNotifyPermission("notifySimActivationState()")){
+            return;
+        }
+        if (VDBG) {
+            log("notifySimActivationStateForPhoneId: subId=" + subId + " phoneId=" + phoneId
+                    + "type=" + activationType + " state=" + activationState);
+        }
+        synchronized (mRecords) {
+            if (validatePhoneId(phoneId)) {
+                switch (activationType) {
+                    case PhoneConstants.SIM_ACTIVATION_TYPE_VOICE:
+                        mVoiceActivationState[phoneId] = activationState;
+                        break;
+                    case PhoneConstants.SIM_ACTIVATION_TYPE_DATA:
+                        mDataActivationState[phoneId] = activationState;
+                        break;
+                    default:
+                        return;
+                }
+                for (Record r : mRecords) {
+                    if (VDBG) {
+                        log("notifySimActivationStateForPhoneId: r=" + r + " subId=" + subId
+                                + " phoneId=" + phoneId + "type=" + activationType
+                                + " state=" + activationState);
+                    }
+                    try {
+                        if ((activationType == PhoneConstants.SIM_ACTIVATION_TYPE_VOICE) &&
+                                r.matchPhoneStateListenerEvent(
+                                        PhoneStateListener.LISTEN_VOICE_ACTIVATION_STATE) &&
+                                idMatch(r.subId, subId, phoneId)) {
+                            if (DBG) {
+                                log("notifyVoiceActivationStateForPhoneId: callback.onVASC r=" + r
+                                        + " subId=" + subId + " phoneId=" + phoneId
+                                        + " state=" + activationState);
+                            }
+                            r.callback.onVoiceActivationStateChanged(activationState);
+                        }
+                        if ((activationType == PhoneConstants.SIM_ACTIVATION_TYPE_DATA) &&
+                                r.matchPhoneStateListenerEvent(
+                                        PhoneStateListener.LISTEN_DATA_ACTIVATION_STATE) &&
+                                idMatch(r.subId, subId, phoneId)) {
+                            if (DBG) {
+                                log("notifyDataActivationStateForPhoneId: callback.onDASC r=" + r
+                                        + " subId=" + subId + " phoneId=" + phoneId
+                                        + " state=" + activationState);
+                            }
+                            r.callback.onDataActivationStateChanged(activationState);
+                        }
+                    }  catch (RemoteException ex) {
+                        mRemoveList.add(r.binder);
+                    }
+                }
+            } else {
+                log("notifySimActivationStateForPhoneId: INVALID phoneId=" + phoneId);
+            }
+            handleRemoveListLocked();
+        }
+    }
+
     public void notifySignalStrengthForPhoneId(int phoneId, int subId,
                 SignalStrength signalStrength) {
         if (!checkNotifyPermission("notifySignalStrength()")) {
@@ -1324,6 +1406,8 @@
                 pw.println("  mCallState=" + mCallState[i]);
                 pw.println("  mCallIncomingNumber=" + mCallIncomingNumber[i]);
                 pw.println("  mServiceState=" + mServiceState[i]);
+                pw.println("  mVoiceActivationState= " + mVoiceActivationState[i]);
+                pw.println("  mDataActivationState= " + mDataActivationState[i]);
                 pw.println("  mSignalStrength=" + mSignalStrength[i]);
                 pw.println("  mMessageWaiting=" + mMessageWaiting[i]);
                 pw.println("  mCallForwarding=" + mCallForwarding[i]);
diff --git a/services/core/java/com/android/server/TextServicesManagerService.java b/services/core/java/com/android/server/TextServicesManagerService.java
index 2b5166e..feda273 100644
--- a/services/core/java/com/android/server/TextServicesManagerService.java
+++ b/services/core/java/com/android/server/TextServicesManagerService.java
@@ -20,6 +20,7 @@
 import com.android.internal.content.PackageMonitor;
 import com.android.internal.inputmethod.InputMethodUtils;
 import com.android.internal.textservice.ISpellCheckerService;
+import com.android.internal.textservice.ISpellCheckerServiceCallback;
 import com.android.internal.textservice.ISpellCheckerSession;
 import com.android.internal.textservice.ISpellCheckerSessionListener;
 import com.android.internal.textservice.ITextServicesManager;
@@ -68,7 +69,6 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
 
 public class TextServicesManagerService extends ITextServicesManager.Stub {
     private static final String TAG = TextServicesManagerService.class.getSimpleName();
@@ -549,56 +549,26 @@
                 return;
             }
             final SpellCheckerInfo sci = mSpellCheckerMap.get(sciId);
+            SpellCheckerBindGroup bindGroup = mSpellCheckerBindGroups.get(sciId);
             final int uid = Binder.getCallingUid();
-            if (mSpellCheckerBindGroups.containsKey(sciId)) {
-                final SpellCheckerBindGroup bindGroup = mSpellCheckerBindGroups.get(sciId);
-                if (bindGroup != null) {
-                    final InternalDeathRecipient recipient =
-                            mSpellCheckerBindGroups.get(sciId).addListener(
-                                    tsListener, locale, scListener, uid, bundle);
-                    if (recipient == null) {
-                        if (DBG) {
-                            Slog.w(TAG, "Didn't create a death recipient.");
-                        }
-                        return;
-                    }
-                    if (bindGroup.mSpellChecker == null & bindGroup.mConnected) {
-                        Slog.e(TAG, "The state of the spell checker bind group is illegal.");
-                        bindGroup.removeAll();
-                    } else if (bindGroup.mSpellChecker != null) {
-                        if (DBG) {
-                            Slog.w(TAG, "Existing bind found. Return a spell checker session now. "
-                                    + "Listeners count = " + bindGroup.mListeners.size());
-                        }
-                        try {
-                            final ISpellCheckerSession session =
-                                    bindGroup.mSpellChecker.getISpellCheckerSession(
-                                            recipient.mScLocale, recipient.mScListener, bundle);
-                            if (session != null) {
-                                tsListener.onServiceConnected(session);
-                                return;
-                            } else {
-                                if (DBG) {
-                                    Slog.w(TAG, "Existing bind already expired. ");
-                                }
-                                bindGroup.removeAll();
-                            }
-                        } catch (RemoteException e) {
-                            Slog.e(TAG, "Exception in getting spell checker session: " + e);
-                            bindGroup.removeAll();
-                        }
-                    }
+            if (bindGroup == null) {
+                final long ident = Binder.clearCallingIdentity();
+                try {
+                    bindGroup = startSpellCheckerServiceInnerLocked(sci);
+                } finally {
+                    Binder.restoreCallingIdentity(ident);
+                }
+                if (bindGroup == null) {
+                    // startSpellCheckerServiceInnerLocked failed.
+                    return;
                 }
             }
-            final long ident = Binder.clearCallingIdentity();
-            try {
-                startSpellCheckerServiceInnerLocked(
-                        sci, locale, tsListener, scListener, uid, bundle);
-            } finally {
-                Binder.restoreCallingIdentity(ident);
-            }
+
+            // Start getISpellCheckerSession async IPC, or just queue the request until the spell
+            // checker service is bound.
+            bindGroup.getISpellCheckerSessionOrQueueLocked(
+                     new SessionRequest(uid, locale, tsListener, scListener, bundle));
         }
-        return;
     }
 
     @Override
@@ -611,9 +581,8 @@
         }
     }
 
-    private void startSpellCheckerServiceInnerLocked(SpellCheckerInfo info, String locale,
-            ITextServicesSessionListener tsListener, ISpellCheckerSessionListener scListener,
-            int uid, Bundle bundle) {
+    @Nullable
+    private SpellCheckerBindGroup startSpellCheckerServiceInnerLocked(SpellCheckerInfo info) {
         if (DBG) {
             Slog.w(TAG, "Start spell checker session inner locked.");
         }
@@ -627,11 +596,11 @@
         if (!bindCurrentSpellCheckerService(serviceIntent, connection,
                 Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE_WHILE_AWAKE)) {
             Slog.e(TAG, "Failed to get a spell checker service.");
-            return;
+            return null;
         }
-        final SpellCheckerBindGroup group = new SpellCheckerBindGroup(
-                connection, tsListener, locale, scListener, uid, bundle);
+        final SpellCheckerBindGroup group = new SpellCheckerBindGroup(connection);
         mSpellCheckerBindGroups.put(sciId, group);
+        return group;
     }
 
     @Override
@@ -814,16 +783,32 @@
                 pw.println("    " + ent.getKey() + " " + grp + ":");
                 pw.println("      " + "mInternalConnection=" + grp.mInternalConnection);
                 pw.println("      " + "mSpellChecker=" + grp.mSpellChecker);
-                pw.println("      " + "mBound=" + grp.mBound + " mConnected=" + grp.mConnected);
+                pw.println("      " + "mUnbindCalled=" + grp.mUnbindCalled);
+                pw.println("      " + "mConnected=" + grp.mConnected);
+                final int numPendingSessionRequests = grp.mPendingSessionRequests.size();
+                for (int i = 0; i < numPendingSessionRequests; i++) {
+                    final SessionRequest req = grp.mPendingSessionRequests.get(i);
+                    pw.println("      " + "Pending Request #" + i + ":");
+                    pw.println("        " + "mTsListener=" + req.mTsListener);
+                    pw.println("        " + "mScListener=" + req.mScListener);
+                    pw.println("        " + "mScLocale=" + req.mLocale + " mUid=" + req.mUserId);
+                }
+                final int numOnGoingSessionRequests = grp.mOnGoingSessionRequests.size();
+                for (int i = 0; i < numOnGoingSessionRequests; i++) {
+                    final SessionRequest req = grp.mOnGoingSessionRequests.get(i);
+                    pw.println("      " + "On going Request #" + i + ":");
+                    ++i;
+                    pw.println("        " + "mTsListener=" + req.mTsListener);
+                    pw.println("        " + "mScListener=" + req.mScListener);
+                    pw.println(
+                            "        " + "mScLocale=" + req.mLocale + " mUid=" + req.mUserId);
+                }
                 final int N = grp.mListeners.size();
                 for (int i = 0; i < N; i++) {
                     final InternalDeathRecipient listener = grp.mListeners.get(i);
                     pw.println("      " + "Listener #" + i + ":");
-                    pw.println("        " + "mTsListener=" + listener.mTsListener);
                     pw.println("        " + "mScListener=" + listener.mScListener);
                     pw.println("        " + "mGroup=" + listener.mGroup);
-                    pw.println("        " + "mScLocale=" + listener.mScLocale
-                            + " mUid=" + listener.mUid);
                 }
             }
             pw.println("");
@@ -832,25 +817,44 @@
         }
     }
 
+    private static final class SessionRequest {
+        @UserIdInt
+        public final int mUserId;
+        @Nullable
+        public final String mLocale;
+        @NonNull
+        public final ITextServicesSessionListener mTsListener;
+        @NonNull
+        public final ISpellCheckerSessionListener mScListener;
+        @Nullable
+        public final Bundle mBundle;
+
+        SessionRequest(@UserIdInt final int userId, @Nullable String locale,
+                @NonNull ITextServicesSessionListener tsListener,
+                @NonNull ISpellCheckerSessionListener scListener, @Nullable Bundle bundle) {
+            mUserId = userId;
+            mLocale = locale;
+            mTsListener = tsListener;
+            mScListener = scListener;
+            mBundle = bundle;
+        }
+    }
+
     // SpellCheckerBindGroup contains active text service session listeners.
     // If there are no listeners anymore, the SpellCheckerBindGroup instance will be removed from
     // mSpellCheckerBindGroups
     private final class SpellCheckerBindGroup {
         private final String TAG = SpellCheckerBindGroup.class.getSimpleName();
         private final InternalServiceConnection mInternalConnection;
-        private final CopyOnWriteArrayList<InternalDeathRecipient> mListeners =
-                new CopyOnWriteArrayList<>();
-        public boolean mBound;
-        public ISpellCheckerService mSpellChecker;
-        public boolean mConnected;
+        private final ArrayList<InternalDeathRecipient> mListeners = new ArrayList<>();
+        private boolean mUnbindCalled;
+        private ISpellCheckerService mSpellChecker;
+        private boolean mConnected;
+        private final ArrayList<SessionRequest> mPendingSessionRequests = new ArrayList<>();
+        private final ArrayList<SessionRequest> mOnGoingSessionRequests = new ArrayList<>();
 
-        public SpellCheckerBindGroup(InternalServiceConnection connection,
-                ITextServicesSessionListener listener, String locale,
-                ISpellCheckerSessionListener scListener, int uid, Bundle bundle) {
+        public SpellCheckerBindGroup(InternalServiceConnection connection) {
             mInternalConnection = connection;
-            mBound = true;
-            mConnected = false;
-            addListener(listener, locale, scListener, uid, bundle);
         }
 
         public void onServiceConnected(ISpellCheckerService spellChecker) {
@@ -858,55 +862,15 @@
                 Slog.d(TAG, "onServiceConnected");
             }
 
-            for (InternalDeathRecipient listener : mListeners) {
-                try {
-                    final ISpellCheckerSession session = spellChecker.getISpellCheckerSession(
-                            listener.mScLocale, listener.mScListener, listener.mBundle);
-                    synchronized(mSpellCheckerMap) {
-                        if (mListeners.contains(listener)) {
-                            listener.mTsListener.onServiceConnected(session);
-                        }
-                    }
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Exception in getting the spell checker session."
-                            + "Reconnect to the spellchecker. ", e);
-                    removeAll();
-                    return;
-                }
-            }
             synchronized(mSpellCheckerMap) {
                 mSpellChecker = spellChecker;
                 mConnected = true;
+                // Dispatch pending getISpellCheckerSession requests.
+                mPendingSessionRequests.forEach(this::getISpellCheckerSessionLocked);
+                mPendingSessionRequests.clear();
             }
         }
 
-        public InternalDeathRecipient addListener(ITextServicesSessionListener tsListener,
-                String locale, ISpellCheckerSessionListener scListener, int uid, Bundle bundle) {
-            if (DBG) {
-                Slog.d(TAG, "addListener: " + locale);
-            }
-            InternalDeathRecipient recipient = null;
-            synchronized(mSpellCheckerMap) {
-                try {
-                    final int size = mListeners.size();
-                    for (int i = 0; i < size; ++i) {
-                        if (mListeners.get(i).hasSpellCheckerListener(scListener)) {
-                            // do not add the lister if the group already contains this.
-                            return null;
-                        }
-                    }
-                    recipient = new InternalDeathRecipient(
-                            this, tsListener, locale, scListener, uid, bundle);
-                    scListener.asBinder().linkToDeath(recipient, 0);
-                    mListeners.add(recipient);
-                } catch(RemoteException e) {
-                    // do nothing
-                }
-                cleanLocked();
-            }
-            return recipient;
-        }
-
         public void removeListener(ISpellCheckerSessionListener listener) {
             if (DBG) {
                 Slog.w(TAG, "remove listener: " + listener.hashCode());
@@ -941,20 +905,29 @@
             if (DBG) {
                 Slog.d(TAG, "cleanLocked");
             }
-            // If there are no more active listeners, clean up.  Only do this
-            // once.
-            if (mBound && mListeners.isEmpty()) {
-                mBound = false;
-                final String sciId = mInternalConnection.mSciId;
-                SpellCheckerBindGroup cur = mSpellCheckerBindGroups.get(sciId);
-                if (cur == this) {
-                    if (DBG) {
-                        Slog.d(TAG, "Remove bind group.");
-                    }
-                    mSpellCheckerBindGroups.remove(sciId);
-                }
-                mContext.unbindService(mInternalConnection);
+            if (mUnbindCalled) {
+                return;
             }
+            // If there are no more active listeners, clean up.  Only do this once.
+            if (!mListeners.isEmpty()) {
+                return;
+            }
+            if (!mPendingSessionRequests.isEmpty()) {
+                return;
+            }
+            if (!mOnGoingSessionRequests.isEmpty()) {
+                return;
+            }
+            final String sciId = mInternalConnection.mSciId;
+            final SpellCheckerBindGroup cur = mSpellCheckerBindGroups.get(sciId);
+            if (cur == this) {
+                if (DBG) {
+                    Slog.d(TAG, "Remove bind group.");
+                }
+                mSpellCheckerBindGroups.remove(sciId);
+            }
+            mContext.unbindService(mInternalConnection);
+            mUnbindCalled = true;
         }
 
         public void removeAll() {
@@ -966,6 +939,59 @@
                     idr.mScListener.asBinder().unlinkToDeath(idr, 0);
                 }
                 mListeners.clear();
+                mPendingSessionRequests.clear();
+                mOnGoingSessionRequests.clear();
+                cleanLocked();
+            }
+        }
+
+        public void getISpellCheckerSessionOrQueueLocked(@NonNull SessionRequest request) {
+            if (mUnbindCalled) {
+                return;
+            }
+            if (!mConnected) {
+                mPendingSessionRequests.add(request);
+                return;
+            }
+            getISpellCheckerSessionLocked(request);
+        }
+
+        private void getISpellCheckerSessionLocked(@NonNull SessionRequest request) {
+            if (mUnbindCalled) {
+                return;
+            }
+            try {
+                mSpellChecker.getISpellCheckerSession(
+                        request.mLocale, request.mScListener, request.mBundle,
+                        new ISpellCheckerServiceCallbackBinder(this, request));
+                mOnGoingSessionRequests.add(request);
+            } catch(RemoteException e) {
+                // The target spell checker service is not available.  Better to reset the state.
+                removeAll();
+            }
+            cleanLocked();
+        }
+
+        void onSessionCreated(@Nullable final ISpellCheckerSession newSession,
+                @NonNull final SessionRequest request) {
+            synchronized (mSpellCheckerMap) {
+                if (mUnbindCalled) {
+                    return;
+                }
+                if (mOnGoingSessionRequests.remove(request)) {
+                    final InternalDeathRecipient recipient =
+                            new InternalDeathRecipient(this, request.mScListener);
+                    try {
+                        request.mTsListener.onServiceConnected(newSession);
+                        request.mScListener.asBinder().linkToDeath(recipient, 0);
+                        mListeners.add(recipient);
+                    } catch (RemoteException e) {
+                        // Technically this can happen if the spell checker client app is already
+                        // dead.  We can just forget about this request; the request is already
+                        // removed from mOnGoingSessionRequests and the death recipient listener is
+                        // not yet added to mListeners. There is nothing to release further.
+                    }
+                }
                 cleanLocked();
             }
         }
@@ -1008,21 +1034,13 @@
     }
 
     private static final class InternalDeathRecipient implements IBinder.DeathRecipient {
-        public final ITextServicesSessionListener mTsListener;
         public final ISpellCheckerSessionListener mScListener;
-        public final String mScLocale;
         private final SpellCheckerBindGroup mGroup;
-        public final int mUid;
-        public final Bundle mBundle;
+
         public InternalDeathRecipient(SpellCheckerBindGroup group,
-                ITextServicesSessionListener tsListener, String scLocale,
-                ISpellCheckerSessionListener scListener, int uid, Bundle bundle) {
-            mTsListener = tsListener;
+                ISpellCheckerSessionListener scListener) {
             mScListener = scListener;
-            mScLocale = scLocale;
             mGroup = group;
-            mUid = uid;
-            mBundle = bundle;
         }
 
         public boolean hasSpellCheckerListener(ISpellCheckerSessionListener listener) {
@@ -1035,6 +1053,25 @@
         }
     }
 
+    private static final class ISpellCheckerServiceCallbackBinder
+            extends ISpellCheckerServiceCallback.Stub {
+        @NonNull
+        private final SpellCheckerBindGroup mBindGroup;
+        @NonNull
+        private final SessionRequest mRequest;
+
+        ISpellCheckerServiceCallbackBinder(@NonNull final SpellCheckerBindGroup bindGroup,
+                @NonNull final SessionRequest request) {
+            mBindGroup = bindGroup;
+            mRequest = request;
+        }
+
+        @Override
+        public void onSessionCreated(@Nullable ISpellCheckerSession newSession) {
+            mBindGroup.onSessionCreated(newSession, mRequest);
+        }
+    }
+
     private static final class TextServicesSettings {
         private final ContentResolver mResolver;
         @UserIdInt
diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java
index ab036c7..8888325 100644
--- a/services/core/java/com/android/server/VibratorService.java
+++ b/services/core/java/com/android/server/VibratorService.java
@@ -32,9 +32,12 @@
 import android.os.PowerManagerInternal;
 import android.os.Process;
 import android.os.RemoteException;
+import android.os.ResultReceiver;
 import android.os.IBinder;
 import android.os.Binder;
 import android.os.ServiceManager;
+import android.os.ShellCallback;
+import android.os.ShellCommand;
 import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.Vibrator;
@@ -784,4 +787,58 @@
             }
         }
     }
+
+    @Override
+    public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
+            String[] args, ShellCallback callback, ResultReceiver resultReceiver)
+            throws RemoteException {
+        new VibratorShellCommand(this).exec(this, in, out, err, args, callback, resultReceiver);
+    }
+
+    private final class VibratorShellCommand extends ShellCommand {
+
+        private static final long MAX_VIBRATION_MS = 200;
+
+        private final IBinder mToken;
+
+        private VibratorShellCommand(IBinder token) {
+            mToken = token;
+        }
+
+        @Override
+        public int onCommand(String cmd) {
+            if ("vibrate".equals(cmd)) {
+                return runVibrate();
+            }
+            return handleDefaultCommands(cmd);
+        }
+
+        private int runVibrate() {
+            final long duration = Long.parseLong(getNextArgRequired());
+            if (duration > MAX_VIBRATION_MS) {
+                throw new IllegalArgumentException("maximum duration is " + MAX_VIBRATION_MS);
+            }
+            String description = getNextArg();
+            if (description == null) {
+                description = "Shell command";
+            }
+            vibrate(Binder.getCallingUid(), description, duration, AudioAttributes.USAGE_UNKNOWN,
+                    mToken);
+            return 0;
+        }
+
+        @Override
+        public void onHelp() {
+            try (PrintWriter pw = getOutPrintWriter();) {
+                pw.println("Vibrator commands:");
+                pw.println("  help");
+                pw.println("    Prints this help text.");
+                pw.println("");
+                pw.println("  vibrate duration [description]");
+                pw.println("    Vibrates for duration milliseconds.");
+                pw.println("");
+            }
+        }
+    }
+
 }
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index 041fee2..2bc131f 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -462,7 +462,7 @@
 
         ComponentName cmp = startServiceInnerLocked(smap, service, r, callerFg, addToStarting);
         if (notification != null) {
-            setServiceForegroundInnerLocked(r, callingUid, notification, 0);
+            setServiceForegroundInnerLocked(r, id, notification, 0);
         }
         return cmp;
     }
@@ -723,6 +723,39 @@
             if (notification == null) {
                 throw new IllegalArgumentException("null notification");
             }
+            // Instant apps need permission to create foreground services.
+            if (r.appInfo.isInstantApp()) {
+                final int mode = mAm.mAppOpsService.checkOperation(
+                        AppOpsManager.OP_INSTANT_APP_START_FOREGROUND,
+                        r.appInfo.uid,
+                        r.appInfo.packageName);
+                switch (mode) {
+                    case AppOpsManager.MODE_ALLOWED:
+                        break;
+                    case AppOpsManager.MODE_IGNORED:
+                        Slog.w(TAG, "Instant app " + r.appInfo.packageName
+                                + " does not have permission to create foreground services"
+                                + ", ignoring.");
+                        return;
+                    case AppOpsManager.MODE_ERRORED:
+                        throw new SecurityException("Instant app " + r.appInfo.packageName
+                                + " does not have permission to create foreground services");
+                    default:
+                        try {
+                            if (AppGlobals.getPackageManager().checkPermission(
+                                    android.Manifest.permission.INSTANT_APP_FOREGROUND_SERVICE,
+                                    r.appInfo.packageName,
+                                    r.appInfo.uid) != PackageManager.PERMISSION_GRANTED) {
+                                throw new SecurityException("Instant app " + r.appInfo.packageName
+                                        + " does not have permission to create foreground"
+                                        + "services");
+                            }
+                        } catch (RemoteException e) {
+                            throw new SecurityException("Failed to check instant app permission." ,
+                                    e);
+                        }
+                }
+            }
             if (r.foregroundId != id) {
                 cancelForegroudNotificationLocked(r);
                 r.foregroundId = id;
diff --git a/services/core/java/com/android/server/am/ActivityManagerConstants.java b/services/core/java/com/android/server/am/ActivityManagerConstants.java
index 3c90f93..100d821 100644
--- a/services/core/java/com/android/server/am/ActivityManagerConstants.java
+++ b/services/core/java/com/android/server/am/ActivityManagerConstants.java
@@ -36,7 +36,7 @@
     private static final String KEY_MAX_CACHED_PROCESSES = "max_cached_processes";
 
     private static final boolean DEFAULT_ENFORCE_BG_CHECK = SystemProperties.getBoolean(
-            "debug.bgcheck", false);
+            "debug.bgcheck", true);
     private static final int DEFAULT_MAX_CACHED_PROCESSES = 32;
 
     // Enforce background check on apps targeting O?
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 1726747..1375c01 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -54,6 +54,7 @@
 import static android.provider.Settings.Global.DEVELOPMENT_FORCE_RTL;
 import static android.provider.Settings.Global.WAIT_FOR_DEBUGGER;
 import static android.provider.Settings.System.FONT_SCALE;
+import static android.service.voice.VoiceInteractionSession.SHOW_SOURCE_APPLICATION;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static com.android.internal.util.XmlUtils.readBooleanAttribute;
 import static com.android.internal.util.XmlUtils.readIntAttribute;
@@ -283,7 +284,6 @@
 import android.os.storage.StorageManagerInternal;
 import android.provider.Downloads;
 import android.provider.Settings;
-import android.service.autofill.AutoFillService;
 import android.service.voice.IVoiceInteractionSession;
 import android.service.voice.VoiceInteractionManagerInternal;
 import android.service.voice.VoiceInteractionSession;
@@ -556,10 +556,10 @@
 
     // Determines whether to take full screen screenshots
     static final boolean TAKE_FULLSCREEN_SCREENSHOTS = true;
-    public static final float FULLSCREEN_SCREENSHOT_SCALE = 0.6f;
 
     /** All system services */
     SystemServiceManager mSystemServiceManager;
+    AssistUtils mAssistUtils;
 
     private Installer mInstaller;
 
@@ -2328,7 +2328,8 @@
                     }
                 }
                 vrService.setVrMode(vrMode, requestedPackage, userId, callingPackage);
-            } case NOTIFY_VR_SLEEPING_MSG: {
+            } break;
+            case NOTIFY_VR_SLEEPING_MSG: {
                 notifyVrManagerOfSleepState(msg.arg1 != 0);
             } break;
             case HANDLE_TRUST_STORAGE_UPDATE_MSG: {
@@ -2611,6 +2612,14 @@
         mPermissionReviewRequired = mContext.getResources().getBoolean(
                 com.android.internal.R.bool.config_permissionReviewRequired);
 
+        mHandlerThread = new ServiceThread(TAG,
+                android.os.Process.THREAD_PRIORITY_FOREGROUND, false /*allowIo*/);
+        mHandlerThread.start();
+        mHandler = new MainHandler(mHandlerThread.getLooper());
+        mUiHandler = new UiHandler();
+
+        mConstants = new ActivityManagerConstants(this, mHandler);
+
         if (DEBUG_BACKGROUND_CHECK) {
             Slog.d(TAG, "Enforcing O+ bg restrictions: " + mConstants.ENFORCE_BG_CHECK);
             StringBuilder sb = new StringBuilder(200);
@@ -2622,14 +2631,6 @@
             Slog.d(TAG, sb.toString());
         }
 
-        mHandlerThread = new ServiceThread(TAG,
-                android.os.Process.THREAD_PRIORITY_FOREGROUND, false /*allowIo*/);
-        mHandlerThread.start();
-        mHandler = new MainHandler(mHandlerThread.getLooper());
-        mUiHandler = new UiHandler();
-
-        mConstants = new ActivityManagerConstants(this, mHandler);
-
         /* static; one-time init here */
         if (sKillHandler == null) {
             sKillThread = new ServiceThread(TAG + ":kill",
@@ -4226,7 +4227,7 @@
                             validateUid = mValidateUids.get(item.uid);
                             if (validateUid == null && change != UidRecord.CHANGE_GONE
                                     && change != UidRecord.CHANGE_GONE_IDLE) {
-                                validateUid = new UidRecord(item.uid, false);
+                                validateUid = new UidRecord(item.uid);
                                 mValidateUids.put(item.uid, validateUid);
                             }
                         }
@@ -4517,6 +4518,25 @@
     }
 
     @Override
+    public int startAssistantActivity(String callingPackage, int callingPid, int callingUid,
+            Intent intent, String resolvedType, Bundle bOptions, int userId) {
+        if (checkCallingPermission(Manifest.permission.BIND_VOICE_INTERACTION)
+                != PackageManager.PERMISSION_GRANTED) {
+            final String msg = "Permission Denial: startAssistantActivity() from pid="
+                    + Binder.getCallingPid()
+                    + ", uid=" + Binder.getCallingUid()
+                    + " requires " + Manifest.permission.BIND_VOICE_INTERACTION;
+            Slog.w(TAG, msg);
+            throw new SecurityException(msg);
+        }
+        userId = mUserController.handleIncomingUser(callingPid, callingUid, userId, false,
+                ALLOW_FULL_ONLY, "startAssistantActivity", null);
+        return mActivityStarter.startActivityMayWait(null, callingUid, callingPackage, intent,
+                resolvedType, null, null, null, null, 0, 0, null, null, null, bOptions, false,
+                userId, null, null);
+    }
+
+    @Override
     public void startLocalVoiceInteraction(IBinder callingActivity, Bundle options)
             throws RemoteException {
         Slog.i(TAG, "Activity tried to startVoiceInteraction");
@@ -6315,7 +6335,7 @@
         }
         UidRecord uidRec = mActiveUids.get(proc.uid);
         if (uidRec == null) {
-            uidRec = new UidRecord(proc.uid, proc.persistent);
+            uidRec = new UidRecord(proc.uid);
             // This is the first appearance of the uid, report it now!
             if (DEBUG_UID_OBSERVERS) Slog.i(TAG_UID_OBSERVERS,
                     "Creating new process uid: " + uidRec);
@@ -7766,9 +7786,9 @@
                     + ": Current activity does not support picture-in-picture.");
         }
 
-        if (r.getStack().isHomeStack()) {
+        if (!StackId.isAllowedToEnterPictureInPicture(r.getStack().getStackId())) {
             throw new IllegalStateException(caller
-                    + ": Activities on the home stack not supported");
+                    + ": Activities on the home, assistant, or recents stack not supported");
         }
 
         if (args.hasSetAspectRatio()
@@ -8114,9 +8134,8 @@
     // some other background operations are not.  If we're doing a check
     // of service-launch policy, allow those callers to proceed unrestricted.
     int appServicesRestrictedInBackgroundLocked(int uid, String packageName, int packageTargetSdk) {
-        // Persistent app?  NB: expects that persistent uids are always active.
-        final UidRecord uidRec = mActiveUids.get(uid);
-        if (uidRec != null && uidRec.persistent) {
+        // Persistent app?
+        if (mPackageManagerInt.isPackagePersistent(packageName)) {
             if (DEBUG_BACKGROUND_CHECK) {
                 Slog.i(TAG, "App " + uid + "/" + packageName
                         + " is persistent; not restricted in background");
@@ -8440,12 +8459,7 @@
 
         // Third...  does the caller itself have permission to access
         // this uri?
-        final int callingAppId = UserHandle.getAppId(callingUid);
-        if ((callingAppId == Process.SYSTEM_UID) || (callingAppId == Process.ROOT_UID)) {
-            Slog.w(TAG, "For security reasons, the system cannot issue a Uri permission"
-                    + " grant to " + grantUri + "; use startActivityAsCaller() instead");
-            return -1;
-        } else {
+        if (UserHandle.getAppId(callingUid) != Process.SYSTEM_UID) {
             if (!checkHoldingPermissionsLocked(pm, pi, grantUri, callingUid, modeFlags)) {
                 // Require they hold a strong enough Uri permission
                 if (!checkUriPermissionLocked(grantUri, callingUid, modeFlags)) {
@@ -9916,7 +9930,7 @@
             try {
                 if (DEBUG_STACK) Slog.d(TAG_STACK, "moveStackToDisplay: moving stackId=" + stackId
                         + " to displayId=" + displayId);
-                mStackSupervisor.moveStackToDisplayLocked(stackId, displayId);
+                mStackSupervisor.moveStackToDisplayLocked(stackId, displayId, ON_TOP);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -9970,8 +9984,8 @@
                 return;
             }
             final ActivityRecord prev = mStackSupervisor.topRunningActivityLocked();
-            if (prev != null && prev.isRecentsActivity()) {
-                task.setTaskToReturnTo(ActivityRecord.RECENTS_ACTIVITY_TYPE);
+            if (prev != null) {
+                task.setTaskToReturnTo(prev);
             }
             mStackSupervisor.findTaskToMoveToFrontLocked(task, flags, options, "moveTaskToFront",
                     false /* forceNonResizable */);
@@ -12478,8 +12492,12 @@
     public boolean isAssistDataAllowedOnCurrentActivity() {
         int userId;
         synchronized (this) {
-            userId = mUserController.getCurrentUserIdLocked();
-            ActivityRecord activity = getFocusedStack().topActivity();
+            final ActivityStack focusedStack = getFocusedStack();
+            if (focusedStack == null || focusedStack.isAssistantStack()) {
+                return false;
+            }
+
+            final ActivityRecord activity = focusedStack.topActivity();
             if (activity == null) {
                 return false;
             }
@@ -12508,9 +12526,8 @@
                     return false;
                 }
             }
-            AssistUtils utils = new AssistUtils(mContext);
-            return utils.showSessionForActiveService(args,
-                    VoiceInteractionSession.SHOW_SOURCE_APPLICATION, null, token);
+            return mAssistUtils.showSessionForActiveService(args, SHOW_SOURCE_APPLICATION, null,
+                    token);
         } finally {
             Binder.restoreCallingIdentity(ident);
         }
@@ -13492,6 +13509,7 @@
 
             mLocalDeviceIdleController
                     = LocalServices.getService(DeviceIdleController.LocalService.class);
+            mAssistUtils = new AssistUtils(mContext);
 
             // Make sure we have the current profile info, since it is needed for security checks.
             mUserController.onSystemReady();
@@ -20141,6 +20159,13 @@
                 app.adjType = "force-fg";
                 app.adjSource = app.forcingToForeground;
                 schedGroup = ProcessList.SCHED_GROUP_DEFAULT;
+            } else if (app.hasOverlayUi) {
+                // The process is display an overlay UI.
+                adj = ProcessList.PERCEPTIBLE_APP_ADJ;
+                procState = ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND;
+                app.cached = false;
+                app.adjType = "has-overlay-ui";
+                schedGroup = ProcessList.SCHED_GROUP_DEFAULT;
             }
         }
 
@@ -22860,6 +22885,33 @@
                 }
             }
         }
+
+        /**
+         * Sets if the given pid has an overlay UI or not.
+         *
+         * @param pid The pid we are setting overlay UI for.
+         * @param hasOverlayUi True if the process has overlay UI.
+         * @see android.view.WindowManager.LayoutParams#TYPE_APPLICATION_OVERLAY
+         */
+        @Override
+        public void setHasOverlayUi(int pid, boolean hasOverlayUi) {
+            synchronized (ActivityManagerService.this) {
+                final ProcessRecord pr;
+                synchronized (mPidsSelfLocked) {
+                    pr = mPidsSelfLocked.get(pid);
+                    if (pr == null) {
+                        Slog.w(TAG, "setHasOverlayUi called on unknown pid: " + pid);
+                        return;
+                    }
+                }
+                if (pr.hasOverlayUi == hasOverlayUi) {
+                    return;
+                }
+                pr.hasOverlayUi = hasOverlayUi;
+                //Slog.i(TAG, "Setting hasOverlayUi=" + pr.hasOverlayUi + " for pid=" + pid);
+                updateOomAdjLocked(pr);
+            }
+        }
     }
 
     private final class SleepTokenImpl extends SleepToken {
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index a06fa1b..80df26b 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -2031,6 +2031,8 @@
             return runTaskDragTaskTest(pw);
         } else if (op.equals("size-task-test")) {
             return runTaskSizeTaskTest(pw);
+        } else if (op.equals("focus")) {
+            return runTaskFocus(pw);
         } else {
             getErrPrintWriter().println("Error: unknown command '" + op + "'");
             return -1;
@@ -2322,6 +2324,13 @@
         return 0;
     }
 
+    int runTaskFocus(PrintWriter pw) throws RemoteException {
+        final int taskId = Integer.parseInt(getNextArgRequired());
+        pw.println("Setting focus to task " + taskId);
+        mInterface.setFocusedTask(taskId);
+        return 0;
+    }
+
     int runWrite(PrintWriter pw) {
         mInternal.enforceCallingPermission(android.Manifest.permission.SET_ACTIVITY_WATCHER,
                 "registerUidObserver()");
diff --git a/services/core/java/com/android/server/am/ActivityMetricsLogger.java b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
index 65b8554..ff796a54 100644
--- a/services/core/java/com/android/server/am/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
@@ -1,5 +1,6 @@
 package com.android.server.am;
 
+import static android.app.ActivityManager.StackId.ASSISTANT_STACK_ID;
 import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
 import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
 import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;
@@ -33,6 +34,7 @@
     private static final int WINDOW_STATE_STANDARD = 0;
     private static final int WINDOW_STATE_SIDE_BY_SIDE = 1;
     private static final int WINDOW_STATE_FREEFORM = 2;
+    private static final int WINDOW_STATE_ASSISTANT = 3;
     private static final int WINDOW_STATE_INVALID = -1;
 
     private static final long INVALID_START_TIME = -1;
@@ -40,7 +42,7 @@
     // Preallocated strings we are sending to tron, so we don't have to allocate a new one every
     // time we log.
     private static final String[] TRON_WINDOW_STATE_VARZ_STRINGS = {
-            "window_time_0", "window_time_1", "window_time_2"};
+            "window_time_0", "window_time_1", "window_time_2", "window_time_3"};
 
     private int mWindowState = WINDOW_STATE_STANDARD;
     private long mLastLogTimeSecs;
@@ -88,6 +90,8 @@
             mWindowState = WINDOW_STATE_INVALID;
         } else if (stack.mStackId == FREEFORM_WORKSPACE_STACK_ID) {
             mWindowState = WINDOW_STATE_FREEFORM;
+        } else if (stack.mStackId == ASSISTANT_STACK_ID) {
+            mWindowState = WINDOW_STATE_ASSISTANT;
         } else if (StackId.isStaticStack(stack.mStackId)) {
             throw new IllegalStateException("Unknown stack=" + stack);
         }
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
index 58c17eb..1b19382 100644
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -19,8 +19,10 @@
 import static android.app.ActivityManager.ENABLE_TASK_SNAPSHOTS;
 import static android.app.ActivityManager.LOCK_TASK_MODE_NONE;
 import static android.app.ActivityManager.StackId;
+import static android.app.ActivityManager.StackId.ASSISTANT_STACK_ID;
 import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
 import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
+import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;
 import static android.app.ActivityManager.StackId.HOME_STACK_ID;
 import static android.app.ActivityManager.StackId.PINNED_STACK_ID;
 import static android.app.AppOpsManager.MODE_ALLOWED;
@@ -178,6 +180,7 @@
     static final int APPLICATION_ACTIVITY_TYPE = 0;
     static final int HOME_ACTIVITY_TYPE = 1;
     static final int RECENTS_ACTIVITY_TYPE = 2;
+    static final int ASSISTANT_ACTIVITY_TYPE = 3;
     int mActivityType;
 
     private CharSequence nonLocalizedLabel;  // the label information from the package mgr.
@@ -721,7 +724,7 @@
         noDisplay = ent != null && ent.array.getBoolean(
                 com.android.internal.R.styleable.Window_windowNoDisplay, false);
 
-        setActivityType(_componentSpecified, _launchedFromUid, _intent, sourceRecord);
+        setActivityType(_componentSpecified, _launchedFromUid, _intent, options, sourceRecord);
 
         immersive = (aInfo.flags & FLAG_IMMERSIVE) != 0;
 
@@ -812,8 +815,23 @@
         return sourceRecord != null && sourceRecord.isResolverActivity();
     }
 
-    private void setActivityType(boolean componentSpecified,
-            int launchedFromUid, Intent intent, ActivityRecord sourceRecord) {
+    /**
+     * @return whether the given package name can launch an assist activity.
+     */
+    private boolean canLaunchAssistActivity(String packageName) {
+        if (service.mAssistUtils == null) {
+            return false;
+        }
+
+        final ComponentName assistComponent = service.mAssistUtils.getActiveServiceComponentName();
+        if (assistComponent != null) {
+            return assistComponent.getPackageName().equals(packageName);
+        }
+        return false;
+    }
+
+    private void setActivityType(boolean componentSpecified, int launchedFromUid, Intent intent,
+            ActivityOptions options, ActivityRecord sourceRecord) {
         if ((!componentSpecified || canLaunchHomeActivity(launchedFromUid, sourceRecord))
                 && isHomeIntent(intent) && !isResolverActivity()) {
             // This sure looks like a home activity!
@@ -826,6 +844,9 @@
             }
         } else if (realActivity.getClassName().contains(RECENTS_PACKAGE_NAME)) {
             mActivityType = RECENTS_ACTIVITY_TYPE;
+        } else if (options != null && options.getLaunchStackId() == ASSISTANT_STACK_ID
+                && canLaunchAssistActivity(launchedFromPackage)) {
+            mActivityType = ASSISTANT_ACTIVITY_TYPE;
         } else {
             mActivityType = APPLICATION_ACTIVITY_TYPE;
         }
@@ -883,6 +904,10 @@
         return mActivityType == RECENTS_ACTIVITY_TYPE;
     }
 
+    boolean isAssistantActivity() {
+        return mActivityType == ASSISTANT_ACTIVITY_TYPE;
+    }
+
     boolean isApplicationActivity() {
         return mActivityType == APPLICATION_ACTIVITY_TYPE;
     }
@@ -2317,6 +2342,7 @@
             case APPLICATION_ACTIVITY_TYPE: return "APPLICATION_ACTIVITY_TYPE";
             case HOME_ACTIVITY_TYPE: return "HOME_ACTIVITY_TYPE";
             case RECENTS_ACTIVITY_TYPE: return "RECENTS_ACTIVITY_TYPE";
+            case ASSISTANT_ACTIVITY_TYPE: return "ASSISTANT_ACTIVITY_TYPE";
             default: return Integer.toString(type);
         }
     }
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 104fc6a..7c24604 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -16,6 +16,7 @@
 
 package com.android.server.am;
 
+import static android.app.ActivityManager.StackId.ASSISTANT_STACK_ID;
 import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
 import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
 import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;
@@ -62,6 +63,7 @@
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.am.ActivityRecord.APPLICATION_ACTIVITY_TYPE;
+import static com.android.server.am.ActivityRecord.ASSISTANT_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityStackSupervisor.FindTaskResult;
 import static com.android.server.am.ActivityStackSupervisor.PRESERVE_WINDOWS;
@@ -477,6 +479,8 @@
         mTmpRect2.setEmpty();
         mWindowContainerController.reparent(activityDisplay.mDisplayId, mTmpRect2);
         postAddToDisplay(activityDisplay, mTmpRect2.isEmpty() ? null : mTmpRect2, onTop);
+        adjustFocusToNextFocusableStackLocked("reparent", true /* allowFocusSelf */);
+        mStackSupervisor.resumeFocusedStackTopActivityLocked();
     }
 
     /**
@@ -776,6 +780,10 @@
         return mStackId == PINNED_STACK_ID;
     }
 
+    final boolean isAssistantStack() {
+        return mStackId == ASSISTANT_STACK_ID;
+    }
+
     final boolean isOnHomeDisplay() {
         return isAttached() &&
                 mActivityContainer.mActivityDisplay.mDisplayId == DEFAULT_DISPLAY;
@@ -1554,11 +1562,11 @@
         final ActivityStack focusedStack = mStackSupervisor.getFocusedStack();
         final int focusedStackId = focusedStack.mStackId;
 
-        if (mStackId == FULLSCREEN_WORKSPACE_STACK_ID
+        if (StackId.isBackdropToTranslucentActivity(mStackId)
                 && hasVisibleBehindActivity() && StackId.isHomeOrRecentsStack(focusedStackId)
                 && !focusedStack.topActivity().fullscreen) {
-            // The fullscreen stack should be visible if it has a visible behind activity behind
-            // the home or recents stack that is translucent.
+            // The fullscreen or assistant stack should be visible if it has a visible behind
+            // activity behind the home or recents stack that is translucent.
             return STACK_VISIBLE_ACTIVITY_BEHIND;
         }
 
@@ -1587,10 +1595,10 @@
         final int stackBehindFocusedId = (stackBehindFocusedIndex >= 0)
                 ? mStacks.get(stackBehindFocusedIndex).mStackId : INVALID_STACK_ID;
 
-        if (focusedStackId == FULLSCREEN_WORKSPACE_STACK_ID
+        if (StackId.isBackdropToTranslucentActivity(focusedStackId)
                 && focusedStack.isStackTranslucent(starting, stackBehindFocusedId)) {
-            // Stacks behind the fullscreen stack with a translucent activity are always
-            // visible so they can act as a backdrop to the translucent activity.
+            // Stacks behind the fullscreen or assistant stack with a translucent activity are
+            // always visible so they can act as a backdrop to the translucent activity.
             // For example, dialog activities
             if (stackIndex == stackBehindFocusedIndex) {
                 return STACK_VISIBLE;
@@ -2542,8 +2550,7 @@
 
     private boolean resumeTopActivityInNextFocusableStack(ActivityRecord prev,
             ActivityOptions options, String reason) {
-        if ((!mFullscreen || !isOnHomeDisplay())
-                && adjustFocusToNextFocusableStackLocked(reason)) {
+        if ((!mFullscreen || !isOnHomeDisplay()) && adjustFocusToNextFocusableStackLocked(reason)) {
             // Try to move focus to the next visible stack with a running activity if this
             // stack is not covering the entire screen or is on a secondary display (with no home
             // stack).
@@ -2628,10 +2635,14 @@
                 true /* includingParents */);
     }
 
+    /**
+     * Updates the {@param task}'s return type before it is moved to the top.
+     */
     private void updateTaskReturnToForTopInsertion(TaskRecord task) {
         boolean isLastTaskOverHome = false;
-        // If the moving task is over home stack, transfer its return type to next task
-        if (task.isOverHomeStack()) {
+        // If the moving task is over the home or assistant stack, transfer its return type to next
+        // task so that they return to the same stack
+        if (task.isOverHomeStack() || task.isOverAssistantStack()) {
             final TaskRecord nextTask = getNextTask(task);
             if (nextTask != null) {
                 nextTask.setTaskToReturnTo(task.getTaskToReturnTo());
@@ -2640,24 +2651,32 @@
             }
         }
 
+        // If this is not on the default display, then just set the return type to application
+        if (!isOnHomeDisplay()) {
+            task.setTaskToReturnTo(APPLICATION_ACTIVITY_TYPE);
+            return;
+        }
+
+        // If the task was launched from the assistant stack, set the return type to assistant
+        final ActivityStack lastStack = mStackSupervisor.getLastStack();
+        if (lastStack != null && lastStack.isAssistantStack()) {
+            task.setTaskToReturnTo(ASSISTANT_ACTIVITY_TYPE);
+            return;
+        }
+
         // If this is being moved to the top by another activity or being launched from the home
         // activity, set mTaskToReturnTo accordingly.
-        if (isOnHomeDisplay()) {
-            ActivityStack lastStack = mStackSupervisor.getLastStack();
-            final boolean fromHomeOrRecents = lastStack.isHomeOrRecentsStack();
-            final TaskRecord topTask = lastStack.topTask();
-            if (!isHomeOrRecentsStack() && (fromHomeOrRecents || topTask() != task)) {
-                // If it's a last task over home - we default to keep its return to type not to
-                // make underlying task focused when this one will be finished.
-                int returnToType = isLastTaskOverHome
-                        ? task.getTaskToReturnTo() : APPLICATION_ACTIVITY_TYPE;
-                if (fromHomeOrRecents && StackId.allowTopTaskToReturnHome(mStackId)) {
-                    returnToType = topTask == null ? HOME_ACTIVITY_TYPE : topTask.taskType;
-                }
-                task.setTaskToReturnTo(returnToType);
+        final boolean fromHomeOrRecents = lastStack.isHomeOrRecentsStack();
+        final TaskRecord topTask = lastStack.topTask();
+        if (!isHomeOrRecentsStack() && (fromHomeOrRecents || topTask() != task)) {
+            // If it's a last task over home - we default to keep its return to type not to
+            // make underlying task focused when this one will be finished.
+            int returnToType = isLastTaskOverHome
+                    ? task.getTaskToReturnTo() : APPLICATION_ACTIVITY_TYPE;
+            if (fromHomeOrRecents && StackId.allowTopTaskToReturnHome(mStackId)) {
+                returnToType = topTask == null ? HOME_ACTIVITY_TYPE : topTask.taskType;
             }
-        } else {
-            task.setTaskToReturnTo(APPLICATION_ACTIVITY_TYPE);
+            task.setTaskToReturnTo(returnToType);
         }
     }
 
@@ -3157,11 +3176,14 @@
                 return;
             } else {
                 final TaskRecord task = r.task;
-                if (r.frontOfTask && task == topTask() && task.isOverHomeStack()) {
-                    // For non-fullscreen stack, we want to move the focus to the next visible
-                    // stack to prevent the home screen from moving to the top and obscuring
+                final boolean isAssistantOrOverAssistant = task.getStack().isAssistantStack() ||
+                        task.isOverAssistantStack();
+                if (r.frontOfTask && task == topTask() &&
+                        (task.isOverHomeStack() || isAssistantOrOverAssistant)) {
+                    // For non-fullscreen or assistant stack, we want to move the focus to the next
+                    // visible stack to prevent the home screen from moving to the top and obscuring
                     // other visible stacks.
-                    if (!mFullscreen
+                    if ((!mFullscreen || isAssistantOrOverAssistant)
                             && adjustFocusToNextFocusableStackLocked(myReason)) {
                         return;
                     }
@@ -3179,8 +3201,18 @@
                 mStackSupervisor.topRunningActivityLocked(), myReason);
     }
 
+    /** Find next proper focusable stack and make it focused. */
     private boolean adjustFocusToNextFocusableStackLocked(String reason) {
-        final ActivityStack stack = mStackSupervisor.getNextFocusableStackLocked(this);
+        return adjustFocusToNextFocusableStackLocked(reason, false /* allowFocusSelf */);
+    }
+
+    /**
+     * Find next proper focusable stack and make it focused.
+     * @param allowFocusSelf Is the focus allowed to remain on the same stack.
+     */
+    private boolean adjustFocusToNextFocusableStackLocked(String reason, boolean allowFocusSelf) {
+        final ActivityStack stack = mStackSupervisor.getNextFocusableStackLocked(
+                allowFocusSelf ? null : this);
         final String myReason = reason + " adjustFocusToNextFocusableStack";
         if (stack == null) {
             return false;
@@ -3190,7 +3222,8 @@
 
         if (stack.isHomeOrRecentsStack() && (top == null || !top.visible)) {
             // If we will be focusing on the home stack next and its current top activity isn't
-            // visible, then use the task return to value to determine the home task to display next.
+            // visible, then use the task return to value to determine the home task to display
+            // next.
             return mStackSupervisor.moveHomeStackTaskToTop(reason);
         }
 
@@ -4345,13 +4378,21 @@
 
         if (mStackId == HOME_STACK_ID && topTask().isHomeTask()) {
             // For the case where we are moving the home task back and there is an activity visible
-            // behind it on the fullscreen stack, we want to move the focus to the visible behind
-            // activity to maintain order with what the user is seeing.
+            // behind it on the fullscreen or assistant stack, we want to move the focus to the
+            // visible behind activity to maintain order with what the user is seeing.
+            ActivityRecord visibleBehind = null;
             final ActivityStack fullscreenStack =
                     mStackSupervisor.getStack(FULLSCREEN_WORKSPACE_STACK_ID);
+            final ActivityStack assistantStack =
+                    mStackSupervisor.getStack(ASSISTANT_STACK_ID);
             if (fullscreenStack != null && fullscreenStack.hasVisibleBehindActivity()) {
-                final ActivityRecord visibleBehind = fullscreenStack.getVisibleBehindActivity();
-                mStackSupervisor.moveFocusableActivityStackToFrontLocked(visibleBehind, "moveTaskToBack");
+                visibleBehind = fullscreenStack.getVisibleBehindActivity();
+            } else if (assistantStack != null && assistantStack.hasVisibleBehindActivity()) {
+                visibleBehind = assistantStack.getVisibleBehindActivity();
+            }
+            if (visibleBehind != null) {
+                mStackSupervisor.moveFocusableActivityStackToFrontLocked(visibleBehind,
+                        "moveTaskToBack");
                 mStackSupervisor.resumeFocusedStackTopActivityLocked();
                 return true;
             }
@@ -4845,7 +4886,7 @@
         final int topTaskNdx = mTaskHistory.size() - 1;
         if (task.isOverHomeStack() && taskNdx < topTaskNdx) {
             final TaskRecord nextTask = mTaskHistory.get(taskNdx + 1);
-            if (!nextTask.isOverHomeStack()) {
+            if (!nextTask.isOverHomeStack() && !nextTask.isOverAssistantStack()) {
                 nextTask.setTaskToReturnTo(HOME_ACTIVITY_TYPE);
             }
         }
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index e954363..95734a4 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -40,6 +40,7 @@
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.FLAG_PRIVATE;
 import static android.view.Display.INVALID_DISPLAY;
+import static android.view.Display.REMOVE_MODE_DESTROY_CONTENT;
 
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ALL;
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_CONTAINERS;
@@ -2616,8 +2617,9 @@
      * Move stack with all its existing content to specified display.
      * @param stackId Id of stack to move.
      * @param displayId Id of display to move stack to.
+     * @param onTop Indicates whether container should be place on top or on bottom.
      */
-    void moveStackToDisplayLocked(int stackId, int displayId) {
+    void moveStackToDisplayLocked(int stackId, int displayId, boolean onTop) {
         final ActivityDisplay activityDisplay = mActivityDisplays.get(displayId);
         if (activityDisplay == null) {
             throw new IllegalArgumentException("moveStackToDisplayLocked: Unknown displayId="
@@ -2631,7 +2633,7 @@
                             + " to its current displayId=" + displayId);
                 }
 
-                activityContainer.moveToDisplayLocked(activityDisplay);
+                activityContainer.moveToDisplayLocked(activityDisplay, onTop);
             } else {
                 throw new IllegalStateException("moveStackToDisplayLocked: Stack with stackId="
                         + stackId + " is not attached to any display.");
@@ -3777,12 +3779,16 @@
         synchronized (mService) {
             ActivityDisplay activityDisplay = mActivityDisplays.get(displayId);
             if (activityDisplay != null) {
+                final boolean destroyContentOnRemoval
+                        = activityDisplay.shouldDestroyContentOnRemove();
                 ArrayList<ActivityStack> stacks = activityDisplay.mStacks;
                 for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
                     final ActivityStack stack = stacks.get(stackNdx);
-                    // TODO: Implement proper stack removal and ability to choose the behavior -
-                    // remove stack completely or move it to other display.
-                    moveStackToDisplayLocked(stack.mStackId, DEFAULT_DISPLAY);
+                    moveStackToDisplayLocked(stack.mStackId, DEFAULT_DISPLAY,
+                            !destroyContentOnRemoval /* onTop */);
+                    if (destroyContentOnRemoval) {
+                        stack.finishAllActivitiesLocked(true /* immediately */);
+                    }
                 }
                 mActivityDisplays.remove(displayId);
             }
@@ -4451,8 +4457,9 @@
         /**
          * Move the stack to specified display.
          * @param activityDisplay Target display to move the stack to.
+         * @param onTop Indicates whether container should be place on top or on bottom.
          */
-        void moveToDisplayLocked(ActivityDisplay activityDisplay) {
+        void moveToDisplayLocked(ActivityDisplay activityDisplay, boolean onTop) {
             if (DEBUG_STACK) Slog.d(TAG_STACK, "moveToDisplayLocked: " + this + " from display="
                     + mActivityDisplay + " to display=" + activityDisplay
                     + " Callers=" + Debug.getCallers(2));
@@ -4460,7 +4467,7 @@
             removeFromDisplayLocked();
 
             mActivityDisplay = activityDisplay;
-            mStack.reparent(activityDisplay, ON_TOP);
+            mStack.reparent(activityDisplay, onTop);
         }
 
         @Override
@@ -4642,8 +4649,6 @@
         /** Actual Display this object tracks. */
         int mDisplayId;
         Display mDisplay;
-        private final DisplayMetrics mRealMetrics = new DisplayMetrics();
-        private final Point mRealSize = new Point();
 
         /** All of the stacks on this display. Order matters, topmost stack is in front of all other
          * stacks, bottommost behind. Accessed directly by ActivityManager package classes */
@@ -4737,6 +4742,10 @@
             }
             return mDisplayAccessUIDs;
         }
+
+        boolean shouldDestroyContentOnRemove() {
+            return mDisplay.getRemoveMode() == REMOVE_MODE_DESTROY_CONTENT;
+        }
     }
 
     class VirtualActivityDisplay extends ActivityDisplay {
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index d1606b4..4b07af0 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -25,6 +25,7 @@
 import static android.app.ActivityManager.START_SUCCESS;
 import static android.app.ActivityManager.START_TASK_TO_FRONT;
 import static android.app.ActivityManager.StackId;
+import static android.app.ActivityManager.StackId.ASSISTANT_STACK_ID;
 import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
 import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
 import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;
@@ -69,6 +70,7 @@
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.am.ActivityManagerService.ANIMATE;
 import static com.android.server.am.ActivityRecord.APPLICATION_ACTIVITY_TYPE;
+import static com.android.server.am.ActivityRecord.ASSISTANT_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityRecord.RECENTS_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityStack.ActivityState.RESUMED;
@@ -1090,8 +1092,8 @@
                 mIntent, mStartActivity.getUriPermissionsLocked(), mStartActivity.userId);
         mService.grantEphemeralAccessLocked(mStartActivity.userId, mIntent,
                 mStartActivity.appInfo.uid, UserHandle.getAppId(mCallingUid));
-        if (mSourceRecord != null && mSourceRecord.isRecentsActivity()) {
-            mStartActivity.task.setTaskToReturnTo(RECENTS_ACTIVITY_TYPE);
+        if (mSourceRecord != null) {
+            mStartActivity.task.setTaskToReturnTo(mSourceRecord);
         }
         if (newTask) {
             EventLog.writeEvent(
@@ -1503,10 +1505,15 @@
             // Caller wants to appear on home activity.
             task.setTaskToReturnTo(HOME_ACTIVITY_TYPE);
             return;
-        } else if (focusedStack == null || focusedStack.mStackId == HOME_STACK_ID) {
+        } else if (focusedStack == null || focusedStack.isHomeStack()) {
             // Task will be launched over the home stack, so return home.
             task.setTaskToReturnTo(HOME_ACTIVITY_TYPE);
             return;
+        } else if (focusedStack != null && focusedStack != task.getStack() &&
+                focusedStack.isAssistantStack()) {
+            // Task was launched over the assistant stack, so return there
+            task.setTaskToReturnTo(ASSISTANT_ACTIVITY_TYPE);
+            return;
         }
 
         // Else we are coming from an application stack so return to an application.
@@ -1848,13 +1855,6 @@
     private ActivityStack computeStackFocus(ActivityRecord r, boolean newTask, Rect bounds,
             int launchFlags, ActivityOptions aOptions) {
         final TaskRecord task = r.task;
-        if (r.isRecentsActivity()) {
-            return mSupervisor.getStack(RECENTS_STACK_ID, CREATE_IF_NEEDED, ON_TOP);
-        }
-        if (r.isHomeActivity()) {
-            return mSupervisor.mHomeStack;
-        }
-
         ActivityStack stack = getLaunchStack(r, launchFlags, task, aOptions);
         if (stack != null) {
             return stack;
@@ -1927,6 +1927,9 @@
             case FULLSCREEN_WORKSPACE_STACK_ID:
                 canUseFocusedStack = true;
                 break;
+            case ASSISTANT_STACK_ID:
+                canUseFocusedStack = r.isAssistantActivity();
+                break;
             case DOCKED_STACK_ID:
                 canUseFocusedStack = r.supportsSplitScreen();
                 break;
@@ -1946,6 +1949,18 @@
     private ActivityStack getLaunchStack(ActivityRecord r, int launchFlags, TaskRecord task,
             ActivityOptions aOptions) {
 
+        // If the activity is of a specific type, return the associated stack, creating it if
+        // necessary
+        if (r.isHomeActivity()) {
+            return mSupervisor.mHomeStack;
+        }
+        if (r.isRecentsActivity()) {
+            return mSupervisor.getStack(RECENTS_STACK_ID, CREATE_IF_NEEDED, ON_TOP);
+        }
+        if (r.isAssistantActivity()) {
+            return mSupervisor.getStack(ASSISTANT_STACK_ID, CREATE_IF_NEEDED, ON_TOP);
+        }
+
         // We are reusing a task, keep the stack!
         if (mReuseTask != null) {
             return mReuseTask.getStack();
@@ -1996,7 +2011,7 @@
                 return mSupervisor.mFocusedStack;
             }
 
-            if (parentStack != null && parentStack.mStackId == DOCKED_STACK_ID) {
+            if (parentStack != null && parentStack.isDockedStack()) {
                 // If parent was in docked stack, the natural place to launch another activity
                 // will be fullscreen, so it can appear alongside the docked window.
                 return mSupervisor.getStack(FULLSCREEN_WORKSPACE_STACK_ID, CREATE_IF_NEEDED,
@@ -2032,6 +2047,8 @@
                 return r.supportsPictureInPicture();
             case RECENTS_STACK_ID:
                 return r.isRecentsActivity();
+            case ASSISTANT_STACK_ID:
+                return r.isAssistantActivity();
             default:
                 if (StackId.isDynamicStack(stackId)) {
                     return true;
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index 356781f..2d27204 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -31,14 +31,11 @@
 import android.app.ActivityManager;
 import android.app.Dialog;
 import android.app.IApplicationThread;
-import android.app.IInstrumentationWatcher;
-import android.app.IUiAutomationConnection;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.res.CompatibilityInfo;
 import android.os.Binder;
-import android.os.Bundle;
 import android.os.IBinder;
 import android.os.Process;
 import android.os.RemoteException;
@@ -46,7 +43,6 @@
 import android.os.Trace;
 import android.os.UserHandle;
 import android.util.ArrayMap;
-import android.util.PrintWriterPrinter;
 import android.util.TimeUtils;
 
 import java.io.PrintWriter;
@@ -116,8 +112,18 @@
     boolean repForegroundActivities; // Last reported foreground activities.
     boolean systemNoUi;         // This is a system process, but not currently showing UI.
     boolean hasShownUi;         // Has UI been shown in this process since it was started?
-    boolean hasTopUi;           // Is this process currently showing "top-level" UI that is not an
-                                // activity?
+    boolean hasTopUi;           // Is this process currently showing a non-activity UI that the user
+                                // is interacting with? E.g. The status bar when it is expanded, but
+                                // not when it is minimized. When true the
+                                // process will be set to use the ProcessList#SCHED_GROUP_TOP_APP
+                                // scheduling group to boost performance.
+    boolean hasOverlayUi;       // Is the process currently showing a non-activity UI that
+                                // overlays on-top of activity UIs on screen. E.g. display a window
+                                // of type
+                                // android.view.WindowManager.LayoutParams#TYPE_APPLICATION_OVERLAY
+                                // When true the process will oom adj score will be set to
+                                // ProcessList#PERCEPTIBLE_APP_ADJ at minimum to reduce the chance
+                                // of the process getting killed.
     boolean pendingUiClean;     // Want to clean up resources from showing UI?
     boolean hasAboveClient;     // Bound using BIND_ABOVE_CLIENT, so want to be lower
     boolean treatLikeActivity;  // Bound using BIND_TREAT_LIKE_ACTIVITY
@@ -425,6 +431,9 @@
         if (hasTopUi) {
             pw.print(prefix); pw.print("hasTopUi="); pw.print(hasTopUi);
         }
+        if (hasOverlayUi) {
+            pw.print(prefix); pw.print("hasOverlayUi="); pw.print(hasOverlayUi);
+        }
     }
 
     ProcessRecord(BatteryStatsImpl _batteryStats, ApplicationInfo _info,
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index e237e41..520d4ee 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -66,6 +66,7 @@
 import java.util.Objects;
 
 import static android.app.ActivityManager.RESIZE_MODE_FORCED;
+import static android.app.ActivityManager.StackId.ASSISTANT_STACK_ID;
 import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
 import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
 import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;
@@ -101,6 +102,7 @@
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.am.ActivityRecord.APPLICATION_ACTIVITY_TYPE;
+import static com.android.server.am.ActivityRecord.ASSISTANT_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityRecord.RECENTS_ACTIVITY_TYPE;
 import static com.android.server.am.ActivityRecord.STARTING_WINDOW_SHOWN;
@@ -719,6 +721,14 @@
                 ? HOME_ACTIVITY_TYPE : taskToReturnTo;
     }
 
+    void setTaskToReturnTo(ActivityRecord source) {
+        if (source.isRecentsActivity()) {
+            setTaskToReturnTo(RECENTS_ACTIVITY_TYPE);
+        } else if (source.isAssistantActivity()) {
+            setTaskToReturnTo(ASSISTANT_ACTIVITY_TYPE);
+        }
+    }
+
     int getTaskToReturnTo() {
         return mTaskToReturnTo;
     }
@@ -969,18 +979,9 @@
                 || topRunningActivityLocked() != null;
     }
 
-    void setFrontOfTask() {
-        setFrontOfTask(null);
-    }
-
     /** Call after activity movement or finish to make sure that frontOfTask is set correctly */
-    void setFrontOfTask(ActivityRecord newTop) {
-        // If a top candidate is suggested by the caller, go ahead and use it and mark all others
-        // as not front. This is needed in situations where the current front activity in the
-        // task isn't finished yet and we want to set the front to the activity moved to the front
-        // of the task.
-        boolean foundFront = newTop != null ? true : false;
-
+    final void setFrontOfTask() {
+        boolean foundFront = false;
         final int numActivities = mActivities.size();
         for (int activityNdx = 0; activityNdx < numActivities; ++activityNdx) {
             final ActivityRecord r = mActivities.get(activityNdx);
@@ -997,9 +998,6 @@
             // activity, make the bottom activity front.
             mActivities.get(0).frontOfTask = true;
         }
-        if (newTop != null) {
-            newTop.frontOfTask = true;
-        }
     }
 
     /**
@@ -1014,7 +1012,7 @@
         mActivities.add(newTop);
         updateEffectiveIntent();
 
-        setFrontOfTask(newTop);
+        setFrontOfTask();
     }
 
     void addActivityAtBottom(ActivityRecord r) {
@@ -1300,6 +1298,10 @@
         return taskType == RECENTS_ACTIVITY_TYPE;
     }
 
+    boolean isAssistantTask() {
+        return taskType == ASSISTANT_ACTIVITY_TYPE;
+    }
+
     boolean isApplicationTask() {
         return taskType == APPLICATION_ACTIVITY_TYPE;
     }
@@ -1308,6 +1310,10 @@
         return mTaskToReturnTo == HOME_ACTIVITY_TYPE;
     }
 
+    boolean isOverAssistantStack() {
+        return mTaskToReturnTo == ASSISTANT_ACTIVITY_TYPE;
+    }
+
     private boolean isResizeable(boolean checkSupportsPip) {
         return (mService.mForceResizableActivities || ActivityInfo.isResizeableMode(mResizeMode)
                 || (checkSupportsPip && mSupportsPictureInPicture)) && !mTemporarilyUnresizable;
@@ -1974,6 +1980,9 @@
         if (isHomeTask()) {
             return HOME_STACK_ID;
         }
+        if (isAssistantTask()) {
+            return ASSISTANT_STACK_ID;
+        }
         if (mBounds != null) {
             return FREEFORM_WORKSPACE_STACK_ID;
         }
@@ -1994,6 +2003,7 @@
         final int stackId = mStack.mStackId;
         if (stackId == HOME_STACK_ID
                 || stackId == RECENTS_STACK_ID
+                || stackId == ASSISTANT_STACK_ID
                 || stackId == FULLSCREEN_WORKSPACE_STACK_ID
                 || (stackId == DOCKED_STACK_ID && !isResizeable())) {
             return isResizeable() ? mStack.mBounds : null;
diff --git a/services/core/java/com/android/server/am/UidRecord.java b/services/core/java/com/android/server/am/UidRecord.java
index 64e3417..302f628 100644
--- a/services/core/java/com/android/server/am/UidRecord.java
+++ b/services/core/java/com/android/server/am/UidRecord.java
@@ -26,7 +26,6 @@
  */
 public final class UidRecord {
     final int uid;
-    final boolean persistent;
     int curProcState;
     int setProcState = ActivityManager.PROCESS_STATE_NONEXISTENT;
     long lastBackgroundTime;
@@ -52,9 +51,8 @@
 
     ChangeItem pendingChange;
 
-    public UidRecord(int _uid, boolean _persist) {
+    public UidRecord(int _uid) {
         uid = _uid;
-        persistent = _persist;
         reset();
     }
 
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 1d60946..8d0111b 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -778,7 +778,8 @@
                 0,
                 0,
                 TAG,
-                SAFE_VOLUME_CONFIGURE_TIMEOUT_MS);
+                SystemProperties.getBoolean("audio.safemedia.bypass", false) ?
+                        0 : SAFE_VOLUME_CONFIGURE_TIMEOUT_MS);
 
         initA11yMonitoring();
         onIndicateSystemReady();
@@ -1164,7 +1165,7 @@
         // Check the current user restriction.
         boolean masterMute =
                 mUserManagerInternal.getUserRestriction(currentUser,
-                        UserManager.DISALLLOW_UNMUTE_DEVICE)
+                        UserManager.DISALLOW_UNMUTE_DEVICE)
                         || mUserManagerInternal.getUserRestriction(currentUser,
                         UserManager.DISALLOW_ADJUST_VOLUME);
         if (mUseFixedVolume) {
@@ -5485,10 +5486,10 @@
             {
                 final boolean wasRestricted =
                         prevRestrictions.getBoolean(UserManager.DISALLOW_ADJUST_VOLUME)
-                                || prevRestrictions.getBoolean(UserManager.DISALLLOW_UNMUTE_DEVICE);
+                                || prevRestrictions.getBoolean(UserManager.DISALLOW_UNMUTE_DEVICE);
                 final boolean isRestricted =
                         newRestrictions.getBoolean(UserManager.DISALLOW_ADJUST_VOLUME)
-                                || newRestrictions.getBoolean(UserManager.DISALLLOW_UNMUTE_DEVICE);
+                                || newRestrictions.getBoolean(UserManager.DISALLOW_UNMUTE_DEVICE);
                 if (wasRestricted != isRestricted) {
                     setMasterMuteInternalNoCallerCheck(isRestricted, /* flags =*/ 0, userId);
                 }
diff --git a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
index 3f8bbe5..bf1018f 100644
--- a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
+++ b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
@@ -359,12 +359,12 @@
                     try {
                         if (DEBUG) { Log.v(TAG, "unmuting player" + piid); }
                         apc.getPlayerProxy().setVolume(1.0f);
-                        mMutedPlayers.remove(new Integer(piid));
                     } catch (Exception e) {
                         Log.e(TAG, "Error unmuting player " + piid, e);
                     }
                 }
             }
+            mMutedPlayers.clear();
         }
     }
 
diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java
index 4487d5b..94417b5 100644
--- a/services/core/java/com/android/server/clipboard/ClipboardService.java
+++ b/services/core/java/com/android/server/clipboard/ClipboardService.java
@@ -404,9 +404,11 @@
             return;
         }
         clipboard.primaryClip = clip;
-        final ClipDescription description = clipboard.primaryClip.getDescription();
-        if (description != null) {
-            description.setTimestamp(SystemClock.elapsedRealtime());
+        if (clip != null) {
+            final ClipDescription description = clip.getDescription();
+            if (description != null) {
+                description.setTimestamp(SystemClock.elapsedRealtime());
+            }
         }
         final long ident = Binder.clearCallingIdentity();
         final int n = clipboard.primaryClipListeners.beginBroadcast();
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index a5876dd..b963555 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -85,6 +85,8 @@
 import com.android.internal.net.VpnConfig;
 import com.android.internal.net.VpnInfo;
 import com.android.internal.net.VpnProfile;
+import com.android.server.DeviceIdleController;
+import com.android.server.LocalServices;
 import com.android.server.net.BaseNetworkObserver;
 
 import libcore.io.IoUtils;
@@ -115,6 +117,10 @@
     private static final String TAG = "Vpn";
     private static final boolean LOGD = true;
 
+    // Length of time (in milliseconds) that an app hosting an always-on VPN is placed on
+    // the device idle whitelist during service launch and VPN bootstrap.
+    private static final long VPN_LAUNCH_IDLE_WHITELIST_DURATION = 60 * 1000;
+
     // TODO: create separate trackers for each unique VPN to support
     // automated reconnection
 
@@ -389,14 +395,26 @@
             }
         }
 
-        // Start the VPN service declared in the app's manifest.
-        Intent serviceIntent = new Intent(VpnConfig.SERVICE_INTERFACE);
-        serviceIntent.setPackage(alwaysOnPackage);
+        // Tell the OS that background services in this app need to be allowed for
+        // a short time, so we can bootstrap the VPN service.
+        final long oldId = Binder.clearCallingIdentity();
         try {
-            return mContext.startServiceAsUser(serviceIntent, UserHandle.of(mUserHandle)) != null;
-        } catch (RuntimeException e) {
-            Log.e(TAG, "VpnService " + serviceIntent + " failed to start", e);
-            return false;
+            DeviceIdleController.LocalService idleController =
+                    LocalServices.getService(DeviceIdleController.LocalService.class);
+            idleController.addPowerSaveTempWhitelistApp(Process.myUid(), alwaysOnPackage,
+                    VPN_LAUNCH_IDLE_WHITELIST_DURATION, mUserHandle, false, "vpn");
+
+            // Start the VPN service declared in the app's manifest.
+            Intent serviceIntent = new Intent(VpnConfig.SERVICE_INTERFACE);
+            serviceIntent.setPackage(alwaysOnPackage);
+            try {
+                return mContext.startServiceAsUser(serviceIntent, UserHandle.of(mUserHandle)) != null;
+            } catch (RuntimeException e) {
+                Log.e(TAG, "VpnService " + serviceIntent + " failed to start", e);
+                return false;
+            }
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
         }
     }
 
diff --git a/services/core/java/com/android/server/display/LogicalDisplay.java b/services/core/java/com/android/server/display/LogicalDisplay.java
index 40a8952..a947b41 100644
--- a/services/core/java/com/android/server/display/LogicalDisplay.java
+++ b/services/core/java/com/android/server/display/LogicalDisplay.java
@@ -216,6 +216,8 @@
             }
             if ((deviceInfo.flags & DisplayDeviceInfo.FLAG_PRIVATE) != 0) {
                 mBaseDisplayInfo.flags |= Display.FLAG_PRIVATE;
+                // For private displays by default content is destroyed on removal.
+                mBaseDisplayInfo.removeMode = Display.REMOVE_MODE_DESTROY_CONTENT;
             }
             if ((deviceInfo.flags & DisplayDeviceInfo.FLAG_PRESENTATION) != 0) {
                 mBaseDisplayInfo.flags |= Display.FLAG_PRESENTATION;
diff --git a/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java b/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
index 353f450..98771df 100644
--- a/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
+++ b/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
@@ -245,23 +245,25 @@
                 }
             }
         }
-        if (neededNow != neededBefore) {
-            setSimNeedsEmergencyAffordance(neededNow);
-        }
+        setSimNeedsEmergencyAffordance(neededNow);
         return neededNow;
     }
 
     private void setSimNeedsEmergencyAffordance(boolean simNeedsEmergencyAffordance) {
-        mSimNeedsEmergencyAffordance = simNeedsEmergencyAffordance;
-        Settings.Global.putInt(mContext.getContentResolver(),
-                EMERGENCY_SIM_INSERTED_SETTING,
-                simNeedsEmergencyAffordance ? 1 : 0);
-        updateEmergencyAffordanceNeeded();
+        if (simNeededAffordanceBefore() != simNeedsEmergencyAffordance) {
+            Settings.Global.putInt(mContext.getContentResolver(),
+                    EMERGENCY_SIM_INSERTED_SETTING,
+                    simNeedsEmergencyAffordance ? 1 : 0);
+        }
+        if (simNeedsEmergencyAffordance != mSimNeedsEmergencyAffordance) {
+            mSimNeedsEmergencyAffordance = simNeedsEmergencyAffordance;
+            updateEmergencyAffordanceNeeded();
+        }
     }
 
     private boolean simNeededAffordanceBefore() {
         return Settings.Global.getInt(mContext.getContentResolver(),
-                "emergency_sim_inserted_before", 0) != 0;
+                EMERGENCY_SIM_INSERTED_SETTING, 0) != 0;
     }
 
     private boolean handleUpdateCellInfo() {
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index cc3fc00..19c9d9b 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -1678,11 +1678,19 @@
         @Override
         public ParceledListSlice<NotificationChannel> getNotificationChannelsForPackage(String pkg,
                 int uid, boolean includeDeleted) {
-            checkCallerIsSystem();
+            enforceSystemOrSystemUI("getNotificationChannelsForPackage");
             return mRankingHelper.getNotificationChannels(pkg, uid, includeDeleted);
         }
 
         @Override
+        public int getNumNotificationChannelsForPackage(String pkg, int uid,
+                boolean includeDeleted) {
+            enforceSystemOrSystemUI("getNumNotificationChannelsForPackage");
+            return mRankingHelper.getNotificationChannels(pkg, uid, includeDeleted)
+                    .getList().size();
+        }
+
+        @Override
         public ParceledListSlice<NotificationChannelGroup> getNotificationChannelGroupsForPackage(
                 String pkg, int uid, boolean includeDeleted) {
             checkCallerIsSystem();
@@ -1690,13 +1698,19 @@
         }
 
         @Override
+        public NotificationChannelGroup getNotificationChannelGroupForPackage(
+                String groupId, String pkg, int uid) {
+            enforceSystemOrSystemUI("getNotificationChannelGroupForPackage");
+            return mRankingHelper.getNotificationChannelGroup(groupId, pkg, uid);
+        }
+
+        @Override
         public ParceledListSlice<NotificationChannel> getNotificationChannels(String pkg) {
             checkCallerIsSystemOrSameApp(pkg);
             return mRankingHelper.getNotificationChannels(
                     pkg, Binder.getCallingUid(), false /* includeDeleted */);
         }
 
-
         @Override
         public void clearData(String packageName, int uid, boolean fromApp) throws RemoteException {
             checkCallerIsSystem();
diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java
index 46c449b..76890b1 100644
--- a/services/core/java/com/android/server/notification/RankingHelper.java
+++ b/services/core/java/com/android/server/notification/RankingHelper.java
@@ -670,6 +670,13 @@
         }
     }
 
+    public NotificationChannelGroup getNotificationChannelGroup(String groupId, String pkg,
+            int uid) {
+        Preconditions.checkNotNull(pkg);
+        Record r = getRecord(pkg, uid);
+        return r.groups.get(groupId);
+    }
+
     @Override
     public ParceledListSlice<NotificationChannelGroup> getNotificationChannelGroups(String pkg,
             int uid, boolean includeDeleted) {
diff --git a/services/core/java/com/android/server/os/SchedulingPolicyService.java b/services/core/java/com/android/server/os/SchedulingPolicyService.java
index 62c9f4c..5d72d50 100644
--- a/services/core/java/com/android/server/os/SchedulingPolicyService.java
+++ b/services/core/java/com/android/server/os/SchedulingPolicyService.java
@@ -37,7 +37,9 @@
     public SchedulingPolicyService() {
     }
 
-    public int requestPriority(int pid, int tid, int prio) {
+    // TODO(b/35196900) We should pass the period in time units, rather
+    // than a fixed priority number.
+    public int requestPriority(int pid, int tid, int prio, boolean isForApp) {
         //Log.i(TAG, "requestPriority(pid=" + pid + ", tid=" + tid + ", prio=" + prio + ")");
 
         // Verify that the caller uid is permitted, priority is in range,
@@ -52,7 +54,7 @@
         }
         try {
             // make good use of our CAP_SYS_NICE capability
-            Process.setThreadGroup(tid, Binder.getCallingPid() == pid ?
+            Process.setThreadGroup(tid, !isForApp ?
                     Process.THREAD_GROUP_AUDIO_SYS : Process.THREAD_GROUP_AUDIO_APP);
             // must be in this order or it fails the schedulability constraint
             Process.setThreadScheduler(tid, Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK,
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index b6611eb..179f310 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -64,6 +64,7 @@
 import com.android.server.SystemService;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -216,29 +217,35 @@
             }
         }
 
-        /**
-         * Checks if the caller is in the same group as the userToCheck.
-         */
-        private void ensureInUserProfiles(
-                String callingPackage, UserHandle userToCheck, String message) {
-            ensureInUserProfiles(callingPackage, userToCheck.getIdentifier(), message);
+        /** See {@link #canAccessProfile(String, int, String)} */
+        private boolean canAccessProfile(
+                String callingPackage, UserHandle targetUser, String message) {
+            return canAccessProfile(callingPackage, targetUser.getIdentifier(), message);
         }
 
-        private void ensureInUserProfiles(String callingPackage, int targetUserId, String message) {
+        /**
+         * Checks if the calling user is in the same group as {@code targetUser}, and allowed
+         * to access it.
+         *
+         * @return TRUE if the calling user can access {@code targetUserId}.  FALSE if not *but
+         * they're still in the same profile group*.
+         *
+         * @throws SecurityException if the calling user and {@code targetUser} are not in the same
+         * group.
+         */
+        private boolean canAccessProfile(String callingPackage, int targetUserId, String message) {
             final int callingUserId = injectCallingUserId();
 
-            if (targetUserId == callingUserId) return;
+            if (targetUserId == callingUserId) return true;
 
             long ident = injectClearCallingIdentity();
             try {
                 UserInfo callingUserInfo = mUm.getUserInfo(callingUserId);
                 if (callingUserInfo.isManagedProfile()) {
-                    // TODO: Make it SecurityException.  See b/34650921
-                    // throw new SecurityException(message + " for another profile " + targetUserId);
-
-                    // TODO: Report caller package name.
                     Slog.wtfStack(TAG, message + " by " + callingPackage + " for another profile "
                             + targetUserId + " from " + callingUserId);
+
+                    return false;
                 }
 
                 UserInfo targetUserInfo = mUm.getUserInfo(targetUserId);
@@ -250,6 +257,7 @@
             } finally {
                 injectRestoreCallingIdentity(ident);
             }
+            return true;
         }
 
         @VisibleForTesting // We override it in unit tests
@@ -301,7 +309,9 @@
         public ActivityInfo resolveActivity(
                 String callingPackage, ComponentName component, UserHandle user)
                 throws RemoteException {
-            ensureInUserProfiles(callingPackage, user, "Cannot resolve activity");
+            if (!canAccessProfile(callingPackage, user, "Cannot resolve activity")) {
+                return null;
+            }
             if (!isUserEnabled(user)) {
                 return null;
             }
@@ -328,7 +338,9 @@
 
         private ParceledListSlice<ResolveInfo> queryActivitiesForUser(String callingPackage,
                 Intent intent, UserHandle user) {
-            ensureInUserProfiles(callingPackage, user, "Cannot retrieve activities");
+            if (!canAccessProfile(callingPackage, user, "Cannot retrieve activities")) {
+                return null;
+            }
             if (!isUserEnabled(user)) {
                 return null;
             }
@@ -348,7 +360,10 @@
         @Override
         public IntentSender getShortcutConfigActivityIntent(String callingPackage,
                 ComponentName component, UserHandle user) throws RemoteException {
-            ensureShortcutPermission(callingPackage, user);
+            ensureShortcutPermission(callingPackage);
+            if (!canAccessProfile(callingPackage, user, "Cannot check package")) {
+                return null;
+            }
             Preconditions.checkNotNull(component);
             Preconditions.checkArgument(isUserEnabled(user), "User not enabled");
 
@@ -356,11 +371,11 @@
             Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT).setComponent(component);
             final long identity = Binder.clearCallingIdentity();
             try {
-                return PendingIntent.getActivityAsUser(
+                final PendingIntent pi = PendingIntent.getActivityAsUser(
                         mContext, 0, intent, PendingIntent.FLAG_ONE_SHOT
                                 | PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_CANCEL_CURRENT,
-                        null, user)
-                        .getIntentSender();
+                        null, user);
+                return pi == null ? null : pi.getIntentSender();
             } finally {
                 Binder.restoreCallingIdentity(identity);
             }
@@ -369,7 +384,9 @@
         @Override
         public boolean isPackageEnabled(String callingPackage, String packageName, UserHandle user)
                 throws RemoteException {
-            ensureInUserProfiles(callingPackage, user, "Cannot check package");
+            if (!canAccessProfile(callingPackage, user, "Cannot check package")) {
+                return false;
+            }
             if (!isUserEnabled(user)) {
                 return false;
             }
@@ -391,7 +408,9 @@
         public ApplicationInfo getApplicationInfo(
                 String callingPackage, String packageName, int flags, UserHandle user)
                 throws RemoteException {
-            ensureInUserProfiles(callingPackage, user, "Cannot check package");
+            if (!canAccessProfile(callingPackage, user, "Cannot check package")) {
+                return null;
+            }
             if (!isUserEnabled(user)) {
                 return null;
             }
@@ -407,14 +426,8 @@
             }
         }
 
-        private void ensureShortcutPermission(@NonNull String callingPackage, UserHandle user) {
-            ensureShortcutPermission(callingPackage, user.getIdentifier());
-        }
-
-        private void ensureShortcutPermission(@NonNull String callingPackage, int userId) {
+        private void ensureShortcutPermission(@NonNull String callingPackage) {
             verifyCallingPackage(callingPackage);
-            ensureInUserProfiles(callingPackage, userId, "Cannot access shortcuts");
-
             if (!mShortcutServiceInternal.hasShortcutHostPermission(getCallingUserId(),
                     callingPackage)) {
                 throw new SecurityException("Caller can't access shortcut information");
@@ -424,10 +437,11 @@
         @Override
         public ParceledListSlice getShortcuts(String callingPackage, long changedSince,
                 String packageName, List shortcutIds, ComponentName componentName, int flags,
-                UserHandle user) {
-            ensureShortcutPermission(callingPackage, user);
-            if (!isUserEnabled(user)) {
-                return new ParceledListSlice<>(new ArrayList(0));
+                UserHandle targetUser) {
+            ensureShortcutPermission(callingPackage);
+            if (!canAccessProfile(callingPackage, targetUser, "Cannot get shortcuts")
+                    || !isUserEnabled(targetUser)) {
+                return new ParceledListSlice<>(Collections.EMPTY_LIST);
             }
             if (shortcutIds != null && packageName == null) {
                 throw new IllegalArgumentException(
@@ -438,44 +452,53 @@
             return new ParceledListSlice<>((List<ShortcutInfo>)
                     mShortcutServiceInternal.getShortcuts(getCallingUserId(),
                             callingPackage, changedSince, packageName, shortcutIds,
-                            componentName, flags, user.getIdentifier()));
+                            componentName, flags, targetUser.getIdentifier()));
         }
 
         @Override
         public void pinShortcuts(String callingPackage, String packageName, List<String> ids,
-                UserHandle user) {
-            ensureShortcutPermission(callingPackage, user);
-            if (!isUserEnabled(user)) {
+                UserHandle targetUser) {
+            ensureShortcutPermission(callingPackage);
+            if (!canAccessProfile(callingPackage, targetUser, "Cannot pin shortcuts")) {
+                return;
+            }
+            if (!isUserEnabled(targetUser)) {
                 throw new IllegalStateException("Cannot pin shortcuts for disabled profile "
-                        + user);
+                        + targetUser);
             }
 
             mShortcutServiceInternal.pinShortcuts(getCallingUserId(),
-                    callingPackage, packageName, ids, user.getIdentifier());
+                    callingPackage, packageName, ids, targetUser.getIdentifier());
         }
 
         @Override
         public int getShortcutIconResId(String callingPackage, String packageName, String id,
-                int userId) {
-            ensureShortcutPermission(callingPackage, userId);
-            if (!isUserEnabled(userId)) {
+                int targetUserId) {
+            ensureShortcutPermission(callingPackage);
+            if (!canAccessProfile(callingPackage, targetUserId, "Cannot access shortcuts")) {
+                return 0;
+            }
+            if (!isUserEnabled(targetUserId)) {
                 return 0;
             }
 
             return mShortcutServiceInternal.getShortcutIconResId(getCallingUserId(),
-                    callingPackage, packageName, id, userId);
+                    callingPackage, packageName, id, targetUserId);
         }
 
         @Override
         public ParcelFileDescriptor getShortcutIconFd(String callingPackage,
-                String packageName, String id, int userId) {
-            ensureShortcutPermission(callingPackage, userId);
-            if (!isUserEnabled(userId)) {
+                String packageName, String id, int targetUserId) {
+            ensureShortcutPermission(callingPackage);
+            if (!canAccessProfile(callingPackage, targetUserId, "Cannot access shortcuts")) {
+                return null;
+            }
+            if (!isUserEnabled(targetUserId)) {
                 return null;
             }
 
             return mShortcutServiceInternal.getShortcutIconFd(getCallingUserId(),
-                    callingPackage, packageName, id, userId);
+                    callingPackage, packageName, id, targetUserId);
         }
 
         @Override
@@ -487,23 +510,27 @@
 
         @Override
         public boolean startShortcut(String callingPackage, String packageName, String shortcutId,
-                Rect sourceBounds, Bundle startActivityOptions, int userId) {
+                Rect sourceBounds, Bundle startActivityOptions, int targetUserId) {
             verifyCallingPackage(callingPackage);
-            ensureInUserProfiles(callingPackage, userId, "Cannot start activity");
-
-            if (!isUserEnabled(userId)) {
+            if (!canAccessProfile(callingPackage, targetUserId, "Cannot start activity")) {
+                return false;
+            }
+            if (!canAccessProfile(callingPackage, targetUserId, "Cannot access shortcuts")) {
+                return false;
+            }
+            if (!isUserEnabled(targetUserId)) {
                 throw new IllegalStateException("Cannot start a shortcut for disabled profile "
-                        + userId);
+                        + targetUserId);
             }
 
             // Even without the permission, pinned shortcuts are always launchable.
             if (!mShortcutServiceInternal.isPinnedByCaller(getCallingUserId(),
-                    callingPackage, packageName, shortcutId, userId)) {
-                ensureShortcutPermission(callingPackage, userId);
+                    callingPackage, packageName, shortcutId, targetUserId)) {
+                ensureShortcutPermission(callingPackage);
             }
 
             final Intent[] intents = mShortcutServiceInternal.createShortcutIntents(
-                    getCallingUserId(), callingPackage, packageName, shortcutId, userId);
+                    getCallingUserId(), callingPackage, packageName, shortcutId, targetUserId);
             if (intents == null || intents.length == 0) {
                 return false;
             }
@@ -513,7 +540,7 @@
             intents[0].setSourceBounds(sourceBounds);
 
             return startShortcutIntentsAsPublisher(
-                    intents, packageName, startActivityOptions, userId);
+                    intents, packageName, startActivityOptions, targetUserId);
         }
 
         private boolean startShortcutIntentsAsPublisher(@NonNull Intent[] intents,
@@ -543,7 +570,9 @@
         public boolean isActivityEnabled(
                 String callingPackage, ComponentName component, UserHandle user)
                 throws RemoteException {
-            ensureInUserProfiles(callingPackage , user, "Cannot check component");
+            if (!canAccessProfile(callingPackage , user, "Cannot check component")) {
+                return false;
+            }
             if (!isUserEnabled(user)) {
                 return false;
             }
@@ -565,7 +594,9 @@
         public void startActivityAsUser(String callingPackage,
                 ComponentName component, Rect sourceBounds,
                 Bundle opts, UserHandle user) throws RemoteException {
-            ensureInUserProfiles(callingPackage, user, "Cannot start activity");
+            if (!canAccessProfile(callingPackage, user, "Cannot start activity")) {
+                return;
+            }
             if (!isUserEnabled(user)) {
                 throw new IllegalStateException("Cannot start activity for disabled profile "  + user);
             }
@@ -618,7 +649,9 @@
         @Override
         public void showAppDetailsAsUser(String callingPackage, ComponentName component,
                 Rect sourceBounds, Bundle opts, UserHandle user) throws RemoteException {
-            ensureInUserProfiles(callingPackage, user, "Cannot show app details");
+            if (!canAccessProfile(callingPackage, user, "Cannot show app details")) {
+                return;
+            }
             if (!isUserEnabled(user)) {
                 throw new IllegalStateException("Cannot show app details for disabled profile "
                         + user);
@@ -642,9 +675,13 @@
         private boolean isEnabledProfileOf(UserHandle user, UserHandle listeningUser,
                 String debugMsg) {
             if (user.getIdentifier() == listeningUser.getIdentifier()) {
-                if (DEBUG) Log.d(TAG, "Delivering msg to same user " + debugMsg);
+                if (DEBUG) Log.d(TAG, "Delivering msg to same user: " + debugMsg);
                 return true;
             }
+            if (mUm.isManagedProfile(listeningUser.getIdentifier())) {
+                if (DEBUG) Log.d(TAG, "Managed profile can't see other profiles: " + debugMsg);
+                return false;
+            }
             long ident = injectClearCallingIdentity();
             try {
                 UserInfo userInfo = mUm.getUserInfo(user.getIdentifier());
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 4207998..ebd0b34 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -836,6 +836,8 @@
 
     private File mCacheDir;
 
+    private ArraySet<String> mPrivappPermissionsViolations;
+
     private static class IFVerificationParams {
         PackageParser.Package pkg;
         boolean replacing;
@@ -11543,6 +11545,12 @@
             if (!whitelisted) {
                 Slog.w(TAG, "Privileged permission " + perm + " for package "
                         + pkg.packageName + " - not in privapp-permissions whitelist");
+                if (!mSystemReady) {
+                    if (mPrivappPermissionsViolations == null) {
+                        mPrivappPermissionsViolations = new ArraySet<>();
+                    }
+                    mPrivappPermissionsViolations.add(pkg.packageName + ": " + perm);
+                }
                 if (RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_ENFORCE) {
                     return false;
                 }
@@ -19972,6 +19980,12 @@
         // Now that we're mostly running, clean up stale users and apps
         sUserManager.reconcileUsers(StorageManager.UUID_PRIVATE_INTERNAL);
         reconcileApps(StorageManager.UUID_PRIVATE_INTERNAL);
+
+        if (mPrivappPermissionsViolations != null) {
+            Slog.wtf(TAG,"Signature|privileged permissions not in "
+                    + "privapp-permissions whitelist: " + mPrivappPermissionsViolations);
+            mPrivappPermissionsViolations = null;
+        }
     }
 
     @Override
@@ -22777,6 +22791,18 @@
         }
 
         @Override
+        public boolean isPackagePersistent(String packageName) {
+            synchronized (mPackages) {
+                PackageParser.Package pkg = mPackages.get(packageName);
+                return pkg != null
+                        ? ((pkg.applicationInfo.flags&(ApplicationInfo.FLAG_SYSTEM
+                                        | ApplicationInfo.FLAG_PERSISTENT)) ==
+                                (ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_PERSISTENT))
+                        : false;
+            }
+        }
+
+        @Override
         public List<PackageInfo> getOverlayPackages(int userId) {
             final ArrayList<PackageInfo> overlayPackages = new ArrayList<PackageInfo>();
             synchronized (mPackages) {
diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
index 0a1574b..fb8429d 100644
--- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
+++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
@@ -108,7 +108,7 @@
             UserManager.DISALLOW_SET_USER_ICON,
             UserManager.DISALLOW_SET_WALLPAPER,
             UserManager.DISALLOW_OEM_UNLOCK,
-            UserManager.DISALLLOW_UNMUTE_DEVICE,
+            UserManager.DISALLOW_UNMUTE_DEVICE,
     });
 
     /**
@@ -156,7 +156,7 @@
             UserManager.DISALLOW_ADJUST_VOLUME,
             UserManager.DISALLOW_RUN_IN_BACKGROUND,
             UserManager.DISALLOW_UNMUTE_MICROPHONE,
-            UserManager.DISALLLOW_UNMUTE_DEVICE
+            UserManager.DISALLOW_UNMUTE_DEVICE
     );
 
     /**
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index c45136c..2c315445 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -1072,19 +1072,25 @@
     }
 
     void setTouchExcludeRegion(Task focusedTask) {
-        mTouchExcludeRegion.set(mBaseDisplayRect);
-        final int delta = dipToPixel(RESIZE_HANDLE_WIDTH_IN_DP, mDisplayMetrics);
-        mTmpRect2.setEmpty();
-        for (int stackNdx = mTaskStackContainers.size() - 1; stackNdx >= 0; --stackNdx) {
-            final TaskStack stack = mTaskStackContainers.get(stackNdx);
-            stack.setTouchExcludeRegion(
-                    focusedTask, delta, mTouchExcludeRegion, mContentRect, mTmpRect2);
-        }
-        // If we removed the focused task above, add it back and only leave its
-        // outside touch area in the exclusion. TapDectector is not interested in
-        // any touch inside the focused task itself.
-        if (!mTmpRect2.isEmpty()) {
-            mTouchExcludeRegion.op(mTmpRect2, Region.Op.UNION);
+        // The provided task is the task on this display with focus, so if WindowManagerService's
+        // focused app is not on this display, focusedTask will be null.
+        if (focusedTask == null) {
+            mTouchExcludeRegion.setEmpty();
+        } else {
+            mTouchExcludeRegion.set(mBaseDisplayRect);
+            final int delta = dipToPixel(RESIZE_HANDLE_WIDTH_IN_DP, mDisplayMetrics);
+            mTmpRect2.setEmpty();
+            for (int stackNdx = mTaskStackContainers.size() - 1; stackNdx >= 0; --stackNdx) {
+                final TaskStack stack = mTaskStackContainers.get(stackNdx);
+                stack.setTouchExcludeRegion(
+                        focusedTask, delta, mTouchExcludeRegion, mContentRect, mTmpRect2);
+            }
+            // If we removed the focused task above, add it back and only leave its
+            // outside touch area in the exclusion. TapDectector is not interested in
+            // any touch inside the focused task itself.
+            if (!mTmpRect2.isEmpty()) {
+                mTouchExcludeRegion.op(mTmpRect2, Region.Op.UNION);
+            }
         }
         final WindowState inputMethod = mService.mInputMethodWindow;
         if (inputMethod != null && inputMethod.isVisibleLw()) {
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 80e6655..126e080 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -784,7 +784,7 @@
         if (updateInputWindowsNeeded) {
             mService.mInputMonitor.updateInputWindowsLw(false /*force*/);
         }
-        mService.setFocusTaskRegionLocked();
+        mService.setFocusTaskRegionLocked(null);
 
         // Check to see if we are now in a state where the screen should
         // be enabled, because the window obscured flags have changed.
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index ead70e1..782f9f2 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -16,6 +16,7 @@
 
 package com.android.server.wm;
 
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DRAG;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_TASK_POSITIONING;
 import static com.android.server.wm.WindowManagerDebugConfig.SHOW_LIGHT_TRANSACTIONS;
@@ -69,6 +70,7 @@
     private final String mStringName;
     SurfaceSession mSurfaceSession;
     private int mNumWindow = 0;
+    private int mNumOverlayWindow = 0;
     private boolean mClientDead = false;
     private float mLastReportedAnimatorScale;
 
@@ -542,7 +544,7 @@
         }
     }
 
-    void windowAddedLocked() {
+    void windowAddedLocked(int type) {
         if (mSurfaceSession == null) {
             if (WindowManagerService.localLOGV) Slog.v(
                 TAG_WM, "First window added to " + this + ", creating SurfaceSession");
@@ -555,36 +557,56 @@
             }
         }
         mNumWindow++;
+        if (type == TYPE_APPLICATION_OVERLAY) {
+            mNumOverlayWindow++;
+            setHasOverlayUi(true);
+        }
     }
 
-    void windowRemovedLocked() {
+    void windowRemovedLocked(int type) {
         mNumWindow--;
+        if (type == TYPE_APPLICATION_OVERLAY) {
+            mNumOverlayWindow--;
+            if (mNumOverlayWindow == 0) {
+                setHasOverlayUi(false);
+            } else if (mNumOverlayWindow < 0) {
+                throw new IllegalStateException("mNumOverlayWindow=" + mNumOverlayWindow
+                        + " less than 0 for session=" + this);
+            }
+        }
         killSessionLocked();
     }
 
-    void killSessionLocked() {
-        if (mNumWindow <= 0 && mClientDead) {
-            mService.mSessions.remove(this);
-            if (mSurfaceSession != null) {
-                if (WindowManagerService.localLOGV) Slog.v(
-                    TAG_WM, "Last window removed from " + this
-                    + ", destroying " + mSurfaceSession);
-                if (SHOW_TRANSACTIONS) Slog.i(
-                        TAG_WM, "  KILL SURFACE SESSION " + mSurfaceSession);
-                try {
-                    mSurfaceSession.kill();
-                } catch (Exception e) {
-                    Slog.w(TAG_WM, "Exception thrown when killing surface session "
-                        + mSurfaceSession + " in session " + this
-                        + ": " + e.toString());
-                }
-                mSurfaceSession = null;
-            }
+    private void killSessionLocked() {
+        if (mNumWindow > 0 || !mClientDead) {
+            return;
         }
+
+        mService.mSessions.remove(this);
+        if (mSurfaceSession == null) {
+            return;
+        }
+
+        if (WindowManagerService.localLOGV) Slog.v(TAG_WM, "Last window removed from " + this
+                + ", destroying " + mSurfaceSession);
+        if (SHOW_TRANSACTIONS) Slog.i(TAG_WM, "  KILL SURFACE SESSION " + mSurfaceSession);
+        try {
+            mSurfaceSession.kill();
+        } catch (Exception e) {
+            Slog.w(TAG_WM, "Exception thrown when killing surface session " + mSurfaceSession
+                    + " in session " + this + ": " + e.toString());
+        }
+        mSurfaceSession = null;
+        setHasOverlayUi(false);
+    }
+
+    private void setHasOverlayUi(boolean hasOverlayUi) {
+        mService.mH.obtainMessage(H.SET_HAS_OVERLAY_UI, mPid, hasOverlayUi ? 1 : 0).sendToTarget();
     }
 
     void dump(PrintWriter pw, String prefix) {
         pw.print(prefix); pw.print("mNumWindow="); pw.print(mNumWindow);
+                pw.print(" mNumOverlayWindow="); pw.print(mNumOverlayWindow);
                 pw.print(" mClientDead="); pw.print(mClientDead);
                 pw.print(" mSurfaceSession="); pw.println(mSurfaceSession);
     }
diff --git a/services/core/java/com/android/server/wm/WindowLayersController.java b/services/core/java/com/android/server/wm/WindowLayersController.java
index d56110c..1cd2b53d 100644
--- a/services/core/java/com/android/server/wm/WindowLayersController.java
+++ b/services/core/java/com/android/server/wm/WindowLayersController.java
@@ -22,6 +22,7 @@
 import java.util.ArrayDeque;
 import java.util.function.Consumer;
 
+import static android.app.ActivityManager.StackId.ASSISTANT_STACK_ID;
 import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
 import static android.app.ActivityManager.StackId.PINNED_STACK_ID;
 import static android.view.Display.DEFAULT_DISPLAY;
@@ -58,6 +59,7 @@
     private int mHighestApplicationLayer = 0;
     private ArrayDeque<WindowState> mPinnedWindows = new ArrayDeque<>();
     private ArrayDeque<WindowState> mDockedWindows = new ArrayDeque<>();
+    private ArrayDeque<WindowState> mAssistantWindows = new ArrayDeque<>();
     private ArrayDeque<WindowState> mInputMethodWindows = new ArrayDeque<>();
     private WindowState mDockDivider = null;
     private ArrayDeque<WindowState> mReplacingWindows = new ArrayDeque<>();
@@ -137,6 +139,7 @@
         mPinnedWindows.clear();
         mInputMethodWindows.clear();
         mDockedWindows.clear();
+        mAssistantWindows.clear();
         mReplacingWindows.clear();
         mDockDivider = null;
 
@@ -188,6 +191,8 @@
             mPinnedWindows.add(w);
         } else if (stack.mStackId == DOCKED_STACK_ID) {
             mDockedWindows.add(w);
+        } else if (stack.mStackId == ASSISTANT_STACK_ID) {
+            mAssistantWindows.add(w);
         }
     }
 
@@ -208,6 +213,12 @@
             layer = assignAndIncreaseLayerIfNeeded(mReplacingWindows.remove(), layer);
         }
 
+        // Adjust the assistant stack windows to be above the docked and fullscreen stack windows,
+        // but under the pinned stack windows
+        while (!mAssistantWindows.isEmpty()) {
+            layer = assignAndIncreaseLayerIfNeeded(mAssistantWindows.remove(), layer);
+        }
+
         while (!mPinnedWindows.isEmpty()) {
             layer = assignAndIncreaseLayerIfNeeded(mPinnedWindows.remove(), layer);
         }
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 597e8b6..eae08b3 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -22,8 +22,11 @@
 import static android.app.ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT;
 import static android.app.ActivityManager.StackId.PINNED_STACK_ID;
 import static android.app.StatusBarManager.DISABLE_MASK;
+import static android.content.Intent.ACTION_USER_REMOVED;
+import static android.content.Intent.EXTRA_USER_HANDLE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.os.UserHandle.USER_NULL;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowManager.DOCKED_INVALID;
 import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
@@ -346,6 +349,13 @@
             if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED.equals(action)) {
                 mKeyguardDisableHandler.sendEmptyMessage(
                     KeyguardDisableHandler.KEYGUARD_POLICY_CHANGED);
+            } else if (ACTION_USER_REMOVED.equals(action)) {
+                final int userId = intent.getIntExtra(EXTRA_USER_HANDLE, USER_NULL);
+                if (userId != USER_NULL) {
+                    synchronized (mWindowMap) {
+                        mScreenCaptureDisabled.remove(userId);
+                    }
+                }
             }
         }
     };
@@ -1021,9 +1031,11 @@
         setAnimatorDurationScale(Settings.Global.getFloat(context.getContentResolver(),
                 Settings.Global.ANIMATOR_DURATION_SCALE, mAnimatorDurationScaleSetting));
 
-        // Track changes to DevicePolicyManager state so we can enable/disable keyguard.
         IntentFilter filter = new IntentFilter();
+        // Track changes to DevicePolicyManager state so we can enable/disable keyguard.
         filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
+        // Listen to user removal broadcasts so that we can remove the user-specific data.
+        filter.addAction(Intent.ACTION_USER_REMOVED);
         mContext.registerReceiver(mBroadcastReceiver, filter);
 
         mSettingsObserver = new SettingsObserver();
@@ -2574,13 +2586,18 @@
         }
     }
 
-    void setFocusTaskRegionLocked() {
+    void setFocusTaskRegionLocked(AppWindowToken previousFocus) {
         final Task focusedTask = mFocusedApp != null ? mFocusedApp.mTask : null;
-        if (focusedTask != null) {
-            final DisplayContent displayContent = focusedTask.getDisplayContent();
-            if (displayContent != null) {
-                displayContent.setTouchExcludeRegion(focusedTask);
-            }
+        final Task previousTask = previousFocus != null ? previousFocus.mTask : null;
+        final DisplayContent focusedDisplayContent =
+                focusedTask != null ? focusedTask.getDisplayContent() : null;
+        final DisplayContent previousDisplayContent =
+                previousTask != null ? previousTask.getDisplayContent() : null;
+        if (previousDisplayContent != null && previousDisplayContent != focusedDisplayContent) {
+            previousDisplayContent.setTouchExcludeRegion(null);
+        }
+        if (focusedDisplayContent != null) {
+            focusedDisplayContent.setTouchExcludeRegion(focusedTask);
         }
     }
 
@@ -2606,9 +2623,10 @@
 
             final boolean changed = mFocusedApp != newFocus;
             if (changed) {
+                AppWindowToken prev = mFocusedApp;
                 mFocusedApp = newFocus;
                 mInputMonitor.setFocusedAppLw(newFocus);
-                setFocusTaskRegionLocked();
+                setFocusTaskRegionLocked(prev);
             }
 
             if (moveFocusNow && changed) {
@@ -5256,6 +5274,7 @@
         public static final int RESTORE_POINTER_ICON = 55;
         public static final int NOTIFY_KEYGUARD_FLAGS_CHANGED = 56;
         public static final int NOTIFY_KEYGUARD_TRUSTED_CHANGED = 57;
+        public static final int SET_HAS_OVERLAY_UI = 58;
 
         /**
          * Used to denote that an integer field in a message will not be used.
@@ -5739,6 +5758,10 @@
                     mAmInternal.notifyKeyguardTrustedChanged();
                 }
                 break;
+                case SET_HAS_OVERLAY_UI: {
+                    mAmInternal.setHasOverlayUi(msg.arg1, msg.arg2 == 1);
+                }
+                break;
             }
             if (DEBUG_WINDOW_TRACE) {
                 Slog.v(TAG_WM, "handleMessage: exit");
@@ -7439,7 +7462,7 @@
         synchronized (mWindowMap) {
             getDefaultDisplayContentLocked().getDockedDividerController()
                     .setTouchRegion(touchRegion);
-            setFocusTaskRegionLocked();
+            setFocusTaskRegionLocked(null);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 867080e..65e1f84 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -665,7 +665,7 @@
 
     void attach() {
         if (localLOGV) Slog.v(TAG, "Attaching " + this + " token=" + mToken);
-        mSession.windowAddedLocked();
+        mSession.windowAddedLocked(mAttrs.type);
     }
 
     @Override
@@ -1738,7 +1738,7 @@
 
         mWinAnimator.destroyDeferredSurfaceLocked();
         mWinAnimator.destroySurfaceLocked();
-        mSession.windowRemovedLocked();
+        mSession.windowRemovedLocked(mAttrs.type);
         try {
             mClient.asBinder().unlinkToDeath(mDeathRecipient, 0);
         } catch (RuntimeException e) {
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 5075a41..22dd9d7 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -1886,11 +1886,14 @@
     }
 
     private void setDeviceOwnerSystemPropertyLocked() {
-        // Device owner may still be provisioned, do not set the read-only system property yet.
-        // Wear devices don't set device_provisioned until the device is paired, so allow
-        // device_owner property to be set without that.
-        if (!mIsWatch
-                && mInjector.settingsGlobalGetInt(Settings.Global.DEVICE_PROVISIONED, 0) == 0) {
+        final boolean deviceProvisioned =
+                mInjector.settingsGlobalGetInt(Settings.Global.DEVICE_PROVISIONED, 0) != 0;
+        // If the device is not provisioned and there is currently no device owner, do not set the
+        // read-only system property yet, since Device owner may still be provisioned. For Wear
+        // devices, if there is already a device owner then it's OK to set the property to true now,
+        // regardless the provision state.
+        final boolean isWatchWithDeviceOwner = mIsWatch && mOwners.hasDeviceOwner();
+        if (!isWatchWithDeviceOwner && !deviceProvisioned) {
             return;
         }
         // Still at the first stage of CryptKeeper double bounce, mOwners.hasDeviceOwner is
@@ -8738,7 +8741,7 @@
         Preconditions.checkNotNull(who, "ComponentName is null");
         synchronized (this) {
             getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
-            setUserRestriction(who, UserManager.DISALLLOW_UNMUTE_DEVICE, on);
+            setUserRestriction(who, UserManager.DISALLOW_UNMUTE_DEVICE, on);
         }
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/MockStorageManager.java b/services/tests/servicestests/src/com/android/server/MockStorageManager.java
index 031a3b3..17c8ec2 100644
--- a/services/tests/servicestests/src/com/android/server/MockStorageManager.java
+++ b/services/tests/servicestests/src/com/android/server/MockStorageManager.java
@@ -490,4 +490,14 @@
         throw new UnsupportedOperationException();
     }
 
+    @Override
+    public long getAllocatableBytes(String path, int flags) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void allocateBytes(String path, long bytes, int flags) {
+        throw new UnsupportedOperationException();
+    }
+
 }
diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
index 8c23a91..e2e1844 100644
--- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
@@ -602,12 +602,14 @@
     protected static final int USER_0 = UserHandle.USER_SYSTEM;
     protected static final int USER_10 = 10;
     protected static final int USER_11 = 11;
-    protected static final int USER_P0 = 20; // profile of user 0
+    protected static final int USER_P0 = 20; // profile of user 0 (MANAGED_PROFILE *not* set)
+    protected static final int USER_P1 = 21; // another profile of user 0 (MANAGED_PROFILE set)
 
     protected static final UserHandle HANDLE_USER_0 = UserHandle.of(USER_0);
     protected static final UserHandle HANDLE_USER_10 = UserHandle.of(USER_10);
     protected static final UserHandle HANDLE_USER_11 = UserHandle.of(USER_11);
     protected static final UserHandle HANDLE_USER_P0 = UserHandle.of(USER_P0);
+    protected static final UserHandle HANDLE_USER_P1 = UserHandle.of(USER_P1);
 
     protected static final UserInfo USER_INFO_0 = withProfileGroupId(
             new UserInfo(USER_0, "user0",
@@ -630,6 +632,10 @@
     protected static final UserInfo USER_INFO_P0 = withProfileGroupId(
             new UserInfo(USER_P0, "userP0", UserInfo.FLAG_INITIALIZED), 0);
 
+    protected static final UserInfo USER_INFO_P1 = withProfileGroupId(
+            new UserInfo(USER_P1, "userP1",
+                    UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_MANAGED_PROFILE), 0);
+
     protected BiPredicate<String, Integer> mDefaultLauncherChecker =
             (callingPackage, userId) ->
             LAUNCHER_1.equals(callingPackage) || LAUNCHER_2.equals(callingPackage)
@@ -746,6 +752,7 @@
         mUserInfos.put(USER_10, USER_INFO_10);
         mUserInfos.put(USER_11, USER_INFO_11);
         mUserInfos.put(USER_P0, USER_INFO_P0);
+        mUserInfos.put(USER_P1, USER_INFO_P1);
 
         // Set up isUserRunning and isUserUnlocked.
         when(mMockUserManager.isUserRunning(anyInt())).thenAnswer(new AnswerWithSystemCheck<>(
@@ -775,6 +782,13 @@
                     assertNotNull(parent);
                     return parent;
                 }));
+        when(mMockUserManager.isManagedProfile(anyInt()))
+                .thenAnswer(new AnswerWithSystemCheck<>(inv -> {
+                    final int userId = (Integer) inv.getArguments()[0];
+                    final UserInfo ui = mUserInfos.get(userId);
+                    assertNotNull(ui);
+                    return ui.isManagedProfile();
+                }));
 
         when(mMockActivityManagerInternal.getUidProcessState(anyInt())).thenReturn(
                 ActivityManager.PROCESS_STATE_CACHED_EMPTY);
@@ -784,12 +798,14 @@
         mRunningUsers.put(USER_10, false);
         mRunningUsers.put(USER_11, false);
         mRunningUsers.put(USER_P0, true);
+        mRunningUsers.put(USER_P1, true);
 
         // Unlock all users by default.
         mUnlockedUsers.put(USER_0, true);
         mUnlockedUsers.put(USER_10, true);
         mUnlockedUsers.put(USER_11, true);
         mUnlockedUsers.put(USER_P0, true);
+        mUnlockedUsers.put(USER_P1, true);
 
         // Set up resources
         setUpAppResources();
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
index 74c1ca5..980aa2d 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
@@ -2099,6 +2099,24 @@
                     list("s1", "s2", "s3"), HANDLE_USER_10);
         });
 
+        // First, make sure managed profile can't see other profiles.
+        runWithCaller(LAUNCHER_1, USER_P1, () -> {
+
+            final ShortcutQuery q = new ShortcutQuery().setQueryFlags(
+                    ShortcutQuery.FLAG_MATCH_DYNAMIC | ShortcutQuery.FLAG_MATCH_PINNED
+                    | ShortcutQuery.FLAG_MATCH_MANIFEST);
+
+            // No shortcuts are visible.
+            assertWith(mLauncherApps.getShortcuts(q, HANDLE_USER_0)).isEmpty();
+
+            mLauncherApps.pinShortcuts(CALLING_PACKAGE_1, list("s1"), HANDLE_USER_0);
+
+            // Should have no effects.
+            assertWith(mLauncherApps.getShortcuts(q, HANDLE_USER_0)).isEmpty();
+
+            assertShortcutNotLaunched(CALLING_PACKAGE_1, "s1", USER_0);
+        });
+
         // Cross profile pinning.
         final int PIN_AND_DYNAMIC = ShortcutQuery.FLAG_GET_PINNED | ShortcutQuery.FLAG_GET_DYNAMIC;
 
@@ -2930,6 +2948,7 @@
         final LauncherApps.Callback c0_4 = mock(LauncherApps.Callback.class);
 
         final LauncherApps.Callback cP0_1 = mock(LauncherApps.Callback.class);
+        final LauncherApps.Callback cP1_1 = mock(LauncherApps.Callback.class);
         final LauncherApps.Callback c10_1 = mock(LauncherApps.Callback.class);
         final LauncherApps.Callback c10_2 = mock(LauncherApps.Callback.class);
         final LauncherApps.Callback c11_1 = mock(LauncherApps.Callback.class);
@@ -2943,6 +2962,8 @@
                     return LAUNCHER_2.equals(pkg);
                 case USER_P0:
                     return LAUNCHER_1.equals(pkg);
+                case USER_P1:
+                    return LAUNCHER_1.equals(pkg);
                 case USER_10:
                     return LAUNCHER_1.equals(pkg);
                 case USER_11:
@@ -2957,6 +2978,7 @@
         runWithCaller(LAUNCHER_3, USER_0, () -> mLauncherApps.registerCallback(c0_3, h));
         runWithCaller(LAUNCHER_4, USER_0, () -> mLauncherApps.registerCallback(c0_4, h));
         runWithCaller(LAUNCHER_1, USER_P0, () -> mLauncherApps.registerCallback(cP0_1, h));
+        runWithCaller(LAUNCHER_1, USER_P1, () -> mLauncherApps.registerCallback(cP1_1, h));
         runWithCaller(LAUNCHER_1, USER_10, () -> mLauncherApps.registerCallback(c10_1, h));
         runWithCaller(LAUNCHER_2, USER_10, () -> mLauncherApps.registerCallback(c10_2, h));
         runWithCaller(LAUNCHER_1, USER_11, () -> mLauncherApps.registerCallback(c11_1, h));
@@ -2977,6 +2999,7 @@
         assertCallbackNotReceived(c11_1);
         assertCallbackReceived(c0_2, HANDLE_USER_0, CALLING_PACKAGE_1, "s1", "s2", "s3");
         assertCallbackReceived(cP0_1, HANDLE_USER_0, CALLING_PACKAGE_1, "s1", "s2", "s3", "s4");
+        assertCallbackNotReceived(cP1_1);
 
         // User 0, different package.
 
@@ -2995,6 +3018,7 @@
         assertCallbackReceived(c0_2, HANDLE_USER_0, CALLING_PACKAGE_3, "s1", "s2", "s3", "s4");
         assertCallbackReceived(cP0_1, HANDLE_USER_0, CALLING_PACKAGE_3,
                 "s1", "s2", "s3", "s4", "s5", "s6");
+        assertCallbackNotReceived(cP1_1);
 
         // Work profile.
         resetAll(all);
@@ -3011,6 +3035,7 @@
         assertCallbackNotReceived(c11_1);
         assertCallbackReceived(c0_2, HANDLE_USER_P0, CALLING_PACKAGE_1, "s1", "s2", "s3", "s5");
         assertCallbackReceived(cP0_1, HANDLE_USER_P0, CALLING_PACKAGE_1, "s1", "s2", "s3", "s4");
+        assertCallbackNotReceived(cP1_1);
 
         // Normal secondary user.
         mRunningUsers.put(USER_10, true);
@@ -3030,6 +3055,7 @@
         assertCallbackNotReceived(c11_1);
         assertCallbackReceived(c10_1, HANDLE_USER_10, CALLING_PACKAGE_1,
                 "x1", "x2", "x3", "x4", "x5");
+        assertCallbackNotReceived(cP1_1);
     }
 
     // === Test for persisting ===
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java
index e1a22d9..f1fcba3 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java
@@ -48,7 +48,8 @@
  * runtest frameworks-services -c com.android.server.wm.TaskSnapshotCacheTest
  */
 @SmallTest
-@Presubmit
+// TODO(b/35196891): Add back to presubmit once the bug is fixed.
+//@Presubmit
 @RunWith(AndroidJUnit4.class)
 public class TaskSnapshotCacheTest extends TaskSnapshotPersisterTestBase {
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
index 98ff0e2..28b6e45 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
@@ -338,9 +338,12 @@
 
         w.mDockedResizingForTest = true;
         w.calculatePolicyCrop(policyCrop);
-        // But if we are docked resizing it won't be.
+        // But if we are docked resizing it won't be, however we will still be
+        // shrunk to the decor frame and the display.
         final DisplayInfo displayInfo = w.getDisplayContent().getDisplayInfo();
-        assertRect(policyCrop, 0, 0, 1000, 1000);
+        assertRect(policyCrop, 0, 0,
+                Math.min(pf.width(), displayInfo.logicalWidth),
+                Math.min(pf.height(), displayInfo.logicalHeight));
     }
 
     private WindowStateWithTask createWindow(Task task, int width, int height) {
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java
index b99b8fe..d5e6b6d 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java
@@ -23,6 +23,9 @@
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 
+import static android.app.ActivityManager.StackId.ASSISTANT_STACK_ID;
+import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
+import static android.app.ActivityManager.StackId.PINNED_STACK_ID;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
@@ -155,6 +158,22 @@
         assertWindowLayerGreaterThan(sImeDialogWindow, sImeWindow);
     }
 
+    @Test
+    public void testStackLayers() throws Exception {
+        WindowState pinnedStackWindow = createWindowOnStack(null, PINNED_STACK_ID,
+                TYPE_BASE_APPLICATION, sDisplayContent, "pinnedStackWindow");
+        WindowState dockedStackWindow = createWindowOnStack(null, DOCKED_STACK_ID,
+                TYPE_BASE_APPLICATION, sDisplayContent, "dockedStackWindow");
+        WindowState assistantStackWindow = createWindowOnStack(null, ASSISTANT_STACK_ID,
+                TYPE_BASE_APPLICATION, sDisplayContent, "assistantStackWindow");
+
+        sLayersController.assignWindowLayers(sDisplayContent);
+
+        assertWindowLayerGreaterThan(dockedStackWindow, sAppWindow);
+        assertWindowLayerGreaterThan(assistantStackWindow, dockedStackWindow);
+        assertWindowLayerGreaterThan(pinnedStackWindow, assistantStackWindow);
+    }
+
     private void assertWindowLayerGreaterThan(WindowState first, WindowState second)
             throws Exception {
         assertGreaterThan(first.mWinAnimator.mAnimLayer, second.mWinAnimator.mAnimLayer);
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
index 8a94b83..e5e3512 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
@@ -37,6 +37,7 @@
 import android.view.WindowManager;
 
 import static android.app.ActivityManager.StackId.FIRST_DYNAMIC_STACK_ID;
+import static android.app.ActivityManager.StackId.INVALID_STACK_ID;
 import static android.app.AppOpsManager.OP_NONE;
 import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
@@ -145,6 +146,21 @@
         return win;
     }
 
+    /**
+     * Creates a window for a task on a the given {@param stackId}.
+     */
+    private WindowState createStackWindow(int stackId, String name) {
+        final StackWindowController stackController = createStackControllerOnStackOnDisplay(stackId,
+                sDisplayContent);
+        final TestTaskWindowContainerController taskController =
+                new TestTaskWindowContainerController(stackController);
+        TestAppWindowToken appWinToken = new TestAppWindowToken(sDisplayContent);
+        appWinToken.mTask = taskController.mContainer;
+        final WindowState win = createWindow(null, TYPE_BASE_APPLICATION, name);
+        win.mAppToken = appWinToken;
+        return win;
+    }
+
     /** Asserts that the first entry is greater than the second entry. */
     void assertGreaterThan(int first, int second) throws Exception {
         Assert.assertTrue("Excepted " + first + " to be greater than " + second, first > second);
@@ -157,12 +173,14 @@
         sWm.mH.runWithScissors(() -> { }, 0);
     }
 
-    private static WindowToken createWindowToken(DisplayContent dc, int type) {
+    private static WindowToken createWindowToken(DisplayContent dc, int stackId, int type) {
         if (type < FIRST_APPLICATION_WINDOW || type > LAST_APPLICATION_WINDOW) {
             return new TestWindowToken(type, dc);
         }
 
-        final TaskStack stack = createTaskStackOnDisplay(dc);
+        final TaskStack stack = stackId == INVALID_STACK_ID
+                ? createTaskStackOnDisplay(dc)
+                : createStackControllerOnStackOnDisplay(stackId, dc).mContainer;
         final Task task = createTaskInStack(stack, 0 /* userId */);
         final TestAppWindowToken token = new TestAppWindowToken(dc);
         task.addChild(token, 0);
@@ -175,6 +193,12 @@
                 : createWindow(parent, type, parent.mToken, name);
     }
 
+    static WindowState createWindowOnStack(WindowState parent, int stackId, int type,
+            DisplayContent dc, String name) {
+        final WindowToken token = createWindowToken(dc, stackId, type);
+        return createWindow(parent, type, token, name);
+    }
+
     WindowState createAppWindow(Task task, int type, String name) {
         final AppWindowToken token = new TestAppWindowToken(sDisplayContent);
         task.addChild(token, 0);
@@ -182,13 +206,13 @@
     }
 
     static WindowState createWindow(WindowState parent, int type, DisplayContent dc, String name) {
-        final WindowToken token = createWindowToken(dc, type);
+        final WindowToken token = createWindowToken(dc, INVALID_STACK_ID, type);
         return createWindow(parent, type, token, name);
     }
 
     static WindowState createWindow(WindowState parent, int type, DisplayContent dc, String name,
             boolean ownerCanAddInternalSystemWindow) {
-        final WindowToken token = createWindowToken(dc, type);
+        final WindowToken token = createWindowToken(dc, INVALID_STACK_ID, type);
         return createWindow(parent, type, token, name, ownerCanAddInternalSystemWindow);
     }
 
@@ -216,6 +240,11 @@
 
     static StackWindowController createStackControllerOnDisplay(DisplayContent dc) {
         final int stackId = ++sNextStackId;
+        return createStackControllerOnStackOnDisplay(stackId, dc);
+    }
+
+    static StackWindowController createStackControllerOnStackOnDisplay(int stackId,
+            DisplayContent dc) {
         return new StackWindowController(stackId, null, dc.getDisplayId(),
                 true /* onTop */, new Rect(), sWm);
     }
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index e8976a7..03a7db7 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -638,6 +638,25 @@
         }
 
         @Override
+        public int startAssistantActivity(IBinder token, Intent intent, String resolvedType) {
+            synchronized (this) {
+                if (mImpl == null) {
+                    Slog.w(TAG, "startAssistantActivity without running voice interaction service");
+                    return ActivityManager.START_CANCELED;
+                }
+                final int callingPid = Binder.getCallingPid();
+                final int callingUid = Binder.getCallingUid();
+                final long caller = Binder.clearCallingIdentity();
+                try {
+                    return mImpl.startAssistantActivityLocked(callingPid, callingUid, token,
+                            intent, resolvedType);
+                } finally {
+                    Binder.restoreCallingIdentity(caller);
+                }
+            }
+        }
+
+        @Override
         public void setKeepAwake(IBinder token, boolean keepAwake) {
             synchronized (this) {
                 if (mImpl == null) {
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
index 4357dca..0c5e4bd 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
@@ -16,8 +16,13 @@
 
 package com.android.server.voiceinteraction;
 
+import static android.app.ActivityManager.START_VOICE_HIDDEN_SESSION;
+import static android.app.ActivityManager.START_VOICE_NOT_ACTIVE_SESSION;
+
 import android.app.ActivityManager;
+import android.app.ActivityManager.StackId;
 import android.app.ActivityManagerInternal;
+import android.app.ActivityOptions;
 import android.app.IActivityManager;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
@@ -185,11 +190,11 @@
         try {
             if (mActiveSession == null || token != mActiveSession.mToken) {
                 Slog.w(TAG, "startVoiceActivity does not match active session");
-                return ActivityManager.START_VOICE_NOT_ACTIVE_SESSION;
+                return START_VOICE_NOT_ACTIVE_SESSION;
             }
             if (!mActiveSession.mShown) {
                 Slog.w(TAG, "startVoiceActivity not allowed on hidden session");
-                return ActivityManager.START_VOICE_HIDDEN_SESSION;
+                return START_VOICE_HIDDEN_SESSION;
             }
             intent = new Intent(intent);
             intent.addCategory(Intent.CATEGORY_VOICE);
@@ -202,6 +207,28 @@
         }
     }
 
+    public int startAssistantActivityLocked(int callingPid, int callingUid, IBinder token,
+            Intent intent, String resolvedType) {
+        try {
+            if (mActiveSession == null || token != mActiveSession.mToken) {
+                Slog.w(TAG, "startAssistantActivity does not match active session");
+                return START_VOICE_NOT_ACTIVE_SESSION;
+            }
+            if (!mActiveSession.mShown) {
+                Slog.w(TAG, "startAssistantActivity not allowed on hidden session");
+                return START_VOICE_HIDDEN_SESSION;
+            }
+            intent = new Intent(intent);
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            ActivityOptions options = ActivityOptions.makeBasic();
+            options.setLaunchStackId(StackId.ASSISTANT_STACK_ID);
+            return mAm.startAssistantActivity(mComponent.getPackageName(), callingPid, callingUid,
+                    intent, resolvedType, options.toBundle(), mUser);
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Unexpected remote error", e);
+        }
+    }
+
     public void setKeepAwakeLocked(IBinder token, boolean keepAwake) {
         try {
             if (mActiveSession == null || token != mActiveSession.mToken) {
diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java
index 32f487b..dd03305 100644
--- a/telephony/java/android/telephony/PhoneStateListener.java
+++ b/telephony/java/android/telephony/PhoneStateListener.java
@@ -20,17 +20,9 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.telephony.SubscriptionManager;
-import android.telephony.CellLocation;
-import android.telephony.CellInfo;
-import android.telephony.VoLteServiceState;
-import android.telephony.Rlog;
-import android.telephony.ServiceState;
-import android.telephony.SignalStrength;
-import android.telephony.PreciseCallState;
-import android.telephony.PreciseDataConnectionState;
 
 import com.android.internal.telephony.IPhoneStateListener;
+
 import java.util.List;
 import java.lang.ref.WeakReference;
 
@@ -228,6 +220,38 @@
      */
     public static final int LISTEN_CARRIER_NETWORK_CHANGE                   = 0x00010000;
 
+    /**
+     *  Listen for changes to the sim voice activation state
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_ACTIVATING
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_ACTIVATED
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_DEACTIVATED
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_RESTRICTED
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_UNKNOWN
+     *  {@more}
+     *  Example: TelephonyManager#SIM_ACTIVATION_STATE_ACTIVATED indicates voice service has been
+     *  fully activated
+     *
+     *  @see #onVoiceActivationStateChanged
+     *  @hide
+     */
+    public static final int LISTEN_VOICE_ACTIVATION_STATE                   = 0x00020000;
+
+    /**
+     *  Listen for changes to the sim data activation state
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_ACTIVATING
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_ACTIVATED
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_DEACTIVATED
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_RESTRICTED
+     *  @see TelephonyManager#SIM_ACTIVATION_STATE_UNKNOWN
+     *  {@more}
+     *  Example: TelephonyManager#SIM_ACTIVATION_STATE_ACTIVATED indicates data service has been
+     *  fully activated
+     *
+     *  @see #onDataActivationStateChanged
+     *  @hide
+     */
+    public static final int LISTEN_DATA_ACTIVATION_STATE                   = 0x00040000;
+
      /*
      * Subscription used to listen to the phone state changes
      * @hide
@@ -327,6 +351,12 @@
                     case LISTEN_VOLTE_STATE:
                         PhoneStateListener.this.onVoLteServiceStateChanged((VoLteServiceState)msg.obj);
                         break;
+                    case LISTEN_VOICE_ACTIVATION_STATE:
+                        PhoneStateListener.this.onVoiceActivationStateChanged((int)msg.obj);
+                        break;
+                    case LISTEN_DATA_ACTIVATION_STATE:
+                        PhoneStateListener.this.onDataActivationStateChanged((int)msg.obj);
+                        break;
                     case LISTEN_OEM_HOOK_RAW_EVENT:
                         PhoneStateListener.this.onOemHookRawEvent((byte[])msg.obj);
                         break;
@@ -506,6 +536,24 @@
     }
 
     /**
+     * Callback invoked when the SIM voice activation state has changed
+     * @param state is the current SIM voice activation state
+     * @hide
+     */
+    public void onVoiceActivationStateChanged(int state) {
+
+    }
+
+    /**
+     * Callback invoked when the SIM data activation state has changed
+     * @param state is the current SIM data activation state
+     * @hide
+     */
+    public void onDataActivationStateChanged(int state) {
+
+    }
+
+    /**
      * Callback invoked when OEM hook raw event is received. Requires
      * the READ_PRIVILEGED_PHONE_STATE permission.
      * @param rawData is the byte array of the OEM hook raw data.
@@ -619,6 +667,14 @@
             send(LISTEN_VOLTE_STATE, 0, 0, lteState);
         }
 
+        public void onVoiceActivationStateChanged(int activationState) {
+            send(LISTEN_VOICE_ACTIVATION_STATE, 0, 0, activationState);
+        }
+
+        public void onDataActivationStateChanged(int activationState) {
+            send(LISTEN_DATA_ACTIVATION_STATE, 0, 0, activationState);
+        }
+
         public void onOemHookRawEvent(byte[] rawData) {
             send(LISTEN_OEM_HOOK_RAW_EVENT, 0, 0, rawData);
         }
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 1b3aa8a..4ff4d80 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -2813,6 +2813,148 @@
     }
 
     /**
+     * Initial SIM activation state, unknown. Not set by any carrier apps.
+     * @hide
+     */
+    public static final int SIM_ACTIVATION_STATE_UNKNOWN = 0;
+
+    /**
+     * indicate SIM is under activation procedure now.
+     * intermediate state followed by another state update with activation procedure result:
+     * @see #SIM_ACTIVATION_STATE_ACTIVATED
+     * @see #SIM_ACTIVATION_STATE_DEACTIVATED
+     * @see #SIM_ACTIVATION_STATE_RESTRICTED
+     * @hide
+     */
+    public static final int SIM_ACTIVATION_STATE_ACTIVATING = 1;
+
+    /**
+     * Indicate SIM has been successfully activated with full service
+     * @hide
+     */
+    public static final int SIM_ACTIVATION_STATE_ACTIVATED = 2;
+
+    /**
+     * Indicate SIM has been deactivated by the carrier so that service is not available
+     * and requires activation service to enable services.
+     * Carrier apps could be signalled to set activation state to deactivated if detected
+     * deactivated sim state and set it back to activated after successfully run activation service.
+     * @hide
+     */
+    public static final int SIM_ACTIVATION_STATE_DEACTIVATED = 3;
+
+    /**
+     * Restricted state indicate SIM has been activated but service are restricted.
+     * note this is currently available for data activation state. For example out of byte sim.
+     * @hide
+     */
+    public static final int SIM_ACTIVATION_STATE_RESTRICTED = 4;
+
+    /**
+     * Sets the voice activation state for the given subscriber.
+     *
+     * <p>Requires Permission:
+     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
+     * Or the calling app has carrier privileges. @see #hasCarrierPrivileges
+     *
+     * @param subId The subscription id.
+     * @param activationState The voice activation state of the given subscriber.
+     * @see #SIM_ACTIVATION_STATE_UNKNOWN
+     * @see #SIM_ACTIVATION_STATE_ACTIVATING
+     * @see #SIM_ACTIVATION_STATE_ACTIVATED
+     * @see #SIM_ACTIVATION_STATE_DEACTIVATED
+     * @hide
+     */
+    public void setVoiceActivationState(int subId, int activationState) {
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null)
+                telephony.setVoiceActivationState(subId, activationState);
+        } catch (RemoteException ex) {
+        } catch (NullPointerException ex) {
+        }
+    }
+
+    /**
+     * Sets the data activation state for the given subscriber.
+     *
+     * <p>Requires Permission:
+     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE}
+     * Or the calling app has carrier privileges. @see #hasCarrierPrivileges
+     *
+     * @param subId The subscription id.
+     * @param activationState The data activation state of the given subscriber.
+     * @see #SIM_ACTIVATION_STATE_UNKNOWN
+     * @see #SIM_ACTIVATION_STATE_ACTIVATING
+     * @see #SIM_ACTIVATION_STATE_ACTIVATED
+     * @see #SIM_ACTIVATION_STATE_DEACTIVATED
+     * @see #SIM_ACTIVATION_STATE_RESTRICTED
+     * @hide
+     */
+    public void setDataActivationState(int subId, int activationState) {
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null)
+                telephony.setDataActivationState(subId, activationState);
+        } catch (RemoteException ex) {
+        } catch (NullPointerException ex) {
+        }
+    }
+
+    /**
+     * Returns the voice activation state for the given subscriber.
+     *
+     * <p>Requires Permission:
+     *   {@link android.Manifest.permission#READ_PHONE_STATE}
+     *
+     * @param subId The subscription id.
+     *
+     * @return voiceActivationState for the given subscriber
+     * @see #SIM_ACTIVATION_STATE_UNKNOWN
+     * @see #SIM_ACTIVATION_STATE_ACTIVATING
+     * @see #SIM_ACTIVATION_STATE_ACTIVATED
+     * @see #SIM_ACTIVATION_STATE_DEACTIVATED
+     * @hide
+     */
+    public int getVoiceActivationState(int subId) {
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null)
+                return telephony.getVoiceActivationState(subId, getOpPackageName());
+        } catch (RemoteException ex) {
+        } catch (NullPointerException ex) {
+        }
+        return SIM_ACTIVATION_STATE_UNKNOWN;
+    }
+
+    /**
+     * Returns the data activation state for the given subscriber.
+     *
+     * <p>Requires Permission:
+     *   {@link android.Manifest.permission#READ_PHONE_STATE}
+     *
+     * @param subId The subscription id.
+     *
+     * @return dataActivationState for the given subscriber
+     * @see #SIM_ACTIVATION_STATE_UNKNOWN
+     * @see #SIM_ACTIVATION_STATE_ACTIVATING
+     * @see #SIM_ACTIVATION_STATE_ACTIVATED
+     * @see #SIM_ACTIVATION_STATE_DEACTIVATED
+     * @see #SIM_ACTIVATION_STATE_RESTRICTED
+     * @hide
+     */
+    public int getDataActivationState(int subId) {
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null)
+                return telephony.getDataActivationState(subId, getOpPackageName());
+        } catch (RemoteException ex) {
+        } catch (NullPointerException ex) {
+        }
+        return SIM_ACTIVATION_STATE_UNKNOWN;
+    }
+
+    /**
      * Returns the voice mail count. Return 0 if unavailable, -1 if there are unread voice messages
      * but the count is unknown.
      * <p>
diff --git a/telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl b/telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl
index cbedb95..e9c5461 100644
--- a/telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl
+++ b/telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl
@@ -43,6 +43,8 @@
     void onPreciseDataConnectionStateChanged(in PreciseDataConnectionState dataConnectionState);
     void onDataConnectionRealTimeInfoChanged(in DataConnectionRealTimeInfo dcRtInfo);
     void onVoLteServiceStateChanged(in VoLteServiceState lteState);
+    void onVoiceActivationStateChanged(int activationState);
+    void onDataActivationStateChanged(int activationState);
     void onOemHookRawEvent(in byte[] rawData);
     void onCarrierNetworkChange(in boolean active);
 }
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index f2b8804..d90a33e 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -456,6 +456,30 @@
      */
     boolean setVoiceMailNumber(int subId, String alphaTag, String number);
 
+     /**
+      * Sets the voice activation state for a particular subscriber.
+      */
+    void setVoiceActivationState(int subId, int activationState);
+
+     /**
+      * Sets the data activation state for a particular subscriber.
+      */
+    void setDataActivationState(int subId, int activationState);
+
+     /**
+      * Returns the voice activation state for a particular subscriber.
+      * @param subId user preferred sub
+      * @param callingPackage package queries voice activation state
+      */
+    int getVoiceActivationState(int subId, String callingPackage);
+
+     /**
+      * Returns the data activation state for a particular subscriber.
+      * @param subId user preferred sub
+      * @param callingPackage package queris data activation state
+      */
+    int getDataActivationState(int subId, String callingPackage);
+
     /**
       * Returns the unread count of voicemails
       */
diff --git a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
index 2c6be62..2c2206c 100644
--- a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
@@ -65,6 +65,8 @@
             String failCause);
     void notifyCellInfoForSubscriber(in int subId, in List<CellInfo> cellInfo);
     void notifyVoLteServiceStateChanged(in VoLteServiceState lteState);
+    void notifySimActivationStateChangedForPhoneId(in int phoneId, in int subId,
+            int activationState, int activationType);
     void notifyOemHookRawEventForSubscriber(in int subId, in byte[] rawData);
     void notifySubscriptionInfoChanged();
     void notifyCarrierNetworkChange(in boolean active);
diff --git a/telephony/java/com/android/internal/telephony/PhoneConstants.java b/telephony/java/com/android/internal/telephony/PhoneConstants.java
index fdc68b9..f9de776 100644
--- a/telephony/java/com/android/internal/telephony/PhoneConstants.java
+++ b/telephony/java/com/android/internal/telephony/PhoneConstants.java
@@ -74,6 +74,9 @@
     public static final int PRESENTATION_UNKNOWN = 3;    // no specified or unknown by network
     public static final int PRESENTATION_PAYPHONE = 4;   // show pay phone info
 
+    // Sim activation type
+    public static final int SIM_ACTIVATION_TYPE_VOICE = 0;
+    public static final int SIM_ACTIVATION_TYPE_DATA = 1;
 
     public static final String PHONE_NAME_KEY = "phoneName";
     public static final String FAILURE_REASON_KEY = "reason";
diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
index 5767f11..0401737 100644
--- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
+++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
@@ -172,12 +172,10 @@
     @Override
     public void onHandleAssist(Bundle data, AssistStructure structure, AssistContent content) {
         mAssistStructure = structure;
-        if (mAssistStructure != null) {
-            if (mAssistVisualizer != null) {
+        if (mAssistVisualizer != null) {
+            if (mAssistStructure != null) {
                 mAssistVisualizer.setAssistStructure(mAssistStructure);
-            }
-        } else {
-            if (mAssistVisualizer != null) {
+            } else {
                 mAssistVisualizer.clearAssistData();
             }
         }
@@ -207,19 +205,24 @@
 
     @Override
     public void onHandleScreenshot(Bitmap screenshot) {
-        if (screenshot != null) {
-            mScreenshot.setImageBitmap(screenshot);
-            mScreenshot.setAdjustViewBounds(true);
-            mScreenshot.setMaxWidth(screenshot.getWidth() / 3);
-            mScreenshot.setMaxHeight(screenshot.getHeight() / 3);
-            mFullScreenshot.setImageBitmap(screenshot);
-        } else {
-            mScreenshot.setImageDrawable(null);
-            mFullScreenshot.setImageDrawable(null);
+        if (mScreenshot != null) {
+            if (screenshot != null) {
+                mScreenshot.setImageBitmap(screenshot);
+                mScreenshot.setAdjustViewBounds(true);
+                mScreenshot.setMaxWidth(screenshot.getWidth() / 3);
+                mScreenshot.setMaxHeight(screenshot.getHeight() / 3);
+                mFullScreenshot.setImageBitmap(screenshot);
+            } else {
+                mScreenshot.setImageDrawable(null);
+                mFullScreenshot.setImageDrawable(null);
+            }
         }
     }
 
     void updateState() {
+        if (mTopContent == null) {
+            return;
+        }
         if (mState == STATE_IDLE) {
             mTopContent.setVisibility(View.VISIBLE);
             mBottomContent.setVisibility(View.GONE);
diff --git a/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java b/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java
index 9f7261d..0fa4545 100644
--- a/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java
+++ b/tests/net/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachineTest.java
@@ -28,6 +28,9 @@
 import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
 import static android.net.ConnectivityManager.TETHER_ERROR_TETHER_IFACE_ERROR;
 import static android.net.ConnectivityManager.TETHER_ERROR_UNTETHER_IFACE_ERROR;
+import static android.net.ConnectivityManager.TETHERING_BLUETOOTH;
+import static android.net.ConnectivityManager.TETHERING_USB;
+import static android.net.ConnectivityManager.TETHERING_WIFI;
 import static com.android.server.connectivity.tethering.IControlsTethering.STATE_AVAILABLE;
 import static com.android.server.connectivity.tethering.IControlsTethering.STATE_TETHERED;
 import static com.android.server.connectivity.tethering.IControlsTethering.STATE_UNAVAILABLE;
@@ -92,7 +95,7 @@
     @Test
     public void startsOutAvailable() {
         mTestedSm = new TetherInterfaceStateMachine(IFACE_NAME, mLooper.getLooper(),
-                ConnectivityManager.TETHERING_BLUETOOTH, mNMService, mStatsService, mTetherHelper,
+                TETHERING_BLUETOOTH, mNMService, mStatsService, mTetherHelper,
                 mIPv6TetheringInterfaceServices);
         mTestedSm.start();
         mLooper.dispatchAll();
@@ -103,7 +106,7 @@
 
     @Test
     public void shouldDoNothingUntilRequested() throws Exception {
-        initStateMachine(ConnectivityManager.TETHERING_BLUETOOTH);
+        initStateMachine(TETHERING_BLUETOOTH);
         final int [] NOOP_COMMANDS = {
             TetherInterfaceStateMachine.CMD_TETHER_UNREQUESTED,
             TetherInterfaceStateMachine.CMD_IP_FORWARDING_ENABLE_ERROR,
@@ -123,7 +126,7 @@
 
     @Test
     public void handlesImmediateInterfaceDown() throws Exception {
-        initStateMachine(ConnectivityManager.TETHERING_BLUETOOTH);
+        initStateMachine(TETHERING_BLUETOOTH);
 
         dispatchCommand(TetherInterfaceStateMachine.CMD_INTERFACE_DOWN);
         verify(mTetherHelper).notifyInterfaceStateChange(
@@ -133,7 +136,7 @@
 
     @Test
     public void canBeTethered() throws Exception {
-        initStateMachine(ConnectivityManager.TETHERING_BLUETOOTH);
+        initStateMachine(TETHERING_BLUETOOTH);
 
         dispatchCommand(TetherInterfaceStateMachine.CMD_TETHER_REQUESTED);
         InOrder inOrder = inOrder(mTetherHelper, mNMService);
@@ -145,7 +148,7 @@
 
     @Test
     public void canUnrequestTethering() throws Exception {
-        initTetheredStateMachine(ConnectivityManager.TETHERING_BLUETOOTH, null);
+        initTetheredStateMachine(TETHERING_BLUETOOTH, null);
 
         dispatchCommand(TetherInterfaceStateMachine.CMD_TETHER_UNREQUESTED);
         InOrder inOrder = inOrder(mNMService, mStatsService, mTetherHelper);
@@ -157,7 +160,7 @@
 
     @Test
     public void canBeTetheredAsUsb() throws Exception {
-        initStateMachine(ConnectivityManager.TETHERING_USB);
+        initStateMachine(TETHERING_USB);
 
         dispatchCommand(TetherInterfaceStateMachine.CMD_TETHER_REQUESTED);
         InOrder inOrder = inOrder(mTetherHelper, mNMService);
@@ -171,7 +174,7 @@
 
     @Test
     public void handlesFirstUpstreamChange() throws Exception {
-        initTetheredStateMachine(ConnectivityManager.TETHERING_BLUETOOTH, null);
+        initTetheredStateMachine(TETHERING_BLUETOOTH, null);
 
         // Telling the state machine about its upstream interface triggers a little more configuration.
         dispatchTetherConnectionChanged(UPSTREAM_IFACE);
@@ -183,7 +186,7 @@
 
     @Test
     public void handlesChangingUpstream() throws Exception {
-        initTetheredStateMachine(ConnectivityManager.TETHERING_BLUETOOTH, UPSTREAM_IFACE);
+        initTetheredStateMachine(TETHERING_BLUETOOTH, UPSTREAM_IFACE);
 
         dispatchTetherConnectionChanged(UPSTREAM_IFACE2);
         InOrder inOrder = inOrder(mNMService, mStatsService);
@@ -196,8 +199,46 @@
     }
 
     @Test
+    public void handlesChangingUpstreamNatFailure() throws Exception {
+        initTetheredStateMachine(TETHERING_WIFI, UPSTREAM_IFACE);
+
+        doThrow(RemoteException.class).when(mNMService).enableNat(IFACE_NAME, UPSTREAM_IFACE2);
+
+        dispatchTetherConnectionChanged(UPSTREAM_IFACE2);
+        InOrder inOrder = inOrder(mNMService, mStatsService);
+        inOrder.verify(mStatsService).forceUpdate();
+        inOrder.verify(mNMService).stopInterfaceForwarding(IFACE_NAME, UPSTREAM_IFACE);
+        inOrder.verify(mNMService).disableNat(IFACE_NAME, UPSTREAM_IFACE);
+        inOrder.verify(mNMService).enableNat(IFACE_NAME, UPSTREAM_IFACE2);
+        // TODO: Verify proper cleanup is performed:
+        // inOrder.verify(mStatsService).forceUpdate();
+        // inOrder.verify(mNMService).stopInterfaceForwarding(IFACE_NAME, UPSTREAM_IFACE2);
+        // inOrder.verify(mNMService).disableNat(IFACE_NAME, UPSTREAM_IFACE2);
+    }
+
+    @Test
+    public void handlesChangingUpstreamInterfaceForwardingFailure() throws Exception {
+        initTetheredStateMachine(TETHERING_WIFI, UPSTREAM_IFACE);
+
+        doThrow(RemoteException.class).when(mNMService).startInterfaceForwarding(
+                IFACE_NAME, UPSTREAM_IFACE2);
+
+        dispatchTetherConnectionChanged(UPSTREAM_IFACE2);
+        InOrder inOrder = inOrder(mNMService, mStatsService);
+        inOrder.verify(mStatsService).forceUpdate();
+        inOrder.verify(mNMService).stopInterfaceForwarding(IFACE_NAME, UPSTREAM_IFACE);
+        inOrder.verify(mNMService).disableNat(IFACE_NAME, UPSTREAM_IFACE);
+        inOrder.verify(mNMService).enableNat(IFACE_NAME, UPSTREAM_IFACE2);
+        inOrder.verify(mNMService).startInterfaceForwarding(IFACE_NAME, UPSTREAM_IFACE2);
+        // TODO: Verify proper cleanup is performed:
+        // inOrder.verify(mStatsService).forceUpdate();
+        // inOrder.verify(mNMService).stopInterfaceForwarding(IFACE_NAME, UPSTREAM_IFACE2);
+        // inOrder.verify(mNMService).disableNat(IFACE_NAME, UPSTREAM_IFACE2);
+    }
+
+    @Test
     public void canUnrequestTetheringWithUpstream() throws Exception {
-        initTetheredStateMachine(ConnectivityManager.TETHERING_BLUETOOTH, UPSTREAM_IFACE);
+        initTetheredStateMachine(TETHERING_BLUETOOTH, UPSTREAM_IFACE);
 
         dispatchCommand(TetherInterfaceStateMachine.CMD_TETHER_UNREQUESTED);
         InOrder inOrder = inOrder(mNMService, mStatsService, mTetherHelper);
@@ -213,7 +254,7 @@
     @Test
     public void interfaceDownLeadsToUnavailable() throws Exception {
         for (boolean shouldThrow : new boolean[]{true, false}) {
-            initTetheredStateMachine(ConnectivityManager.TETHERING_USB, null);
+            initTetheredStateMachine(TETHERING_USB, null);
 
             if (shouldThrow) {
                 doThrow(RemoteException.class).when(mNMService).untetherInterface(IFACE_NAME);
@@ -230,7 +271,7 @@
 
     @Test
     public void usbShouldBeTornDownOnTetherError() throws Exception {
-        initStateMachine(ConnectivityManager.TETHERING_USB);
+        initStateMachine(TETHERING_USB);
 
         doThrow(RemoteException.class).when(mNMService).tetherInterface(IFACE_NAME);
         dispatchCommand(TetherInterfaceStateMachine.CMD_TETHER_REQUESTED);
@@ -244,7 +285,7 @@
 
     @Test
     public void shouldTearDownUsbOnUpstreamError() throws Exception {
-        initTetheredStateMachine(ConnectivityManager.TETHERING_USB, null);
+        initTetheredStateMachine(TETHERING_USB, null);
 
         doThrow(RemoteException.class).when(mNMService).enableNat(anyString(), anyString());
         dispatchTetherConnectionChanged(UPSTREAM_IFACE);
diff --git a/tools/aapt2/Main.cpp b/tools/aapt2/Main.cpp
index 227ffa3..ba378d7 100644
--- a/tools/aapt2/Main.cpp
+++ b/tools/aapt2/Main.cpp
@@ -25,7 +25,7 @@
 static const char* sMajorVersion = "2";
 
 // Update minor version whenever a feature or flag is added.
-static const char* sMinorVersion = "6";
+static const char* sMinorVersion = "7";
 
 int PrintVersion() {
   std::cerr << "Android Asset Packaging Tool (aapt) " << sMajorVersion << "."
diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp
index 1c750c6..47ca266 100644
--- a/tools/aapt2/ResourceParser.cpp
+++ b/tools/aapt2/ResourceParser.cpp
@@ -26,6 +26,7 @@
 #include "ResourceValues.h"
 #include "ValueVisitor.h"
 #include "util/ImmutableMap.h"
+#include "util/Maybe.h"
 #include "util/Util.h"
 #include "xml/XmlPullParser.h"
 
@@ -150,82 +151,108 @@
 /**
  * Build a string from XML that converts nested elements into Span objects.
  */
-bool ResourceParser::FlattenXmlSubtree(xml::XmlPullParser* parser,
-                                       std::string* out_raw_string,
-                                       StyleString* out_style_string) {
+bool ResourceParser::FlattenXmlSubtree(
+    xml::XmlPullParser* parser, std::string* out_raw_string, StyleString* out_style_string,
+    std::vector<UntranslatableSection>* out_untranslatable_sections) {
+  // Keeps track of formatting tags (<b>, <i>) and the range of characters for which they apply.
   std::vector<Span> span_stack;
 
-  bool error = false;
+  // Clear the output variables.
   out_raw_string->clear();
   out_style_string->spans.clear();
+  out_untranslatable_sections->clear();
+
+  // The StringBuilder will concatenate the various segments of text which are initially
+  // separated by tags. It also handles unicode escape codes and quotations.
   util::StringBuilder builder;
+
+  // The first occurrence of a <xliff:g> tag. Nested <xliff:g> tags are illegal.
+  Maybe<size_t> untranslatable_start_depth;
+
   size_t depth = 1;
   while (xml::XmlPullParser::IsGoodEvent(parser->Next())) {
     const xml::XmlPullParser::Event event = parser->event();
-    if (event == xml::XmlPullParser::Event::kEndElement) {
-      if (!parser->element_namespace().empty()) {
-        // We already warned and skipped the start element, so just skip here
-        // too
-        continue;
+
+    if (event == xml::XmlPullParser::Event::kStartElement) {
+      if (parser->element_namespace().empty()) {
+        // This is an HTML tag which we encode as a span. Add it to the span stack.
+        std::string span_name = parser->element_name();
+        const auto end_attr_iter = parser->end_attributes();
+        for (auto attr_iter = parser->begin_attributes(); attr_iter != end_attr_iter; ++attr_iter) {
+          span_name += ";";
+          span_name += attr_iter->name;
+          span_name += "=";
+          span_name += attr_iter->value;
+        }
+
+        // Make sure the string is representable in our binary format.
+        if (builder.Utf16Len() > std::numeric_limits<uint32_t>::max()) {
+          diag_->Error(DiagMessage(source_.WithLine(parser->line_number()))
+                       << "style string '" << builder.ToString() << "' is too long");
+          return false;
+        }
+
+        span_stack.push_back(Span{std::move(span_name), static_cast<uint32_t>(builder.Utf16Len())});
+      } else if (parser->element_namespace() == sXliffNamespaceUri) {
+        if (parser->element_name() == "g") {
+          if (untranslatable_start_depth) {
+            // We've already encountered an <xliff:g> tag, and nested <xliff:g> tags are illegal.
+            diag_->Error(DiagMessage(source_.WithLine(parser->line_number()))
+                         << "illegal nested XLIFF 'g' tag");
+            return false;
+          } else {
+            // Mark the start of an untranslatable section. Use UTF8 indices/lengths.
+            untranslatable_start_depth = depth;
+            const size_t current_idx = builder.ToString().size();
+            out_untranslatable_sections->push_back(UntranslatableSection{current_idx, current_idx});
+          }
+        }
+        // Ignore other xliff tags, they get handled by other tools.
+
+      } else {
+        // Besides XLIFF, any other namespaced tag is unsupported and ignored.
+        diag_->Warn(DiagMessage(source_.WithLine(parser->line_number()))
+                    << "ignoring element '" << parser->element_name()
+                    << "' with unknown namespace '" << parser->element_namespace() << "'");
       }
 
+      // Enter one level inside the element.
+      depth++;
+    } else if (event == xml::XmlPullParser::Event::kText) {
+      // Record both the raw text and append to the builder to deal with escape sequences
+      // and quotations.
+      out_raw_string->append(parser->text());
+      builder.Append(parser->text());
+    } else if (event == xml::XmlPullParser::Event::kEndElement) {
+      // Return one level from within the element.
       depth--;
       if (depth == 0) {
         break;
       }
 
-      span_stack.back().last_char = builder.Utf16Len() - 1;
-      out_style_string->spans.push_back(span_stack.back());
-      span_stack.pop_back();
-
-    } else if (event == xml::XmlPullParser::Event::kText) {
-      out_raw_string->append(parser->text());
-      builder.Append(parser->text());
-
-    } else if (event == xml::XmlPullParser::Event::kStartElement) {
-      if (!parser->element_namespace().empty()) {
-        if (parser->element_namespace() != sXliffNamespaceUri) {
-          // Only warn if this isn't an xliff namespace.
-          diag_->Warn(DiagMessage(source_.WithLine(parser->line_number()))
-                      << "skipping element '" << parser->element_name()
-                      << "' with unknown namespace '"
-                      << parser->element_namespace() << "'");
-        }
-        continue;
+      if (parser->element_namespace().empty()) {
+        // This is an HTML tag which we encode as a span. Update the span
+        // stack and pop the top entry.
+        Span& top_span = span_stack.back();
+        top_span.last_char = builder.Utf16Len() - 1;
+        out_style_string->spans.push_back(std::move(top_span));
+        span_stack.pop_back();
+      } else if (untranslatable_start_depth == make_value(depth)) {
+        // This is the end of an untranslatable section. Use UTF8 indices/lengths.
+        UntranslatableSection& untranslatable_section = out_untranslatable_sections->back();
+        untranslatable_section.end = builder.ToString().size();
+        untranslatable_start_depth = {};
       }
-      depth++;
-
-      // Build a span object out of the nested element.
-      std::string span_name = parser->element_name();
-      const auto end_attr_iter = parser->end_attributes();
-      for (auto attr_iter = parser->begin_attributes();
-           attr_iter != end_attr_iter; ++attr_iter) {
-        span_name += ";";
-        span_name += attr_iter->name;
-        span_name += "=";
-        span_name += attr_iter->value;
-      }
-
-      if (builder.Utf16Len() > std::numeric_limits<uint32_t>::max()) {
-        diag_->Error(DiagMessage(source_.WithLine(parser->line_number()))
-                     << "style string '" << builder.ToString()
-                     << "' is too long");
-        error = true;
-      } else {
-        span_stack.push_back(
-            Span{span_name, static_cast<uint32_t>(builder.Utf16Len())});
-      }
-
     } else if (event == xml::XmlPullParser::Event::kComment) {
-      // Skip
+      // Ignore.
     } else {
       LOG(FATAL) << "unhandled XML event";
     }
   }
-  CHECK(span_stack.empty()) << "spans haven't been fully processed";
 
+  CHECK(span_stack.empty()) << "spans haven't been fully processed";
   out_style_string->str = builder.ToString();
-  return !error;
+  return true;
 }
 
 bool ResourceParser::Parse(xml::XmlPullParser* parser) {
@@ -548,15 +575,18 @@
 
   std::string raw_value;
   StyleString style_string;
-  if (!FlattenXmlSubtree(parser, &raw_value, &style_string)) {
+  std::vector<UntranslatableSection> untranslatable_sections;
+  if (!FlattenXmlSubtree(parser, &raw_value, &style_string, &untranslatable_sections)) {
     return {};
   }
 
   if (!style_string.spans.empty()) {
     // This can only be a StyledString.
-    return util::make_unique<StyledString>(table_->string_pool.MakeRef(
-        style_string,
-        StringPool::Context(StringPool::Context::kStylePriority, config_)));
+    std::unique_ptr<StyledString> styled_string =
+        util::make_unique<StyledString>(table_->string_pool.MakeRef(
+            style_string, StringPool::Context(StringPool::Context::kStylePriority, config_)));
+    styled_string->untranslatable_sections = std::move(untranslatable_sections);
+    return std::move(styled_string);
   }
 
   auto on_create_reference = [&](const ResourceName& name) {
@@ -582,8 +612,10 @@
   // Try making a regular string.
   if (type_mask & android::ResTable_map::TYPE_STRING) {
     // Use the trimmed, escaped string.
-    return util::make_unique<String>(table_->string_pool.MakeRef(
-        style_string.str, StringPool::Context(config_)));
+    std::unique_ptr<String> string = util::make_unique<String>(
+        table_->string_pool.MakeRef(style_string.str, StringPool::Context(config_)));
+    string->untranslatable_sections = std::move(untranslatable_sections);
+    return std::move(string);
   }
 
   if (allow_raw_value) {
@@ -609,17 +641,15 @@
     formatted = maybe_formatted.value();
   }
 
-  bool translateable = options_.translatable;
-  if (Maybe<StringPiece> translateable_attr =
-          xml::FindAttribute(parser, "translatable")) {
-    Maybe<bool> maybe_translateable =
-        ResourceUtils::ParseBool(translateable_attr.value());
-    if (!maybe_translateable) {
+  bool translatable = options_.translatable;
+  if (Maybe<StringPiece> translatable_attr = xml::FindAttribute(parser, "translatable")) {
+    Maybe<bool> maybe_translatable = ResourceUtils::ParseBool(translatable_attr.value());
+    if (!maybe_translatable) {
       diag_->Error(DiagMessage(out_resource->source)
                    << "invalid value for 'translatable'. Must be a boolean");
       return false;
     }
-    translateable = maybe_translateable.value();
+    translatable = maybe_translatable.value();
   }
 
   out_resource->value =
@@ -630,9 +660,9 @@
   }
 
   if (String* string_value = ValueCast<String>(out_resource->value.get())) {
-    string_value->SetTranslateable(translateable);
+    string_value->SetTranslatable(translatable);
 
-    if (formatted && translateable) {
+    if (formatted && translatable) {
       if (!util::VerifyJavaStringFormat(*string_value->value)) {
         DiagMessage msg(out_resource->source);
         msg << "multiple substitutions specified in non-positional format; "
@@ -646,9 +676,8 @@
       }
     }
 
-  } else if (StyledString* string_value =
-                 ValueCast<StyledString>(out_resource->value.get())) {
-    string_value->SetTranslateable(translateable);
+  } else if (StyledString* string_value = ValueCast<StyledString>(out_resource->value.get())) {
+    string_value->SetTranslatable(translatable);
   }
   return true;
 }
@@ -1151,19 +1180,17 @@
 
   std::unique_ptr<Array> array = util::make_unique<Array>();
 
-  bool translateable = options_.translatable;
-  if (Maybe<StringPiece> translateable_attr =
-          xml::FindAttribute(parser, "translatable")) {
-    Maybe<bool> maybe_translateable =
-        ResourceUtils::ParseBool(translateable_attr.value());
-    if (!maybe_translateable) {
+  bool translatable = options_.translatable;
+  if (Maybe<StringPiece> translatable_attr = xml::FindAttribute(parser, "translatable")) {
+    Maybe<bool> maybe_translatable = ResourceUtils::ParseBool(translatable_attr.value());
+    if (!maybe_translatable) {
       diag_->Error(DiagMessage(out_resource->source)
                    << "invalid value for 'translatable'. Must be a boolean");
       return false;
     }
-    translateable = maybe_translateable.value();
+    translatable = maybe_translatable.value();
   }
-  array->SetTranslateable(translateable);
+  array->SetTranslatable(translatable);
 
   bool error = false;
   const size_t depth = parser->depth();
diff --git a/tools/aapt2/ResourceParser.h b/tools/aapt2/ResourceParser.h
index cc0fa26..8258019 100644
--- a/tools/aapt2/ResourceParser.h
+++ b/tools/aapt2/ResourceParser.h
@@ -60,16 +60,16 @@
  private:
   DISALLOW_COPY_AND_ASSIGN(ResourceParser);
 
-  /*
-   * Parses the XML subtree as a StyleString (flattened XML representation for
-   * strings
-   * with formatting). If successful, `out_style_string`
-   * contains the escaped and whitespace trimmed text, while `out_raw_string`
-   * contains the unescaped text. Returns true on success.
-   */
-  bool FlattenXmlSubtree(xml::XmlPullParser* parser,
-                         std::string* out_raw_string,
-                         StyleString* out_style_string);
+  // Parses the XML subtree as a StyleString (flattened XML representation for strings with
+  // formatting). If parsing fails, false is returned and the out parameters are left in an
+  // unspecified state. Otherwise,
+  // `out_style_string` contains the escaped and whitespace trimmed text.
+  // `out_raw_string` contains the un-escaped text.
+  // `out_untranslatable_sections` contains the sections of the string that should not be
+  // translated.
+  bool FlattenXmlSubtree(xml::XmlPullParser* parser, std::string* out_raw_string,
+                         StyleString* out_style_string,
+                         std::vector<UntranslatableSection>* out_untranslatable_sections);
 
   /*
    * Parses the XML subtree and returns an Item.
diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp
index cf901da..67ed476 100644
--- a/tools/aapt2/ResourceParser_test.cpp
+++ b/tools/aapt2/ResourceParser_test.cpp
@@ -76,6 +76,7 @@
   String* str = test::GetValue<String>(&table_, "string/foo");
   ASSERT_NE(nullptr, str);
   EXPECT_EQ(std::string("  hey there "), *str->value);
+  EXPECT_TRUE(str->untranslatable_sections.empty());
 }
 
 TEST_F(ResourceParserTest, ParseEscapedString) {
@@ -85,6 +86,7 @@
   String* str = test::GetValue<String>(&table_, "string/foo");
   ASSERT_NE(nullptr, str);
   EXPECT_EQ(std::string("?123"), *str->value);
+  EXPECT_TRUE(str->untranslatable_sections.empty());
 }
 
 TEST_F(ResourceParserTest, ParseFormattedString) {
@@ -97,8 +99,7 @@
 
 TEST_F(ResourceParserTest, ParseStyledString) {
   // Use a surrogate pair unicode point so that we can verify that the span
-  // indices
-  // use UTF-16 length and not UTF-18 length.
+  // indices use UTF-16 length and not UTF-8 length.
   std::string input =
       "<string name=\"foo\">This is my aunt\u2019s <b>string</b></string>";
   ASSERT_TRUE(TestParse(input));
@@ -109,6 +110,7 @@
   const std::string expected_str = "This is my aunt\u2019s string";
   EXPECT_EQ(expected_str, *str->value->str);
   EXPECT_EQ(1u, str->value->spans.size());
+  EXPECT_TRUE(str->untranslatable_sections.empty());
 
   EXPECT_EQ(std::string("b"), *str->value->spans[0].name);
   EXPECT_EQ(17u, str->value->spans[0].first_char);
@@ -122,6 +124,7 @@
   String* str = test::GetValue<String>(&table_, "string/foo");
   ASSERT_NE(nullptr, str);
   EXPECT_EQ(std::string("This is what I think"), *str->value);
+  EXPECT_TRUE(str->untranslatable_sections.empty());
 
   input = "<string name=\"foo2\">\"  This is what  I think  \"</string>";
   ASSERT_TRUE(TestParse(input));
@@ -131,16 +134,61 @@
   EXPECT_EQ(std::string("  This is what  I think  "), *str->value);
 }
 
-TEST_F(ResourceParserTest, IgnoreXliffTags) {
-  std::string input =
-      "<string name=\"foo\" \n"
-      "        xmlns:xliff=\"urn:oasis:names:tc:xliff:document:1.2\">\n"
-      "  There are <xliff:g id=\"count\">%1$d</xliff:g> apples</string>";
+TEST_F(ResourceParserTest, IgnoreXliffTagsOtherThanG) {
+  std::string input = R"EOF(
+      <string name="foo" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+          There are <xliff:source>no</xliff:source> apples</string>)EOF";
+  ASSERT_TRUE(TestParse(input));
+
+  String* str = test::GetValue<String>(&table_, "string/foo");
+  ASSERT_NE(nullptr, str);
+  EXPECT_EQ(StringPiece("There are no apples"), StringPiece(*str->value));
+  EXPECT_TRUE(str->untranslatable_sections.empty());
+}
+
+TEST_F(ResourceParserTest, NestedXliffGTagsAreIllegal) {
+  std::string input = R"EOF(
+      <string name="foo" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+          Do not <xliff:g>translate <xliff:g>this</xliff:g></xliff:g></string>)EOF";
+  EXPECT_FALSE(TestParse(input));
+}
+
+TEST_F(ResourceParserTest, RecordUntranslateableXliffSectionsInString) {
+  std::string input = R"EOF(
+      <string name="foo" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+          There are <xliff:g id="count">%1$d</xliff:g> apples</string>)EOF";
   ASSERT_TRUE(TestParse(input));
 
   String* str = test::GetValue<String>(&table_, "string/foo");
   ASSERT_NE(nullptr, str);
   EXPECT_EQ(StringPiece("There are %1$d apples"), StringPiece(*str->value));
+
+  ASSERT_EQ(1u, str->untranslatable_sections.size());
+
+  // We expect indices and lengths that span to include the whitespace
+  // before %1$d. This is due to how the StringBuilder withholds whitespace unless
+  // needed (to deal with line breaks, etc.).
+  EXPECT_EQ(9u, str->untranslatable_sections[0].start);
+  EXPECT_EQ(14u, str->untranslatable_sections[0].end);
+}
+
+TEST_F(ResourceParserTest, RecordUntranslateableXliffSectionsInStyledString) {
+  std::string input = R"EOF(
+      <string name="foo" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+          There are <b><xliff:g id="count">%1$d</xliff:g></b> apples</string>)EOF";
+  ASSERT_TRUE(TestParse(input));
+
+  StyledString* str = test::GetValue<StyledString>(&table_, "string/foo");
+  ASSERT_NE(nullptr, str);
+  EXPECT_EQ(StringPiece("There are %1$d apples"), StringPiece(*str->value->str));
+
+  ASSERT_EQ(1u, str->untranslatable_sections.size());
+
+  // We expect indices and lengths that span to include the whitespace
+  // before %1$d. This is due to how the StringBuilder withholds whitespace unless
+  // needed (to deal with line breaks, etc.).
+  EXPECT_EQ(9u, str->untranslatable_sections[0].start);
+  EXPECT_EQ(14u, str->untranslatable_sections[0].end);
 }
 
 TEST_F(ResourceParserTest, ParseNull) {
@@ -149,15 +197,11 @@
 
   // The Android runtime treats a value of android::Res_value::TYPE_NULL as
   // a non-existing value, and this causes problems in styles when trying to
-  // resolve
-  // an attribute. Null values must be encoded as
-  // android::Res_value::TYPE_REFERENCE
+  // resolve an attribute. Null values must be encoded as android::Res_value::TYPE_REFERENCE
   // with a data value of 0.
-  BinaryPrimitive* integer =
-      test::GetValue<BinaryPrimitive>(&table_, "integer/foo");
+  BinaryPrimitive* integer = test::GetValue<BinaryPrimitive>(&table_, "integer/foo");
   ASSERT_NE(nullptr, integer);
-  EXPECT_EQ(uint16_t(android::Res_value::TYPE_REFERENCE),
-            integer->value.dataType);
+  EXPECT_EQ(uint16_t(android::Res_value::TYPE_REFERENCE), integer->value.dataType);
   EXPECT_EQ(0u, integer->value.data);
 }
 
diff --git a/tools/aapt2/ResourceValues.cpp b/tools/aapt2/ResourceValues.cpp
index 7956ad8..f75ed7a 100644
--- a/tools/aapt2/ResourceValues.cpp
+++ b/tools/aapt2/ResourceValues.cpp
@@ -140,7 +140,23 @@
   if (!other) {
     return false;
   }
-  return *this->value == *other->value;
+
+  if (this->value != other->value) {
+    return false;
+  }
+
+  if (untranslatable_sections.size() != other->untranslatable_sections.size()) {
+    return false;
+  }
+
+  auto other_iter = other->untranslatable_sections.begin();
+  for (const UntranslatableSection& this_section : untranslatable_sections) {
+    if (this_section != *other_iter) {
+      return false;
+    }
+    ++other_iter;
+  }
+  return true;
 }
 
 bool String::Flatten(android::Res_value* out_value) const {
@@ -158,6 +174,7 @@
   String* str = new String(new_pool->MakeRef(*value));
   str->comment_ = comment_;
   str->source_ = source_;
+  str->untranslatable_sections = untranslatable_sections;
   return str;
 }
 
@@ -173,17 +190,22 @@
     return false;
   }
 
-  if (*this->value->str == *other->value->str) {
-    const std::vector<StringPool::Span>& spans_a = this->value->spans;
-    const std::vector<StringPool::Span>& spans_b = other->value->spans;
-    return std::equal(
-        spans_a.begin(), spans_a.end(), spans_b.begin(),
-        [](const StringPool::Span& a, const StringPool::Span& b) -> bool {
-          return *a.name == *b.name && a.first_char == b.first_char &&
-                 a.last_char == b.last_char;
-        });
+  if (this->value != other->value) {
+    return false;
   }
-  return false;
+
+  if (untranslatable_sections.size() != other->untranslatable_sections.size()) {
+    return false;
+  }
+
+  auto other_iter = other->untranslatable_sections.begin();
+  for (const UntranslatableSection& this_section : untranslatable_sections) {
+    if (this_section != *other_iter) {
+      return false;
+    }
+    ++other_iter;
+  }
+  return true;
 }
 
 bool StyledString::Flatten(android::Res_value* out_value) const {
@@ -200,6 +222,7 @@
   StyledString* str = new StyledString(new_pool->MakeRef(value));
   str->comment_ = comment_;
   str->source_ = source_;
+  str->untranslatable_sections = untranslatable_sections;
   return str;
 }
 
@@ -218,7 +241,7 @@
   if (!other) {
     return false;
   }
-  return *path == *other->path;
+  return path == other->path;
 }
 
 bool FileReference::Flatten(android::Res_value* out_value) const {
diff --git a/tools/aapt2/ResourceValues.h b/tools/aapt2/ResourceValues.h
index d380f8d..c71c738 100644
--- a/tools/aapt2/ResourceValues.h
+++ b/tools/aapt2/ResourceValues.h
@@ -34,44 +34,35 @@
 
 struct RawValueVisitor;
 
-/**
- * A resource value. This is an all-encompassing representation
- * of Item and Map and their subclasses. The way to do
- * type specific operations is to check the Value's type() and
- * cast it to the appropriate subclass. This isn't super clean,
- * but it is the simplest strategy.
- */
+// A resource value. This is an all-encompassing representation
+// of Item and Map and their subclasses. The way to do
+// type specific operations is to check the Value's type() and
+// cast it to the appropriate subclass. This isn't super clean,
+// but it is the simplest strategy.
 struct Value {
   virtual ~Value() = default;
 
-  /**
-   * Whether this value is weak and can be overridden without
-   * warning or error. Default is false.
-   */
+  // Whether this value is weak and can be overridden without warning or error. Default is false.
   bool IsWeak() const { return weak_; }
 
   void SetWeak(bool val) { weak_ = val; }
 
-  // Whether the value is marked as translateable.
+  // Whether the value is marked as translatable.
   // This does not persist when flattened.
   // It is only used during compilation phase.
-  void SetTranslateable(bool val) { translateable_ = val; }
+  void SetTranslatable(bool val) { translatable_ = val; }
 
   // Default true.
-  bool IsTranslateable() const { return translateable_; }
+  bool IsTranslatable() const { return translatable_; }
 
-  /**
-   * Returns the source where this value was defined.
-   */
+  // Returns the source where this value was defined.
   const Source& GetSource() const { return source_; }
 
   void SetSource(const Source& source) { source_ = source; }
 
   void SetSource(Source&& source) { source_ = std::move(source); }
 
-  /**
-   * Returns the comment that was associated with this resource.
-   */
+  // Returns the comment that was associated with this resource.
   const std::string& GetComment() const { return comment_; }
 
   void SetComment(const android::StringPiece& str) { comment_ = str.to_string(); }
@@ -80,70 +71,48 @@
 
   virtual bool Equals(const Value* value) const = 0;
 
-  /**
-   * Calls the appropriate overload of ValueVisitor.
-   */
+  // Calls the appropriate overload of ValueVisitor.
   virtual void Accept(RawValueVisitor* visitor) = 0;
 
-  /**
-   * Clone the value. new_pool is the new StringPool that
-   * any resources with strings should use when copying their string.
-   */
+  // Clone the value. `new_pool` is the new StringPool that
+  // any resources with strings should use when copying their string.
   virtual Value* Clone(StringPool* new_pool) const = 0;
 
-  /**
-   * Human readable printout of this value.
-   */
+  // Human readable printout of this value.
   virtual void Print(std::ostream* out) const = 0;
 
  protected:
   Source source_;
   std::string comment_;
   bool weak_ = false;
-  bool translateable_ = true;
+  bool translatable_ = true;
 };
 
-/**
- * Inherit from this to get visitor accepting implementations for free.
- */
+// Inherit from this to get visitor accepting implementations for free.
 template <typename Derived>
 struct BaseValue : public Value {
   void Accept(RawValueVisitor* visitor) override;
 };
 
-/**
- * A resource item with a single value. This maps to android::ResTable_entry.
- */
+// A resource item with a single value. This maps to android::ResTable_entry.
 struct Item : public Value {
-  /**
-   * Clone the Item.
-   */
+  // Clone the Item.
   virtual Item* Clone(StringPool* new_pool) const override = 0;
 
-  /**
-   * Fills in an android::Res_value structure with this Item's binary
-   * representation.
-   * Returns false if an error occurred.
-   */
+  // Fills in an android::Res_value structure with this Item's binary representation.
+  // Returns false if an error occurred.
   virtual bool Flatten(android::Res_value* out_value) const = 0;
 };
 
-/**
- * Inherit from this to get visitor accepting implementations for free.
- */
+// Inherit from this to get visitor accepting implementations for free.
 template <typename Derived>
 struct BaseItem : public Item {
   void Accept(RawValueVisitor* visitor) override;
 };
 
-/**
- * A reference to another resource. This maps to
- * android::Res_value::TYPE_REFERENCE.
- *
- * A reference can be symbolic (with the name set to a valid resource name) or
- * be
- * numeric (the id is set to a valid resource ID).
- */
+// A reference to another resource. This maps to android::Res_value::TYPE_REFERENCE.
+// A reference can be symbolic (with the name set to a valid resource name) or be
+// numeric (the id is set to a valid resource ID).
 struct Reference : public BaseItem<Reference> {
   enum class Type {
     kResource,
@@ -169,9 +138,7 @@
 bool operator<(const Reference&, const Reference&);
 bool operator==(const Reference&, const Reference&);
 
-/**
- * An ID resource. Has no real value, just a place holder.
- */
+// An ID resource. Has no real value, just a place holder.
 struct Id : public BaseItem<Id> {
   Id() { weak_ = true; }
   bool Equals(const Value* value) const override;
@@ -180,11 +147,8 @@
   void Print(std::ostream* out) const override;
 };
 
-/**
- * A raw, unprocessed string. This may contain quotations,
- * escape sequences, and whitespace. This shall *NOT*
- * end up in the final resource table.
- */
+// A raw, unprocessed string. This may contain quotations, escape sequences, and whitespace.
+// This shall *NOT* end up in the final resource table.
 struct RawString : public BaseItem<RawString> {
   StringPool::Ref value;
 
@@ -196,9 +160,32 @@
   void Print(std::ostream* out) const override;
 };
 
+// Identifies a range of characters in a string that are untranslatable.
+// These should not be pseudolocalized. The start and end indices are measured in bytes.
+struct UntranslatableSection {
+  // Start offset inclusive.
+  size_t start;
+
+  // End offset exclusive.
+  size_t end;
+};
+
+inline bool operator==(const UntranslatableSection& a, const UntranslatableSection& b) {
+  return a.start == b.start && a.end == b.end;
+}
+
+inline bool operator!=(const UntranslatableSection& a, const UntranslatableSection& b) {
+  return a.start != b.start || a.end != b.end;
+}
+
 struct String : public BaseItem<String> {
   StringPool::Ref value;
 
+  // Sections of the string to NOT translate. Mainly used
+  // for pseudolocalization. This data is NOT persisted
+  // in any format.
+  std::vector<UntranslatableSection> untranslatable_sections;
+
   explicit String(const StringPool::Ref& ref);
 
   bool Equals(const Value* value) const override;
@@ -210,6 +197,11 @@
 struct StyledString : public BaseItem<StyledString> {
   StringPool::StyleRef value;
 
+  // Sections of the string to NOT translate. Mainly used
+  // for pseudolocalization. This data is NOT persisted
+  // in any format.
+  std::vector<UntranslatableSection> untranslatable_sections;
+
   explicit StyledString(const StringPool::StyleRef& ref);
 
   bool Equals(const Value* value) const override;
@@ -221,9 +213,8 @@
 struct FileReference : public BaseItem<FileReference> {
   StringPool::Ref path;
 
-  /**
-   * A handle to the file object from which this file can be read.
-   */
+  // A handle to the file object from which this file can be read.
+  // This field is NOT persisted in any format. It is transient.
   io::IFile* file = nullptr;
 
   FileReference() = default;
@@ -235,9 +226,7 @@
   void Print(std::ostream* out) const override;
 };
 
-/**
- * Represents any other android::Res_value.
- */
+// Represents any other android::Res_value.
 struct BinaryPrimitive : public BaseItem<BinaryPrimitive> {
   android::Res_value value;
 
@@ -279,10 +268,7 @@
 
   Maybe<Reference> parent;
 
-  /**
-   * If set to true, the parent was auto inferred from the
-   * style's name.
-   */
+  // If set to true, the parent was auto inferred from the style's name.
   bool parent_inferred = false;
 
   std::vector<Entry> entries;
@@ -319,9 +305,7 @@
   void MergeWith(Styleable* styleable);
 };
 
-/**
- * Stream operator for printing Value objects.
- */
+// Stream operator for printing Value objects.
 inline ::std::ostream& operator<<(::std::ostream& out, const Value& value) {
   value.Print(&out);
   return out;
diff --git a/tools/aapt2/StringPool.cpp b/tools/aapt2/StringPool.cpp
index d968d73..57da5f0 100644
--- a/tools/aapt2/StringPool.cpp
+++ b/tools/aapt2/StringPool.cpp
@@ -63,6 +63,14 @@
   return *this;
 }
 
+bool StringPool::Ref::operator==(const Ref& rhs) const {
+  return entry_->value == rhs.entry_->value;
+}
+
+bool StringPool::Ref::operator!=(const Ref& rhs) const {
+  return entry_->value != rhs.entry_->value;
+}
+
 const std::string* StringPool::Ref::operator->() const {
   return &entry_->value;
 }
@@ -109,6 +117,28 @@
   return *this;
 }
 
+bool StringPool::StyleRef::operator==(const StyleRef& rhs) const {
+  if (entry_->str != rhs.entry_->str) {
+    return false;
+  }
+
+  if (entry_->spans.size() != rhs.entry_->spans.size()) {
+    return false;
+  }
+
+  auto rhs_iter = rhs.entry_->spans.begin();
+  for (const Span& span : entry_->spans) {
+    const Span& rhs_span = *rhs_iter;
+    if (span.first_char != rhs_span.first_char || span.last_char != rhs_span.last_char ||
+        span.name != rhs_span.name) {
+      return false;
+    }
+  }
+  return true;
+}
+
+bool StringPool::StyleRef::operator!=(const StyleRef& rhs) const { return !operator==(rhs); }
+
 const StringPool::StyleEntry* StringPool::StyleRef::operator->() const {
   return entry_;
 }
diff --git a/tools/aapt2/StringPool.h b/tools/aapt2/StringPool.h
index d0ce489..a626d37 100644
--- a/tools/aapt2/StringPool.h
+++ b/tools/aapt2/StringPool.h
@@ -70,6 +70,8 @@
     ~Ref();
 
     Ref& operator=(const Ref& rhs);
+    bool operator==(const Ref& rhs) const;
+    bool operator!=(const Ref& rhs) const;
     const std::string* operator->() const;
     const std::string& operator*() const;
 
@@ -93,6 +95,8 @@
     ~StyleRef();
 
     StyleRef& operator=(const StyleRef& rhs);
+    bool operator==(const StyleRef& rhs) const;
+    bool operator!=(const StyleRef& rhs) const;
     const StyleEntry* operator->() const;
     const StyleEntry& operator*() const;
 
diff --git a/tools/aapt2/compile/PseudolocaleGenerator.cpp b/tools/aapt2/compile/PseudolocaleGenerator.cpp
index 5035f81..fad9edd 100644
--- a/tools/aapt2/compile/PseudolocaleGenerator.cpp
+++ b/tools/aapt2/compile/PseudolocaleGenerator.cpp
@@ -43,16 +43,16 @@
   }
 
   // The ranges are all represented with a single value. This is the start of
-  // one range and
-  // end of another.
+  // one range and end of another.
   struct Range {
     size_t start;
 
-    // Once the new string is localized, these are the pointers to the spans to
-    // adjust.
+    // If set to true, toggles the state of translatability.
+    bool toggle_translatability;
+
+    // Once the new string is localized, these are the pointers to the spans to adjust.
     // Since this struct represents the start of one range and end of another,
-    // we have
-    // the two pointers respectively.
+    // we have the two pointers respectively.
     uint32_t* update_start;
     uint32_t* update_end;
   };
@@ -63,12 +63,11 @@
 
   // Construct the ranges. The ranges are represented like so: [0, 2, 5, 7]
   // The ranges are the spaces in between. In this example, with a total string
-  // length of 9,
-  // the vector represents: (0,1], (2,4], (5,6], (7,9]
+  // length of 9, the vector represents: (0,1], (2,4], (5,6], (7,9]
   //
   std::vector<Range> ranges;
-  ranges.push_back(Range{0});
-  ranges.push_back(Range{original_text.size() - 1});
+  ranges.push_back(Range{0, false, nullptr, nullptr});
+  ranges.push_back(Range{original_text.size() - 1, false, nullptr, nullptr});
   for (size_t i = 0; i < string->value->spans.size(); i++) {
     const StringPool::Span& span = string->value->spans[i];
 
@@ -78,8 +77,7 @@
     if (iter != ranges.end() && iter->start == span.first_char) {
       iter->update_start = &localized.spans[i].first_char;
     } else {
-      ranges.insert(iter, Range{span.first_char, &localized.spans[i].first_char,
-                                nullptr});
+      ranges.insert(iter, Range{span.first_char, false, &localized.spans[i].first_char, nullptr});
     }
 
     // Insert or update the Range marker for the end of this span.
@@ -87,14 +85,45 @@
     if (iter != ranges.end() && iter->start == span.last_char) {
       iter->update_end = &localized.spans[i].last_char;
     } else {
-      ranges.insert(
-          iter, Range{span.last_char, nullptr, &localized.spans[i].last_char});
+      ranges.insert(iter, Range{span.last_char, false, nullptr, &localized.spans[i].last_char});
+    }
+  }
+
+  // Parts of the string may be untranslatable. Merge those ranges
+  // in as well, so that we have continuous sections of text to
+  // feed into the pseudolocalizer.
+  // We do this by marking the beginning of a range as either toggling
+  // the translatability state or not.
+  for (const UntranslatableSection& section : string->untranslatable_sections) {
+    auto iter = std::lower_bound(ranges.begin(), ranges.end(), section.start, cmp);
+    if (iter != ranges.end() && iter->start == section.start) {
+      // An existing span starts (or ends) here. We just need to mark that
+      // the translatability should toggle here. If translatability was
+      // already being toggled, then that means we have two adjacent ranges of untranslatable
+      // text, so remove the toggle and only toggle at the end of this range,
+      // effectively merging these ranges.
+      iter->toggle_translatability = !iter->toggle_translatability;
+    } else {
+      // Insert a new range that specifies to toggle the translatability.
+      iter = ranges.insert(iter, Range{section.start, true, nullptr, nullptr});
+    }
+
+    // Update/create an end to the untranslatable section.
+    iter = std::lower_bound(iter, ranges.end(), section.end, cmp);
+    if (iter != ranges.end() && iter->start == section.end) {
+      iter->toggle_translatability = true;
+    } else {
+      iter = ranges.insert(iter, Range{section.end, true, nullptr, nullptr});
     }
   }
 
   localized.str += localizer.Start();
 
   // Iterate over the ranges and localize each section.
+  // The text starts as translatable, and each time a range has toggle_translatability
+  // set to true, we toggle whether to translate or not.
+  // This assumes no untranslatable ranges overlap.
+  bool translatable = true;
   for (size_t i = 0; i < ranges.size(); i++) {
     const size_t start = ranges[i].start;
     size_t len = original_text.size() - start;
@@ -110,15 +139,20 @@
       *ranges[i].update_end = localized.str.size();
     }
 
-    localized.str += localizer.Text(original_text.substr(start, len));
+    if (ranges[i].toggle_translatability) {
+      translatable = !translatable;
+    }
+
+    if (translatable) {
+      localized.str += localizer.Text(original_text.substr(start, len));
+    } else {
+      localized.str += original_text.substr(start, len);
+    }
   }
 
   localized.str += localizer.End();
 
-  std::unique_ptr<StyledString> localized_string =
-      util::make_unique<StyledString>(pool->MakeRef(localized));
-  localized_string->SetSource(string->GetSource());
-  return localized_string;
+  return util::make_unique<StyledString>(pool->MakeRef(localized));
 }
 
 namespace {
@@ -152,8 +186,30 @@
   }
 
   void Visit(String* string) override {
-    std::string result =
-        localizer_.Start() + localizer_.Text(*string->value) + localizer_.End();
+    const StringPiece original_string = *string->value;
+    std::string result = localizer_.Start();
+
+    // Pseudolocalize only the translatable sections.
+    size_t start = 0u;
+    for (const UntranslatableSection& section : string->untranslatable_sections) {
+      // Pseudolocalize the content before the untranslatable section.
+      const size_t len = section.start - start;
+      if (len > 0u) {
+        result += localizer_.Text(original_string.substr(start, len));
+      }
+
+      // Copy the untranslatable content.
+      result += original_string.substr(section.start, section.end - section.start);
+      start = section.end;
+    }
+
+    // Pseudolocalize the content after the last untranslatable section.
+    if (start != original_string.size()) {
+      const size_t len = original_string.size() - start;
+      result += localizer_.Text(original_string.substr(start, len));
+    }
+    result += localizer_.End();
+
     std::unique_ptr<String> localized =
         util::make_unique<String>(pool_->MakeRef(result));
     localized->SetSource(string->GetSource());
@@ -163,6 +219,7 @@
 
   void Visit(StyledString* string) override {
     item = PseudolocalizeStyledString(string, method_, pool_);
+    item->SetSource(string->GetSource());
     item->SetWeak(true);
   }
 
@@ -228,7 +285,7 @@
 /**
  * A value is pseudolocalizable if it does not define a locale (or is the
  * default locale)
- * and is translateable.
+ * and is translatable.
  */
 static bool IsPseudolocalizable(ResourceConfigValue* config_value) {
   const int diff =
@@ -236,7 +293,7 @@
   if (diff & ConfigDescription::CONFIG_LOCALE) {
     return false;
   }
-  return config_value->value->IsTranslateable();
+  return config_value->value->IsTranslatable();
 }
 
 }  // namespace
diff --git a/tools/aapt2/compile/PseudolocaleGenerator_test.cpp b/tools/aapt2/compile/PseudolocaleGenerator_test.cpp
index 5a9884d..4db37db 100644
--- a/tools/aapt2/compile/PseudolocaleGenerator_test.cpp
+++ b/tools/aapt2/compile/PseudolocaleGenerator_test.cpp
@@ -89,7 +89,7 @@
 
   String* val = test::GetValue<String>(table.get(), "android:string/four");
   ASSERT_NE(nullptr, val);
-  val->SetTranslateable(false);
+  val->SetTranslatable(false);
 
   std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build();
   PseudolocaleGenerator generator;
@@ -130,4 +130,47 @@
                                             test::ParseConfigOrDie("ar-rXB")));
 }
 
+TEST(PseudolocaleGeneratorTest, RespectUntranslateableSections) {
+  std::unique_ptr<IAaptContext> context =
+      test::ContextBuilder().SetCompilationPackage("android").Build();
+  std::unique_ptr<ResourceTable> table = util::make_unique<ResourceTable>();
+
+  {
+    StyleString original_style;
+    original_style.str = "Hello world!";
+    original_style.spans = {Span{"b", 2, 3}, Span{"b", 6, 7}, Span{"i", 1, 10}};
+
+    auto styled_string =
+        util::make_unique<StyledString>(table->string_pool.MakeRef(original_style));
+    styled_string->untranslatable_sections.push_back(UntranslatableSection{6u, 8u});
+    styled_string->untranslatable_sections.push_back(UntranslatableSection{8u, 11u});
+
+    auto string = util::make_unique<String>(table->string_pool.MakeRef(original_style.str));
+    string->untranslatable_sections.push_back(UntranslatableSection{6u, 11u});
+
+    ASSERT_TRUE(table->AddResource(test::ParseNameOrDie("android:string/foo"), ConfigDescription{},
+                                   {} /* product */, std::move(styled_string),
+                                   context->GetDiagnostics()));
+    ASSERT_TRUE(table->AddResource(test::ParseNameOrDie("android:string/bar"), ConfigDescription{},
+                                   {} /* product */, std::move(string), context->GetDiagnostics()));
+  }
+
+  PseudolocaleGenerator generator;
+  ASSERT_TRUE(generator.Consume(context.get(), table.get()));
+
+  StyledString* new_styled_string = test::GetValueForConfig<StyledString>(
+      table.get(), "android:string/foo", test::ParseConfigOrDie("en-rXA"));
+  ASSERT_NE(nullptr, new_styled_string);
+
+  // "world" should be untranslated.
+  EXPECT_NE(std::string::npos, new_styled_string->value->str->find("world"));
+
+  String* new_string = test::GetValueForConfig<String>(table.get(), "android:string/bar",
+                                                       test::ParseConfigOrDie("en-rXA"));
+  ASSERT_NE(nullptr, new_string);
+
+  // "world" should be untranslated.
+  EXPECT_NE(std::string::npos, new_string->value->find("world"));
+}
+
 }  // namespace aapt
diff --git a/tools/aapt2/link/Link.cpp b/tools/aapt2/link/Link.cpp
index f7e0f8f..0501a3b 100644
--- a/tools/aapt2/link/Link.cpp
+++ b/tools/aapt2/link/Link.cpp
@@ -1634,7 +1634,7 @@
 
     if (options_.static_lib) {
       if (options_.table_splitter_options.config_filter != nullptr ||
-          options_.table_splitter_options.preferred_density) {
+          !options_.table_splitter_options.preferred_densities.empty()) {
         context_->GetDiagnostics()
             ->Warn(DiagMessage()
                    << "can't strip resources when building static library");
@@ -2107,8 +2107,7 @@
                         << "Preferred density must only be a density value");
       return 1;
     }
-    options.table_splitter_options.preferred_density =
-        preferred_density_config.density;
+    options.table_splitter_options.preferred_densities.push_back(preferred_density_config.density);
   }
 
   if (!options.static_lib && stable_id_file_path) {
diff --git a/tools/aapt2/readme.md b/tools/aapt2/readme.md
index 44d22c4..8bc4e8c 100644
--- a/tools/aapt2/readme.md
+++ b/tools/aapt2/readme.md
@@ -1,5 +1,9 @@
 # Android Asset Packaging Tool 2.0 (AAPT2) release notes
 
+## Version 2.7
+### `aapt2 compile`
+- Fixes bug where psuedolocalization auto-translated strings marked 'translateable="false"'.
+
 ## Version 2.6
 ### `aapt2`
 - Support legacy `configVarying` resource type.
diff --git a/tools/aapt2/split/TableSplitter.cpp b/tools/aapt2/split/TableSplitter.cpp
index 38cfd2e..27e13d8 100644
--- a/tools/aapt2/split/TableSplitter.cpp
+++ b/tools/aapt2/split/TableSplitter.cpp
@@ -19,6 +19,7 @@
 #include <algorithm>
 #include <map>
 #include <set>
+#include <unordered_set>
 #include <unordered_map>
 #include <vector>
 
@@ -124,29 +125,35 @@
  * leaving only the preferred density behind.
  */
 static void MarkNonPreferredDensitiesAsClaimed(
-    uint16_t preferred_density, const ConfigDensityGroups& density_groups,
+    const std::vector<uint16_t>& preferred_densities, const ConfigDensityGroups& density_groups,
     ConfigClaimedMap* config_claimed_map) {
   for (auto& entry : density_groups) {
     const ConfigDescription& config = entry.first;
     const std::vector<ResourceConfigValue*>& related_values = entry.second;
 
-    ConfigDescription target_density = config;
-    target_density.density = preferred_density;
-    ResourceConfigValue* best_value = nullptr;
+    // There can be multiple best values if there are multiple preferred densities.
+    std::unordered_set<ResourceConfigValue*> best_values;
+
+    // For each preferred density, find the value that is the best.
+    for (uint16_t preferred_density : preferred_densities) {
+      ConfigDescription target_density = config;
+      target_density.density = preferred_density;
+      ResourceConfigValue* best_value = nullptr;
+      for (ResourceConfigValue* this_value : related_values) {
+        if (!best_value || this_value->config.isBetterThan(best_value->config, &target_density)) {
+          best_value = this_value;
+        }
+      }
+      CHECK(best_value != nullptr);
+      best_values.insert(best_value);
+    }
+
+    // Claim all the values that aren't the best so that they will be removed from the base.
     for (ResourceConfigValue* this_value : related_values) {
-      if (!best_value) {
-        best_value = this_value;
-      } else if (this_value->config.isBetterThan(best_value->config,
-                                                 &target_density)) {
-        // Claim the previous value so that it is not included in the base.
-        (*config_claimed_map)[best_value] = true;
-        best_value = this_value;
-      } else {
-        // Claim this value so that it is not included in the base.
+      if (best_values.find(this_value) == best_values.end()) {
         (*config_claimed_map)[this_value] = true;
       }
     }
-    CHECK(best_value != nullptr);
   }
 }
 bool TableSplitter::VerifySplitConstraints(IAaptContext* context) {
@@ -263,8 +270,8 @@
           }
         }
 
-        if (options_.preferred_density) {
-          MarkNonPreferredDensitiesAsClaimed(options_.preferred_density.value(),
+        if (!options_.preferred_densities.empty()) {
+          MarkNonPreferredDensitiesAsClaimed(options_.preferred_densities,
                                              density_groups,
                                              &config_claimed_map);
         }
diff --git a/tools/aapt2/split/TableSplitter.h b/tools/aapt2/split/TableSplitter.h
index 1ae3271..6aec257 100644
--- a/tools/aapt2/split/TableSplitter.h
+++ b/tools/aapt2/split/TableSplitter.h
@@ -34,14 +34,14 @@
 
 struct TableSplitterOptions {
   /**
-   * The preferred density to keep in the table, stripping out all others.
+   * The preferred densities to keep in the table, stripping out all others.
+   * If empty, no stripping is done.
    */
-  Maybe<uint16_t> preferred_density;
+  std::vector<uint16_t> preferred_densities;
 
   /**
    * Configuration filter that determines which resource configuration values
-   * end up in
-   * the final table.
+   * end up in the final table.
    */
   IConfigFilter* config_filter = nullptr;
 };
diff --git a/tools/aapt2/split/TableSplitter_test.cpp b/tools/aapt2/split/TableSplitter_test.cpp
index 088dac3..d52f4b44 100644
--- a/tools/aapt2/split/TableSplitter_test.cpp
+++ b/tools/aapt2/split/TableSplitter_test.cpp
@@ -39,7 +39,7 @@
           .Build();
 
   TableSplitterOptions options;
-  options.preferred_density = ConfigDescription::DENSITY_XHIGH;
+  options.preferred_densities.push_back(ConfigDescription::DENSITY_XHIGH);
   TableSplitter splitter({}, options);
   splitter.SplitTable(table.get());
 
@@ -58,6 +58,51 @@
   EXPECT_NE(nullptr, test::GetValue<Id>(table.get(), "android:string/one"));
 }
 
+TEST(TableSplitterTest, NoSplitMultiplePreferredDensities) {
+  std::unique_ptr<ResourceTable> table =
+      test::ResourceTableBuilder()
+          .AddFileReference("android:drawable/icon",
+                            "res/drawable-mdpi/icon.png",
+                            test::ParseConfigOrDie("mdpi"))
+          .AddFileReference("android:drawable/icon",
+                            "res/drawable-hdpi/icon.png",
+                            test::ParseConfigOrDie("hdpi"))
+          .AddFileReference("android:drawable/icon",
+                            "res/drawable-xhdpi/icon.png",
+                            test::ParseConfigOrDie("xhdpi"))
+          .AddFileReference("android:drawable/icon",
+                            "res/drawable-xxhdpi/icon.png",
+                            test::ParseConfigOrDie("xxhdpi"))
+          .AddSimple("android:string/one")
+          .Build();
+
+  TableSplitterOptions options;
+  options.preferred_densities.push_back(ConfigDescription::DENSITY_LOW);
+  options.preferred_densities.push_back(ConfigDescription::DENSITY_XXXHIGH);
+  TableSplitter splitter({}, options);
+  splitter.SplitTable(table.get());
+
+  // Densities remaining:
+  // "mdpi" is the closest available density for the requested "ldpi" density.
+  EXPECT_NE(nullptr, test::GetValueForConfig<FileReference>(
+                         table.get(), "android:drawable/icon",
+                         test::ParseConfigOrDie("mdpi")));
+  // "xxhdpi" is the closest available density for the requested "xxxhdpi" density.
+  EXPECT_NE(nullptr, test::GetValueForConfig<FileReference>(
+                         table.get(), "android:drawable/icon",
+                         test::ParseConfigOrDie("xxhdpi")));
+  EXPECT_NE(nullptr, test::GetValue<Id>(table.get(), "android:string/one"));
+
+  // Removed densities:
+  EXPECT_EQ(nullptr, test::GetValueForConfig<FileReference>(
+                         table.get(), "android:drawable/icon",
+                         test::ParseConfigOrDie("hdpi")));
+  EXPECT_EQ(nullptr, test::GetValueForConfig<FileReference>(
+                         table.get(), "android:drawable/icon",
+                         test::ParseConfigOrDie("xhdpi")));
+}
+
+
 TEST(TableSplitterTest, SplitTableByDensity) {
   std::unique_ptr<ResourceTable> table =
       test::ResourceTableBuilder()
diff --git a/tools/aapt2/strip/Strip.cpp b/tools/aapt2/strip/Strip.cpp
index c34cfbf3..7260649 100644
--- a/tools/aapt2/strip/Strip.cpp
+++ b/tools/aapt2/strip/Strip.cpp
@@ -79,18 +79,13 @@
       context_->GetDiagnostics()->Note(DiagMessage() << "Stripping APK...");
     }
 
-    // TODO(lecesne): Add support for more than one density.
-    if (options_.target_configs.size() > 1) {
-      context_->GetDiagnostics()->Error(DiagMessage()
-                                        << "Multiple densities not supported at the moment");
-      return 1;
-    }
-
     // Stripping the APK using the TableSplitter with no splits and the target
-    // density as the preferred density. The resource table is modified in
+    // densities as the preferred densities. The resource table is modified in
     // place in the LoadedApk.
     TableSplitterOptions splitter_options;
-    splitter_options.preferred_density = options_.target_configs[0].density;
+    for (auto& config : options_.target_configs) {
+      splitter_options.preferred_densities.push_back(config.density);
+    }
     std::vector<SplitConstraints> splits;
     TableSplitter splitter(splits, splitter_options);
     splitter.SplitTable(apk->GetResourceTable());
diff --git a/tools/bit/main.cpp b/tools/bit/main.cpp
index 868d90a..d056ba5 100644
--- a/tools/bit/main.cpp
+++ b/tools/bit/main.cpp
@@ -455,6 +455,7 @@
                 fprintf(stderr, "Test / activity supplied without a module to build: %s\n",
                         arg.c_str());
                 print_usage(stderr);
+                delete target;
                 exit(1);
             } else if (colonPos == string::npos) {
                 target->name = arg;
diff --git a/tools/layoutlib/bridge/src/android/app/SystemServiceRegistry_Accessor.java b/tools/layoutlib/bridge/src/android/app/SystemServiceRegistry_Accessor.java
new file mode 100644
index 0000000..591aee0
--- /dev/null
+++ b/tools/layoutlib/bridge/src/android/app/SystemServiceRegistry_Accessor.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2017 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;
+
+/**
+ * Class to allow accessing {@link SystemServiceRegistry#getSystemServiceName}
+ */
+public class SystemServiceRegistry_Accessor {
+    /**
+     * Gets the name of the system-level service that is represented by the specified class.
+     */
+    public static String getSystemServiceName(Class<?> serviceClass) {
+        return SystemServiceRegistry.getSystemServiceName(serviceClass);
+    }
+}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
index c9b04dc..16bf724 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
@@ -41,6 +41,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.Notification;
+import android.app.SystemServiceRegistry_Accessor;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -631,31 +632,7 @@
 
     @Override
     public String getSystemServiceName(Class<?> serviceClass) {
-        if (serviceClass.equals(LayoutInflater.class)) {
-            return LAYOUT_INFLATER_SERVICE;
-        }
-
-        if (serviceClass.equals(TextServicesManager.class)) {
-            return TEXT_SERVICES_MANAGER_SERVICE;
-        }
-
-        if (serviceClass.equals(WindowManager.class)) {
-            return WINDOW_SERVICE;
-        }
-
-        if (serviceClass.equals(PowerManager.class)) {
-            return POWER_SERVICE;
-        }
-
-        if (serviceClass.equals(DisplayManager.class)) {
-            return DISPLAY_SERVICE;
-        }
-
-        if (serviceClass.equals(AccessibilityManager.class)) {
-            return ACCESSIBILITY_SERVICE;
-        }
-
-        throw new UnsupportedOperationException("Unsupported Service: " + serviceClass);
+        return SystemServiceRegistry_Accessor.getSystemServiceName(serviceClass);
     }
 
     @Override
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
index ab73a8b..4805ed1 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
@@ -135,7 +135,8 @@
     }
 
     @Override
-    public void setImeWindowStatus(IBinder arg0, int arg1, int arg2) throws RemoteException {
+    public void setImeWindowStatus(IBinder arg0, IBinder arg1, int arg2, int arg3)
+            throws RemoteException {
         // TODO Auto-generated method stub
     }
 
@@ -228,7 +229,8 @@
     @Override
     public InputBindResult startInputOrWindowGainedFocus(
             /* @InputMethodClient.StartInputReason */ int startInputReason,
-            IInputMethodClient client, IBinder windowToken, int controlFlags, int softInputMode,
+            IInputMethodClient client, IBinder windowToken, int controlFlags,
+            /* @android.view.WindowManager.LayoutParams.SoftInputModeFlags */ int softInputMode,
             int windowFlags, EditorInfo attribute, IInputContext inputContext,
             /* @InputConnectionInspector.MissingMethodFlags */ int missingMethodFlags)
             throws RemoteException {
@@ -248,4 +250,9 @@
         // TODO Auto-generated method stub
         return null;
     }
+
+    @Override
+    public void reportFullscreenMode(IBinder token, boolean fullscreen) {
+        // TODO Auto-generated method stub
+    }
 }
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/graphics/NopCanvas.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/graphics/NopCanvas.java
index 2b4661b..131aa17 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/graphics/NopCanvas.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/graphics/NopCanvas.java
@@ -31,14 +31,18 @@
  * Canvas implementation that does not do any rendering
  */
 public class NopCanvas extends Canvas {
+    private boolean mIsInitialized = false;
+
     public NopCanvas() {
         super();
+        mIsInitialized = true;
     }
 
     @Override
     public boolean isHardwareAccelerated() {
-        // Return true so there is no allocations for the software renderer in the constructor
-        return true;
+        // We return true the first time so there are no allocations for the software renderer in
+        // the constructor
+        return !mIsInitialized;
     }
 
     @Override
diff --git a/tools/layoutlib/bridge/tests/src/android/app/SystemServiceRegistry_AccessorTest.java b/tools/layoutlib/bridge/tests/src/android/app/SystemServiceRegistry_AccessorTest.java
new file mode 100644
index 0000000..4f1c16c
--- /dev/null
+++ b/tools/layoutlib/bridge/tests/src/android/app/SystemServiceRegistry_AccessorTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 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 org.junit.Test;
+
+import android.content.Context;
+import android.hardware.input.InputManager;
+import android.view.WindowManager;
+import android.view.accessibility.AccessibilityManager;
+
+import static org.junit.Assert.*;
+
+public class SystemServiceRegistry_AccessorTest {
+    @Test
+    public void testRegistry() {
+        // Just check a few services to make sure we don't break the accessor
+        assertEquals(Context.ACCESSIBILITY_SERVICE,
+                SystemServiceRegistry_Accessor.getSystemServiceName(AccessibilityManager.class));
+        assertEquals(Context.INPUT_SERVICE,
+                SystemServiceRegistry_Accessor.getSystemServiceName(InputManager.class));
+        assertEquals(Context.WINDOW_SERVICE,
+                SystemServiceRegistry_Accessor.getSystemServiceName(WindowManager.class));
+    }
+}
\ No newline at end of file
diff --git a/wifi/java/android/net/wifi/WifiNetworkScoreCache.java b/wifi/java/android/net/wifi/WifiNetworkScoreCache.java
index 04dea1b..f61dfdc 100755
--- a/wifi/java/android/net/wifi/WifiNetworkScoreCache.java
+++ b/wifi/java/android/net/wifi/WifiNetworkScoreCache.java
@@ -145,7 +145,7 @@
         if (network != null && network.rssiCurve != null) {
             score = network.rssiCurve.lookupScore(result.level);
             if (DBG) {
-                Log.e(TAG, "getNetworkScore found scored network " + network.networkKey
+                Log.d(TAG, "getNetworkScore found scored network " + network.networkKey
                         + " score " + Integer.toString(score)
                         + " RSSI " + result.level);
             }
@@ -171,7 +171,7 @@
         if (network != null && network.rssiCurve != null) {
             score = network.rssiCurve.lookupScore(result.level, isActiveNetwork);
             if (DBG) {
-                Log.e(TAG, "getNetworkScore found scored network " + network.networkKey
+                Log.d(TAG, "getNetworkScore found scored network " + network.networkKey
                         + " score " + Integer.toString(score)
                         + " RSSI " + result.level
                         + " isActiveNetwork " + isActiveNetwork);