Merge "Minor cleanup." into main
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index dc39bea..f5b9b17 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -251,6 +251,7 @@
field public static final String OBSERVE_SENSOR_PRIVACY = "android.permission.OBSERVE_SENSOR_PRIVACY";
field public static final String OPEN_ACCESSIBILITY_DETAILS_SETTINGS = "android.permission.OPEN_ACCESSIBILITY_DETAILS_SETTINGS";
field public static final String OVERRIDE_COMPAT_CHANGE_CONFIG_ON_RELEASE_BUILD = "android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG_ON_RELEASE_BUILD";
+ field @FlaggedApi("com.android.input.flags.override_key_behavior_permission_apis") public static final String OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW = "android.permission.OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW";
field public static final String PACKAGE_VERIFICATION_AGENT = "android.permission.PACKAGE_VERIFICATION_AGENT";
field public static final String PACKET_KEEPALIVE_OFFLOAD = "android.permission.PACKET_KEEPALIVE_OFFLOAD";
field public static final String PEERS_MAC_ADDRESS = "android.permission.PEERS_MAC_ADDRESS";
@@ -13040,6 +13041,7 @@
method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) public final android.service.voice.HotwordDetector createHotwordDetector(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, @NonNull java.util.concurrent.Executor, @NonNull android.service.voice.HotwordDetector.Callback);
method @NonNull @RequiresPermission("android.permission.MANAGE_VOICE_KEYPHRASES") public final android.media.voice.KeyphraseModelManager createKeyphraseModelManager();
method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) public final android.service.voice.VisualQueryDetector createVisualQueryDetector(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, @NonNull java.util.concurrent.Executor, @NonNull android.service.voice.VisualQueryDetector.Callback);
+ method @FlaggedApi("android.service.voice.flags.allow_training_data_egress_from_hds") @RequiresPermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) public void setIsReceiveSandboxedTrainingDataAllowed(boolean);
}
}
diff --git a/core/java/android/app/KeyguardManager.java b/core/java/android/app/KeyguardManager.java
index 6aad168..8b8576a 100644
--- a/core/java/android/app/KeyguardManager.java
+++ b/core/java/android/app/KeyguardManager.java
@@ -683,10 +683,11 @@
* <p>
* Specifically, this returns {@code true} if at least one of the following is true:
* <ul>
- * <li>The {@link Context}'s user has a secure lock screen. A full user has a secure lock
- * screen if its lock screen is set to PIN, pattern, or password, as opposed to swipe or none.
- * A profile that uses a unified challenge is considered to have a secure lock screen if and
- * only if its parent user has a secure lock screen.</li>
+ * <li>The {@link Context}'s user has a secure lock screen. A full user or a profile that uses
+ * a separate challenge has a secure lock screen if its lock screen is set to PIN, pattern, or
+ * password, as opposed to swipe or none. A profile that uses a unified challenge is
+ * considered to have a secure lock screen if and only if its parent user has a secure lock
+ * screen.</li>
* <li>At least one SIM card is currently locked and requires a PIN.</li>
* </ul>
* <p>
@@ -733,8 +734,15 @@
* <p>
* For a user that is not the current user but can be switched to (usually this means "another
* full user"), and that has a PIN, pattern, or password, the device is always considered
- * locked. For a profile with a unified challenge, the device is considered locked if and only
- * if the device is locked for the parent user.
+ * locked.
+ * <p>
+ * For a profile with a unified challenge, the device locked state is the same as that of the
+ * parent user.
+ * <p>
+ * For a profile with a separate challenge, the device becomes unlocked when the profile's PIN,
+ * pattern, password, or biometric is verified. It becomes locked when the parent user becomes
+ * locked, the screen turns off, the device reboots, the device policy controller locks the
+ * profile, or the timeout set by the device policy controller expires.
*
* @return {@code true} if the device is currently locked for the user
* @see #isKeyguardLocked()
@@ -770,9 +778,10 @@
* Returns whether the user has a secure lock screen.
* <p>
* This returns {@code true} if the {@link Context}'s user has a secure lock screen. A full user
- * has a secure lock screen if its lock screen is set to PIN, pattern, or password, as opposed
- * to swipe or none. A profile that uses a unified challenge is considered to have a secure lock
- * screen if and only if its parent user has a secure lock screen.
+ * or a profile that uses a separate challenge has a secure lock screen if its lock screen is
+ * set to PIN, pattern, or password, as opposed to swipe or none. A profile that uses a unified
+ * challenge is considered to have a secure lock screen if and only if its parent user has a
+ * secure lock screen.
* <p>
* This method does not consider whether the lock screen is currently showing or not.
* <p>
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index c003540..013bcdd 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -9209,12 +9209,6 @@
* You can opt-out of this behavior by using {@link Notification.Builder#setColorized(boolean)}.
* <p>
*
- * <p>
- * Starting at {@link android.os.Build.VERSION_CODES#VANILLA_ICE_CREAM Android V} the
- * {@link Notification#FLAG_NO_CLEAR NO_CLEAR flag} will be set for valid MediaStyle
- * notifications.
- * <p>
- *
* To use this style with your Notification, feed it to
* {@link Notification.Builder#setStyle(android.app.Notification.Style)} like so:
* <pre class="prettyprint">
diff --git a/core/java/android/os/OWNERS b/core/java/android/os/OWNERS
index 655debc..209a595 100644
--- a/core/java/android/os/OWNERS
+++ b/core/java/android/os/OWNERS
@@ -90,4 +90,5 @@
# IThermal interfaces
per-file IThermal* = file:/THERMAL_OWNERS
-
+per-file CoolingDevice.java = file:/THERMAL_OWNERS
+per-file Temperature.java = file:/THERMAL_OWNERS
diff --git a/core/java/android/service/voice/VoiceInteractionService.java b/core/java/android/service/voice/VoiceInteractionService.java
index c716cd2..fba0923 100644
--- a/core/java/android/service/voice/VoiceInteractionService.java
+++ b/core/java/android/service/voice/VoiceInteractionService.java
@@ -1024,21 +1024,31 @@
}
}
- /** Set sandboxed detection training data egress op.
+ /**
+ * Allow/disallow receiving training data from trusted process.
*
- * <p> This method can be called by a preinstalled assistant to allow/disallow training data
- * egress from trusted process.
+ * <p> This method can be called by a preinstalled assistant to receive/stop receiving
+ * training data via {@link HotwordDetector.Callback#onTrainingData(HotwordTrainingData)}.
+ * These training data events are produced during sandboxed detection (in trusted process).
*
- * @return whether was able to update sandboxed detection op successfully.
- * @throws SecurityException if assistant is not a preinstalled assistant.
+ * @param allowed whether to allow/disallow receiving training data produced during
+ * sandboxed detection (from trusted process).
+ * @throws SecurityException if caller is not a preinstalled assistant or if caller is not the
+ * active assistant.
*
* @hide
*/
+ //TODO(b/315053245): Add mitigations to make API no-op once user has modified setting.
+ @SystemApi
@FlaggedApi(Flags.FLAG_ALLOW_TRAINING_DATA_EGRESS_FROM_HDS)
- public boolean setSandboxedDetectionTrainingDataOp(int opMode) {
- Log.i(TAG, "Setting training data egress op-mode to " + opMode);
+ @RequiresPermission(Manifest.permission.MANAGE_HOTWORD_DETECTION)
+ public void setIsReceiveSandboxedTrainingDataAllowed(boolean allowed) {
+ Log.i(TAG, "setIsReceiveSandboxedTrainingDataAllowed to " + allowed);
+ if (mSystemService == null) {
+ throw new IllegalStateException("Not available until onReady() is called");
+ }
try {
- return mSystemService.setSandboxedDetectionTrainingDataOp(opMode);
+ mSystemService.setIsReceiveSandboxedTrainingDataAllowed(allowed);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/util/DayOfMonthCursor.java b/core/java/android/util/DayOfMonthCursor.java
index 393b98e..ac5dc3a 100644
--- a/core/java/android/util/DayOfMonthCursor.java
+++ b/core/java/android/util/DayOfMonthCursor.java
@@ -32,6 +32,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DayOfMonthCursor extends MonthDisplayHelper {
private int mRow;
diff --git a/core/java/android/util/DumpableContainer.java b/core/java/android/util/DumpableContainer.java
index fef5acd..24640c9 100644
--- a/core/java/android/util/DumpableContainer.java
+++ b/core/java/android/util/DumpableContainer.java
@@ -20,6 +20,7 @@
/**
* Represents a container that manages {@link Dumpable dumpables}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface DumpableContainer {
/**
diff --git a/core/java/android/util/KeyValueListParser.java b/core/java/android/util/KeyValueListParser.java
index fbc66e6..783b2d6 100644
--- a/core/java/android/util/KeyValueListParser.java
+++ b/core/java/android/util/KeyValueListParser.java
@@ -28,6 +28,7 @@
* can be used.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class KeyValueListParser {
private final ArrayMap<String, String> mValues = new ArrayMap<>();
private final TextUtils.StringSplitter mSplitter;
diff --git a/core/java/android/util/LongArrayQueue.java b/core/java/android/util/LongArrayQueue.java
index 354f8df..b9752fe 100644
--- a/core/java/android/util/LongArrayQueue.java
+++ b/core/java/android/util/LongArrayQueue.java
@@ -28,6 +28,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LongArrayQueue {
private long[] mValues;
diff --git a/core/java/android/util/LongSparseLongArray.java b/core/java/android/util/LongSparseLongArray.java
index d4a0126..86268fa 100644
--- a/core/java/android/util/LongSparseLongArray.java
+++ b/core/java/android/util/LongSparseLongArray.java
@@ -46,6 +46,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LongSparseLongArray implements Cloneable {
@UnsupportedAppUsage(maxTargetSdk = 28) // The type isn't even public.
private long[] mKeys;
diff --git a/core/java/android/util/MonthDisplayHelper.java b/core/java/android/util/MonthDisplayHelper.java
index c3f13fc..3bd292b 100644
--- a/core/java/android/util/MonthDisplayHelper.java
+++ b/core/java/android/util/MonthDisplayHelper.java
@@ -24,6 +24,7 @@
*
* Not thread safe.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MonthDisplayHelper {
// display pref
diff --git a/core/java/android/util/RecurrenceRule.java b/core/java/android/util/RecurrenceRule.java
index 39d1f2c..dc470d7 100644
--- a/core/java/android/util/RecurrenceRule.java
+++ b/core/java/android/util/RecurrenceRule.java
@@ -42,6 +42,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RecurrenceRule implements Parcelable {
private static final String TAG = "RecurrenceRule";
private static final boolean LOGD = Log.isLoggable(TAG, Log.DEBUG);
diff --git a/core/java/android/util/RotationUtils.java b/core/java/android/util/RotationUtils.java
index f20767b..07ab996 100644
--- a/core/java/android/util/RotationUtils.java
+++ b/core/java/android/util/RotationUtils.java
@@ -36,6 +36,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RotationUtils {
/**
diff --git a/core/java/android/util/SparseDoubleArray.java b/core/java/android/util/SparseDoubleArray.java
index 4b0cbe4..8a0b11e 100644
--- a/core/java/android/util/SparseDoubleArray.java
+++ b/core/java/android/util/SparseDoubleArray.java
@@ -41,6 +41,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SparseDoubleArray implements Cloneable {
/**
* The int->double map, but storing the doubles as longs using
diff --git a/core/java/android/util/SparseSetArray.java b/core/java/android/util/SparseSetArray.java
index 61f29a4..80f6a4a08 100644
--- a/core/java/android/util/SparseSetArray.java
+++ b/core/java/android/util/SparseSetArray.java
@@ -22,6 +22,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SparseSetArray<T> {
private final SparseArray<ArraySet<T>> mData;
diff --git a/core/java/android/util/StateSet.java b/core/java/android/util/StateSet.java
index 4bbc0f8..16d6082 100644
--- a/core/java/android/util/StateSet.java
+++ b/core/java/android/util/StateSet.java
@@ -34,7 +34,6 @@
* and not have static methods here but there is some concern about
* performance since these methods are called during view drawing.
*/
-
public class StateSet {
/**
* The order here is very important to
diff --git a/core/java/android/util/Xml.java b/core/java/android/util/Xml.java
index 2a33caa..ec6e90b 100644
--- a/core/java/android/util/Xml.java
+++ b/core/java/android/util/Xml.java
@@ -334,6 +334,7 @@
*
* @hide
*/
+ @android.ravenwood.annotation.RavenwoodKeep
public static void copy(@NonNull XmlPullParser in, @NonNull XmlSerializer out)
throws XmlPullParserException, IOException {
// Some parsers may have already consumed the event that starts the
@@ -393,6 +394,7 @@
* unsupported, which can confuse serializers. This method normalizes empty
* strings to be {@code null}.
*/
+ @android.ravenwood.annotation.RavenwoodKeep
private static @Nullable String normalizeNamespace(@Nullable String namespace) {
if (namespace == null || namespace.isEmpty()) {
return null;
diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java
index 3dbe65e..a38092a 100644
--- a/core/java/android/view/accessibility/AccessibilityManager.java
+++ b/core/java/android/view/accessibility/AccessibilityManager.java
@@ -185,16 +185,31 @@
/**
* Annotations for the shortcut type.
+ * <p>Note: Keep in sync with {@link #SHORTCUT_TYPES}.</p>
* @hide
*/
@Retention(RetentionPolicy.SOURCE)
@IntDef(value = {
+ // LINT.IfChange(shortcut_type_intdef)
ACCESSIBILITY_BUTTON,
ACCESSIBILITY_SHORTCUT_KEY
+ // LINT.ThenChange(:shortcut_type_array)
})
public @interface ShortcutType {}
/**
+ * Used for iterating through {@link ShortcutType}.
+ * <p>Note: Keep in sync with {@link ShortcutType}.</p>
+ * @hide
+ */
+ public static final int[] SHORTCUT_TYPES = {
+ // LINT.IfChange(shortcut_type_array)
+ ACCESSIBILITY_BUTTON,
+ ACCESSIBILITY_SHORTCUT_KEY,
+ // LINT.ThenChange(:shortcut_type_intdef)
+ };
+
+ /**
* Annotations for content flag of UI.
* @hide
*/
@@ -914,6 +929,28 @@
}
/**
+ * Returns whether the user must be shown the AccessibilityService warning dialog
+ * before the AccessibilityService (or any shortcut for the service) can be enabled.
+ * @hide
+ */
+ @RequiresPermission(Manifest.permission.MANAGE_ACCESSIBILITY)
+ public boolean isAccessibilityServiceWarningRequired(@NonNull AccessibilityServiceInfo info) {
+ final IAccessibilityManager service;
+ synchronized (mLock) {
+ service = getServiceLocked();
+ if (service == null) {
+ return true;
+ }
+ }
+ try {
+ return service.isAccessibilityServiceWarningRequired(info);
+ } catch (RemoteException re) {
+ Log.e(LOG_TAG, "Error while checking isAccessibilityServiceWarningRequired: ", re);
+ return true;
+ }
+ }
+
+ /**
* Registers an {@link AccessibilityStateChangeListener} for changes in
* the global accessibility state of the system. Equivalent to calling
* {@link #addAccessibilityStateChangeListener(AccessibilityStateChangeListener, Handler)}
diff --git a/core/java/android/view/accessibility/IAccessibilityManager.aidl b/core/java/android/view/accessibility/IAccessibilityManager.aidl
index f741080..9c04c27 100644
--- a/core/java/android/view/accessibility/IAccessibilityManager.aidl
+++ b/core/java/android/view/accessibility/IAccessibilityManager.aidl
@@ -128,6 +128,9 @@
boolean isAccessibilityTargetAllowed(String packageName, int uid, int userId);
boolean sendRestrictedDialogIntent(String packageName, int uid, int userId);
+ @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
+ boolean isAccessibilityServiceWarningRequired(in AccessibilityServiceInfo info);
+
parcelable WindowTransformationSpec {
float[] transformationMatrix;
MagnificationSpec magnificationSpec;
diff --git a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
index b299678..7ab5446 100644
--- a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
+++ b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
@@ -10,6 +10,13 @@
}
flag {
+ name: "a11y_qs_shortcut"
+ namespace: "accessibility"
+ description: "Add Quick Setting as one of the a11y shortcut options"
+ bug: "297554934"
+}
+
+flag {
namespace: "accessibility"
name: "allow_shortcut_chooser_on_lockscreen"
description: "Allows the a11y shortcut disambig dialog to appear on the lockscreen"
@@ -17,6 +24,13 @@
}
flag {
+ name: "cleanup_accessibility_warning_dialog"
+ namespace: "accessibility"
+ description: "Cleans up duplicated or broken logic surrounding the accessibility warning dialog."
+ bug: "303511250"
+}
+
+flag {
namespace: "accessibility"
name: "collection_info_item_counts"
description: "Fields for total items and the number of important for accessibility items in a collection"
@@ -24,13 +38,6 @@
}
flag {
- name: "deduplicate_accessibility_warning_dialog"
- namespace: "accessibility"
- description: "Removes duplicate definition of the accessibility warning dialog."
- bug: "303511250"
-}
-
-flag {
namespace: "accessibility"
name: "flash_notification_system_api"
description: "Makes flash notification APIs as system APIs for calling from mainline module"
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
index d4eccd4..7d06e3f 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
@@ -37,6 +37,7 @@
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
+import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.Flags;
import android.widget.AdapterView;
@@ -114,18 +115,39 @@
private void onTargetChecked(AdapterView<?> parent, View view, int position, long id) {
final AccessibilityTarget target = mTargets.get(position);
- if (!target.isShortcutEnabled()) {
- if (target instanceof AccessibilityServiceTarget
- || target instanceof AccessibilityActivityTarget) {
+ if (Flags.cleanupAccessibilityWarningDialog()) {
+ if (target instanceof AccessibilityServiceTarget serviceTarget) {
if (sendRestrictedDialogIntentIfNeeded(target)) {
return;
}
+ final AccessibilityManager am = getSystemService(AccessibilityManager.class);
+ if (am.isAccessibilityServiceWarningRequired(
+ serviceTarget.getAccessibilityServiceInfo())) {
+ showPermissionDialogIfNeeded(this, (AccessibilityServiceTarget) target,
+ position, mTargetAdapter);
+ return;
+ }
}
+ if (target instanceof AccessibilityActivityTarget activityTarget) {
+ if (!activityTarget.isShortcutEnabled()
+ && sendRestrictedDialogIntentIfNeeded(activityTarget)) {
+ return;
+ }
+ }
+ } else {
+ if (!target.isShortcutEnabled()) {
+ if (target instanceof AccessibilityServiceTarget
+ || target instanceof AccessibilityActivityTarget) {
+ if (sendRestrictedDialogIntentIfNeeded(target)) {
+ return;
+ }
+ }
- if (target instanceof AccessibilityServiceTarget) {
- showPermissionDialogIfNeeded(this, (AccessibilityServiceTarget) target,
- position, mTargetAdapter);
- return;
+ if (target instanceof AccessibilityServiceTarget) {
+ showPermissionDialogIfNeeded(this, (AccessibilityServiceTarget) target,
+ position, mTargetAdapter);
+ return;
+ }
}
}
@@ -156,7 +178,7 @@
return;
}
- if (Flags.deduplicateAccessibilityWarningDialog()) {
+ if (Flags.cleanupAccessibilityWarningDialog()) {
mPermissionDialog = AccessibilityServiceWarning
.createAccessibilityServiceWarningDialog(context,
serviceTarget.getAccessibilityServiceInfo(),
diff --git a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
index ea4fc39..82ee8fc 100644
--- a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
+++ b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
@@ -390,12 +390,12 @@
int type);
/**
- * Sets the sandboxed detection training data egress op to provided op-mode.
+ * Allows/disallows receiving training data from trusted process.
* Caller must be the active assistant and a preinstalled assistant.
*
- * @param opMode app-op mode to set training data egress op to.
- *
- * @return whether was able to successfully set training data egress op.
+ * @param allowed whether to allow/disallow receiving training data produced during
+ * sandboxed detection (from trusted process).
*/
- boolean setSandboxedDetectionTrainingDataOp(int opMode);
+ @EnforcePermission("MANAGE_HOTWORD_DETECTION")
+ void setIsReceiveSandboxedTrainingDataAllowed(boolean allowed);
}
diff --git a/core/java/com/android/internal/os/SomeArgs.java b/core/java/com/android/internal/os/SomeArgs.java
index b12df6e..4701af3 100644
--- a/core/java/com/android/internal/os/SomeArgs.java
+++ b/core/java/com/android/internal/os/SomeArgs.java
@@ -26,6 +26,7 @@
* it is responsibility of the client to recycle and instance
* once it is no longer used.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class SomeArgs {
private static final int MAX_POOL_SIZE = 10;
diff --git a/core/java/com/android/internal/policy/KeyInterceptionInfo.java b/core/java/com/android/internal/policy/KeyInterceptionInfo.java
index 964be01..b20f6d2 100644
--- a/core/java/com/android/internal/policy/KeyInterceptionInfo.java
+++ b/core/java/com/android/internal/policy/KeyInterceptionInfo.java
@@ -26,10 +26,12 @@
public final int layoutParamsPrivateFlags;
// Debug friendly name to help identify the window
public final String windowTitle;
+ public final int windowOwnerUid;
- public KeyInterceptionInfo(int type, int flags, String title) {
+ public KeyInterceptionInfo(int type, int flags, String title, int uid) {
layoutParamsType = type;
layoutParamsPrivateFlags = flags;
windowTitle = title;
+ windowOwnerUid = uid;
}
}
diff --git a/core/java/com/android/internal/util/BitUtils.java b/core/java/com/android/internal/util/BitUtils.java
index 154ea52..d928bbc 100644
--- a/core/java/com/android/internal/util/BitUtils.java
+++ b/core/java/com/android/internal/util/BitUtils.java
@@ -31,6 +31,7 @@
* sugar methods for {@link ByteBuffer}. Useful for networking and packet manipulations.
* {@hide}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class BitUtils {
private BitUtils() {}
diff --git a/core/java/com/android/internal/util/BitwiseInputStream.java b/core/java/com/android/internal/util/BitwiseInputStream.java
index ffae3ce..91f89f3 100644
--- a/core/java/com/android/internal/util/BitwiseInputStream.java
+++ b/core/java/com/android/internal/util/BitwiseInputStream.java
@@ -26,6 +26,7 @@
*
* NOTE -- This class is not threadsafe.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BitwiseInputStream {
// The byte array being read from.
diff --git a/core/java/com/android/internal/util/BitwiseOutputStream.java b/core/java/com/android/internal/util/BitwiseOutputStream.java
index 9f41508..9b7568b 100644
--- a/core/java/com/android/internal/util/BitwiseOutputStream.java
+++ b/core/java/com/android/internal/util/BitwiseOutputStream.java
@@ -26,6 +26,7 @@
*
* NOTE -- This class is not threadsafe.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BitwiseOutputStream {
// The byte array being written to, which will be grown as needed.
diff --git a/core/java/com/android/internal/util/CallbackRegistry.java b/core/java/com/android/internal/util/CallbackRegistry.java
index 0f228d4..0ae8e1d 100644
--- a/core/java/com/android/internal/util/CallbackRegistry.java
+++ b/core/java/com/android/internal/util/CallbackRegistry.java
@@ -39,6 +39,7 @@
* @param <T> The notification sender type. Typically this is the containing class.
* @param <A> Opaque argument used to pass additional data beyond an int.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class CallbackRegistry<C, T, A> implements Cloneable {
private static final String TAG = "CallbackRegistry";
diff --git a/core/java/com/android/internal/util/DumpUtils.java b/core/java/com/android/internal/util/DumpUtils.java
index 8fe2b9c..d1ff034 100644
--- a/core/java/com/android/internal/util/DumpUtils.java
+++ b/core/java/com/android/internal/util/DumpUtils.java
@@ -37,6 +37,7 @@
* Test:
atest FrameworksCoreTests:DumpUtilsTest
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class DumpUtils {
/**
@@ -92,6 +93,8 @@
* @return true if access should be granted.
* @hide
*/
+ @android.ravenwood.annotation.RavenwoodThrow(
+ blockedBy = android.permission.PermissionManager.class)
public static boolean checkDumpPermission(Context context, String tag, PrintWriter pw) {
if (context.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
!= PackageManager.PERMISSION_GRANTED) {
@@ -112,6 +115,8 @@
* @return true if access should be granted.
* @hide
*/
+ @android.ravenwood.annotation.RavenwoodThrow(
+ blockedBy = android.permission.PermissionManager.class)
public static boolean checkUsageStatsPermission(Context context, String tag, PrintWriter pw) {
// System internals always get access
final int uid = Binder.getCallingUid();
@@ -166,6 +171,8 @@
* @return true if access should be granted.
* @hide
*/
+ @android.ravenwood.annotation.RavenwoodThrow(
+ blockedBy = android.permission.PermissionManager.class)
public static boolean checkDumpAndUsageStatsPermission(Context context, String tag,
PrintWriter pw) {
return checkDumpPermission(context, tag, pw) && checkUsageStatsPermission(context, tag, pw);
diff --git a/core/java/com/android/internal/util/FastMath.java b/core/java/com/android/internal/util/FastMath.java
index b7dbee5..6e8fef28 100644
--- a/core/java/com/android/internal/util/FastMath.java
+++ b/core/java/com/android/internal/util/FastMath.java
@@ -21,6 +21,7 @@
/**
* Fast and loose math routines.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class FastMath {
/**
diff --git a/core/java/com/android/internal/util/FastPrintWriter.java b/core/java/com/android/internal/util/FastPrintWriter.java
index 63124de..fcd6df0 100644
--- a/core/java/com/android/internal/util/FastPrintWriter.java
+++ b/core/java/com/android/internal/util/FastPrintWriter.java
@@ -32,6 +32,7 @@
import java.nio.charset.CoderResult;
import java.nio.charset.CodingErrorAction;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class FastPrintWriter extends PrintWriter {
private static class DummyWriter extends Writer {
@Override
diff --git a/core/java/com/android/internal/util/GrowingArrayUtils.java b/core/java/com/android/internal/util/GrowingArrayUtils.java
index 8c12e36..83d06d1 100644
--- a/core/java/com/android/internal/util/GrowingArrayUtils.java
+++ b/core/java/com/android/internal/util/GrowingArrayUtils.java
@@ -29,6 +29,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class GrowingArrayUtils {
/**
diff --git a/core/java/com/android/internal/util/HeavyHitterSketch.java b/core/java/com/android/internal/util/HeavyHitterSketch.java
index e18acaf..2973d30 100644
--- a/core/java/com/android/internal/util/HeavyHitterSketch.java
+++ b/core/java/com/android/internal/util/HeavyHitterSketch.java
@@ -35,6 +35,7 @@
* <p>
* {@hide}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface HeavyHitterSketch<T> {
/**
* Return the default implementation.
diff --git a/core/java/com/android/internal/util/LineBreakBufferedWriter.java b/core/java/com/android/internal/util/LineBreakBufferedWriter.java
index 552a93f..8393b22 100644
--- a/core/java/com/android/internal/util/LineBreakBufferedWriter.java
+++ b/core/java/com/android/internal/util/LineBreakBufferedWriter.java
@@ -27,6 +27,7 @@
*
* Note: this class is not thread-safe.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LineBreakBufferedWriter extends PrintWriter {
/**
diff --git a/core/java/com/android/internal/util/ObjectUtils.java b/core/java/com/android/internal/util/ObjectUtils.java
index 0e7b93d..292ee14 100644
--- a/core/java/com/android/internal/util/ObjectUtils.java
+++ b/core/java/com/android/internal/util/ObjectUtils.java
@@ -22,6 +22,7 @@
import java.util.Objects;
/** @hide */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ObjectUtils {
private ObjectUtils() {}
diff --git a/core/java/com/android/internal/util/Parcelling.java b/core/java/com/android/internal/util/Parcelling.java
index 3147c34..70c3869 100644
--- a/core/java/com/android/internal/util/Parcelling.java
+++ b/core/java/com/android/internal/util/Parcelling.java
@@ -38,6 +38,7 @@
*
* @param <T> the type being [un]parcelled
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface Parcelling<T> {
/**
diff --git a/core/java/com/android/internal/util/ParseUtils.java b/core/java/com/android/internal/util/ParseUtils.java
index a591f4a..a16ce2b 100644
--- a/core/java/com/android/internal/util/ParseUtils.java
+++ b/core/java/com/android/internal/util/ParseUtils.java
@@ -23,6 +23,7 @@
* Test:
atest /android/pi-dev/frameworks/base/core/tests/coretests/src/com/android/internal/util/ParseUtilsTest.java
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class ParseUtils {
private ParseUtils() {
}
diff --git a/core/java/com/android/internal/util/ProcFileReader.java b/core/java/com/android/internal/util/ProcFileReader.java
index b726d5d..6cf241e 100644
--- a/core/java/com/android/internal/util/ProcFileReader.java
+++ b/core/java/com/android/internal/util/ProcFileReader.java
@@ -32,6 +32,7 @@
* Currently doesn't support formats based on {@code \0}, tabs.
* Consecutive spaces are treated as a single delimiter.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ProcFileReader implements Closeable {
private final InputStream mStream;
private final byte[] mBuffer;
diff --git a/core/java/com/android/internal/util/ProgressReporter.java b/core/java/com/android/internal/util/ProgressReporter.java
index 7a8efba..5640d8f 100644
--- a/core/java/com/android/internal/util/ProgressReporter.java
+++ b/core/java/com/android/internal/util/ProgressReporter.java
@@ -25,6 +25,7 @@
import android.util.MathUtils;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
/**
* Tracks and reports progress of a single task to a {@link IProgressListener}.
@@ -175,7 +176,8 @@
}
}
- int getProgress() {
+ @VisibleForTesting
+ public int getProgress() {
return mProgress;
}
diff --git a/core/java/com/android/internal/util/QuickSelect.java b/core/java/com/android/internal/util/QuickSelect.java
index 17739c9..052efed 100644
--- a/core/java/com/android/internal/util/QuickSelect.java
+++ b/core/java/com/android/internal/util/QuickSelect.java
@@ -28,6 +28,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class QuickSelect {
private static <T> int selectImpl(@NonNull List<T> list, int left, int right, int k,
@NonNull Comparator<? super T> comparator) {
diff --git a/core/java/com/android/internal/util/RingBuffer.java b/core/java/com/android/internal/util/RingBuffer.java
index 8fc4c30..0488659 100644
--- a/core/java/com/android/internal/util/RingBuffer.java
+++ b/core/java/com/android/internal/util/RingBuffer.java
@@ -27,6 +27,7 @@
* full, oldest events are dropped when new events are added.
* {@hide}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RingBuffer<T> {
// Array for storing events.
diff --git a/core/java/com/android/internal/util/StringPool.java b/core/java/com/android/internal/util/StringPool.java
index c5180a3..94f6ec9 100644
--- a/core/java/com/android/internal/util/StringPool.java
+++ b/core/java/com/android/internal/util/StringPool.java
@@ -23,6 +23,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class StringPool {
private final String[] mPool = new String[512];
diff --git a/core/java/com/android/internal/util/dump/DumpableContainerImpl.java b/core/java/com/android/internal/util/dump/DumpableContainerImpl.java
index ccec6c6..bb5224f 100644
--- a/core/java/com/android/internal/util/dump/DumpableContainerImpl.java
+++ b/core/java/com/android/internal/util/dump/DumpableContainerImpl.java
@@ -32,6 +32,7 @@
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class DumpableContainerImpl implements DumpableContainer {
private static final String TAG = DumpableContainerImpl.class.getSimpleName();
diff --git a/core/java/com/google/android/collect/Lists.java b/core/java/com/google/android/collect/Lists.java
index 585847d..392b87e 100644
--- a/core/java/com/google/android/collect/Lists.java
+++ b/core/java/com/google/android/collect/Lists.java
@@ -25,6 +25,7 @@
* Provides static methods for creating {@code List} instances easily, and other
* utility methods for working with lists.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Lists {
/**
diff --git a/core/java/com/google/android/collect/Maps.java b/core/java/com/google/android/collect/Maps.java
index cd4c128..6492b03 100644
--- a/core/java/com/google/android/collect/Maps.java
+++ b/core/java/com/google/android/collect/Maps.java
@@ -24,6 +24,7 @@
/**
* Provides static methods for creating mutable {@code Maps} instances easily.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Maps {
/**
* Creates a {@code HashMap} instance.
diff --git a/core/java/com/google/android/collect/Sets.java b/core/java/com/google/android/collect/Sets.java
index e242915..76eaf21 100644
--- a/core/java/com/google/android/collect/Sets.java
+++ b/core/java/com/google/android/collect/Sets.java
@@ -31,6 +31,7 @@
* other static methods for working with Sets.
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Sets {
/**
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index c55b808..dd93586 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -7832,6 +7832,22 @@
<permission android:name="android.permission.PREPARE_FACTORY_RESET"
android:protectionLevel="signature|privileged" />
+ <!-- @SystemApi Allows focused window to override the default behavior of supported system keys.
+ The following keycodes are supported:
+ <p> KEYCODE_STEM_PRIMARY
+ <p>If an app is granted this permission and has a focused window, it will be allowed to
+ receive supported key events that are otherwise handled by the system. The app can choose
+ to consume the key events and trigger its own behavior, in which case the default key
+ behavior will be skipped.
+ <p>For example, KEYCODE_STEM_PRIMARY by default opens recent app launcher. If the foreground
+ fitness app is granted this permission, it can repurpose the KEYCODE_STEM_PRIMARY button
+ to pause/resume the current fitness session.
+ <p>Protection level: signature|privileged
+ @FlaggedApi("com.android.input.flags.override_key_behavior_permission_apis")
+ @hide -->
+ <permission android:name="android.permission.OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW"
+ android:protectionLevel="signature|privileged" />
+
<!-- Attribution for Geofencing service. -->
<attribution android:tag="GeofencingService" android:label="@string/geofencing_service"/>
<!-- Attribution for Country Detector. -->
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 625b1413..356c5e1 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Sleutelborduitleg is gestel op <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> … Tik om dit te verander."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fisieke sleutelborde is opgestel"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tik om sleutelborde te bekyk"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privaat"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Kloon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Werk"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Werk 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Werk 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Toets"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Gemeenskaplik"</string>
</resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 04fb300..8af993f 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -2363,18 +2363,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"تم ضبط تنسيق لوحة المفاتيح على <xliff:g id="LAYOUT_1">%1$s</xliff:g> و<xliff:g id="LAYOUT_2">%2$s</xliff:g> و<xliff:g id="LAYOUT_3">%3$s</xliff:g>… انقر لتغييره."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"تم إعداد لوحات المفاتيح الخارجية"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"انقر لعرض لوحات المفاتيح."</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ملف شخصي خاص"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"نسخة طبق الأصل"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ملف العمل"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ملف العمل 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ملف العمل 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ملف شخصي تجريبي"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"ملف شخصي مشترك"</string>
</resources>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 826844f..5e3d0f6 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"কীব’ৰ্ডৰ লে’আউট <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> হিচাপে ছেট কৰা হৈছে… সলনি কৰিবলৈ টিপক।"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ভৌতিক কীব’ৰ্ড কনফিগাৰ কৰা হৈছে"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"কীব’ৰ্ড চাবলৈ টিপক"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ব্যক্তিগত"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ক্ল’ন"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"কৰ্মস্থান"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"কৰ্মস্থান ২"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"কৰ্মস্থান ৩"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"পৰীক্ষা"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"শ্বেয়াৰ কৰা"</string>
</resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 66a5670..a000117 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Klaviatura düzəni <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> kimi ayarlanıb… Dəyişmək üçün toxunun."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fiziki klaviaturalar konfiqurasiya edilib"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Klaviaturalara baxmaq üçün toxunun"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Şəxsi"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"İş"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"İş 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"İş 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Kommunal"</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 b6121ed..080d1bdda 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Raspored tastature je podešen na <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Dodirnite da biste promenili."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fizičke tastature su konfigurisane"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Dodirnite da biste videli tastature"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privatno"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klonirano"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Posao"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Posao 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Posao 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Zajedničko"</string>
</resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 3c01f1b..1cca6ff 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -2361,18 +2361,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Раскладка клавіятуры наладжана для наступных моў: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Націсніце, каб змяніць."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Фізічныя клавіятуры наладжаны"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Націсніце, каб праглядзець клавіятуры"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Прыватны"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клон"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Працоўны"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Працоўны 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Працоўны 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Тэставы"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Супольны"</string>
</resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 3b1ff9e..8f994ca 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"За клавиатурната подредба са зададени <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g> и <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Докоснете за промяна."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физическите клавиатури са конфигурирани"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Докоснете за преглед на клавиатурите"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Частни"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клониране"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Служебни"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Служебни 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Служебни 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Тестване"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Общи"</string>
</resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 58dd7c2..f85df40 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"কীবোর্ড লেআউট <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>-এ সেট করা আছে… পালটাতে ট্যাপ করুন।"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ফিজিক্যাল কীবোর্ড কনফিগার করা হয়েছে"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"কীবোর্ড দেখতে ট্যাপ করুন"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ব্যক্তিগত"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ক্লোন করুন"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"অফিস"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"২য় অফিস"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"৩য় অফিস"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"পরীক্ষা"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"কমিউনাল"</string>
</resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index aa66e02..5d207a8 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Raspored tastature je postavljen na <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Dodirnite da promijenite."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fizičke tastature su konfigurirane"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Dodirnite da pregledate tastature"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privatno"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Poslovno"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"2. poslovno"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"3. poslovno"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Testno"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Opće"</string>
</resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index be8654d..cf3a8ad 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Disseny del teclat definit en <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Toca per canviar-ho."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Teclats físic configurats"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Toca per veure els teclats"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privat"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Treball"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Treball 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Treball 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Prova"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Compartit"</string>
</resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 35def43..0d586e4 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Tastaturlayoutet er angivet som <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Tryk for at ændre dette."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fysiske tastaturer er konfigureret"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tryk for at se tastaturer"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privat"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Arbejde"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Arbejde 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Arbejde 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Fælles"</string>
</resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 179bdb4..6c47dd6 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Keyboard layout set to <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Tap to change."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Physical keyboards configured"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tap to view keyboards"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Private"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Work"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Work 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Work 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Communal"</string>
</resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 2a4f88e..5c26afa 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Keyboard layout set to <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Tap to change."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Physical keyboards configured"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tap to view keyboards"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Private"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Work"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Work 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Work 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Communal"</string>
</resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 0f08d2f..80da8b9 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Keyboard layout set to <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Tap to change."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Physical keyboards configured"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tap to view keyboards"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Private"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Work"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Work 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Work 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Communal"</string>
</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 29f0f8f..051528d 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Diseño del teclado definido como <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Toca para cambiarlo."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Teclados físicos configurados"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Toca para ver los teclados"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privado"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Trabajo"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Trabajo 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Trabajo 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Prueba"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Común"</string>
</resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 4a42b00..f44b8a4 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Klaviatuuripaigutuseks on määratud <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> … puudutage muutmiseks."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Füüsilised klaviatuurid on seadistatud"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Puudutage klaviatuuride vaatamiseks"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privaatne"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Kloon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Töö"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Töö 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Töö 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Jagatud"</string>
</resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index 3b76e88..8bf5d97 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Ezarri da <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g> eta <xliff:g id="LAYOUT_3">%3$s</xliff:g> gisa teklatuaren diseinua… Diseinu hori aldatzeko, sakatu hau."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Konfiguratu dira teklatu fisikoak"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Sakatu hau teklatuak ikusteko"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Pribatua"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klona"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Lanekoa"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Lanekoa 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Lanekoa 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Probakoa"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Partekatua"</string>
</resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 71dbc43..c1b67ad 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"جانمایی صفحهکلید چنین تنظیم شد: <xliff:g id="LAYOUT_1">%1$s</xliff:g>، <xliff:g id="LAYOUT_2">%2$s</xliff:g>، <xliff:g id="LAYOUT_3">%3$s</xliff:g>… برای تغییر ضربه بزنید"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"صفحهکلیدهای فیزیکی پیکربندی شدند"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"برای مشاهده صفحهکلیدها ضربه بزنید"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"خصوصی"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"مشابهسازی"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"کار"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"کار ۲"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"کار ۳"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"آزمایش"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"عمومی"</string>
</resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index c69bafe..8c64345 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Näppäimistöasetteluksi valittu <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Muuta asetuksia napauttamalla."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fyysiset näppäimistöt määritetty"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Katso näppäimistöt napauttamalla"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Yksityinen"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Kloonaus"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Työ"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Työ 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Työ 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Testi"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Jaettu"</string>
</resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 6c88f45..177fd13 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Disposition du clavier définie à <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Touchez pour modifier."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Claviers physiques configurés"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Touchez pour afficher les claviers"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privé"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Professionnel"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Professionnel 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Professionnel 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Commun"</string>
</resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index c1e2bbf..6600c29 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"O deseño do teclado estableceuse en <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Toca para cambialo."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Configuráronse varios teclados físicos"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Toca para ver os teclados"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privado"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clonado"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Traballo"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Traballo 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Traballo 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Proba"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Compartido"</string>
</resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index da75282..d847869 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"કીબોર્ડનું લેઆઉટ <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> પર સેટ કરવામાં આવ્યું છે… બદલવા માટે ટૅપ કરો."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ભૌતિક કીબોર્ડની ગોઠવણી કરવામાં આવી છે"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"કીબોર્ડ જોવા માટે ટૅપ કરો"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ખાનગી"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ક્લોન કરો"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ઑફિસ"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ઑફિસ 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ઑફિસ 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"પરીક્ષણ કરો"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"કૉમ્યુનલ"</string>
</resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index d448b51..aaa4c52 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"कीबोर्ड का लेआउट <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… पर सेट कर दिया गया है. इसे बदलने के लिए टैप करें."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"फ़िज़िकल कीबोर्ड कॉन्फ़िगर किए गए"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"कीबोर्ड देखने के लिए टैप करें"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"निजी"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"क्लोन"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ऑफ़िस"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ऑफ़िस 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ऑफ़िस 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"टेस्ट"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"कम्यूनिटी"</string>
</resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 5ee1527..0e82b26 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Raspored tipkovnice postavljen je na <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Dodirnite da biste ga promijenili."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fizičke su tipkovnice konfigurirane"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Dodirnite da bi se prikazale tipkovnice"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privatno"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Kloniranje"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Posao"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Posao 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Posao 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Zajedničko"</string>
</resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 2c4c77e..f223650 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"A billentyűzetkiosztás a következőkre van beállítva: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… A módosításhoz koppintson."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fizikai billentyűzetek beállítva"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Koppintson a billentyűzetek megtekintéséhez"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privát"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klón"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Munkahelyi"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"2. munkahelyi"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"3. munkahelyi"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Teszt"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Közös"</string>
</resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 482e075..ca227df 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Ստեղնաշարի համար կարգավորված են <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> դասավորությունները։ Հպեք փոխելու համար։"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Ֆիզիկական ստեղնաշարերը կարգավորված են"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Հպեք՝ ստեղնաշարերը դիտելու համար"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Անձնական"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Կլոն"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Աշխատանքային"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Աշխատանքային 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Աշխատանքային 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Փորձնական"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Ընդհանուր"</string>
</resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index f18d834..86a0858 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Tata letak keyboard disetel ke <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Ketuk untuk mengubah."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Keyboard fisik telah dikonfigurasi"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Ketuk untuk melihat keyboard"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Pribadi"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Kerja"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Kerja 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Kerja 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Pengujian"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Umum"</string>
</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 076c5a3..1cc244f 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Layout tastiera impostato su <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Tocca per cambiare l\'impostazione."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Tastiere fisiche configurate"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tocca per visualizzare le tastiere"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privato"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Lavoro"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Lavoro 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Lavoro 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Condiviso"</string>
</resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 8931518..390f6f1 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"キーボードのレイアウトは<xliff:g id="LAYOUT_1">%1$s</xliff:g>、<xliff:g id="LAYOUT_2">%2$s</xliff:g>、<xliff:g id="LAYOUT_3">%3$s</xliff:g>などに設定されています。タップで変更できます。"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"物理キーボードの設定完了"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"タップするとキーボードを表示できます"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"非公開"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"複製"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"仕事用"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"仕事用 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"仕事用 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"テスト"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"共用"</string>
</resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 3e33115..8eab926 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -2329,13 +2329,13 @@
<string name="system_locale_title" msgid="711882686834677268">"Жүйенің әдепкі параметрі"</string>
<string name="default_card_name" msgid="9198284935962911468">"<xliff:g id="CARDNUMBER">%d</xliff:g>-КАРТА"</string>
<string name="permlab_companionProfileWatch" msgid="2457738382085872542">"Сағаттарды басқаруға арналған қосымша сағат профилінің рұқсаты"</string>
- <string name="permdesc_companionProfileWatch" msgid="5655698581110449397">"Қосымша қолданбаға сағаттарды басқаруға рұқсат беріледі."</string>
+ <string name="permdesc_companionProfileWatch" msgid="5655698581110449397">"Серік қолданбаға сағаттарды басқаруға рұқсат беріледі."</string>
<string name="permlab_observeCompanionDevicePresence" msgid="9008994909653990465">"Серіктес құрылғының бар-жоғын бақылау"</string>
- <string name="permdesc_observeCompanionDevicePresence" msgid="3011699826788697852">"Қосымша қолданбаға қолданбалар маңайда немесе алыста болған кезде қосымша құрылғының бар болуын бақылауға рұқсат беріледі."</string>
+ <string name="permdesc_observeCompanionDevicePresence" msgid="3011699826788697852">"Серік қолданбаға құрылғылар маңайда немесе алыста болуына қарамастан серік құрылғыны табуға рұқсат беріледі."</string>
<string name="permlab_deliverCompanionMessages" msgid="3931552294842980887">"Ілеспе хабарлар жеткізу"</string>
- <string name="permdesc_deliverCompanionMessages" msgid="2170847384281412850">"Қосымша қолданбаға ілеспе хабарларды басқа құрылғыларға жеткізуге рұқсат беріледі."</string>
+ <string name="permdesc_deliverCompanionMessages" msgid="2170847384281412850">"Серік қолданбаға басқа құрылғыларға серік хабарлар жеткізуге рұқсат беріледі."</string>
<string name="permlab_startForegroundServicesFromBackground" msgid="6363004936218638382">"Экрандық режимдегі қызметтерді фоннан іске қосу"</string>
- <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Қосымша қолданбаға экрандық режимдегі қызметтерді фоннан іске қосуға рұқсат беріледі."</string>
+ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Серік қолданбаға экрандық режимдегі қызметтерді фоннан іске қосуға рұқсат беріледі."</string>
<string name="mic_access_on_toast" msgid="2666925317663845156">"Микрофон қолжетімді."</string>
<string name="mic_access_off_toast" msgid="8111040892954242437">"Микрофон блокталған."</string>
<string name="connected_display_unavailable_notification_title" msgid="5265409360902073556">"Дисплейге көшірмені көрсету мүмкін емес"</string>
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Пернетақта схемасы \"<xliff:g id="LAYOUT_1">%1$s</xliff:g>\", \"<xliff:g id="LAYOUT_2">%2$s</xliff:g>\", \"<xliff:g id="LAYOUT_3">%3$s</xliff:g>\" деп орнатылды… Өзгерту үшін түртіңіз."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физикалық пернетақталар конфигурацияланды"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Пернетақталарды көру үшін түртіңіз."</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Жеке"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клон"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Жұмыс"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Жұмыс 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Жұмыс 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Сынақ"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Жалпы"</string>
</resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 0bcf992..c677a3d 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"បានកំណត់ប្លង់ក្ដារចុចទៅ <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… សូមចុចដើម្បីប្ដូរ។"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"បានកំណត់រចនាសម្ព័ន្ធក្ដារចុចរូបវន្ត"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"ចុចដើម្បីមើលក្ដារចុច"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ឯកជន"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ក្លូន"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ការងារ"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ការងារទី 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ការងារទី 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ការធ្វើតេស្ត"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"ទូទៅ"</string>
</resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index a69601a..bb99b5d 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"ಕೀಬೋರ್ಡ್ ಲೇಔಟ್ ಅನ್ನು <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> ಗೆ ಸೆಟ್ ಮಾಡಲಾಗಿದೆ… ಬದಲಾಯಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"ಕೀಬೋರ್ಡ್ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ಖಾಸಗಿ"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ಕ್ಲೋನ್"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ಕೆಲಸ"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ಕೆಲಸ 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ಕೆಲಸ 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ಪರೀಕ್ಷೆ"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"ಸಮುದಾಯ"</string>
</resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 77d45c7..82a3b26 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"키보드 레이아웃이 <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>로 설정됩니다. 변경하려면 탭하세요."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"실제 키보드에 구성됨"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"키보드를 보려면 탭하세요."</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"비공개"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"복사"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"직장"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"직장 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"직장 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"테스트"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"공동"</string>
</resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index ee7b407..11950aa2 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Баскычтопко төмөнкү калып коюлду: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Өзгөртүү үчүн басыңыз."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физикалык баскычтоптор конфигурацияланды"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Баскычтопторду көрүү үчүн басыңыз"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Купуя"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клон"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Жумуш"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Жумуш 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Жумуш 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Сыноо"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Жалпы"</string>
</resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index d9698e3..3e887a5 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"ຕັ້ງໂຄງຮ່າງແປ້ນພິມເປັນ <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… ແຕະເພື່ອປ່ຽນແປງ."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ຕັ້ງຄ່າແປ້ນພິມແທ້ແລ້ວ"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"ແຕະເພື່ອເບິ່ງແປ້ນພິມ"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ສ່ວນຕົວ"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ໂຄລນ"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ວຽກ"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ວຽກ 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ວຽກ 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ທົດສອບ"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"ສ່ວນກາງ"</string>
</resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 2a2a088..c77f785 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -2361,18 +2361,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Išdėstymas nustatytas į <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Palieskite, kad pakeistumėte."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Sukonfigūruotos fizinės klaviatūros"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Palieskite, kad peržiūrėtumėte klaviatūras"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privatu"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Identiška kopija"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Darbas"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Darbas (2)"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Darbas (3)"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Bandymas"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Bendruomenės"</string>
</resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 8c7c206..f443d8e 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Ir iestatīti šādi tastatūras izkārtojumi: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Lai to mainītu, pieskarieties."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fiziskās tastatūras ir konfigurētas"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Lai skatītu tastatūras, pieskarieties"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privāts"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klons"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Darbam"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Darbam (2.)"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Darbam (3.)"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Testēšanai"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Kopīgs"</string>
</resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index 4d2f72e..0c1d552 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Распоредот на тастатурата е поставен на <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Допрете за да промените."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физичките тастатури се конфигурирани"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Допрете за да ги видите тастатурите"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Приватен профил"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клониран профил"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Работен профил"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Работен профил 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Работен профил 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Профил за тестирање"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Профил на заедницата"</string>
</resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index be40575..18eb4a9 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"കീബോർഡ് ലേഔട്ട് ആയി ഇനിപ്പറയുന്നവ സജ്ജീകരിച്ചു: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… മാറ്റാൻ ടാപ്പ് ചെയ്യുക."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"യഥാർത്ഥ കീബോർഡുകൾ കോൺഫിഗർ ചെയ്തു"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"കീബോർഡുകൾ കാണാൻ ടാപ്പ് ചെയ്യുക"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"സ്വകാര്യം"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ക്ലോൺ ചെയ്യുക"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ഔദ്യോഗികം"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ഔദ്യോഗികം 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ഔദ്യോഗികം 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ടെസ്റ്റ്"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"കമ്മ്യൂണൽ"</string>
</resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index c215b88..ed656cd 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Гарын бүдүүвчийг <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> болгож тохируулсан… Өөрчлөхийн тулд товшино уу."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Биет гарыг тохируулсан"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Гарыг харахын тулд товшино уу"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Хувийн"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клон"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Ажил"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Ажил 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Ажил 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Туршилт"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Нийтийн"</string>
</resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 03fcc17..ff475fe 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"कीबोर्ड लेआउट <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> वर सेट करा… बदलण्यासाठी टॅप करा."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"वास्तविक कीबोर्ड कॉंफिगर केला"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"कीबोर्ड पाहण्यासाठी टॅप करा"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"खाजगी"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"क्लोन"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ऑफिस"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ऑफिस २"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ऑफिस ३"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"चाचणी"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"सामुदायिक"</string>
</resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 84b79a8..4821fc8 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Reka letak papan kekunci ditetapkan kepada <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Ketik untuk menukar reka letak."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Papan kekunci fizikal dikonfigurasikan"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Ketik untuk melihat papan kekunci"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Peribadi"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Kerja"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Kerja 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Kerja 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Ujian"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Umum"</string>
</resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 01906b9..6981e82 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"ကီးဘုတ်အပြင်အဆင်ကို <xliff:g id="LAYOUT_1">%1$s</xliff:g>၊ <xliff:g id="LAYOUT_2">%2$s</xliff:g>၊ <xliff:g id="LAYOUT_3">%3$s</xliff:g> သို့ သတ်မှတ်လိုက်သည်… ပြောင်းရန် တို့ပါ။"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ပကတိကီးဘုတ်များကို စီစဉ်သတ်မှတ်ထားသည်"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"ကီးဘုတ်များကြည့်ရန် တို့ပါ"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"သီးသန့်"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ဆင်တူပြုလုပ်ရန်"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"အလုပ်"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"အလုပ် ၂"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"အလုပ် ၃"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"စမ်းသပ်မှု"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"အများသုံး"</string>
</resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index d8e3b40..e667b93 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Tastaturoppsettet er satt til <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> … Trykk for å endre det."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"De fysiske tastaturene er konfigurert"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Trykk for å se tastaturene"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privat"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Jobb"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Jobb 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Jobb 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Felles"</string>
</resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index 126f612..bb06243 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"किबोर्ड लेआउट <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> भाषामा सेट गरिएको छ… बदल्न ट्याप गर्नुहोस्।"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"भौतिक किबोर्डहरू कन्फिगर गरिएका छन्"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"किबोर्डहरू हेर्न ट्याप गर्नुहोस्"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"निजी"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"क्लोन"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"कार्य प्रोफाइल"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"कार्य प्रोफाइल २"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"कार्य प्रोफाइल ३"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"परीक्षण"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"सामुदायिक"</string>
</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index bc18797..40239a6 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Toetsenbordindeling ingesteld op <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Tik om te wijzigen."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fysieke toetsenborden zijn ingesteld"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tik om toetsenborden te bekijken"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privé"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Kloon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Werk"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Werk 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Werk 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Gemeenschappelijk"</string>
</resources>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index 7f66887..fc4824d 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"କୀବୋର୍ଡ ଲେଆଉଟକୁ <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>ରେ ସେଟ କରାଯାଇଛି… ପରିବର୍ତ୍ତନ କରିବାକୁ ଟାପ କରନ୍ତୁ।"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ଫିଜିକାଲ କୀବୋର୍ଡଗୁଡ଼ିକୁ କନଫିଗର କରାଯାଇଛି"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"କୀବୋର୍ଡଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ ଟାପ କରନ୍ତୁ"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ପ୍ରାଇଭେଟ"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"କ୍ଲୋନ"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ୱାର୍କ"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ୱାର୍କ 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ୱାର୍କ 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ଟେଷ୍ଟ"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"କମ୍ୟୁନାଲ"</string>
</resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 0396149..f828dae 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"ਕੀ-ਬੋਰਡ ਦਾ ਖਾਕਾ <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> \'ਤੇ ਸੈੱਟ ਹੈ… ਬਦਲਣ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡਾਂ ਦਾ ਸੰਰੂਪਣ ਕੀਤਾ ਗਿਆ"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"ਕੀ-ਬੋਰਡਾਂ ਨੂੰ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ਨਿੱਜੀ"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ਕਲੋਨ"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ਕਾਰਜ"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ਕੰਮ ਸੰਬੰਧੀ 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ਕੰਮ ਸੰਬੰਧੀ 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ਜਾਂਚ"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"ਭਾਈਚਾਰਕ"</string>
</resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 66d5570..f083436 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -2361,18 +2361,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Ustawiono układ klawiatury <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Kliknij, aby to zmienić."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Skonfigurowano klawiatury fizyczne"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Kliknij, aby wyświetlić klawiatury"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Prywatny"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Służbowy"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Służbowy 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Służbowy 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Testowy"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Wspólny"</string>
</resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index e32c738..1634488 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Layout do teclado definido como <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Toque para mudar."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Teclados físicos configurados"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Toque para conferir os teclados"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Particular"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Trabalho"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Trabalho 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Trabalho 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Teste"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Público"</string>
</resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index e32c738..1634488 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Layout do teclado definido como <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Toque para mudar."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Teclados físicos configurados"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Toque para conferir os teclados"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Particular"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Trabalho"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Trabalho 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Trabalho 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Teste"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Público"</string>
</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 2f16db3..cda23a5 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -2361,18 +2361,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Настроены раскладки клавиатуры для яз.: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> и др. Нажмите, чтобы изменить."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физические клавиатуры настроены"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Нажмите, чтобы посмотреть подключенные клавиатуры."</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Личный"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клон"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Рабочий"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Рабочий 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Рабочий 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Тестовый"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Совместный"</string>
</resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index ac86d7b..4e26aa2 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"යතුරු පුවරුව <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> ලෙස සකසා ඇත… වෙනස් කිරීමට තට්ටු කරන්න."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"භෞතික යතුරු පුවරුව වින්යාස කෙරිණි"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"යතුරු පුවරු බැලීමට තට්ටු කරන්න"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"පෞද්ගලික"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"ක්ලෝන කරන්න"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"කාර්යාලය"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"කාර්යාලය 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"කාර්යාලය 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"පරීක්ෂණය"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"වාර්ගික"</string>
</resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index d1d7897..089372e 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -2361,18 +2361,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Rozloženie klávesnice je nastavené na jazyky <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g> a <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Môžete to zmeniť klepnutím."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fyzické klávesnice sú nakonfigurované"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Klávesnice si zobrazíte klepnutím"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Súkromný"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Pracovný"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"2. pracovný"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"3. pracovný"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Testovací"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Spoločný"</string>
</resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index 2cd76fd..8965801 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Struktura e tastierës u caktua në: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Trokit për ta ndryshuar."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Tastierat fizike u konfiguruan"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Trokit për të parë tastierat"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privat"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Puna"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Puna 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Puna 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"I përbashkët"</string>
</resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 9e77bf6..f81d24d 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -2360,18 +2360,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Распоред тастатуре је подешен на <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Додирните да бисте променили."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физичке тастатуре су конфигурисане"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Додирните да бисте видели тастатуре"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Приватно"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Клонирано"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Посао"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Посао 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Посао 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Тест"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Заједничко"</string>
</resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index ab5bfca..994ea61 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Tangentbordslayouten är inställd på <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> … Tryck om du vill ändra."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fysiska tangentbord har konfigurerats"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Tryck för att visa tangentbord"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Privat"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Arbete"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Arbete 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Arbete 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Allmän"</string>
</resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 61c0b17..912c588 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Muundo wa kibodi umewekwa kuwa <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Gusa ili ubadilishe."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Mipangilio ya kibodi halisi imewekwa"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Gusa ili uangalie kibodi"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Wa faragha"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Nakala"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Wa kazini"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Wa 2 wa Kazini"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Wa 3 wa Kazini"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Jaribio"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Unaoshirikiwa"</string>
</resources>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index edf6c2d..8ba07fb 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"கீபோர்டு தளவமைப்பு <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… ஆகிய மொழிகளில் அமைக்கப்பட்டது, மாற்ற தட்டவும்."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"கீபோர்டுகள் உள்ளமைக்கப்பட்டன"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"கீபோர்டுகளைப் பார்க்க தட்டவும்"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"தனிப்பட்டது"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"குளோன்"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"பணி"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"பணி 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"பணி 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"பரிசோதனை"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"பொது"</string>
</resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index d862e2f..ce7b8bc 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"కీబోర్డ్ లేఅవుట్ <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>కు సెట్ చేయబడింది… మార్చడానికి ట్యాప్ చేయండి."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ఫిజికల్ కీబోర్డ్లు కాన్ఫిగర్ చేయబడ్డాయి"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"కీబోర్డ్లను చూడటానికి ట్యాప్ చేయండి"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ప్రైవేట్"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"క్లోన్ చేయండి"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"ఆఫీస్"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"ఆఫీస్ 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"ఆఫీస్ 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"పరీక్ష"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"కమ్యూనల్"</string>
</resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index bda7e8a..b26389e 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"ตั้งค่ารูปแบบแป้นพิมพ์เป็นภาษา<xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… แตะเพื่อเปลี่ยน"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"กำหนดค่าแป้นพิมพ์จริงแล้ว"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"แตะเพื่อดูแป้นพิมพ์"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"ส่วนตัว"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"โคลน"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"งาน"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"งาน 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"งาน 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ทดสอบ"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"ส่วนกลาง"</string>
</resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 53201ea..ceb8828 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Naitakda ang layout ng keyboard sa <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… I-tap para baguhin."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Na-configure ang mga pisikal na keyboard"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"I-tap para tingnan ang mga keyboard"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Pribado"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"I-clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Trabaho"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Trabaho 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Trabaho 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Communal"</string>
</resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index ee1168f..528d1e5 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Klavye düzeni <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> olarak ayarlandı… Değiştirmek için dokunun."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Fiziksel klavyeler yapılandırıldı"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Klavyeleri görüntülemek için dokunun"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Gizli"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Klon"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"İş"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"İş 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"İş 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Paylaşılan"</string>
</resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index b1adf52..b0421ee 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -2361,18 +2361,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Вибрано такі розкладки клавіатури: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Натисніть, щоб змінити."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Фізичні клавіатури налаштовано"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Натисніть, щоб переглянути клавіатури"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Приватний профіль"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Копія профілю"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Робочий профіль"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Робочий профіль 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Робочий профіль 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Тестовий профіль"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Спільний профіль"</string>
</resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 92fd266..767ee1c 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"کی بورڈ لے آؤٹ <xliff:g id="LAYOUT_1">%1$s</xliff:g>، <xliff:g id="LAYOUT_2">%2$s</xliff:g>، <xliff:g id="LAYOUT_3">%3$s</xliff:g> پر سیٹ ہے… تبدیل کرنے کے لیے تھپتھپائیں۔"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"فزیکل کی بورڈز کنفیگر کئے گئے"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"کی بورڈز دیکھنے کے لیے تھپتھپائیں"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"نجی"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"کلون"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"دفتری پروفائل"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"دوسری دفتری پروفائل"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"تیسری دفتری پروفائل"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"ٹیسٹ"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"کمیونل"</string>
</resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 79d9f9d..e48d641 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Klaviatura terilmasi bunga sozlandi: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Oʻzgartirish uchun ustiga bosing."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Tashqi klaviaturalar sozlandi"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Klaviaturalarni ochish uchun ustiga bosing"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Yopiq"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Nusxasini yaratish"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Ish"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Ish 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Ish 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Test"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Umumiy"</string>
</resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 2ddf49f..a14fa75 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Đã thiết lập bố cục bàn phím thành <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Hãy nhấn để thay đổi."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Đã định cấu hình bàn phím vật lý"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Nhấn để xem bàn phím"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Riêng tư"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Sao chép"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Công việc"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Công việc 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Công việc 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Kiểm thử"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Dùng chung"</string>
</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index f3b6a39..db98b34 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"键盘布局已设为<xliff:g id="LAYOUT_1">%1$s</xliff:g>、<xliff:g id="LAYOUT_2">%2$s</xliff:g>、<xliff:g id="LAYOUT_3">%3$s</xliff:g>…点按即可更改。"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"已配置物理键盘"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"点按即可查看键盘"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"私密"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"克隆"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"工作"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"工作 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"工作 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"测试"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"共用"</string>
</resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index bf72080..b3e7959 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"鍵盤版面配置已設定為<xliff:g id="LAYOUT_1">%1$s</xliff:g>、<xliff:g id="LAYOUT_2">%2$s</xliff:g>、<xliff:g id="LAYOUT_3">%3$s</xliff:g>…輕按即可變更。"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"已設定實體鍵盤"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"輕按即可查看鍵盤"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"私人"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"複製"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"工作"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"工作 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"工作 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"測試"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"共用"</string>
</resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 1158cfd..247499d 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"鍵盤配置已設為<xliff:g id="LAYOUT_1">%1$s</xliff:g>、<xliff:g id="LAYOUT_2">%2$s</xliff:g>、<xliff:g id="LAYOUT_3">%3$s</xliff:g>…輕觸即可變更。"</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"已設定實體鍵盤"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"輕觸即可查看鍵盤"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"私人"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"副本"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"工作"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"工作 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"工作 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"測試"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"通用"</string>
</resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index db7c253..976a35e 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -2359,18 +2359,11 @@
<string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Uhlaka lwekhibhodi lusethelwe ku-<xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Thepha ukuze ushintshe."</string>
<string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Amakhibhodi aphathekayo amisiwe"</string>
<string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Thepha ukuze ubuke amakhibhodi"</string>
- <!-- no translation found for profile_label_private (6463418670715290696) -->
- <skip />
- <!-- no translation found for profile_label_clone (769106052210954285) -->
- <skip />
- <!-- no translation found for profile_label_work (3495359133038584618) -->
- <skip />
- <!-- no translation found for profile_label_work_2 (4691533661598632135) -->
- <skip />
- <!-- no translation found for profile_label_work_3 (4834572253956798917) -->
- <skip />
- <!-- no translation found for profile_label_test (9168641926186071947) -->
- <skip />
- <!-- no translation found for profile_label_communal (8743921499944800427) -->
- <skip />
+ <string name="profile_label_private" msgid="6463418670715290696">"Okuyimfihlo"</string>
+ <string name="profile_label_clone" msgid="769106052210954285">"Yenza i-Clone"</string>
+ <string name="profile_label_work" msgid="3495359133038584618">"Umsebenzi"</string>
+ <string name="profile_label_work_2" msgid="4691533661598632135">"Umsebenzi 2"</string>
+ <string name="profile_label_work_3" msgid="4834572253956798917">"Umsebenzi 3"</string>
+ <string name="profile_label_test" msgid="9168641926186071947">"Hlola"</string>
+ <string name="profile_label_communal" msgid="8743921499944800427">"Okomphakathi"</string>
</resources>
diff --git a/core/tests/coretests/Android.bp b/core/tests/coretests/Android.bp
index 37f592f..0ad349b 100644
--- a/core/tests/coretests/Android.bp
+++ b/core/tests/coretests/Android.bp
@@ -167,12 +167,24 @@
android_ravenwood_test {
name: "FrameworksCoreTestsRavenwood",
+ libs: [
+ "android.test.runner",
+ "android.test.base",
+ ],
static_libs: [
+ "core-test-rules", // for libcore.dalvik.system.CloseGuardSupport
+ "androidx.core_core",
"androidx.annotation_annotation",
"androidx.test.rules",
+ "androidx.test.ext.junit",
+ "mockito_ravenwood",
+ "platform-test-annotations",
],
srcs: [
"src/android/os/FileUtilsTest.java",
+ "src/android/util/**/*.java",
+ "src/com/android/internal/util/**/*.java",
+ "testdoubles/src/com/android/internal/util/**/*.java",
],
auto_gen_config: true,
}
diff --git a/core/tests/coretests/src/android/util/ArrayMapTest.java b/core/tests/coretests/src/android/util/ArrayMapTest.java
index b212cf6..1e444ad 100644
--- a/core/tests/coretests/src/android/util/ArrayMapTest.java
+++ b/core/tests/coretests/src/android/util/ArrayMapTest.java
@@ -14,11 +14,17 @@
package android.util;
+import static org.junit.Assert.fail;
+
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
-import junit.framework.TestCase;
-
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.ConcurrentModificationException;
@@ -26,10 +32,14 @@
* Unit tests for ArrayMap that don't belong in CTS.
*/
@LargeTest
-public class ArrayMapTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class ArrayMapTest {
private static final String TAG = "ArrayMapTest";
ArrayMap<String, String> map = new ArrayMap<>();
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
/**
* Attempt to generate a ConcurrentModificationException in ArrayMap.
* <p>
@@ -41,6 +51,7 @@
* @throws Exception
*/
@Test
+ @IgnoreUnderRavenwood(reason = "Long test runtime")
public void testConcurrentModificationException() throws Exception {
final int TEST_LEN_MS = 5000;
System.out.println("Starting ArrayMap concurrency test");
diff --git a/core/tests/coretests/src/android/util/ArraySetTest.java b/core/tests/coretests/src/android/util/ArraySetTest.java
index f1bebfb..51de634 100644
--- a/core/tests/coretests/src/android/util/ArraySetTest.java
+++ b/core/tests/coretests/src/android/util/ArraySetTest.java
@@ -16,12 +16,14 @@
package android.util;
-import androidx.test.filters.LargeTest;
+import static org.junit.Assert.fail;
-import junit.framework.TestCase;
+import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.After;
import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.ConcurrentModificationException;
@@ -29,7 +31,8 @@
* Unit tests for ArraySet that don't belong in CTS.
*/
@LargeTest
-public class ArraySetTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class ArraySetTest {
private static final String TAG = "ArraySetTest";
ArraySet<String> mSet = new ArraySet<>();
diff --git a/core/tests/coretests/src/android/util/Base64Test.java b/core/tests/coretests/src/android/util/Base64Test.java
index 15c51af..b648266 100644
--- a/core/tests/coretests/src/android/util/Base64Test.java
+++ b/core/tests/coretests/src/android/util/Base64Test.java
@@ -16,9 +16,16 @@
package android.util;
-import androidx.test.filters.LargeTest;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
-import junit.framework.TestCase;
+import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -32,7 +39,8 @@
import java.util.stream.Collectors;
@LargeTest
-public class Base64Test extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class Base64Test {
private static final String TAG = "Base64Test";
/** Decodes a string, returning a string. */
@@ -62,7 +70,7 @@
}
/** Assert that actual equals the first len bytes of expected. */
- private void assertEquals(byte[] expected, int len, byte[] actual) {
+ private void assertPartialEquals(byte[] expected, int len, byte[] actual) {
assertEquals(len, actual.length);
for (int i = 0; i < len; ++i) {
assertEquals(expected[i], actual[i]);
@@ -70,21 +78,14 @@
}
/** Assert that actual equals the first len bytes of expected. */
- private void assertEquals(byte[] expected, int len, byte[] actual, int alen) {
+ private void assertPartialEquals(byte[] expected, int len, byte[] actual, int alen) {
assertEquals(len, alen);
for (int i = 0; i < len; ++i) {
assertEquals(expected[i], actual[i]);
}
}
- /** Assert that actual equals the first len bytes of expected. */
- private void assertEquals(byte[] expected, byte[] actual) {
- assertEquals(expected.length, actual.length);
- for (int i = 0; i < expected.length; ++i) {
- assertEquals(expected[i], actual[i]);
- }
- }
-
+ @Test
public void testDecodeExtraChars() throws Exception {
// padding 0
assertEquals("hello, world", decodeString("aGVsbG8sIHdvcmxk"));
@@ -131,28 +132,30 @@
(byte) 0xcc, (byte) 0xbb, (byte) 0xaa,
(byte) 0x99, (byte) 0x88, (byte) 0x77 };
+ @Test
public void testBinaryDecode() throws Exception {
- assertEquals(BYTES, 0, Base64.decode("", 0));
- assertEquals(BYTES, 1, Base64.decode("/w==", 0));
- assertEquals(BYTES, 2, Base64.decode("/+4=", 0));
- assertEquals(BYTES, 3, Base64.decode("/+7d", 0));
- assertEquals(BYTES, 4, Base64.decode("/+7dzA==", 0));
- assertEquals(BYTES, 5, Base64.decode("/+7dzLs=", 0));
- assertEquals(BYTES, 6, Base64.decode("/+7dzLuq", 0));
- assertEquals(BYTES, 7, Base64.decode("/+7dzLuqmQ==", 0));
- assertEquals(BYTES, 8, Base64.decode("/+7dzLuqmYg=", 0));
+ assertPartialEquals(BYTES, 0, Base64.decode("", 0));
+ assertPartialEquals(BYTES, 1, Base64.decode("/w==", 0));
+ assertPartialEquals(BYTES, 2, Base64.decode("/+4=", 0));
+ assertPartialEquals(BYTES, 3, Base64.decode("/+7d", 0));
+ assertPartialEquals(BYTES, 4, Base64.decode("/+7dzA==", 0));
+ assertPartialEquals(BYTES, 5, Base64.decode("/+7dzLs=", 0));
+ assertPartialEquals(BYTES, 6, Base64.decode("/+7dzLuq", 0));
+ assertPartialEquals(BYTES, 7, Base64.decode("/+7dzLuqmQ==", 0));
+ assertPartialEquals(BYTES, 8, Base64.decode("/+7dzLuqmYg=", 0));
}
+ @Test
public void testWebSafe() throws Exception {
- assertEquals(BYTES, 0, Base64.decode("", Base64.URL_SAFE));
- assertEquals(BYTES, 1, Base64.decode("_w==", Base64.URL_SAFE));
- assertEquals(BYTES, 2, Base64.decode("_-4=", Base64.URL_SAFE));
- assertEquals(BYTES, 3, Base64.decode("_-7d", Base64.URL_SAFE));
- assertEquals(BYTES, 4, Base64.decode("_-7dzA==", Base64.URL_SAFE));
- assertEquals(BYTES, 5, Base64.decode("_-7dzLs=", Base64.URL_SAFE));
- assertEquals(BYTES, 6, Base64.decode("_-7dzLuq", Base64.URL_SAFE));
- assertEquals(BYTES, 7, Base64.decode("_-7dzLuqmQ==", Base64.URL_SAFE));
- assertEquals(BYTES, 8, Base64.decode("_-7dzLuqmYg=", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 0, Base64.decode("", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 1, Base64.decode("_w==", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 2, Base64.decode("_-4=", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 3, Base64.decode("_-7d", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 4, Base64.decode("_-7dzA==", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 5, Base64.decode("_-7dzLs=", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 6, Base64.decode("_-7dzLuq", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 7, Base64.decode("_-7dzLuqmQ==", Base64.URL_SAFE));
+ assertPartialEquals(BYTES, 8, Base64.decode("_-7dzLuqmYg=", Base64.URL_SAFE));
assertEquals("", Base64.encodeToString(BYTES, 0, 0, Base64.URL_SAFE));
assertEquals("_w==\n", Base64.encodeToString(BYTES, 0, 1, Base64.URL_SAFE));
@@ -165,6 +168,7 @@
assertEquals("_-7dzLuqmYg=\n", Base64.encodeToString(BYTES, 0, 8, Base64.URL_SAFE));
}
+ @Test
public void testFlags() throws Exception {
assertEquals("YQ==\n", encodeToString("a", 0));
assertEquals("YQ==", encodeToString("a", Base64.NO_WRAP));
@@ -195,6 +199,7 @@
assertEquals("YWJjZA\r\n", encodeToString("abcd", Base64.CRLF | Base64.NO_PADDING));
}
+ @Test
public void testLineLength() throws Exception {
String in_56 = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd";
String in_57 = in_56 + "e";
@@ -245,7 +250,9 @@
* us to get at package-private members (Base64.Encoder in
* this case).
*/
- public void XXXtestEncodeInternal() throws Exception {
+ @Test
+ @Ignore
+ public void testEncodeInternal() throws Exception {
byte[] input = { (byte) 0x61, (byte) 0x62, (byte) 0x63 };
byte[] output = new byte[100];
@@ -253,11 +260,11 @@
output);
encoder.process(input, 0, 3, false);
- assertEquals("YWJj".getBytes(), 4, encoder.output, encoder.op);
+ assertPartialEquals("YWJj".getBytes(), 4, encoder.output, encoder.op);
assertEquals(0, encoder.tailLen);
encoder.process(input, 0, 3, false);
- assertEquals("YWJj".getBytes(), 4, encoder.output, encoder.op);
+ assertPartialEquals("YWJj".getBytes(), 4, encoder.output, encoder.op);
assertEquals(0, encoder.tailLen);
encoder.process(input, 0, 1, false);
@@ -269,7 +276,7 @@
assertEquals(2, encoder.tailLen);
encoder.process(input, 0, 1, false);
- assertEquals("YWFh".getBytes(), 4, encoder.output, encoder.op);
+ assertPartialEquals("YWFh".getBytes(), 4, encoder.output, encoder.op);
assertEquals(0, encoder.tailLen);
encoder.process(input, 0, 2, false);
@@ -277,15 +284,15 @@
assertEquals(2, encoder.tailLen);
encoder.process(input, 0, 2, false);
- assertEquals("YWJh".getBytes(), 4, encoder.output, encoder.op);
+ assertPartialEquals("YWJh".getBytes(), 4, encoder.output, encoder.op);
assertEquals(1, encoder.tailLen);
encoder.process(input, 0, 2, false);
- assertEquals("YmFi".getBytes(), 4, encoder.output, encoder.op);
+ assertPartialEquals("YmFi".getBytes(), 4, encoder.output, encoder.op);
assertEquals(0, encoder.tailLen);
encoder.process(input, 0, 1, true);
- assertEquals("YQ".getBytes(), 2, encoder.output, encoder.op);
+ assertPartialEquals("YQ".getBytes(), 2, encoder.output, encoder.op);
}
private static final String lipsum =
@@ -311,6 +318,7 @@
"molestie dapibus commodo. Ut vel tellus at massa gravida " +
"semper non sed orci.";
+ @Test
public void testInputStream() throws Exception {
int[] flagses = { Base64.DEFAULT,
Base64.NO_PADDING,
@@ -343,7 +351,7 @@
while ((b = b64is.read(actual, ap, actual.length-ap)) != -1) {
ap += b;
}
- assertEquals(actual, ap, plain);
+ assertPartialEquals(actual, ap, plain);
// read individual bytes
bais = new ByteArrayInputStream(encoded);
@@ -352,7 +360,7 @@
while ((b = b64is.read()) != -1) {
actual[ap++] = (byte) b;
}
- assertEquals(actual, ap, plain);
+ assertPartialEquals(actual, ap, plain);
// mix reads of variously-sized arrays with one-byte reads
bais = new ByteArrayInputStream(encoded);
@@ -371,7 +379,7 @@
}
}
}
- assertEquals(actual, ap, plain);
+ assertPartialEquals(actual, ap, plain);
// ----- test encoding ("plain" -> "encoded") -----
@@ -382,7 +390,7 @@
while ((b = b64is.read(actual, ap, actual.length-ap)) != -1) {
ap += b;
}
- assertEquals(actual, ap, encoded);
+ assertPartialEquals(actual, ap, encoded);
// read individual bytes
bais = new ByteArrayInputStream(plain);
@@ -391,7 +399,7 @@
while ((b = b64is.read()) != -1) {
actual[ap++] = (byte) b;
}
- assertEquals(actual, ap, encoded);
+ assertPartialEquals(actual, ap, encoded);
// mix reads of variously-sized arrays with one-byte reads
bais = new ByteArrayInputStream(plain);
@@ -410,11 +418,12 @@
}
}
}
- assertEquals(actual, ap, encoded);
+ assertPartialEquals(actual, ap, encoded);
}
}
/** http://b/3026478 */
+ @Test
public void testSingleByteReads() throws IOException {
InputStream in = new Base64InputStream(
new ByteArrayInputStream("/v8=".getBytes()), Base64.DEFAULT);
@@ -426,6 +435,7 @@
* Tests that Base64OutputStream produces exactly the same results
* as calling Base64.encode/.decode on an in-memory array.
*/
+ @Test
public void testOutputStream() throws Exception {
int[] flagses = { Base64.DEFAULT,
Base64.NO_PADDING,
@@ -456,7 +466,7 @@
b64os.write(plain);
b64os.close();
actual = baos.toByteArray();
- assertEquals(encoded, actual);
+ assertArrayEquals(encoded, actual);
// many calls to write(int)
baos = new ByteArrayOutputStream();
@@ -466,7 +476,7 @@
}
b64os.close();
actual = baos.toByteArray();
- assertEquals(encoded, actual);
+ assertArrayEquals(encoded, actual);
// intermixed sequences of write(int) with
// write(byte[],int,int) of various lengths.
@@ -489,7 +499,7 @@
}
b64os.close();
actual = baos.toByteArray();
- assertEquals(encoded, actual);
+ assertArrayEquals(encoded, actual);
// ----- test decoding ("encoded" -> "plain") -----
@@ -499,7 +509,7 @@
b64os.write(encoded);
b64os.close();
actual = baos.toByteArray();
- assertEquals(plain, actual);
+ assertArrayEquals(plain, actual);
// many calls to write(int)
baos = new ByteArrayOutputStream();
@@ -509,7 +519,7 @@
}
b64os.close();
actual = baos.toByteArray();
- assertEquals(plain, actual);
+ assertArrayEquals(plain, actual);
// intermixed sequences of write(int) with
// write(byte[],int,int) of various lengths.
@@ -532,10 +542,11 @@
}
b64os.close();
actual = baos.toByteArray();
- assertEquals(plain, actual);
+ assertArrayEquals(plain, actual);
}
}
+ @Test
public void testOutputStream_ioExceptionDuringClose() {
OutputStream out = new OutputStream() {
@Override public void write(int b) throws IOException { }
@@ -551,6 +562,7 @@
}
}
+ @Test
public void testOutputStream_ioExceptionDuringCloseAndWrite() {
OutputStream out = new OutputStream() {
@Override public void write(int b) throws IOException {
@@ -583,6 +595,7 @@
}
}
+ @Test
public void testOutputStream_ioExceptionDuringWrite() {
OutputStream out = new OutputStream() {
@Override public void write(int b) throws IOException {
diff --git a/core/tests/coretests/src/android/util/CharsetUtilsTest.java b/core/tests/coretests/src/android/util/CharsetUtilsTest.java
index c295451..fbbe311 100644
--- a/core/tests/coretests/src/android/util/CharsetUtilsTest.java
+++ b/core/tests/coretests/src/android/util/CharsetUtilsTest.java
@@ -18,6 +18,9 @@
import static org.junit.Assert.assertEquals;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
import androidx.test.runner.AndroidJUnit4;
import com.android.internal.util.HexDump;
@@ -25,18 +28,25 @@
import dalvik.system.VMRuntime;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = CharsetUtils.class)
public class CharsetUtilsTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
private byte[] dest;
private long destPtr;
@Before
public void setUp() {
- dest = (byte[]) VMRuntime.getRuntime().newNonMovableArray(byte.class, 8);
- destPtr = VMRuntime.getRuntime().addressOf(dest);
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ dest = (byte[]) VMRuntime.getRuntime().newNonMovableArray(byte.class, 8);
+ destPtr = VMRuntime.getRuntime().addressOf(dest);
+ }
}
@Test
diff --git a/core/tests/coretests/src/android/util/CloseGuardTest.java b/core/tests/coretests/src/android/util/CloseGuardTest.java
index d86c7b7..15c57b1 100644
--- a/core/tests/coretests/src/android/util/CloseGuardTest.java
+++ b/core/tests/coretests/src/android/util/CloseGuardTest.java
@@ -16,6 +16,9 @@
package android.util;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
import libcore.dalvik.system.CloseGuardSupport;
import org.junit.Rule;
@@ -23,10 +26,21 @@
import org.junit.rules.TestRule;
/** Unit tests for {@link android.util.CloseGuard} */
+@IgnoreUnderRavenwood(blockedBy = CloseGuard.class)
public class CloseGuardTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
@Rule
- public final TestRule rule = CloseGuardSupport.getRule();
+ public final TestRule rule;
+
+ public CloseGuardTest() {
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ rule = CloseGuardSupport.getRule();
+ } else {
+ rule = null;
+ }
+ }
@Test
public void testEnabled_NotOpen() throws Throwable {
diff --git a/core/tests/coretests/src/android/util/DayOfMonthCursorTest.java b/core/tests/coretests/src/android/util/DayOfMonthCursorTest.java
index 572e9b0..72bd578 100644
--- a/core/tests/coretests/src/android/util/DayOfMonthCursorTest.java
+++ b/core/tests/coretests/src/android/util/DayOfMonthCursorTest.java
@@ -16,30 +16,40 @@
package android.util;
-import androidx.test.filters.SmallTest;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
-import junit.framework.TestCase;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.Calendar;
/**
* Unit tests for {@link DayOfMonthCursor}.
*/
-public class DayOfMonthCursorTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class DayOfMonthCursorTest {
+ @Test
@SmallTest
public void testMonthRows() {
DayOfMonthCursor mc = new DayOfMonthCursor(2007,
Calendar.SEPTEMBER, 11, Calendar.SUNDAY);
- assertArraysEqual(new int[]{26, 27, 28, 29, 30, 31, 1},
+ assertArrayEquals(new int[]{26, 27, 28, 29, 30, 31, 1},
mc.getDigitsForRow(0));
- assertArraysEqual(new int[]{2, 3, 4, 5, 6, 7, 8},
+ assertArrayEquals(new int[]{2, 3, 4, 5, 6, 7, 8},
mc.getDigitsForRow(1));
- assertArraysEqual(new int[]{30, 1, 2, 3, 4, 5, 6},
+ assertArrayEquals(new int[]{30, 1, 2, 3, 4, 5, 6},
mc.getDigitsForRow(5));
}
+ @Test
@SmallTest
public void testMoveLeft() {
DayOfMonthCursor mc = new DayOfMonthCursor(2007,
@@ -70,6 +80,7 @@
assertEquals(5, mc.getSelectedColumn());
}
+ @Test
@SmallTest
public void testMoveRight() {
DayOfMonthCursor mc = new DayOfMonthCursor(2007,
@@ -100,6 +111,7 @@
assertEquals(1, mc.getSelectedColumn());
}
+ @Test
@SmallTest
public void testMoveUp() {
DayOfMonthCursor mc = new DayOfMonthCursor(2007,
@@ -124,6 +136,7 @@
assertEquals(4, mc.getSelectedColumn());
}
+ @Test
@SmallTest
public void testMoveDown() {
DayOfMonthCursor mc = new DayOfMonthCursor(2007,
@@ -147,12 +160,4 @@
assertEquals(1, mc.getSelectedRow());
assertEquals(0, mc.getSelectedColumn());
}
-
- private void assertArraysEqual(int[] expected, int[] actual) {
- assertEquals("array length", expected.length, actual.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals("index " + i,
- expected[i], actual[i]);
- }
- }
}
diff --git a/core/tests/coretests/src/android/util/HashedStringCacheTest.java b/core/tests/coretests/src/android/util/HashedStringCacheTest.java
index 2292473..08c85ac 100644
--- a/core/tests/coretests/src/android/util/HashedStringCacheTest.java
+++ b/core/tests/coretests/src/android/util/HashedStringCacheTest.java
@@ -26,28 +26,37 @@
import android.content.SharedPreferences;
import android.os.Environment;
import android.os.storage.StorageManager;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import androidx.test.InstrumentationRegistry;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import java.io.File;
-
/**
* Unit tests for {@link HashedStringCache}.
*/
+@IgnoreUnderRavenwood(blockedBy = HashedStringCache.class)
public class HashedStringCacheTest {
private static final String TAG = "HashedStringCacheTest";
private Context mContext;
private static final String TEST_STRING = "test_string";
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
@Before
public void setup() {
- mContext = null;
- mContext = InstrumentationRegistry.getContext();
- clearSharedPreferences();
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ mContext = InstrumentationRegistry.getContext();
+ clearSharedPreferences();
+ } else {
+ mContext = null;
+ }
}
@Test
diff --git a/core/tests/coretests/src/android/util/LogNullabilityTest.java b/core/tests/coretests/src/android/util/LogNullabilityTest.java
index 370885d..475e347 100644
--- a/core/tests/coretests/src/android/util/LogNullabilityTest.java
+++ b/core/tests/coretests/src/android/util/LogNullabilityTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
+import android.platform.test.ravenwood.RavenwoodRule;
+
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -35,8 +37,10 @@
Log.i(null, "");
Log.w(null, "");
Log.e(null, "");
- Log.wtf(null, "");
- Log.wtfStack(null, "");
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ Log.wtf(null, "");
+ Log.wtfStack(null, "");
+ }
Log.println(Log.INFO, null, "");
// Implicit assertions of not crashing.
@@ -49,7 +53,9 @@
Log.i(null, "", new Throwable());
Log.w(null, "", new Throwable());
Log.e(null, "", new Throwable());
- Log.wtf(null, "", new Throwable());
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ Log.wtf(null, "", new Throwable());
+ }
Log.printlns(Log.LOG_ID_MAIN, Log.INFO, null, "", new Throwable());
// Implicit assertions of not crashing.
@@ -84,8 +90,10 @@
} catch (NullPointerException expected) {
}
- Log.wtf("", (String) null);
- Log.wtfStack("", (String) null);
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ Log.wtf("", (String) null);
+ Log.wtfStack("", (String) null);
+ }
// Implicit assertion of not crashing.
@@ -103,15 +111,10 @@
Log.i("", null, new Throwable());
Log.w("", null, new Throwable());
Log.e("", null, new Throwable());
- Log.wtf("", null, new Throwable());
-
- // Implicit assertions of not crashing.
-
- try {
- Log.printlns(Log.LOG_ID_MAIN, Log.INFO, "", null, new Throwable());
- fail();
- } catch (NullPointerException expected) {
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ Log.wtf("", null, new Throwable());
}
+ Log.printlns(Log.LOG_ID_MAIN, Log.INFO, "", null, new Throwable());
}
@Test
@@ -121,7 +124,9 @@
Log.i("", "", null);
Log.w("", "", null);
Log.e("", "", null);
- Log.wtf("", "", null);
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ Log.wtf("", "", null);
+ }
// Warning has its own (String, Throwable) overload.
Log.w("", (Throwable) null);
@@ -131,10 +136,12 @@
// Implicit assertions of not crashing.
// WTF has its own (String, Throwable) overload with different behavior.
- try {
- Log.wtf("", (Throwable) null);
- fail();
- } catch (NullPointerException expected) {
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ try {
+ Log.wtf("", (Throwable) null);
+ fail();
+ } catch (NullPointerException expected) {
+ }
}
}
@@ -145,15 +152,10 @@
Log.i("", null, null);
Log.w("", null, null);
Log.e("", null, null);
- Log.wtf("", null, null);
-
- // Implicit assertions of not crashing.
-
- try {
- Log.printlns(Log.LOG_ID_MAIN, Log.INFO, "", null, null);
- fail();
- } catch (NullPointerException expected) {
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ Log.wtf("", null, null);
}
+ Log.printlns(Log.LOG_ID_MAIN, Log.INFO, "", null, null);
}
@Test
diff --git a/core/tests/coretests/src/android/util/LogTest.java b/core/tests/coretests/src/android/util/LogTest.java
index d783c12..f9966a1 100644
--- a/core/tests/coretests/src/android/util/LogTest.java
+++ b/core/tests/coretests/src/android/util/LogTest.java
@@ -20,23 +20,24 @@
import android.test.PerformanceTestCase;
import androidx.test.filters.Suppress;
+import androidx.test.runner.AndroidJUnit4;
import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
//This is an empty TestCase.
@Suppress
-public class LogTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class LogTest {
private static final String PROPERTY_TAG = "log.tag.LogTest";
private static final String LOG_TAG = "LogTest";
-
- // TODO: remove this test once we uncomment out the following test.
- public void testLogTestDummy() {
- return;
- }
-
-
- /* TODO: This test is commented out because we will not be able to set properities. Fix the test.
+ @Test
+ @Ignore
public void testIsLoggable() {
// First clear any SystemProperty setting for our test key.
SystemProperties.set(PROPERTY_TAG, null);
@@ -129,8 +130,7 @@
Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ERROR));
Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ASSERT));
}
- */
-
+
public static class PerformanceTest extends TestCase implements PerformanceTestCase {
private static final int ITERATIONS = 1000;
diff --git a/core/tests/coretests/src/android/util/LongSparseLongArrayTest.java b/core/tests/coretests/src/android/util/LongSparseLongArrayTest.java
index a1d48e6..9dbaae0d 100644
--- a/core/tests/coretests/src/android/util/LongSparseLongArrayTest.java
+++ b/core/tests/coretests/src/android/util/LongSparseLongArrayTest.java
@@ -16,9 +16,13 @@
package android.util;
-import androidx.test.filters.LargeTest;
+import static org.junit.Assert.assertEquals;
-import junit.framework.TestCase;
+import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.HashMap;
import java.util.Iterator;
@@ -29,9 +33,11 @@
* Tests for {@link LongSparseLongArray}.
*/
@LargeTest
-public class LongSparseLongArrayTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class LongSparseLongArrayTest {
private static final String TAG = "LongSparseLongArrayTest";
+ @Test
public void testSimplePut() throws Exception {
final LongSparseLongArray array = new LongSparseLongArray(5);
for (int i = 0; i < 48; i++) {
@@ -45,6 +51,7 @@
}
}
+ @Test
public void testSimplePutBackwards() throws Exception {
final LongSparseLongArray array = new LongSparseLongArray(5);
for (int i = 47; i >= 0; i--) {
@@ -58,6 +65,7 @@
}
}
+ @Test
public void testMiddleInsert() throws Exception {
final LongSparseLongArray array = new LongSparseLongArray(5);
for (int i = 0; i < 48; i++) {
@@ -74,6 +82,7 @@
assertEquals(1024, array.get(special, -1));
}
+ @Test
public void testFuzz() throws Exception {
final Random r = new Random();
diff --git a/core/tests/coretests/src/android/util/LruCacheTest.java b/core/tests/coretests/src/android/util/LruCacheTest.java
index 1928bfd..10e8308 100644
--- a/core/tests/coretests/src/android/util/LruCacheTest.java
+++ b/core/tests/coretests/src/android/util/LruCacheTest.java
@@ -16,7 +16,14 @@
package android.util;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.fail;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.ArrayList;
import java.util.Arrays;
@@ -24,13 +31,15 @@
import java.util.List;
import java.util.Map;
-public final class LruCacheTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public final class LruCacheTest {
private int expectedCreateCount;
private int expectedPutCount;
private int expectedHitCount;
private int expectedMissCount;
private int expectedEvictionCount;
+ @Test
public void testStatistics() {
LruCache<String, String> cache = new LruCache<String, String>(3);
assertStatistics(cache);
@@ -80,6 +89,7 @@
assertSnapshot(cache, "e", "E", "b", "B", "c", "C");
}
+ @Test
public void testStatisticsWithCreate() {
LruCache<String, String> cache = newCreatingCache();
assertStatistics(cache);
@@ -104,18 +114,21 @@
assertSnapshot(cache, "cc", "created-cc", "dd", "created-dd", "aa", "created-aa");
}
+ @Test
public void testCreateOnCacheMiss() {
LruCache<String, String> cache = newCreatingCache();
String created = cache.get("aa");
assertEquals("created-aa", created);
}
+ @Test
public void testNoCreateOnCacheHit() {
LruCache<String, String> cache = newCreatingCache();
cache.put("aa", "put-aa");
assertEquals("put-aa", cache.get("aa"));
}
+ @Test
public void testConstructorDoesNotAllowZeroCacheSize() {
try {
new LruCache<String, String>(0);
@@ -124,6 +137,7 @@
}
}
+ @Test
public void testCannotPutNullKey() {
LruCache<String, String> cache = new LruCache<String, String>(3);
try {
@@ -133,6 +147,7 @@
}
}
+ @Test
public void testCannotPutNullValue() {
LruCache<String, String> cache = new LruCache<String, String>(3);
try {
@@ -142,6 +157,7 @@
}
}
+ @Test
public void testToString() {
LruCache<String, String> cache = new LruCache<String, String>(3);
assertEquals("LruCache[maxSize=3,hits=0,misses=0,hitRate=0%]", cache.toString());
@@ -160,6 +176,7 @@
assertEquals("LruCache[maxSize=3,hits=3,misses=2,hitRate=60%]", cache.toString());
}
+ @Test
public void testEvictionWithSingletonCache() {
LruCache<String, String> cache = new LruCache<String, String>(1);
cache.put("a", "A");
@@ -167,6 +184,7 @@
assertSnapshot(cache, "b", "B");
}
+ @Test
public void testEntryEvictedWhenFull() {
List<String> log = new ArrayList<String>();
LruCache<String, String> cache = newRemovalLogCache(log);
@@ -184,6 +202,7 @@
* Replacing the value for a key doesn't cause an eviction but it does bring
* the replaced entry to the front of the queue.
*/
+ @Test
public void testPutCauseEviction() {
List<String> log = new ArrayList<String>();
LruCache<String, String> cache = newRemovalLogCache(log);
@@ -196,6 +215,7 @@
assertSnapshot(cache, "a", "A", "c", "C", "b", "B2");
}
+ @Test
public void testCustomSizesImpactsSize() {
LruCache<String, String> cache = new LruCache<String, String>(10) {
@Override protected int sizeOf(String key, String value) {
@@ -212,6 +232,7 @@
assertEquals(6, cache.size());
}
+ @Test
public void testEvictionWithCustomSizes() {
LruCache<String, String> cache = new LruCache<String, String>(4) {
@Override protected int sizeOf(String key, String value) {
@@ -241,6 +262,7 @@
assertSnapshot(cache, "j", "JJJ");
}
+ @Test
public void testEvictionThrowsWhenSizesAreInconsistent() {
LruCache<String, int[]> cache = new LruCache<String, int[]>(4) {
@Override protected int sizeOf(String key, int[] value) {
@@ -263,6 +285,7 @@
}
}
+ @Test
public void testEvictionThrowsWhenSizesAreNegative() {
LruCache<String, String> cache = new LruCache<String, String>(4) {
@Override protected int sizeOf(String key, String value) {
@@ -282,6 +305,7 @@
* because evicting a small element may be insufficient to make room for a
* large element.
*/
+ @Test
public void testDifferentElementSizes() {
LruCache<String, String> cache = new LruCache<String, String>(10) {
@Override protected int sizeOf(String key, String value) {
@@ -299,6 +323,7 @@
assertSnapshot(cache, "e", "12345678");
}
+ @Test
public void testEvictAll() {
List<String> log = new ArrayList<String>();
LruCache<String, String> cache = newRemovalLogCache(log);
@@ -310,6 +335,7 @@
assertEquals(Arrays.asList("a=A", "b=B", "c=C"), log);
}
+ @Test
public void testEvictAllEvictsSizeZeroElements() {
LruCache<String, String> cache = new LruCache<String, String>(10) {
@Override protected int sizeOf(String key, String value) {
@@ -323,6 +349,7 @@
assertSnapshot(cache);
}
+ @Test
public void testRemoveWithCustomSizes() {
LruCache<String, String> cache = new LruCache<String, String>(10) {
@Override protected int sizeOf(String key, String value) {
@@ -335,6 +362,7 @@
assertEquals(4, cache.size());
}
+ @Test
public void testRemoveAbsentElement() {
LruCache<String, String> cache = new LruCache<String, String>(10);
cache.put("a", "A");
@@ -343,6 +371,7 @@
assertEquals(2, cache.size());
}
+ @Test
public void testRemoveNullThrows() {
LruCache<String, String> cache = new LruCache<String, String>(10);
try {
@@ -352,6 +381,7 @@
}
}
+ @Test
public void testRemoveCallsEntryRemoved() {
List<String> log = new ArrayList<String>();
LruCache<String, String> cache = newRemovalLogCache(log);
@@ -360,6 +390,7 @@
assertEquals(Arrays.asList("a=A>null"), log);
}
+ @Test
public void testPutCallsEntryRemoved() {
List<String> log = new ArrayList<String>();
LruCache<String, String> cache = newRemovalLogCache(log);
@@ -368,6 +399,7 @@
assertEquals(Arrays.asList("a=A>A2"), log);
}
+ @Test
public void testEntryRemovedIsCalledWithoutSynchronization() {
LruCache<String, String> cache = new LruCache<String, String>(3) {
@Override protected void entryRemoved(
@@ -385,6 +417,7 @@
cache.evictAll(); // multiple eviction
}
+ @Test
public void testCreateIsCalledWithoutSynchronization() {
LruCache<String, String> cache = new LruCache<String, String>(3) {
@Override protected String create(String key) {
@@ -401,6 +434,7 @@
* working. The map value should be returned by get(), and the created value
* should be released with entryRemoved().
*/
+ @Test
public void testCreateWithConcurrentPut() {
final List<String> log = new ArrayList<String>();
LruCache<String, String> cache = new LruCache<String, String>(3) {
@@ -423,6 +457,7 @@
* the first create to return is returned by both gets. The other created
* values should be released with entryRemove().
*/
+ @Test
public void testCreateWithConcurrentCreate() {
final List<String> log = new ArrayList<String>();
LruCache<String, Integer> cache = new LruCache<String, Integer>(3) {
diff --git a/core/tests/coretests/src/android/util/MonthDisplayHelperTest.java b/core/tests/coretests/src/android/util/MonthDisplayHelperTest.java
index 30d5f77..06f970f 100644
--- a/core/tests/coretests/src/android/util/MonthDisplayHelperTest.java
+++ b/core/tests/coretests/src/android/util/MonthDisplayHelperTest.java
@@ -16,18 +16,26 @@
package android.util;
-import androidx.test.filters.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
-import junit.framework.TestCase;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.Calendar;
/**
* Unit tests for {@link MonthDisplayHelper}.
*/
-public class MonthDisplayHelperTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class MonthDisplayHelperTest {
+ @Test
@SmallTest
public void testFirstDayOfMonth() {
@@ -40,12 +48,14 @@
new MonthDisplayHelper(2007, Calendar.SEPTEMBER).getFirstDayOfMonth());
}
+ @Test
@SmallTest
public void testNumberOfDaysInCurrentMonth() {
assertEquals(30,
new MonthDisplayHelper(2007, Calendar.SEPTEMBER).getNumberOfDaysInMonth());
}
+ @Test
@SmallTest
public void testMonthRows() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007, Calendar.SEPTEMBER);
@@ -59,6 +69,7 @@
}
+ @Test
@SmallTest
public void testMonthRowsWeekStartsMonday() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -74,6 +85,7 @@
helper.getDigitsForRow(5));
}
+ @Test
@SmallTest
public void testMonthRowsWeekStartsSaturday() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -98,6 +110,7 @@
helper.getDigitsForRow(4));
}
+ @Test
@SmallTest
public void testGetDayAt() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -109,6 +122,7 @@
assertEquals(2, helper.getDayAt(5, 2));
}
+ @Test
@SmallTest
public void testPrevMonth() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -124,6 +138,7 @@
helper.getDigitsForRow(0));
}
+ @Test
@SmallTest
public void testPrevMonthRollOver() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -135,6 +150,7 @@
assertEquals(Calendar.DECEMBER, helper.getMonth());
}
+ @Test
@SmallTest
public void testNextMonth() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -150,6 +166,7 @@
helper.getDigitsForRow(0));
}
+ @Test
@SmallTest
public void testGetRowOf() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -162,6 +179,7 @@
assertEquals(3, helper.getRowOf(19));
}
+ @Test
@SmallTest
public void testGetColumnOf() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
@@ -174,6 +192,7 @@
assertEquals(0, helper.getColumnOf(26));
}
+ @Test
@SmallTest
public void testWithinCurrentMonth() {
MonthDisplayHelper helper = new MonthDisplayHelper(2007,
diff --git a/core/tests/coretests/src/android/util/NtpTrustedTimeTest.java b/core/tests/coretests/src/android/util/NtpTrustedTimeTest.java
index 4de27c3..ce1eabc 100644
--- a/core/tests/coretests/src/android/util/NtpTrustedTimeTest.java
+++ b/core/tests/coretests/src/android/util/NtpTrustedTimeTest.java
@@ -31,10 +31,15 @@
import static java.util.Arrays.asList;
import android.net.Network;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
+import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InOrder;
@@ -51,7 +56,10 @@
@SmallTest
@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = NtpTrustedTime.class)
public class NtpTrustedTimeTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
private static final Duration VALID_TIMEOUT = Duration.ofSeconds(5);
diff --git a/core/tests/coretests/src/android/util/PatternsTest.java b/core/tests/coretests/src/android/util/PatternsTest.java
index dd8f73f..a180ec3 100644
--- a/core/tests/coretests/src/android/util/PatternsTest.java
+++ b/core/tests/coretests/src/android/util/PatternsTest.java
@@ -16,17 +16,25 @@
package android.util;
-import androidx.test.filters.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
-import junit.framework.TestCase;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-public class PatternsTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class PatternsTest {
// Tests for Patterns.TOP_LEVEL_DOMAIN
+ @Test
@SmallTest
public void testTldPattern() throws Exception {
boolean t;
@@ -58,36 +66,42 @@
// Tests for Patterns.IANA_TOP_LEVEL_DOMAINS
+ @Test
@SmallTest
public void testIanaTopLevelDomains_matchesValidTld() throws Exception {
Pattern pattern = Pattern.compile(Patterns.IANA_TOP_LEVEL_DOMAINS);
assertTrue("Should match 'com'", pattern.matcher("com").matches());
}
+ @Test
@SmallTest
public void testIanaTopLevelDomains_matchesValidNewTld() throws Exception {
Pattern pattern = Pattern.compile(Patterns.IANA_TOP_LEVEL_DOMAINS);
assertTrue("Should match 'me'", pattern.matcher("me").matches());
}
+ @Test
@SmallTest
public void testIanaTopLevelDomains_matchesPunycodeTld() throws Exception {
Pattern pattern = Pattern.compile(Patterns.IANA_TOP_LEVEL_DOMAINS);
assertTrue("Should match Punycode TLD", pattern.matcher("xn--qxam").matches());
}
+ @Test
@SmallTest
public void testIanaTopLevelDomains_matchesIriTLD() throws Exception {
Pattern pattern = Pattern.compile(Patterns.IANA_TOP_LEVEL_DOMAINS);
assertTrue("Should match IRI TLD", pattern.matcher("\uD55C\uAD6D").matches());
}
+ @Test
@SmallTest
public void testIanaTopLevelDomains_doesNotMatchWrongTld() throws Exception {
Pattern pattern = Pattern.compile(Patterns.IANA_TOP_LEVEL_DOMAINS);
assertFalse("Should not match 'mem'", pattern.matcher("mem").matches());
}
+ @Test
@SmallTest
public void testIanaTopLevelDomains_doesNotMatchWrongPunycodeTld() throws Exception {
Pattern pattern = Pattern.compile(Patterns.IANA_TOP_LEVEL_DOMAINS);
@@ -96,6 +110,7 @@
// Tests for Patterns.WEB_URL
+ @Test
@SmallTest
public void testWebUrl_matchesValidUrlWithSchemeAndHostname() throws Exception {
String url = "http://www.android.com";
@@ -103,6 +118,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesValidUrlWithSchemeHostnameAndNewTld() throws Exception {
String url = "http://www.android.me";
@@ -110,6 +126,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesValidUrlWithHostnameAndNewTld() throws Exception {
String url = "android.me";
@@ -117,6 +134,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesChinesePunycodeUrlWithProtocol() throws Exception {
String url = "http://xn--fsqu00a.xn--0zwm56d";
@@ -124,6 +142,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesChinesePunycodeUrlWithoutProtocol() throws Exception {
String url = "xn--fsqu00a.xn--0zwm56d";
@@ -131,6 +150,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesArabicPunycodeUrlWithProtocol() throws Exception {
String url = "http://xn--4gbrim.xn----rmckbbajlc6dj7bxne2c.xn--wgbh1c/ar/default.aspx";
@@ -138,6 +158,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesArabicPunycodeUrlWithoutProtocol() throws Exception {
String url = "xn--4gbrim.xn----rmckbbajlc6dj7bxne2c.xn--wgbh1c/ar/default.aspx";
@@ -145,6 +166,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesUrlWithUnicodeDomainNameWithProtocol() throws Exception {
String url = "http://\uD604\uAE08\uC601\uC218\uC99D.kr";
@@ -152,6 +174,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesUrlWithUnicodeDomainNameWithoutProtocol() throws Exception {
String url = "\uD604\uAE08\uC601\uC218\uC99D.kr";
@@ -159,6 +182,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesUrlWithUnicodeTld() throws Exception {
String url = "\uB3C4\uBA54\uC778.\uD55C\uAD6D";
@@ -166,6 +190,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesUrlWithUnicodePath() throws Exception {
String url = "http://brainstormtech.blogs.fortune.cnn.com/2010/03/11/" +
@@ -174,19 +199,22 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_doesNotMatchValidUrlWithInvalidProtocol() throws Exception {
- String url = "ftp://www.example.com";
+ String url = "invalid://www.example.com";
assertFalse("Should not match URL with invalid protocol",
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesValidUrlWithPort() throws Exception {
String url = "http://www.example.com:8080";
assertTrue("Should match URL with port", Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesUrlWithPortAndQuery() throws Exception {
String url = "http://www.example.com:8080/?foo=bar";
@@ -194,12 +222,14 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesUrlWithTilde() throws Exception {
String url = "http://www.example.com:8080/~user/?foo=bar";
assertTrue("Should match URL with tilde", Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesProtocolCaseInsensitive() throws Exception {
String url = "hTtP://android.com";
@@ -207,6 +237,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesDomainNameWithDash() throws Exception {
String url = "http://a-nd.r-oid.com";
@@ -218,6 +249,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesDomainNameWithUnderscore() throws Exception {
String url = "http://a_nd.r_oid.com";
@@ -229,6 +261,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesPathAndQueryWithDollarSign() throws Exception {
String url = "http://android.com/path$?v=$val";
@@ -240,6 +273,7 @@
Patterns.WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testWebUrl_matchesEmptyPathWithQueryParams() throws Exception {
String url = "http://android.com?q=v";
@@ -261,6 +295,7 @@
// Tests for Patterns.AUTOLINK_WEB_URL
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesValidUrlWithSchemeAndHostname() throws Exception {
String url = "http://www.android.com";
@@ -268,6 +303,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesValidUrlWithSchemeHostnameAndNewTld() throws Exception {
String url = "http://www.android.me";
@@ -275,6 +311,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesValidUrlWithHostnameAndNewTld() throws Exception {
String url = "android.me";
@@ -286,6 +323,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesChinesePunycodeUrlWithProtocol() throws Exception {
String url = "http://xn--fsqu00a.xn--0zwm56d";
@@ -293,6 +331,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesChinesePunycodeUrlWithoutProtocol() throws Exception {
String url = "xn--fsqu00a.xn--0zwm56d";
@@ -300,6 +339,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesArabicPunycodeUrlWithProtocol() throws Exception {
String url = "http://xn--4gbrim.xn--rmckbbajlc6dj7bxne2c.xn--wgbh1c/ar/default.aspx";
@@ -307,6 +347,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesArabicPunycodeUrlWithoutProtocol() throws Exception {
String url = "xn--4gbrim.xn--rmckbbajlc6dj7bxne2c.xn--wgbh1c/ar/default.aspx";
@@ -314,6 +355,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchPunycodeTldThatStartsWithDash() throws Exception {
String url = "http://xn--fsqu00a.-xn--0zwm56d";
@@ -321,6 +363,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchPunycodeTldThatEndsWithDash() throws Exception {
String url = "http://xn--fsqu00a.xn--0zwm56d-";
@@ -328,6 +371,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesUrlWithUnicodeDomainName() throws Exception {
String url = "http://\uD604\uAE08\uC601\uC218\uC99D.kr";
@@ -339,6 +383,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesUrlWithUnicodeTld() throws Exception {
String url = "\uB3C4\uBA54\uC778.\uD55C\uAD6D";
@@ -346,6 +391,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesUrlWithUnicodePath() throws Exception {
String url = "http://brainstormtech.blogs.fortune.cnn.com/2010/03/11/" +
@@ -354,13 +400,15 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchValidUrlWithInvalidProtocol() throws Exception {
- String url = "ftp://www.example.com";
+ String url = "invalid://www.example.com";
assertFalse("Should not match URL with invalid protocol",
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesValidUrlWithPort() throws Exception {
String url = "http://www.example.com:8080";
@@ -368,6 +416,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesUrlWithPortAndQuery() throws Exception {
String url = "http://www.example.com:8080/?foo=bar";
@@ -375,6 +424,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesUrlWithTilde() throws Exception {
String url = "http://www.example.com:8080/~user/?foo=bar";
@@ -382,6 +432,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesProtocolCaseInsensitive() throws Exception {
String url = "hTtP://android.com";
@@ -389,6 +440,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesUrlStartingWithHttpAndDoesNotHaveTld() throws Exception {
String url = "http://android/#notld///a/n/d/r/o/i/d&p1=1&p2=2";
@@ -396,6 +448,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchUrlsWithoutProtocolAndWithUnknownTld()
throws Exception {
@@ -405,13 +458,15 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotPartiallyMatchUnknownProtocol() throws Exception {
- String url = "ftp://foo.bar/baz";
+ String url = "invalid://foo.bar/baz";
assertFalse("Should not partially match URL with unknown protocol",
Patterns.AUTOLINK_WEB_URL.matcher(url).find());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesValidUrlWithEmoji() throws Exception {
String url = "Thank\u263A.com";
@@ -419,6 +474,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchUrlsWithEmojiWithoutProtocolAndWithoutKnownTld()
throws Exception {
@@ -427,6 +483,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchEmailAddress()
throws Exception {
@@ -435,6 +492,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesDomainNameWithSurrogatePairs() throws Exception {
String url = "android\uD83C\uDF38.com";
@@ -442,6 +500,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesTldWithSurrogatePairs() throws Exception {
String url = "http://android.\uD83C\uDF38com";
@@ -449,6 +508,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesPathWithSurrogatePairs() throws Exception {
String url = "http://android.com/path-with-\uD83C\uDF38?v=\uD83C\uDF38";
@@ -456,6 +516,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchUrlWithExcludedSurrogate() throws Exception {
String url = "http://android\uD83F\uDFFE.com";
@@ -463,6 +524,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_doesNotMatchUnicodeSpaces() throws Exception {
String part1 = "http://and";
@@ -493,6 +555,7 @@
}
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesDomainNameWithDash() throws Exception {
String url = "http://a-nd.r-oid.com";
@@ -504,6 +567,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesDomainNameWithUnderscore() throws Exception {
String url = "http://a_nd.r_oid.com";
@@ -515,6 +579,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesPathAndQueryWithDollarSign() throws Exception {
String url = "http://android.com/path$?v=$val";
@@ -526,6 +591,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testAutoLinkWebUrl_matchesEmptyPathWithQueryParams() throws Exception {
String url = "http://android.com?q=v";
@@ -547,6 +613,7 @@
// Tests for Patterns.IP_ADDRESS
+ @Test
@SmallTest
public void testIpPattern() throws Exception {
boolean t;
@@ -560,6 +627,7 @@
// Tests for Patterns.DOMAIN_NAME
+ @Test
@SmallTest
public void testDomain_matchesPunycodeTld() throws Exception {
String domain = "xn--fsqu00a.xn--0zwm56d";
@@ -567,6 +635,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_doesNotMatchPunycodeThatStartsWithDash() throws Exception {
String domain = "xn--fsqu00a.-xn--0zwm56d";
@@ -574,6 +643,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_doesNotMatchPunycodeThatEndsWithDash() throws Exception {
String domain = "xn--fsqu00a.xn--0zwm56d-";
@@ -581,6 +651,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_doesNotMatchPunycodeLongerThanAllowed() throws Exception {
String tld = "xn--";
@@ -592,6 +663,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_matchesObsoleteTld() throws Exception {
String domain = "test.yu";
@@ -599,6 +671,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_matchesWithSubDomain() throws Exception {
String domain = "mail.example.com";
@@ -606,6 +679,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_matchesWithoutSubDomain() throws Exception {
String domain = "android.me";
@@ -613,6 +687,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_matchesUnicodeDomainNames() throws Exception {
String domain = "\uD604\uAE08\uC601\uC218\uC99D.kr";
@@ -620,6 +695,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_doesNotMatchInvalidDomain() throws Exception {
String domain = "__+&42.xer";
@@ -627,6 +703,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_matchesPunycodeArabicDomainName() throws Exception {
String domain = "xn--4gbrim.xn----rmckbbajlc6dj7bxne2c.xn--wgbh1c";
@@ -634,6 +711,7 @@
Patterns.DOMAIN_NAME.matcher(domain).matches());
}
+ @Test
@SmallTest
public void testDomain_matchesDomainNameWithDash() throws Exception {
String url = "http://a-nd.r-oid.com";
@@ -645,6 +723,7 @@
Patterns.AUTOLINK_WEB_URL.matcher(url).matches());
}
+ @Test
@SmallTest
public void testDomain_matchesDomainNameWithUnderscore() throws Exception {
String url = "http://a_nd.r_oid.com";
@@ -658,6 +737,7 @@
// Tests for Patterns.AUTOLINK_EMAIL_ADDRESS
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesShortValidEmail() throws Exception {
String email = "a@a.co";
@@ -665,6 +745,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesRegularEmail() throws Exception {
String email = "email@android.com";
@@ -672,6 +753,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesEmailWithMultipleSubdomains() throws Exception {
String email = "email@e.somelongdomainnameforandroid.abc.uk";
@@ -679,6 +761,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithDot() throws Exception {
String email = "e.mail@android.com";
@@ -686,6 +769,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithPlus() throws Exception {
String email = "e+mail@android.com";
@@ -693,6 +777,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithUnderscore() throws Exception {
String email = "e_mail@android.com";
@@ -700,6 +785,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithDash() throws Exception {
String email = "e-mail@android.com";
@@ -707,6 +793,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithApostrophe() throws Exception {
String email = "e'mail@android.com";
@@ -714,6 +801,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithDigits() throws Exception {
String email = "123@android.com";
@@ -721,6 +809,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesUnicodeLocalPart() throws Exception {
String email = "\uD604\uAE08\uC601\uC218\uC99D@android.kr";
@@ -728,6 +817,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithEmoji() throws Exception {
String email = "smiley\u263A@android.com";
@@ -735,6 +825,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartWithSurrogatePairs() throws Exception {
String email = "\uD83C\uDF38@android.com";
@@ -742,6 +833,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesDomainWithDash() throws Exception {
String email = "email@an-droid.com";
@@ -749,6 +841,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesUnicodeDomain() throws Exception {
String email = "email@\uD604\uAE08\uC601\uC218\uC99D.kr";
@@ -756,6 +849,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesUnicodeLocalPartAndDomain() throws Exception {
String email = "\uD604\uAE08\uC601\uC218\uC99D@\uD604\uAE08\uC601\uC218\uC99D.kr";
@@ -763,6 +857,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesDomainWithEmoji() throws Exception {
String email = "smiley@\u263Aandroid.com";
@@ -770,6 +865,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesDomainWithSurrogatePairs() throws Exception {
String email = "email@\uD83C\uDF38android.com";
@@ -777,6 +873,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartAndDomainWithSurrogatePairs()
throws Exception {
@@ -785,6 +882,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchStringWithoutAtSign() throws Exception {
String email = "android.com";
@@ -792,6 +890,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchPlainString() throws Exception {
String email = "email";
@@ -799,6 +898,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchStringWithMultipleAtSigns() throws Exception {
String email = "email@android@android.com";
@@ -806,6 +906,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchEmailWithoutTld() throws Exception {
String email = "email@android";
@@ -813,6 +914,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchLocalPartEndingWithDot() throws Exception {
String email = "email.@android.com";
@@ -820,6 +922,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchLocalPartStartingWithDot() throws Exception {
String email = ".email@android.com";
@@ -827,6 +930,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchDomainStartingWithDash() throws Exception {
String email = "email@-android.com";
@@ -834,6 +938,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchDomainWithConsecutiveDots() throws Exception {
String email = "email@android..com";
@@ -841,6 +946,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchEmailWithIpAsDomain() throws Exception {
String email = "email@127.0.0.1";
@@ -848,6 +954,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_doesNotMatchEmailWithInvalidTld() throws Exception {
String email = "email@android.c";
@@ -855,6 +962,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesLocalPartUpTo64Chars() throws Exception {
String localPart = "";
@@ -871,6 +979,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesSubdomainUpTo63Chars() throws Exception {
String subdomain = "";
@@ -888,6 +997,7 @@
Patterns.AUTOLINK_EMAIL_ADDRESS.matcher(email).matches());
}
+ @Test
@SmallTest
public void testAutoLinkEmailAddress_matchesDomainUpTo255Chars() throws Exception {
String longDomain = "";
@@ -909,6 +1019,7 @@
// Tests for Patterns.PHONE
+ @Test
@SmallTest
public void testPhonePattern() throws Exception {
boolean t;
diff --git a/core/tests/coretests/src/android/util/RecurrenceRuleTest.java b/core/tests/coretests/src/android/util/RecurrenceRuleTest.java
index caa1208..32548b4 100644
--- a/core/tests/coretests/src/android/util/RecurrenceRuleTest.java
+++ b/core/tests/coretests/src/android/util/RecurrenceRuleTest.java
@@ -16,9 +16,17 @@
package android.util;
-import androidx.test.filters.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
-import junit.framework.TestCase;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.time.Clock;
import java.time.Instant;
@@ -28,19 +36,18 @@
import java.util.Iterator;
@SmallTest
-public class RecurrenceRuleTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class RecurrenceRuleTest {
static Clock sOriginalClock;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @Before
+ public void setUp() throws Exception {
sOriginalClock = RecurrenceRule.sClock;
}
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
+ @After
+ public void tearDown() throws Exception {
RecurrenceRule.sClock = sOriginalClock;
}
@@ -48,6 +55,7 @@
RecurrenceRule.sClock = Clock.fixed(instant, ZoneId.systemDefault());
}
+ @Test
public void testSimpleMonth() throws Exception {
setClock(Instant.parse("2015-11-20T10:15:30.00Z"));
final RecurrenceRule r = new RecurrenceRule(
@@ -68,6 +76,7 @@
ZonedDateTime.parse("2015-11-14T00:00:00.00Z")), it.next());
}
+ @Test
public void testSimpleDays() throws Exception {
setClock(Instant.parse("2015-01-01T10:15:30.00Z"));
final RecurrenceRule r = new RecurrenceRule(
@@ -89,6 +98,7 @@
assertFalse(it.hasNext());
}
+ @Test
public void testNotRecurring() throws Exception {
setClock(Instant.parse("2015-01-01T10:15:30.00Z"));
final RecurrenceRule r = new RecurrenceRule(
@@ -106,6 +116,7 @@
assertFalse(it.hasNext());
}
+ @Test
public void testNever() throws Exception {
setClock(Instant.parse("2015-01-01T10:15:30.00Z"));
final RecurrenceRule r = RecurrenceRule.buildNever();
@@ -116,6 +127,7 @@
assertFalse(it.hasNext());
}
+ @Test
public void testSane() throws Exception {
final RecurrenceRule r = new RecurrenceRule(
ZonedDateTime.parse("1980-01-31T00:00:00.000Z"),
diff --git a/core/tests/coretests/src/android/util/SparseSetArrayTest.java b/core/tests/coretests/src/android/util/SparseSetArrayTest.java
index 3c17486a..1df1090 100644
--- a/core/tests/coretests/src/android/util/SparseSetArrayTest.java
+++ b/core/tests/coretests/src/android/util/SparseSetArrayTest.java
@@ -17,9 +17,13 @@
import static com.google.common.truth.Truth.assertThat;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -29,6 +33,9 @@
@SmallTest
@RunWith(AndroidJUnit4.class)
public class SparseSetArrayTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
@Test
public void testAddAll() {
final SparseSetArray<Integer> sparseSetArray = new SparseSetArray<>();
@@ -51,6 +58,7 @@
}
@Test
+ @IgnoreUnderRavenwood(reason = "b/315036461")
public void testCopyConstructor() {
final SparseSetArray<Integer> sparseSetArray = new SparseSetArray<>();
diff --git a/core/tests/coretests/src/android/util/StateSetTest.java b/core/tests/coretests/src/android/util/StateSetTest.java
index b5d6270..dfd1523 100644
--- a/core/tests/coretests/src/android/util/StateSetTest.java
+++ b/core/tests/coretests/src/android/util/StateSetTest.java
@@ -16,16 +16,29 @@
package android.util;
-import androidx.test.filters.SmallTest;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
-import junit.framework.TestCase;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* Tests for {@link StateSet}
*/
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = StateSet.class)
+public class StateSetTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
-public class StateSetTest extends TestCase {
-
+ @Test
@SmallTest
public void testStateSetPositiveMatches() throws Exception {
int[] stateSpec = new int[2];
@@ -48,6 +61,7 @@
assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
}
+ @Test
@SmallTest
public void testStatesSetMatchMixEmUp() throws Exception {
int[] stateSpec = new int[2];
@@ -70,6 +84,7 @@
assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
}
+ @Test
@SmallTest
public void testStateSetNegativeMatches() throws Exception {
int[] stateSpec = new int[2];
@@ -92,6 +107,7 @@
assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
}
+ @Test
@SmallTest
public void testEmptySetMatchesNegtives() throws Exception {
int[] stateSpec = {-12345, -6789};
@@ -101,6 +117,7 @@
assertTrue(StateSet.stateSetMatches(stateSpec, stateSet2));
}
+ @Test
@SmallTest
public void testEmptySetFailsPositives() throws Exception {
int[] stateSpec = {12345};
@@ -110,6 +127,7 @@
assertFalse(StateSet.stateSetMatches(stateSpec, stateSet2));
}
+ @Test
@SmallTest
public void testEmptySetMatchesWildcard() throws Exception {
int[] stateSpec = StateSet.WILD_CARD;
@@ -119,6 +137,7 @@
assertTrue(StateSet.stateSetMatches(stateSpec, stateSet2));
}
+ @Test
@SmallTest
public void testSingleStatePositiveMatches() throws Exception {
int[] stateSpec = new int[2];
@@ -135,6 +154,7 @@
assertFalse(StateSet.stateSetMatches(stateSpec, state));
}
+ @Test
@SmallTest
public void testSingleStateNegativeMatches() throws Exception {
int[] stateSpec = new int[2];
@@ -151,6 +171,7 @@
assertTrue(StateSet.stateSetMatches(stateSpec, state));
}
+ @Test
@SmallTest
public void testZeroStateOnlyMatchesDefault() throws Exception {
int[] stateSpec = new int[3];
@@ -166,6 +187,7 @@
assertTrue(StateSet.stateSetMatches(stateSpec, state));
}
+ @Test
@SmallTest
public void testNullStateOnlyMatchesDefault() throws Exception {
int[] stateSpec = new int[3];
diff --git a/core/tests/coretests/src/android/util/apk/SourceStampVerifierTest.java b/core/tests/coretests/src/android/util/apk/SourceStampVerifierTest.java
index e0c583d..48e76f7 100644
--- a/core/tests/coretests/src/android/util/apk/SourceStampVerifierTest.java
+++ b/core/tests/coretests/src/android/util/apk/SourceStampVerifierTest.java
@@ -26,12 +26,16 @@
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
import android.content.Context;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import androidx.test.core.app.ApplicationProvider;
import libcore.io.Streams;
import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -48,13 +52,21 @@
/** Unit test for {@link android.util.apk.SourceStampVerifier} */
@RunWith(JUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = SourceStampVerifier.class)
public class SourceStampVerifierTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
- private final Context mContext = ApplicationProvider.getApplicationContext();
+ private Context mContext;
private File mPrimaryApk;
private File mSecondaryApk;
+ @Before
+ public void setUp() throws Exception {
+ mContext = ApplicationProvider.getApplicationContext();
+ }
+
@After
public void tearDown() throws Exception {
if (mPrimaryApk != null) {
diff --git a/core/tests/coretests/src/android/view/menu/MenuScenario.java b/core/tests/coretests/src/android/view/menu/MenuScenario.java
index 668aec4..a1615af 100644
--- a/core/tests/coretests/src/android/view/menu/MenuScenario.java
+++ b/core/tests/coretests/src/android/view/menu/MenuScenario.java
@@ -18,7 +18,7 @@
import android.app.Activity;
import android.os.Bundle;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.util.SparseArray;
import android.view.Menu;
import android.view.MenuItem;
diff --git a/core/tests/coretests/src/android/util/GridScenario.java b/core/tests/coretests/src/android/widget/GridScenario.java
similarity index 99%
rename from core/tests/coretests/src/android/util/GridScenario.java
rename to core/tests/coretests/src/android/widget/GridScenario.java
index e7ee1cd..d740808 100644
--- a/core/tests/coretests/src/android/util/GridScenario.java
+++ b/core/tests/coretests/src/android/widget/GridScenario.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.util;
+package android.widget;
import android.app.Activity;
import android.os.Bundle;
diff --git a/core/tests/coretests/src/android/util/InternalSelectionView.java b/core/tests/coretests/src/android/widget/InternalSelectionView.java
similarity index 98%
rename from core/tests/coretests/src/android/util/InternalSelectionView.java
rename to core/tests/coretests/src/android/widget/InternalSelectionView.java
index 4a1baef..f2d3182 100644
--- a/core/tests/coretests/src/android/util/InternalSelectionView.java
+++ b/core/tests/coretests/src/android/widget/InternalSelectionView.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.util;
+package android.widget;
import android.content.Context;
import android.content.res.TypedArray;
@@ -22,6 +22,7 @@
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
+import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.View;
diff --git a/core/tests/coretests/src/android/util/ListScenario.java b/core/tests/coretests/src/android/widget/ListScenario.java
similarity index 98%
rename from core/tests/coretests/src/android/util/ListScenario.java
rename to core/tests/coretests/src/android/widget/ListScenario.java
index 74dc4b4..589d90d 100644
--- a/core/tests/coretests/src/android/util/ListScenario.java
+++ b/core/tests/coretests/src/android/widget/ListScenario.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,20 +14,15 @@
* limitations under the License.
*/
-package android.util;
+package android.widget;
import android.app.Activity;
import android.graphics.Rect;
import android.os.Bundle;
+import android.util.ListItemFactory;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import android.widget.TextView;
import com.google.android.collect.Maps;
diff --git a/core/tests/coretests/src/android/util/ScrollViewScenario.java b/core/tests/coretests/src/android/widget/ScrollViewScenario.java
similarity index 98%
rename from core/tests/coretests/src/android/util/ScrollViewScenario.java
rename to core/tests/coretests/src/android/widget/ScrollViewScenario.java
index ab1a642..ff2ab05 100644
--- a/core/tests/coretests/src/android/util/ScrollViewScenario.java
+++ b/core/tests/coretests/src/android/widget/ScrollViewScenario.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.util;
+package android.widget;
import android.app.Activity;
import android.content.Context;
@@ -23,6 +23,7 @@
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
+import android.widget.InternalSelectionView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
diff --git a/core/tests/coretests/src/android/widget/focus/AdjacentVerticalRectLists.java b/core/tests/coretests/src/android/widget/focus/AdjacentVerticalRectLists.java
index 85a4509..7e2f293 100644
--- a/core/tests/coretests/src/android/widget/focus/AdjacentVerticalRectLists.java
+++ b/core/tests/coretests/src/android/widget/focus/AdjacentVerticalRectLists.java
@@ -18,7 +18,7 @@
import android.app.Activity;
import android.os.Bundle;
-import android.util.InternalSelectionView;
+import android.widget.InternalSelectionView;
import android.view.ViewGroup;
import android.widget.LinearLayout;
@@ -30,7 +30,7 @@
* rectangle of the previously focused view. The view taking focus can use this
* to set an internal selection more appropriate using this rect.
*
- * This Activity excercises that behavior using three adjacent {@link android.util.InternalSelectionView}
+ * This Activity excercises that behavior using three adjacent {@link InternalSelectionView}
* that report interesting rects when giving up focus, and use interesting rects
* when taking focus to best select the internal row to show as selected.
*/
diff --git a/core/tests/coretests/src/android/widget/focus/FocusChangeWithInterestingRectHintTest.java b/core/tests/coretests/src/android/widget/focus/FocusChangeWithInterestingRectHintTest.java
index 26dc233..16a0b35 100644
--- a/core/tests/coretests/src/android/widget/focus/FocusChangeWithInterestingRectHintTest.java
+++ b/core/tests/coretests/src/android/widget/focus/FocusChangeWithInterestingRectHintTest.java
@@ -17,7 +17,7 @@
package android.widget.focus;
import android.test.ActivityInstrumentationTestCase;
-import android.util.InternalSelectionView;
+import android.widget.InternalSelectionView;
import android.view.KeyEvent;
import androidx.test.filters.LargeTest;
@@ -31,7 +31,7 @@
* rectangle of the previously focused view. The view taking focus can use this
* to set an internal selection more appropriate using this rect.
*
- * This tests that behavior using three adjacent {@link android.util.InternalSelectionView}
+ * This tests that behavior using three adjacent {@link InternalSelectionView}
* that report interesting rects when giving up focus, and use interesting rects
* when taking focus to best select the internal row to show as selected.
*
diff --git a/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java b/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
index c5e69b6..4231b40 100644
--- a/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
+++ b/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
@@ -18,7 +18,7 @@
import android.app.Activity;
import android.os.Bundle;
-import android.util.InternalSelectionView;
+import android.widget.InternalSelectionView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
diff --git a/core/tests/coretests/src/android/widget/focus/ScrollingThroughListOfFocusablesTest.java b/core/tests/coretests/src/android/widget/focus/ScrollingThroughListOfFocusablesTest.java
index e6e76cc..46190c4 100644
--- a/core/tests/coretests/src/android/widget/focus/ScrollingThroughListOfFocusablesTest.java
+++ b/core/tests/coretests/src/android/widget/focus/ScrollingThroughListOfFocusablesTest.java
@@ -18,7 +18,7 @@
import android.graphics.Rect;
import android.test.InstrumentationTestCase;
-import android.util.InternalSelectionView;
+import android.widget.InternalSelectionView;
import android.view.KeyEvent;
import android.widget.ListView;
diff --git a/core/tests/coretests/src/android/widget/gridview/GridDelete.java b/core/tests/coretests/src/android/widget/gridview/GridDelete.java
index b040f69..5f4326c 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridDelete.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridDelete.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
diff --git a/core/tests/coretests/src/android/widget/gridview/GridSetSelection.java b/core/tests/coretests/src/android/widget/gridview/GridSetSelection.java
index a3cda3b..140dd7b 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridSetSelection.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridSetSelection.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* Basic stacking from top scenario, nothing fancy. Items do not
diff --git a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionBaseTest.java b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionBaseTest.java
index db4f2dc..1428fea 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionBaseTest.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionBaseTest.java
@@ -18,7 +18,7 @@
import android.test.ActivityInstrumentationTestCase;
import android.test.ViewAsserts;
-import android.util.GridScenario;
+import android.widget.GridScenario;
import android.widget.GridView;
import androidx.test.filters.MediumTest;
diff --git a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionMany.java b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionMany.java
index a6d481f..7176619 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionMany.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionMany.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* Basic stacking from top scenario, nothing fancy. Items do
diff --git a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottom.java b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottom.java
index dfcd5fc..01bb2be 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottom.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottom.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* Basic stacking from bottom scenario, nothing fancy. Items do not
diff --git a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottomMany.java b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottomMany.java
index 26a567e..d79ee88 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottomMany.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridSetSelectionStackFromBottomMany.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* Basic stacking from bottom scenario, nothing fancy. Items do
diff --git a/core/tests/coretests/src/android/widget/gridview/GridSimple.java b/core/tests/coretests/src/android/widget/gridview/GridSimple.java
index 67bb751..6ca7eaa 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridSimple.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridSimple.java
@@ -18,7 +18,7 @@
import android.graphics.drawable.PaintDrawable;
import android.os.Bundle;
-import android.util.GridScenario;
+import android.widget.GridScenario;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
diff --git a/core/tests/coretests/src/android/widget/gridview/GridSingleColumn.java b/core/tests/coretests/src/android/widget/gridview/GridSingleColumn.java
index 566e71b..aaed9ba 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridSingleColumn.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridSingleColumn.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
import android.widget.GridView;
/**
diff --git a/core/tests/coretests/src/android/widget/gridview/GridStackFromBottom.java b/core/tests/coretests/src/android/widget/gridview/GridStackFromBottom.java
index 2f0a88f..457b00d 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridStackFromBottom.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridStackFromBottom.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* Basic bottom stacking from bottom scenario, nothing fancy. Items do not
diff --git a/core/tests/coretests/src/android/widget/gridview/GridStackFromBottomMany.java b/core/tests/coretests/src/android/widget/gridview/GridStackFromBottomMany.java
index 33a9592..9029bc5 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridStackFromBottomMany.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridStackFromBottomMany.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* Basic bottom stacking from bottom scenario, nothing fancy. The grid items do not fit on the
diff --git a/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacing.java b/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacing.java
index 0d01d30..6aa864f 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacing.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacing.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* A grid with vertical spacing between rows
diff --git a/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacingStackFromBottom.java b/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacingStackFromBottom.java
index bd68680..25ef682 100644
--- a/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacingStackFromBottom.java
+++ b/core/tests/coretests/src/android/widget/gridview/GridVerticalSpacingStackFromBottom.java
@@ -16,7 +16,7 @@
package android.widget.gridview;
-import android.util.GridScenario;
+import android.widget.GridScenario;
/**
* A grid with vertical spacing between rows that stacks from the bottom
diff --git a/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java b/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
index 62b93d6..1e57d69 100644
--- a/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
+++ b/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
@@ -18,7 +18,7 @@
import android.app.Activity;
import android.os.Bundle;
-import android.util.InternalSelectionView;
+import android.widget.InternalSelectionView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
diff --git a/core/tests/coretests/src/android/widget/listview/ListBottomGravity.java b/core/tests/coretests/src/android/widget/listview/ListBottomGravity.java
index cd76d70..5d319c5 100644
--- a/core/tests/coretests/src/android/widget/listview/ListBottomGravity.java
+++ b/core/tests/coretests/src/android/widget/listview/ListBottomGravity.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Basic bottom gravity scenario, nothing fancy. Items do not
diff --git a/core/tests/coretests/src/android/widget/listview/ListBottomGravityMany.java b/core/tests/coretests/src/android/widget/listview/ListBottomGravityMany.java
index e048e3e..331fd12 100644
--- a/core/tests/coretests/src/android/widget/listview/ListBottomGravityMany.java
+++ b/core/tests/coretests/src/android/widget/listview/ListBottomGravityMany.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Basic bottom gravity scenario, nothing fancy. There are
diff --git a/core/tests/coretests/src/android/widget/listview/ListButtonsDiagonalAcrossItems.java b/core/tests/coretests/src/android/widget/listview/ListButtonsDiagonalAcrossItems.java
index 8640741..bc7c19f 100644
--- a/core/tests/coretests/src/android/widget/listview/ListButtonsDiagonalAcrossItems.java
+++ b/core/tests/coretests/src/android/widget/listview/ListButtonsDiagonalAcrossItems.java
@@ -19,7 +19,7 @@
import static android.util.ListItemFactory.Slot;
import android.util.ListItemFactory;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
diff --git a/core/tests/coretests/src/android/widget/listview/ListEndingWithMultipleSeparators.java b/core/tests/coretests/src/android/widget/listview/ListEndingWithMultipleSeparators.java
index 85f9924..834f0d1 100644
--- a/core/tests/coretests/src/android/widget/listview/ListEndingWithMultipleSeparators.java
+++ b/core/tests/coretests/src/android/widget/listview/ListEndingWithMultipleSeparators.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
public class ListEndingWithMultipleSeparators extends ListScenario {
diff --git a/core/tests/coretests/src/android/widget/listview/ListGetSelectedView.java b/core/tests/coretests/src/android/widget/listview/ListGetSelectedView.java
index 5639195..abd5d2e 100644
--- a/core/tests/coretests/src/android/widget/listview/ListGetSelectedView.java
+++ b/core/tests/coretests/src/android/widget/listview/ListGetSelectedView.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Basic top gravity scenario. This test is made to check that getSelectedView() will return
diff --git a/core/tests/coretests/src/android/widget/listview/ListHeterogeneous.java b/core/tests/coretests/src/android/widget/listview/ListHeterogeneous.java
index 74eda3b..fd24d61 100644
--- a/core/tests/coretests/src/android/widget/listview/ListHeterogeneous.java
+++ b/core/tests/coretests/src/android/widget/listview/ListHeterogeneous.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.util.ListItemFactory;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
diff --git a/core/tests/coretests/src/android/widget/listview/ListHorizontalFocusWithinItemWins.java b/core/tests/coretests/src/android/widget/listview/ListHorizontalFocusWithinItemWins.java
index e98de9c..7ce5ee3 100644
--- a/core/tests/coretests/src/android/widget/listview/ListHorizontalFocusWithinItemWins.java
+++ b/core/tests/coretests/src/android/widget/listview/ListHorizontalFocusWithinItemWins.java
@@ -20,7 +20,7 @@
import android.content.Context;
import android.util.ListItemFactory;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
diff --git a/core/tests/coretests/src/android/widget/listview/ListInterleaveFocusables.java b/core/tests/coretests/src/android/widget/listview/ListInterleaveFocusables.java
index 0ec7a24..b613741 100644
--- a/core/tests/coretests/src/android/widget/listview/ListInterleaveFocusables.java
+++ b/core/tests/coretests/src/android/widget/listview/ListInterleaveFocusables.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.util.ListItemFactory;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
diff --git a/core/tests/coretests/src/android/widget/listview/ListItemFocusableAboveUnfocusable.java b/core/tests/coretests/src/android/widget/listview/ListItemFocusableAboveUnfocusable.java
index 3159e53..dc40f5f 100644
--- a/core/tests/coretests/src/android/widget/listview/ListItemFocusableAboveUnfocusable.java
+++ b/core/tests/coretests/src/android/widget/listview/ListItemFocusableAboveUnfocusable.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.util.ListItemFactory;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
diff --git a/core/tests/coretests/src/android/widget/listview/ListItemFocusablesClose.java b/core/tests/coretests/src/android/widget/listview/ListItemFocusablesClose.java
index 861e2a91..d21d234 100644
--- a/core/tests/coretests/src/android/widget/listview/ListItemFocusablesClose.java
+++ b/core/tests/coretests/src/android/widget/listview/ListItemFocusablesClose.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.util.ListItemFactory;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
diff --git a/core/tests/coretests/src/android/widget/listview/ListItemFocusablesFarApart.java b/core/tests/coretests/src/android/widget/listview/ListItemFocusablesFarApart.java
index e9c9c1d..0bb080b 100644
--- a/core/tests/coretests/src/android/widget/listview/ListItemFocusablesFarApart.java
+++ b/core/tests/coretests/src/android/widget/listview/ListItemFocusablesFarApart.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.util.ListItemFactory;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
diff --git a/core/tests/coretests/src/android/widget/listview/ListItemISVAndButton.java b/core/tests/coretests/src/android/widget/listview/ListItemISVAndButton.java
index 2a0e013..cbe07cc 100644
--- a/core/tests/coretests/src/android/widget/listview/ListItemISVAndButton.java
+++ b/core/tests/coretests/src/android/widget/listview/ListItemISVAndButton.java
@@ -17,8 +17,8 @@
package android.widget.listview;
import android.content.Context;
-import android.util.InternalSelectionView;
-import android.util.ListScenario;
+import android.widget.InternalSelectionView;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
diff --git a/core/tests/coretests/src/android/widget/listview/ListItemsExpandOnSelection.java b/core/tests/coretests/src/android/widget/listview/ListItemsExpandOnSelection.java
index d80fd90..240119e 100644
--- a/core/tests/coretests/src/android/widget/listview/ListItemsExpandOnSelection.java
+++ b/core/tests/coretests/src/android/widget/listview/ListItemsExpandOnSelection.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.content.Context;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
diff --git a/core/tests/coretests/src/android/widget/listview/ListLastItemPartiallyVisible.java b/core/tests/coretests/src/android/widget/listview/ListLastItemPartiallyVisible.java
index d733749..48c70d6 100644
--- a/core/tests/coretests/src/android/widget/listview/ListLastItemPartiallyVisible.java
+++ b/core/tests/coretests/src/android/widget/listview/ListLastItemPartiallyVisible.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* A list where the very last item is partially visible, but still requires scrolling
diff --git a/core/tests/coretests/src/android/widget/listview/ListOfItemsShorterThanScreen.java b/core/tests/coretests/src/android/widget/listview/ListOfItemsShorterThanScreen.java
index 46decfa..55af8d4 100644
--- a/core/tests/coretests/src/android/widget/listview/ListOfItemsShorterThanScreen.java
+++ b/core/tests/coretests/src/android/widget/listview/ListOfItemsShorterThanScreen.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
public class ListOfItemsShorterThanScreen extends ListScenario {
diff --git a/core/tests/coretests/src/android/widget/listview/ListOfItemsTallerThanScreen.java b/core/tests/coretests/src/android/widget/listview/ListOfItemsTallerThanScreen.java
index 0d88993..2b619e9 100644
--- a/core/tests/coretests/src/android/widget/listview/ListOfItemsTallerThanScreen.java
+++ b/core/tests/coretests/src/android/widget/listview/ListOfItemsTallerThanScreen.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
public class ListOfItemsTallerThanScreen extends ListScenario {
diff --git a/core/tests/coretests/src/android/widget/listview/ListOfShortShortTallShortShort.java b/core/tests/coretests/src/android/widget/listview/ListOfShortShortTallShortShort.java
index 1639aa4..09f56b3 100644
--- a/core/tests/coretests/src/android/widget/listview/ListOfShortShortTallShortShort.java
+++ b/core/tests/coretests/src/android/widget/listview/ListOfShortShortTallShortShort.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Exposes fading in and out multiple items.
diff --git a/core/tests/coretests/src/android/widget/listview/ListOfShortTallShort.java b/core/tests/coretests/src/android/widget/listview/ListOfShortTallShort.java
index 960e129..8ad8fff 100644
--- a/core/tests/coretests/src/android/widget/listview/ListOfShortTallShort.java
+++ b/core/tests/coretests/src/android/widget/listview/ListOfShortTallShort.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Two short items separated by one that is taller than the screen.
diff --git a/core/tests/coretests/src/android/widget/listview/ListOfThinItems.java b/core/tests/coretests/src/android/widget/listview/ListOfThinItems.java
index 007479f..3f703af 100644
--- a/core/tests/coretests/src/android/widget/listview/ListOfThinItems.java
+++ b/core/tests/coretests/src/android/widget/listview/ListOfThinItems.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
public class ListOfThinItems extends ListScenario {
diff --git a/core/tests/coretests/src/android/widget/listview/ListOfTouchables.java b/core/tests/coretests/src/android/widget/listview/ListOfTouchables.java
index 70b9081..f1dcdad 100644
--- a/core/tests/coretests/src/android/widget/listview/ListOfTouchables.java
+++ b/core/tests/coretests/src/android/widget/listview/ListOfTouchables.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
diff --git a/core/tests/coretests/src/android/widget/listview/ListSetSelection.java b/core/tests/coretests/src/android/widget/listview/ListSetSelection.java
index af8e899..a107117 100644
--- a/core/tests/coretests/src/android/widget/listview/ListSetSelection.java
+++ b/core/tests/coretests/src/android/widget/listview/ListSetSelection.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.os.Bundle;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
diff --git a/core/tests/coretests/src/android/widget/listview/ListSimple.java b/core/tests/coretests/src/android/widget/listview/ListSimple.java
index f53638e..9b3a98f 100644
--- a/core/tests/coretests/src/android/widget/listview/ListSimple.java
+++ b/core/tests/coretests/src/android/widget/listview/ListSimple.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.os.Bundle;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
diff --git a/core/tests/coretests/src/android/widget/listview/ListTopGravity.java b/core/tests/coretests/src/android/widget/listview/ListTopGravity.java
index 31339e9..67ef6d1 100644
--- a/core/tests/coretests/src/android/widget/listview/ListTopGravity.java
+++ b/core/tests/coretests/src/android/widget/listview/ListTopGravity.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Basic top gravity scenario, nothing fancy. Items do not
diff --git a/core/tests/coretests/src/android/widget/listview/ListTopGravityMany.java b/core/tests/coretests/src/android/widget/listview/ListTopGravityMany.java
index 5592ad9..9618c81 100644
--- a/core/tests/coretests/src/android/widget/listview/ListTopGravityMany.java
+++ b/core/tests/coretests/src/android/widget/listview/ListTopGravityMany.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Basic top gravity scenario, nothing fancy. There are
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithEditTextHeader.java b/core/tests/coretests/src/android/widget/listview/ListWithEditTextHeader.java
index 5303faf..1a204a2 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithEditTextHeader.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithEditTextHeader.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* A list view with a single edit text in a header.
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithFirstScreenUnSelectable.java b/core/tests/coretests/src/android/widget/listview/ListWithFirstScreenUnSelectable.java
index 5261283..d6e7c6f 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithFirstScreenUnSelectable.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithFirstScreenUnSelectable.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* The first item is unselectable, and takes up the whole screen.
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithHeaders.java b/core/tests/coretests/src/android/widget/listview/ListWithHeaders.java
index 6030582..fa2832e 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithHeaders.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithHeaders.java
@@ -17,7 +17,7 @@
package android.widget.listview;
import android.os.Bundle;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithNoFadingEdge.java b/core/tests/coretests/src/android/widget/listview/ListWithNoFadingEdge.java
index b870fc8..f8b4f78 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithNoFadingEdge.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithNoFadingEdge.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
public class ListWithNoFadingEdge extends ListScenario {
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithOffScreenNextSelectable.java b/core/tests/coretests/src/android/widget/listview/ListWithOffScreenNextSelectable.java
index 2e65bd0..b8f14d2 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithOffScreenNextSelectable.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithOffScreenNextSelectable.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Pressing down from position 0 requires looking past positions 1, 2 and 3 to
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithOnItemSelectedAction.java b/core/tests/coretests/src/android/widget/listview/ListWithOnItemSelectedAction.java
index 13e770c..afc4c3b 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithOnItemSelectedAction.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithOnItemSelectedAction.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
import android.widget.TextView;
/**
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithScreenOfNoSelectables.java b/core/tests/coretests/src/android/widget/listview/ListWithScreenOfNoSelectables.java
index 108ac4d..fe33bf0 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithScreenOfNoSelectables.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithScreenOfNoSelectables.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
public class ListWithScreenOfNoSelectables extends ListScenario {
diff --git a/core/tests/coretests/src/android/widget/listview/ListWithSeparators.java b/core/tests/coretests/src/android/widget/listview/ListWithSeparators.java
index 0f4f2d8..1a3955a 100644
--- a/core/tests/coretests/src/android/widget/listview/ListWithSeparators.java
+++ b/core/tests/coretests/src/android/widget/listview/ListWithSeparators.java
@@ -16,7 +16,7 @@
package android.widget.listview;
-import android.util.ListScenario;
+import android.widget.ListScenario;
/**
* Basic separator scenario, nothing fancy.
diff --git a/core/tests/coretests/src/android/widget/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java b/core/tests/coretests/src/android/widget/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java
index e9baabf..09c140e 100644
--- a/core/tests/coretests/src/android/widget/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java
+++ b/core/tests/coretests/src/android/widget/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java
@@ -17,7 +17,7 @@
package android.widget.listview.focus;
import android.test.ActivityInstrumentationTestCase;
-import android.util.InternalSelectionView;
+import android.widget.InternalSelectionView;
import android.view.KeyEvent;
import android.widget.ListView;
import android.widget.listview.AdjacentListsWithAdjacentISVsInside;
diff --git a/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionView.java b/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionView.java
index a30985b..30f5c67 100644
--- a/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionView.java
+++ b/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionView.java
@@ -16,8 +16,8 @@
package android.widget.scroll;
-import android.util.InternalSelectionView;
-import android.util.ScrollViewScenario;
+import android.widget.InternalSelectionView;
+import android.widget.ScrollViewScenario;
import android.widget.Button;
/**
diff --git a/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionViewTest.java b/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionViewTest.java
index 825aa1a..d977ab4 100644
--- a/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionViewTest.java
+++ b/core/tests/coretests/src/android/widget/scroll/ButtonAboveTallInternalSelectionViewTest.java
@@ -17,7 +17,7 @@
package android.widget.scroll;
import android.test.ActivityInstrumentationTestCase;
-import android.util.InternalSelectionView;
+import android.widget.InternalSelectionView;
import android.view.KeyEvent;
import androidx.test.filters.MediumTest;
diff --git a/core/tests/coretests/src/android/widget/scroll/ButtonsWithTallTextViewInBetween.java b/core/tests/coretests/src/android/widget/scroll/ButtonsWithTallTextViewInBetween.java
index 47d36dd..5149fd4 100644
--- a/core/tests/coretests/src/android/widget/scroll/ButtonsWithTallTextViewInBetween.java
+++ b/core/tests/coretests/src/android/widget/scroll/ButtonsWithTallTextViewInBetween.java
@@ -16,7 +16,7 @@
package android.widget.scroll;
-import android.util.ScrollViewScenario;
+import android.widget.ScrollViewScenario;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
diff --git a/core/tests/coretests/src/android/widget/scroll/ShortButtons.java b/core/tests/coretests/src/android/widget/scroll/ShortButtons.java
index 90ede7d..01d3b53 100644
--- a/core/tests/coretests/src/android/widget/scroll/ShortButtons.java
+++ b/core/tests/coretests/src/android/widget/scroll/ShortButtons.java
@@ -16,7 +16,7 @@
package android.widget.scroll;
-import android.util.ScrollViewScenario;
+import android.widget.ScrollViewScenario;
import android.widget.Button;
import android.widget.LinearLayout;
diff --git a/core/tests/coretests/src/android/widget/scroll/TallTextAboveButton.java b/core/tests/coretests/src/android/widget/scroll/TallTextAboveButton.java
index 4096fe9..bf800c0 100644
--- a/core/tests/coretests/src/android/widget/scroll/TallTextAboveButton.java
+++ b/core/tests/coretests/src/android/widget/scroll/TallTextAboveButton.java
@@ -16,7 +16,7 @@
package android.widget.scroll;
-import android.util.ScrollViewScenario;
+import android.widget.ScrollViewScenario;
/**
* An (unfocusable) text view that takes up more than the height
diff --git a/core/tests/coretests/src/android/widget/scroll/arrowscroll/MultiPageTextWithPadding.java b/core/tests/coretests/src/android/widget/scroll/arrowscroll/MultiPageTextWithPadding.java
index 7d5a8d8..6febdf9 100644
--- a/core/tests/coretests/src/android/widget/scroll/arrowscroll/MultiPageTextWithPadding.java
+++ b/core/tests/coretests/src/android/widget/scroll/arrowscroll/MultiPageTextWithPadding.java
@@ -16,7 +16,7 @@
package android.widget.scroll.arrowscroll;
-import android.util.ScrollViewScenario;
+import android.widget.ScrollViewScenario;
/**
* One TextView with a text covering several pages. Padding is added
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java
index 088b57f..6374e5d 100644
--- a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java
+++ b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java
@@ -18,7 +18,6 @@
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
-import static androidx.test.espresso.action.ViewActions.doubleClick;
import static androidx.test.espresso.action.ViewActions.scrollTo;
import static androidx.test.espresso.action.ViewActions.swipeUp;
import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
@@ -85,10 +84,13 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
+import org.mockito.stubbing.Answer;
import java.util.Collections;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* Tests for {@link AccessibilityShortcutChooserActivity}.
@@ -151,6 +153,8 @@
when(mAccessibilityManagerService.getInstalledAccessibilityServiceList(
anyInt())).thenReturn(new ParceledListSlice<>(
Collections.singletonList(mAccessibilityServiceInfo)));
+ when(mAccessibilityManagerService.isAccessibilityServiceWarningRequired(any()))
+ .thenReturn(true);
when(mAccessibilityManagerService.isAccessibilityTargetAllowed(
anyString(), anyInt(), anyInt())).thenReturn(true);
when(mKeyguardManager.isKeyguardLocked()).thenReturn(false);
@@ -169,7 +173,7 @@
}
@Test
- @RequiresFlagsDisabled(Flags.FLAG_DEDUPLICATE_ACCESSIBILITY_WARNING_DIALOG)
+ @RequiresFlagsDisabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
public void selectTestService_oldPermissionDialog_deny_dialogIsHidden() {
launchActivity();
openShortcutsList();
@@ -183,7 +187,7 @@
}
@Test
- @RequiresFlagsEnabled(Flags.FLAG_DEDUPLICATE_ACCESSIBILITY_WARNING_DIALOG)
+ @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
public void selectTestService_permissionDialog_allow_rowChecked() {
launchActivity();
openShortcutsList();
@@ -197,7 +201,7 @@
}
@Test
- @RequiresFlagsEnabled(Flags.FLAG_DEDUPLICATE_ACCESSIBILITY_WARNING_DIALOG)
+ @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
public void selectTestService_permissionDialog_deny_rowNotChecked() {
launchActivity();
openShortcutsList();
@@ -211,7 +215,7 @@
}
@Test
- @RequiresFlagsEnabled(Flags.FLAG_DEDUPLICATE_ACCESSIBILITY_WARNING_DIALOG)
+ @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
public void selectTestService_permissionDialog_uninstall_callsUninstaller_rowRemoved() {
launchActivity();
openShortcutsList();
@@ -227,6 +231,59 @@
}
@Test
+ @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+ public void selectTestService_permissionDialog_notShownWhenNotRequired() throws Exception {
+ when(mAccessibilityManagerService.isAccessibilityServiceWarningRequired(any()))
+ .thenReturn(false);
+ launchActivity();
+ openShortcutsList();
+
+ // Clicking the test service should not show a permission dialog window,
+ assertThat(mDevice.findObject(By.text(TEST_LABEL)).clickAndWait(
+ Until.newWindow(), UI_TIMEOUT_MS)).isFalse();
+ // and should become checked.
+ assertThat(mDevice.findObject(By.checked(true))).isNotNull();
+ }
+
+ @Test
+ @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+ public void selectTestService_notPermittedByAdmin_blockedEvenIfNoWarningRequired()
+ throws Exception {
+ when(mAccessibilityManagerService.isAccessibilityServiceWarningRequired(any()))
+ .thenReturn(false);
+ when(mAccessibilityManagerService.isAccessibilityTargetAllowed(
+ eq(TEST_COMPONENT_NAME.getPackageName()), anyInt(), anyInt())).thenReturn(false);
+ // This test class mocks AccessibilityManagerService, so the restricted dialog window
+ // will not actually appear and therefore cannot be used for a wait Until.newWindow().
+ // To still allow smart waiting in this test we can instead set up the mocked method
+ // to update an atomic boolean and wait for that to be set.
+ final Object waitObject = new Object();
+ final AtomicBoolean calledSendRestrictedDialogIntent = new AtomicBoolean(false);
+ Mockito.doAnswer((Answer<Void>) invocation -> {
+ synchronized (waitObject) {
+ calledSendRestrictedDialogIntent.set(true);
+ waitObject.notify();
+ }
+ return null;
+ }).when(mAccessibilityManagerService).sendRestrictedDialogIntent(
+ eq(TEST_COMPONENT_NAME.getPackageName()), anyInt(), anyInt());
+ launchActivity();
+ openShortcutsList();
+
+ mDevice.findObject(By.text(TEST_LABEL)).click();
+ final long timeout = System.currentTimeMillis() + UI_TIMEOUT_MS;
+ synchronized (waitObject) {
+ while (!calledSendRestrictedDialogIntent.get() &&
+ (System.currentTimeMillis() < timeout)) {
+ waitObject.wait(timeout - System.currentTimeMillis());
+ }
+ }
+
+ assertThat(calledSendRestrictedDialogIntent.get()).isTrue();
+ assertThat(mDevice.findObject(By.checked(true))).isNull();
+ }
+
+ @Test
public void clickServiceTarget_notPermittedByAdmin_sendRestrictedDialogIntent()
throws Exception {
when(mAccessibilityManagerService.isAccessibilityTargetAllowed(
@@ -329,7 +386,7 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (Flags.deduplicateAccessibilityWarningDialog()) {
+ if (Flags.cleanupAccessibilityWarningDialog()) {
// Setting the Theme is necessary here for the dialog to use the proper style
// resources as designated in its layout XML.
setTheme(R.style.Theme_DeviceDefault_DayNight);
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/dialog/AccessibilityServiceWarningTest.java b/core/tests/coretests/src/com/android/internal/accessibility/dialog/AccessibilityServiceWarningTest.java
index b76dd51..24aab61 100644
--- a/core/tests/coretests/src/com/android/internal/accessibility/dialog/AccessibilityServiceWarningTest.java
+++ b/core/tests/coretests/src/com/android/internal/accessibility/dialog/AccessibilityServiceWarningTest.java
@@ -58,7 +58,7 @@
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
@RequiresFlagsEnabled(
- android.view.accessibility.Flags.FLAG_DEDUPLICATE_ACCESSIBILITY_WARNING_DIALOG)
+ android.view.accessibility.Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
public class AccessibilityServiceWarningTest {
private static final String A11Y_SERVICE_PACKAGE_LABEL = "TestA11yService";
private static final String A11Y_SERVICE_SUMMARY = "TestA11yService summary";
diff --git a/core/tests/coretests/src/com/android/internal/util/BitUtilsTest.java b/core/tests/coretests/src/com/android/internal/util/BitUtilsTest.java
index fdba811..fdde36a 100644
--- a/core/tests/coretests/src/com/android/internal/util/BitUtilsTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/BitUtilsTest.java
@@ -30,8 +30,8 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/core/tests/coretests/src/com/android/internal/util/ContrastColorUtilTest.java b/core/tests/coretests/src/com/android/internal/util/ContrastColorUtilTest.java
index 5f5bf11..e6ebfef 100644
--- a/core/tests/coretests/src/com/android/internal/util/ContrastColorUtilTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/ContrastColorUtilTest.java
@@ -23,6 +23,8 @@
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Color;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
@@ -32,23 +34,21 @@
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
import com.android.internal.R;
-import junit.framework.TestCase;
-
-import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
-public class ContrastColorUtilTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = Color.class)
+public class ContrastColorUtilTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
- private Context mContext;
-
- @Before
- public void setUp() {
- mContext = InstrumentationRegistry.getContext();
- }
-
+ @Test
@SmallTest
public void testEnsureTextContrastAgainstDark() {
int darkBg = 0xFF35302A;
@@ -70,6 +70,7 @@
assertContrastIsWithinRange(selfContrastColor, darkBg, 4.5, 4.75);
}
+ @Test
@SmallTest
public void testEnsureTextContrastAgainstLight() {
int lightBg = 0xFFFFF8F2;
@@ -91,13 +92,16 @@
assertContrastIsWithinRange(selfContrastColor, lightBg, 4.5, 4.75);
}
+ @Test
public void testBuilder_ensureColorSpanContrast_removesAllFullLengthColorSpans() {
+ Context context = InstrumentationRegistry.getContext();
+
Spannable text = new SpannableString("blue text with yellow and green");
text.setSpan(new ForegroundColorSpan(Color.YELLOW), 15, 21,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(),
Spanned.SPAN_INCLUSIVE_INCLUSIVE);
- TextAppearanceSpan taSpan = new TextAppearanceSpan(mContext,
+ TextAppearanceSpan taSpan = new TextAppearanceSpan(context,
R.style.TextAppearance_DeviceDefault_Notification_Title);
assertThat(taSpan.getTextColor()).isNotNull(); // it must be set to prove it is cleared.
text.setSpan(taSpan, 0, text.length(),
@@ -123,6 +127,7 @@
assertThat(((ForegroundColorSpan) spans[2]).getForegroundColor()).isEqualTo(Color.GREEN);
}
+ @Test
public void testBuilder_ensureColorSpanContrast_partialLength_adjusted() {
int background = 0xFFFF0101; // Slightly lighter red
CharSequence text = new SpannableStringBuilder()
@@ -138,14 +143,17 @@
assertContrastIsWithinRange(foregroundColor, background, 3, 3.2);
}
+ @Test
public void testBuilder_ensureColorSpanContrast_worksWithComplexInput() {
+ Context context = InstrumentationRegistry.getContext();
+
Spannable text = new SpannableString("blue text with yellow and green and cyan");
text.setSpan(new ForegroundColorSpan(Color.YELLOW), 15, 21,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(),
Spanned.SPAN_INCLUSIVE_INCLUSIVE);
// cyan TextAppearanceSpan
- TextAppearanceSpan taSpan = new TextAppearanceSpan(mContext,
+ TextAppearanceSpan taSpan = new TextAppearanceSpan(context,
R.style.TextAppearance_DeviceDefault_Notification_Title);
taSpan = new TextAppearanceSpan(taSpan.getFamily(), taSpan.getTextStyle(),
taSpan.getTextSize(), ColorStateList.valueOf(Color.CYAN), null);
diff --git a/core/tests/coretests/src/com/android/internal/util/DumpUtilsTest.java b/core/tests/coretests/src/com/android/internal/util/DumpUtilsTest.java
index 36c2a62..d2d3c13 100644
--- a/core/tests/coretests/src/com/android/internal/util/DumpUtilsTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/DumpUtilsTest.java
@@ -25,10 +25,16 @@
import static com.google.common.truth.Truth.assertWithMessage;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
import android.content.ComponentName;
import android.util.SparseArray;
-import junit.framework.TestCase;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -37,7 +43,8 @@
* Run with:
atest FrameworksCoreTests:DumpUtilsTest
*/
-public class DumpUtilsTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class DumpUtilsTest {
private final StringWriter mStringWriter = new StringWriter();
private final PrintWriter mPrintWriter = new PrintWriter(mStringWriter);
@@ -56,6 +63,7 @@
return () -> cn(componentName);
}
+ @Test
public void testIsPlatformPackage() {
assertTrue(isPlatformPackage("android"));
assertTrue(isPlatformPackage("android.abc"));
@@ -79,6 +87,7 @@
assertFalse(isPlatformPackage(wcn("com.google.def/abc")));
}
+ @Test
public void testIsNonPlatformPackage() {
assertFalse(isNonPlatformPackage("android"));
assertFalse(isNonPlatformPackage("android.abc"));
@@ -102,6 +111,7 @@
assertTrue(isNonPlatformPackage(wcn("com.google.def/abc")));
}
+ @Test
public void testIsPlatformCriticalPackage() {
for (final ComponentName componentName : CRITICAL_SECTION_COMPONENTS) {
assertTrue(isPlatformCriticalPackage(() -> componentName));
@@ -115,6 +125,7 @@
assertFalse(isPlatformCriticalPackage(null));
}
+ @Test
public void testIsPlatformNonCriticalPackage() {
for (final ComponentName componentName : CRITICAL_SECTION_COMPONENTS) {
assertFalse(isPlatformNonCriticalPackage(() -> componentName));
@@ -128,6 +139,7 @@
assertFalse(isPlatformNonCriticalPackage(null));
}
+ @Test
public void testFilterRecord() {
assertFalse(filterRecord(null).test(wcn("com.google.p/abc")));
assertFalse(filterRecord(null).test(wcn("com.android.p/abc")));
@@ -178,6 +190,7 @@
wcn("com.google/.abc")));
}
+ @Test
public void testDumpSparseArray_empty() {
SparseArray<String> array = new SparseArray<>();
@@ -188,6 +201,7 @@
assertWithMessage("empty array dump").that(output).isEqualTo("...No whatevers\n");
}
+ @Test
public void testDumpSparseArray_oneElement() {
SparseArray<String> array = new SparseArray<>();
array.put(1, "uno");
@@ -201,6 +215,7 @@
+ "..0: 1->uno\n");
}
+ @Test
public void testDumpSparseArray_oneNullElement() {
SparseArray<String> array = new SparseArray<>();
array.put(1, null);
@@ -214,6 +229,7 @@
+ "..0: 1->(null)\n");
}
+ @Test
public void testDumpSparseArray_multipleElements() {
SparseArray<String> array = new SparseArray<>();
array.put(1, "uno");
@@ -231,6 +247,7 @@
+ "..2: 42->(null)\n");
}
+ @Test
public void testDumpSparseArray_keyDumperOnly() {
SparseArray<String> array = new SparseArray<>();
array.put(1, "uno");
@@ -251,6 +268,7 @@
+ "_2=42_(null)\n");
}
+ @Test
public void testDumpSparseArray_valueDumperOnly() {
SparseArray<String> array = new SparseArray<>();
array.put(1, "uno");
@@ -272,6 +290,7 @@
+ "..2: 42->(null)\n");
}
+ @Test
public void testDumpSparseArray_keyAndValueDumpers() {
SparseArray<String> array = new SparseArray<>();
array.put(1, "uno");
@@ -295,6 +314,7 @@
+ "_2=42_(null)\n");
}
+ @Test
public void testDumpSparseArrayValues() {
SparseArray<String> array = new SparseArray<>();
array.put(1, "uno");
@@ -306,7 +326,7 @@
String output = flushPrintWriter();
assertWithMessage("dump of %s", array).that(output).isEqualTo(""
- + ".3 numbers:\n"
+ + ".3 number(s):\n"
+ "..uno\n"
+ "..duo\n"
+ "..(null)\n");
diff --git a/core/tests/coretests/src/com/android/internal/util/DumpableContainerImplTest.java b/core/tests/coretests/src/com/android/internal/util/DumpableContainerImplTest.java
index 589e4f9..61d4e3d 100644
--- a/core/tests/coretests/src/com/android/internal/util/DumpableContainerImplTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/DumpableContainerImplTest.java
@@ -17,30 +17,32 @@
import static com.google.common.truth.Truth.assertWithMessage;
-import static org.testng.Assert.assertThrows;
-
import android.util.Dumpable;
+import androidx.test.runner.AndroidJUnit4;
+
import com.android.internal.util.dump.DumpableContainerImpl;
import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.concurrent.atomic.AtomicReference;
-public final class DumpableContainerImplTest {
+@RunWith(AndroidJUnit4.class)
+public class DumpableContainerImplTest {
private final DumpableContainerImpl mImpl = new DumpableContainerImpl();
private final StringWriter mSw = new StringWriter();
private final PrintWriter mWriter = new PrintWriter(mSw);
- @Test
+ @Test(expected = NullPointerException.class)
public void testAddDumpable_null() {
- assertThrows(NullPointerException.class, () -> mImpl.addDumpable(null));
+ mImpl.addDumpable(null);
}
- @Test
+ @Test(expected = NullPointerException.class)
public void testAddDumpable_dumpableWithoutName() {
Dumpable namelessDumpable = new Dumpable() {
@@ -55,7 +57,7 @@
}
};
- assertThrows(NullPointerException.class, () -> mImpl.addDumpable(namelessDumpable));
+ mImpl.addDumpable(namelessDumpable);
}
@Test
@@ -179,9 +181,9 @@
+ "......6 Args: 4,8,15,16,23,42,\n");
}
- @Test
+ @Test(expected = NullPointerException.class)
public void testRemoveDumpable_null() {
- assertThrows(NullPointerException.class, () -> mImpl.removeDumpable(null));
+ mImpl.removeDumpable(null);
}
@Test
diff --git a/core/tests/coretests/src/com/android/internal/util/FakeLatencyTrackerTest.java b/core/tests/coretests/src/com/android/internal/util/FakeLatencyTrackerTest.java
index 3946cdf..6bd67ea 100644
--- a/core/tests/coretests/src/com/android/internal/util/FakeLatencyTrackerTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/FakeLatencyTrackerTest.java
@@ -24,12 +24,15 @@
import static com.google.common.truth.Truth.assertThat;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import android.provider.DeviceConfig;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -42,7 +45,10 @@
* {@link LatencyTrackerTest}
*/
@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = DeviceConfig.class)
public class FakeLatencyTrackerTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
private FakeLatencyTracker mFakeLatencyTracker;
private int mInitialSyncDisabledMode;
diff --git a/core/tests/coretests/src/com/android/internal/util/FastDataTest.java b/core/tests/coretests/src/com/android/internal/util/FastDataTest.java
index de325ab..316b95ac 100644
--- a/core/tests/coretests/src/com/android/internal/util/FastDataTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/FastDataTest.java
@@ -21,6 +21,7 @@
import static org.junit.Assert.fail;
import android.annotation.NonNull;
+import android.platform.test.ravenwood.RavenwoodRule;
import android.util.ExceptionUtils;
import com.android.modules.utils.FastDataInput;
@@ -29,6 +30,7 @@
import libcore.util.HexEncoding;
import org.junit.Assume;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -51,6 +53,9 @@
@RunWith(Parameterized.class)
public class FastDataTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
private final boolean use4ByteSequence;
private static final String TEST_SHORT_STRING = "a";
@@ -59,7 +64,12 @@
@Parameters(name = "use4ByteSequence={0}")
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] { {true}, {false} });
+ if (RavenwoodRule.isUnderRavenwood()) {
+ // TODO: 4-byte sequences are only supported on ART
+ return Arrays.asList(new Object[][]{{false}});
+ } else {
+ return Arrays.asList(new Object[][]{{true}, {false}});
+ }
}
public FastDataTest(boolean use4ByteSequence) {
diff --git a/core/tests/coretests/src/com/android/internal/util/FastMathTest.java b/core/tests/coretests/src/com/android/internal/util/FastMathTest.java
new file mode 100644
index 0000000..dd26334
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/util/FastMathTest.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.util;
+
+import static org.junit.Assert.assertEquals;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class FastMathTest {
+ @Test
+ public void testRound() {
+ assertEquals(-1, FastMath.round(-1.0f));
+ assertEquals(0, FastMath.round(0.0f));
+ assertEquals(1, FastMath.round(1.0f));
+ }
+}
diff --git a/core/tests/coretests/src/com/android/internal/util/GrowingArrayUtilsTest.java b/core/tests/coretests/src/com/android/internal/util/GrowingArrayUtilsTest.java
new file mode 100644
index 0000000..8456161
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/util/GrowingArrayUtilsTest.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.util;
+
+import static com.android.internal.util.GrowingArrayUtils.append;
+import static com.android.internal.util.GrowingArrayUtils.insert;
+
+import static org.junit.Assert.assertArrayEquals;
+
+import android.util.EmptyArray;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Arrays;
+
+@RunWith(AndroidJUnit4.class)
+public class GrowingArrayUtilsTest {
+ private final Object TEST_OBJECT = new Object();
+
+ @Test
+ public void testAppend_Object() {
+ assertArrayEqualsPrefix(new Object[]{TEST_OBJECT},
+ append(EmptyArray.OBJECT, 0, TEST_OBJECT));
+ assertArrayEqualsPrefix(new Object[]{TEST_OBJECT, TEST_OBJECT},
+ append(new Object[]{TEST_OBJECT}, 1, TEST_OBJECT));
+ assertArrayEqualsPrefix(new Object[]{TEST_OBJECT},
+ append(new Object[]{null, null}, 0, TEST_OBJECT));
+ }
+
+ @Test
+ public void testInsert_Object() {
+ assertArrayEqualsPrefix(new Object[]{TEST_OBJECT},
+ insert(EmptyArray.OBJECT, 0, 0, TEST_OBJECT));
+ assertArrayEqualsPrefix(new Object[]{null, TEST_OBJECT},
+ insert(new Object[]{TEST_OBJECT}, 1, 0, null));
+ assertArrayEqualsPrefix(new Object[]{TEST_OBJECT, null},
+ insert(new Object[]{TEST_OBJECT}, 1, 1, null));
+ assertArrayEqualsPrefix(new Object[]{TEST_OBJECT, null, TEST_OBJECT},
+ insert(new Object[]{TEST_OBJECT, TEST_OBJECT}, 2, 1, null));
+ }
+
+ @Test
+ public void testAppend_Int() {
+ assertArrayEqualsPrefix(new int[]{42},
+ append(EmptyArray.INT, 0, 42));
+ assertArrayEqualsPrefix(new int[]{42, 42},
+ append(new int[]{42}, 1, 42));
+ assertArrayEqualsPrefix(new int[]{42},
+ append(new int[]{0, 0}, 0, 42));
+ }
+
+ @Test
+ public void testInsert_Int() {
+ assertArrayEqualsPrefix(new int[]{42},
+ insert(EmptyArray.INT, 0, 0, 42));
+ assertArrayEqualsPrefix(new int[]{21, 42},
+ insert(new int[]{42}, 1, 0, 21));
+ assertArrayEqualsPrefix(new int[]{42, 21},
+ insert(new int[]{42}, 1, 1, 21));
+ assertArrayEqualsPrefix(new int[]{42, 21, 43},
+ insert(new int[]{42, 43}, 2, 1, 21));
+ }
+
+ @Test
+ public void testAppend_Long() {
+ assertArrayEqualsPrefix(new long[]{42},
+ append(EmptyArray.LONG, 0, 42));
+ assertArrayEqualsPrefix(new long[]{42, 42},
+ append(new long[]{42}, 1, 42));
+ assertArrayEqualsPrefix(new long[]{42},
+ append(new long[]{0, 0}, 0, 42));
+ }
+
+ @Test
+ public void testInsert_Long() {
+ assertArrayEqualsPrefix(new long[]{42},
+ insert(EmptyArray.LONG, 0, 0, 42));
+ assertArrayEqualsPrefix(new long[]{21, 42},
+ insert(new long[]{42}, 1, 0, 21));
+ assertArrayEqualsPrefix(new long[]{42, 21},
+ insert(new long[]{42}, 1, 1, 21));
+ assertArrayEqualsPrefix(new long[]{42, 21, 43},
+ insert(new long[]{42, 43}, 2, 1, 21));
+ }
+
+ @Test
+ public void testAppend_Boolean() {
+ assertArrayEqualsPrefix(new boolean[]{true},
+ append(EmptyArray.BOOLEAN, 0, true));
+ assertArrayEqualsPrefix(new boolean[]{true, true},
+ append(new boolean[]{true}, 1, true));
+ assertArrayEqualsPrefix(new boolean[]{true},
+ append(new boolean[]{false, false}, 0, true));
+ }
+
+ @Test
+ public void testInsert_Boolean() {
+ assertArrayEqualsPrefix(new boolean[]{true},
+ insert(EmptyArray.BOOLEAN, 0, 0, true));
+ assertArrayEqualsPrefix(new boolean[]{false, true},
+ insert(new boolean[]{true}, 1, 0, false));
+ assertArrayEqualsPrefix(new boolean[]{true, false},
+ insert(new boolean[]{true}, 1, 1, false));
+ assertArrayEqualsPrefix(new boolean[]{true, false, true},
+ insert(new boolean[]{true, true}, 2, 1, false));
+ }
+
+ private <T> void assertArrayEqualsPrefix(T[] expected, T[] actual) {
+ assertArrayEquals(expected, Arrays.copyOf(actual, expected.length));
+ }
+
+ private void assertArrayEqualsPrefix(int[] expected, int[] actual) {
+ assertArrayEquals(expected, Arrays.copyOf(actual, expected.length));
+ }
+
+ private void assertArrayEqualsPrefix(long[] expected, long[] actual) {
+ assertArrayEquals(expected, Arrays.copyOf(actual, expected.length));
+ }
+
+ private void assertArrayEqualsPrefix(boolean[] expected, boolean[] actual) {
+ assertArrayEquals(expected, Arrays.copyOf(actual, expected.length));
+ }
+}
diff --git a/core/tests/coretests/src/com/android/internal/util/HexDumpTest.java b/core/tests/coretests/src/com/android/internal/util/HexDumpTest.java
index f1cd89b..dcffa1c 100644
--- a/core/tests/coretests/src/com/android/internal/util/HexDumpTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/HexDumpTest.java
@@ -19,14 +19,22 @@
import static com.android.internal.util.HexDump.hexStringToByteArray;
import static com.android.internal.util.HexDump.toHexString;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Arrays;
import java.util.Random;
-public final class HexDumpTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public final class HexDumpTest {
+ @Test
public void testBytesToHexString() {
assertEquals("abcdef", HexDump.toHexString(
new byte[] { (byte) 0xab, (byte) 0xcd, (byte) 0xef }, false));
@@ -34,12 +42,14 @@
new byte[] { (byte) 0xab, (byte) 0xcd, (byte) 0xef }, true));
}
+ @Test
public void testNullByteArray() {
assertThrows(
NullPointerException.class,
() -> HexDump.toHexString(null));
}
+ @Test
public void testBytesToHexString_allByteValues() {
byte[] bytes = new byte[256];
for (int i = 0; i < bytes.length; i++) {
@@ -57,6 +67,7 @@
assertEquals(expected, HexDump.toHexString(bytes));
}
+ @Test
public void testRoundTrip_fromBytes() {
Random deterministicRandom = new Random(31337); // arbitrary but deterministic
for (int length = 0; length < 100; length++) {
@@ -68,6 +79,7 @@
}
}
+ @Test
public void testRoundTrip_fromString() {
String hexString = "0123456789ABCDEF72f9a3438934c378d34f32a8b932";
for (int length = 0; length < hexString.length(); length += 2) {
@@ -77,6 +89,7 @@
}
}
+ @Test
public void testToHexString_offsetLength() {
byte[] bytes = new byte[32];
for (int i = 0; i < 16; i++) {
@@ -97,6 +110,7 @@
}
}
+ @Test
public void testToHexString_case() {
byte[] bytes = new byte[32];
for (int i = 0; i < 16; i++) {
@@ -113,16 +127,19 @@
assertEquals(expected.toUpperCase(), toHexString(bytes));
}
+ @Test
public void testHexStringToByteArray_empty() {
assertBytesEqual(new byte[0], HexDump.hexStringToByteArray(""));
}
+ @Test
public void testHexStringToByteArray_null() {
assertThrows(
NullPointerException.class,
() -> HexDump.hexStringToByteArray((String) null));
}
+ @Test
public void testHexStringToByteArray_invalidCharacters() {
// IllegalArgumentException would probably have been better than RuntimeException, but it
// might be too late to change now.
@@ -137,6 +154,7 @@
() -> HexDump.hexStringToByteArray("abcdefgh"));
}
+ @Test
public void testHexStringToByteArray_oddLength() {
// IllegalArgumentException would probably have been better than
// StringIndexOutOfBoundsException, but it might be too late to change now.
diff --git a/core/tests/coretests/src/com/android/internal/util/LatencyTrackerTest.java b/core/tests/coretests/src/com/android/internal/util/LatencyTrackerTest.java
index f24894e..010f724 100644
--- a/core/tests/coretests/src/com/android/internal/util/LatencyTrackerTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/LatencyTrackerTest.java
@@ -25,9 +25,11 @@
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import android.provider.DeviceConfig;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.android.internal.util.LatencyTracker.ActionProperties;
@@ -49,7 +51,11 @@
import java.util.stream.Collectors;
@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = DeviceConfig.class)
public class LatencyTrackerTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
private static final String ENUM_NAME_PREFIX = "UIACTION_LATENCY_REPORTED__ACTION__";
@Rule
diff --git a/core/tests/coretests/src/com/android/internal/util/LineBreakBufferedWriterTest.java b/core/tests/coretests/src/com/android/internal/util/LineBreakBufferedWriterTest.java
index b2a2265..e6418fa 100644
--- a/core/tests/coretests/src/com/android/internal/util/LineBreakBufferedWriterTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/LineBreakBufferedWriterTest.java
@@ -16,7 +16,13 @@
package com.android.internal.util;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.ByteArrayOutputStream;
import java.io.Writer;
@@ -26,18 +32,18 @@
/**
* Tests for {@link IndentingPrintWriter}.
*/
-public class LineBreakBufferedWriterTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class LineBreakBufferedWriterTest {
private ByteArrayOutputStream mStream;
private RecordingWriter mWriter;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
+ @Before
+ public void setUp() throws Exception {
mWriter = new RecordingWriter();
}
+ @Test
public void testLessThanBufferSize() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 1000);
@@ -49,6 +55,7 @@
assertOutput("Hello\nWorld\nTest\n");
}
+ @Test
public void testMoreThanBufferSizeNoLineBreaks() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 20);
@@ -71,6 +78,7 @@
}
}
+ @Test
public void testMoreThanBufferSizeNoLineBreaksSingleString() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 20);
@@ -92,6 +100,7 @@
}
}
+ @Test
public void testMoreThanBufferSizeLineBreakBefore() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 20);
@@ -104,6 +113,7 @@
assertOutput("aaaaaaaaaa", "bbbbcccccccccc");
}
+ @Test
public void testMoreThanBufferSizeLineBreakBeforeSingleString() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 20);
@@ -115,6 +125,7 @@
assertOutput("aaaaaaaaaa", "bbbbcccccccccc");
}
+ @Test
public void testMoreThanBufferSizeLineBreakNew() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 20);
@@ -127,6 +138,7 @@
assertOutput("aaaaaaaaaabbbbbc\nd", "ddddddddd");
}
+ @Test
public void testMoreThanBufferSizeLineBreakBeforeAndNew() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 20);
@@ -139,6 +151,7 @@
assertOutput("aaaaaaaaaa\nbbbbbc\nd", "ddddddddd");
}
+ @Test
public void testMoreThanBufferSizeInt() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 15);
@@ -151,6 +164,7 @@
assertOutput("123456789098765", "4321");
}
+ @Test
public void testMoreThanBufferSizeChar() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 15);
@@ -165,6 +179,7 @@
assertOutput("$$$$$$$$$$%%%%%", "%%%%%");
}
+ @Test
public void testMoreThanBufferSizeLineBreakNewChars() {
final LineBreakBufferedWriter lw = new LineBreakBufferedWriter(mWriter, 20);
@@ -177,6 +192,7 @@
assertOutput("aaaaaaaaaabbbbbc\nd", "ddddddddd");
}
+ @Test
public void testMoreThenInitialCapacitySimpleWrites() {
// This check is different from testMoreThanBufferSizeChar. The initial capacity is lower
// than the maximum buffer size here.
diff --git a/core/tests/coretests/src/com/android/internal/util/ParseUtilsTest.java b/core/tests/coretests/src/com/android/internal/util/ParseUtilsTest.java
index 867152e..d24cbfe 100644
--- a/core/tests/coretests/src/com/android/internal/util/ParseUtilsTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/ParseUtilsTest.java
@@ -16,13 +16,23 @@
package com.android.internal.util;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* Run with:
atest /android/pi-dev/frameworks/base/core/tests/coretests/src/com/android/internal/util/ParseUtilsTest.java
*/
-public class ParseUtilsTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class ParseUtilsTest {
+ private static final float DELTA_FLOAT = 0.0f;
+ private static final double DELTA_DOUBLE = 0.0d;
+
+ @Test
public void testParseInt() {
assertEquals(1, ParseUtils.parseInt(null, 1));
assertEquals(1, ParseUtils.parseInt("", 1));
@@ -33,6 +43,7 @@
assertEquals(-2, ParseUtils.parseInt("-2", 1));
}
+ @Test
public void testParseIntWithBase() {
assertEquals(1, ParseUtils.parseIntWithBase(null, 10, 1));
assertEquals(1, ParseUtils.parseIntWithBase("", 10, 1));
@@ -45,6 +56,7 @@
assertEquals(-3, ParseUtils.parseIntWithBase("-10", 3, 1));
}
+ @Test
public void testParseLong() {
assertEquals(1L, ParseUtils.parseLong(null, 1));
assertEquals(1L, ParseUtils.parseLong("", 1));
@@ -52,6 +64,7 @@
assertEquals(2L, ParseUtils.parseLong("2", 1));
}
+ @Test
public void testParseLongWithBase() {
assertEquals(1L, ParseUtils.parseLongWithBase(null, 10, 1));
assertEquals(1L, ParseUtils.parseLongWithBase("", 10, 1));
@@ -69,20 +82,23 @@
assertEquals(10_000_000_000L, ParseUtils.parseLongWithBase(null, 10, 10_000_000_000L));
}
+ @Test
public void testParseFloat() {
- assertEquals(0.5f, ParseUtils.parseFloat(null, 0.5f));
- assertEquals(0.5f, ParseUtils.parseFloat("", 0.5f));
- assertEquals(0.5f, ParseUtils.parseFloat("1x", 0.5f));
- assertEquals(1.5f, ParseUtils.parseFloat("1.5", 0.5f));
+ assertEquals(0.5f, ParseUtils.parseFloat(null, 0.5f), DELTA_FLOAT);
+ assertEquals(0.5f, ParseUtils.parseFloat("", 0.5f), DELTA_FLOAT);
+ assertEquals(0.5f, ParseUtils.parseFloat("1x", 0.5f), DELTA_FLOAT);
+ assertEquals(1.5f, ParseUtils.parseFloat("1.5", 0.5f), DELTA_FLOAT);
}
+ @Test
public void testParseDouble() {
- assertEquals(0.5, ParseUtils.parseDouble(null, 0.5));
- assertEquals(0.5, ParseUtils.parseDouble("", 0.5));
- assertEquals(0.5, ParseUtils.parseDouble("1x", 0.5));
- assertEquals(1.5, ParseUtils.parseDouble("1.5", 0.5));
+ assertEquals(0.5, ParseUtils.parseDouble(null, 0.5), DELTA_DOUBLE);
+ assertEquals(0.5, ParseUtils.parseDouble("", 0.5), DELTA_DOUBLE);
+ assertEquals(0.5, ParseUtils.parseDouble("1x", 0.5), DELTA_DOUBLE);
+ assertEquals(1.5, ParseUtils.parseDouble("1.5", 0.5), DELTA_DOUBLE);
}
+ @Test
public void testParseBoolean() {
assertEquals(false, ParseUtils.parseBoolean(null, false));
assertEquals(true, ParseUtils.parseBoolean(null, true));
diff --git a/core/tests/coretests/src/com/android/internal/util/ProgressReporterTest.java b/core/tests/coretests/src/com/android/internal/util/ProgressReporterTest.java
index 87f2a8a..0d21335 100644
--- a/core/tests/coretests/src/com/android/internal/util/ProgressReporterTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/ProgressReporterTest.java
@@ -16,14 +16,28 @@
package com.android.internal.util;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
-public class ProgressReporterTest extends TestCase {
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = ProgressReporter.class)
+public class ProgressReporterTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
private ProgressReporter r;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @Before
+ public void setUp() throws Exception {
r = new ProgressReporter(0);
}
@@ -37,6 +51,7 @@
assertEquals("len", len, range[1]);
}
+ @Test
public void testBasic() throws Exception {
assertProgress(0);
@@ -50,6 +65,7 @@
assertProgress(100);
}
+ @Test
public void testSegment() throws Exception {
r.setProgress(20);
assertProgress(20);
@@ -68,6 +84,7 @@
assertProgress(80);
}
+ @Test
public void testSegmentOvershoot() throws Exception {
r.setProgress(20);
assertProgress(20);
@@ -87,6 +104,7 @@
assertProgress(60);
}
+ @Test
public void testSegmentNested() throws Exception {
r.setProgress(20);
assertProgress(20);
diff --git a/core/tests/coretests/src/com/android/internal/util/RingBufferTest.java b/core/tests/coretests/src/com/android/internal/util/RingBufferTest.java
index 4497770..d7a100a 100644
--- a/core/tests/coretests/src/com/android/internal/util/RingBufferTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/RingBufferTest.java
@@ -20,8 +20,8 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/core/tests/coretests/src/com/android/internal/util/TokenBucketTest.java b/core/tests/coretests/src/com/android/internal/util/TokenBucketTest.java
index 8b30828..ef579fe 100644
--- a/core/tests/coretests/src/com/android/internal/util/TokenBucketTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/TokenBucketTest.java
@@ -16,22 +16,29 @@
package com.android.internal.util;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
import android.os.SystemClock;
import android.text.format.DateUtils;
-import junit.framework.TestCase;
+import androidx.test.runner.AndroidJUnit4;
-public class TokenBucketTest extends TestCase {
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class TokenBucketTest {
static final int FILL_DELTA_VERY_SHORT = 1;
static final int FILL_DELTA_VERY_LONG = Integer.MAX_VALUE;
+ @Test
public void testArgumentValidation() {
assertThrow(() -> new TokenBucket(0, 1, 1));
assertThrow(() -> new TokenBucket(1, 0, 1));
- assertThrow(() -> new TokenBucket(1, 1, 0));
assertThrow(() -> new TokenBucket(0, 1));
assertThrow(() -> new TokenBucket(1, 0));
assertThrow(() -> new TokenBucket(-1, 1, 1));
@@ -46,6 +53,7 @@
new TokenBucket(5000, 1);
}
+ @Test
public void testInitialCapacity() {
drain(new TokenBucket(FILL_DELTA_VERY_LONG, 1), 1);
drain(new TokenBucket(FILL_DELTA_VERY_LONG, 10), 10);
@@ -62,6 +70,7 @@
drain(new TokenBucket((int) DateUtils.DAY_IN_MILLIS, 200), 200);
}
+ @Test
public void testReset() {
TokenBucket tb = new TokenBucket(FILL_DELTA_VERY_LONG, 100, 10);
drain(tb, 10);
@@ -77,6 +86,7 @@
drain(tb, 30);
}
+ @Test
public void testFill() throws Exception {
int delta = 50;
TokenBucket tb = new TokenBucket(delta, 10, 0);
@@ -88,6 +98,7 @@
assertTrue(tb.has());
}
+ @Test
public void testRefill() throws Exception {
TokenBucket tb = new TokenBucket(FILL_DELTA_VERY_SHORT, 10, 10);
@@ -107,6 +118,7 @@
assertEquals(10, tb.get(100));
}
+ @Test
public void testAverage() throws Exception {
final int delta = 3;
final int want = 60;
@@ -124,6 +136,7 @@
assertDuration(want * delta, SystemClock.elapsedRealtime() - start);
}
+ @Test
public void testBurst() throws Exception {
final int delta = 2;
final int capacity = 20;
diff --git a/core/tests/utiltests/Android.bp b/core/tests/utiltests/Android.bp
index 967047e..2ccee71 100644
--- a/core/tests/utiltests/Android.bp
+++ b/core/tests/utiltests/Android.bp
@@ -54,21 +54,20 @@
android_ravenwood_test {
name: "FrameworksUtilTestsRavenwood",
+ libs: [
+ "android.test.mock",
+ ],
static_libs: [
"androidx.annotation_annotation",
"androidx.test.rules",
"mockito_ravenwood",
+ "frameworks-base-testutils",
+ "servicestests-utils",
],
srcs: [
- "src/android/util/AtomicFileTest.java",
- "src/android/util/DataUnitTest.java",
- "src/android/util/EventLogTest.java",
- "src/android/util/IndentingPrintWriterTest.java",
- "src/android/util/IntArrayTest.java",
- "src/android/util/LocalLogTest.java",
- "src/android/util/LongArrayTest.java",
- "src/android/util/SlogTest.java",
- "src/android/util/TimeUtilsTest.java",
+ "src/android/util/IRemoteMemoryIntArray.aidl",
+ "src/android/util/**/*.java",
+ "src/com/android/internal/util/**/*.java",
],
auto_gen_config: true,
}
diff --git a/core/tests/utiltests/src/android/util/MemoryIntArrayTest.java b/core/tests/utiltests/src/android/util/MemoryIntArrayTest.java
index 1966e122..51013e4 100644
--- a/core/tests/utiltests/src/android/util/MemoryIntArrayTest.java
+++ b/core/tests/utiltests/src/android/util/MemoryIntArrayTest.java
@@ -23,11 +23,14 @@
import static org.junit.Assert.fail;
import android.os.Parcel;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import libcore.io.IoUtils;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -35,13 +38,17 @@
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = MemoryIntArray.class)
public class MemoryIntArrayTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
static {
- System.loadLibrary("cutils");
- System.loadLibrary("memoryintarraytest");
+ if (!RavenwoodRule.isUnderRavenwood()) {
+ System.loadLibrary("cutils");
+ System.loadLibrary("memoryintarraytest");
+ }
}
@Test
diff --git a/core/tests/utiltests/src/android/util/MetadataReaderTest.java b/core/tests/utiltests/src/android/util/MetadataReaderTest.java
index a828edb..14feed8 100644
--- a/core/tests/utiltests/src/android/util/MetadataReaderTest.java
+++ b/core/tests/utiltests/src/android/util/MetadataReaderTest.java
@@ -16,37 +16,47 @@
package android.util;
+import static org.junit.Assert.assertEquals;
+
import android.media.ExifInterface;
import android.os.Bundle;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import android.provider.DocumentsContract;
import android.provider.MetadataReader;
-import libcore.io.IoUtils;
+import androidx.test.runner.AndroidJUnit4;
-import junit.framework.TestCase;
+import libcore.io.IoUtils;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-public class MetadataReaderTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = MetadataReader.class)
+public class MetadataReaderTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
private InputStream mInputStream;
private Bundle mData;
@Before
- protected void setUp() throws Exception {
+ public void setUp() throws Exception {
mInputStream = getClass().getClassLoader().getResourceAsStream("res/drawable/image.jpg");
mData = new Bundle();
}
@After
- protected void tearDown() throws Exception {
+ public void tearDown() throws Exception {
IoUtils.closeQuietly(mInputStream);
}
diff --git a/core/tests/utiltests/src/android/util/SystemConfigFileCommitEventLoggerTest.java b/core/tests/utiltests/src/android/util/SystemConfigFileCommitEventLoggerTest.java
index 5f6c201..3bb79ec 100644
--- a/core/tests/utiltests/src/android/util/SystemConfigFileCommitEventLoggerTest.java
+++ b/core/tests/utiltests/src/android/util/SystemConfigFileCommitEventLoggerTest.java
@@ -21,12 +21,22 @@
import static org.mockito.Mockito.times;
import android.os.SystemClock;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mockito;
-
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = SystemConfigFileCommitEventLogger.class)
public class SystemConfigFileCommitEventLoggerTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
@Test
public void testSimple() throws Exception {
var logger = spy(new SystemConfigFileCommitEventLogger("name"));
diff --git a/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java
index 72f3af6..0c5e966 100644
--- a/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java
@@ -17,19 +17,28 @@
package com.android.internal.util;
import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import junit.framework.TestCase;
-
/**
* Tests for {@link ArrayUtils}
*/
-public class ArrayUtilsTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class ArrayUtilsTest {
+ @Test
public void testContains() throws Exception {
final Object A = new Object();
final Object B = new Object();
@@ -46,6 +55,7 @@
assertFalse(ArrayUtils.contains(new Object[] { null }, A));
}
+ @Test
public void testIndexOf() throws Exception {
final Object A = new Object();
final Object B = new Object();
@@ -66,6 +76,7 @@
assertEquals(2, ArrayUtils.indexOf(new Object[] { A, null, B }, B));
}
+ @Test
public void testContainsAll() throws Exception {
final Object A = new Object();
final Object B = new Object();
@@ -86,6 +97,7 @@
assertFalse(ArrayUtils.containsAll(new Object[] { A }, new Object[] { null }));
}
+ @Test
public void testContainsInt() throws Exception {
assertTrue(ArrayUtils.contains(new int[] { 1, 2, 3 }, 1));
assertTrue(ArrayUtils.contains(new int[] { 1, 2, 3 }, 2));
@@ -96,6 +108,7 @@
assertFalse(ArrayUtils.contains(new int[] { }, 2));
}
+ @Test
public void testAppendInt() throws Exception {
assertArrayEquals(new int[] { 1 },
ArrayUtils.appendInt(null, 1));
@@ -107,6 +120,7 @@
ArrayUtils.appendInt(new int[] { 1, 2 }, 1));
}
+ @Test
public void testRemoveInt() throws Exception {
assertNull(ArrayUtils.removeInt(null, 1));
assertArrayEquals(new int[] { },
@@ -123,6 +137,7 @@
ArrayUtils.removeInt(new int[] { 1, 2, 3, 1 }, 1));
}
+ @Test
public void testContainsLong() throws Exception {
assertTrue(ArrayUtils.contains(new long[] { 1, 2, 3 }, 1));
assertTrue(ArrayUtils.contains(new long[] { 1, 2, 3 }, 2));
@@ -133,6 +148,7 @@
assertFalse(ArrayUtils.contains(new long[] { }, 2));
}
+ @Test
public void testAppendLong() throws Exception {
assertArrayEquals(new long[] { 1 },
ArrayUtils.appendLong(null, 1));
@@ -144,6 +160,7 @@
ArrayUtils.appendLong(new long[] { 1, 2 }, 1));
}
+ @Test
public void testRemoveLong() throws Exception {
assertNull(ArrayUtils.removeLong(null, 1));
assertArrayEquals(new long[] { },
@@ -160,6 +177,7 @@
ArrayUtils.removeLong(new long[] { 1, 2, 3, 1 }, 1));
}
+ @Test
public void testConcat_zeroObjectArrays() {
// empty varargs array
assertArrayEquals(new String[] {}, ArrayUtils.concat(String.class));
@@ -167,16 +185,19 @@
assertArrayEquals(new String[] {}, ArrayUtils.concat(String.class, (String[][]) null));
}
+ @Test
public void testConcat_oneObjectArray() {
assertArrayEquals(new String[] { "1", "2" },
ArrayUtils.concat(String.class, new String[] { "1", "2" }));
}
+ @Test
public void testConcat_oneEmptyObjectArray() {
assertArrayEquals(new String[] {}, ArrayUtils.concat(String.class, (String[]) null));
assertArrayEquals(new String[] {}, ArrayUtils.concat(String.class, new String[] {}));
}
+ @Test
public void testConcat_twoObjectArrays() {
assertArrayEquals(new Long[] { 1L },
ArrayUtils.concat(Long.class, new Long[] { 1L }, new Long[] {}));
@@ -188,6 +209,7 @@
ArrayUtils.concat(Long.class, new Long[] { 1L, 2L }, new Long[] { 3L, 4L }));
}
+ @Test
public void testConcat_twoEmptyObjectArrays() {
assertArrayEquals(new Long[] {}, ArrayUtils.concat(Long.class, null, null));
assertArrayEquals(new Long[] {}, ArrayUtils.concat(Long.class, new Long[] {}, null));
@@ -196,6 +218,7 @@
ArrayUtils.concat(Long.class, new Long[] {}, new Long[] {}));
}
+ @Test
public void testConcat_threeObjectArrays() {
String[] array1 = { "1", "2" };
String[] array2 = { "3", "4" };
@@ -205,6 +228,7 @@
assertArrayEquals(expectation, ArrayUtils.concat(String.class, array1, array2, array3));
}
+ @Test
public void testConcat_threeObjectArraysWithNull() {
String[] array1 = { "1", "2" };
String[] array2 = null;
@@ -214,6 +238,7 @@
assertArrayEquals(expectation, ArrayUtils.concat(String.class, array1, array2, array3));
}
+ @Test
public void testConcat_zeroByteArrays() {
// empty varargs array
assertArrayEquals(new byte[] {}, ArrayUtils.concat());
@@ -221,15 +246,18 @@
assertArrayEquals(new byte[] {}, ArrayUtils.concat((byte[][]) null));
}
+ @Test
public void testConcat_oneByteArray() {
assertArrayEquals(new byte[] { 1, 2 }, ArrayUtils.concat(new byte[] { 1, 2 }));
}
+ @Test
public void testConcat_oneEmptyByteArray() {
assertArrayEquals(new byte[] {}, ArrayUtils.concat((byte[]) null));
assertArrayEquals(new byte[] {}, ArrayUtils.concat(new byte[] {}));
}
+ @Test
public void testConcat_twoByteArrays() {
assertArrayEquals(new byte[] { 1 }, ArrayUtils.concat(new byte[] { 1 }, new byte[] {}));
assertArrayEquals(new byte[] { 1 }, ArrayUtils.concat(new byte[] {}, new byte[] { 1 }));
@@ -239,6 +267,7 @@
ArrayUtils.concat(new byte[] { 1, 2 }, new byte[] { 3, 4 }));
}
+ @Test
public void testConcat_twoEmptyByteArrays() {
assertArrayEquals(new byte[] {}, ArrayUtils.concat((byte[]) null, null));
assertArrayEquals(new byte[] {}, ArrayUtils.concat(new byte[] {}, null));
@@ -246,6 +275,7 @@
assertArrayEquals(new byte[] {}, ArrayUtils.concat(new byte[] {}, new byte[] {}));
}
+ @Test
public void testConcat_threeByteArrays() {
byte[] array1 = { 1, 2 };
byte[] array2 = { 3, 4 };
@@ -255,6 +285,7 @@
assertArrayEquals(expectation, ArrayUtils.concat(array1, array2, array3));
}
+ @Test
public void testConcat_threeByteArraysWithNull() {
byte[] array1 = { 1, 2 };
byte[] array2 = null;
@@ -264,6 +295,7 @@
assertArrayEquals(expectation, ArrayUtils.concat(array1, array2, array3));
}
+ @Test
@SmallTest
public void testUnstableRemoveIf() throws Exception {
java.util.function.Predicate<Object> isNull = new java.util.function.Predicate<Object>() {
@@ -357,31 +389,37 @@
assertEquals(0, collection.size());
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_passesWhenRangeInsideArray() {
ArrayUtils.throwsIfOutOfBounds(10, 2, 6);
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_passesWhenRangeIsWholeArray() {
ArrayUtils.throwsIfOutOfBounds(10, 0, 10);
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_passesWhenEmptyRangeAtStart() {
ArrayUtils.throwsIfOutOfBounds(10, 0, 0);
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_passesWhenEmptyRangeAtEnd() {
ArrayUtils.throwsIfOutOfBounds(10, 10, 0);
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_passesWhenEmptyArray() {
ArrayUtils.throwsIfOutOfBounds(0, 0, 0);
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_failsWhenRangeStartNegative() {
try {
@@ -392,6 +430,7 @@
}
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_failsWhenCountNegative() {
try {
@@ -402,6 +441,7 @@
}
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_failsWhenRangeStartTooHigh() {
try {
@@ -412,6 +452,7 @@
}
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_failsWhenRangeEndTooHigh() {
try {
@@ -422,6 +463,7 @@
}
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_failsWhenLengthNegative() {
try {
@@ -432,6 +474,7 @@
}
}
+ @Test
@SmallTest
public void testThrowsIfOutOfBounds_failsWhenOverflowRangeEndTooHigh() {
try {
diff --git a/core/tests/utiltests/src/com/android/internal/util/BitwiseStreamsTest.java b/core/tests/utiltests/src/com/android/internal/util/BitwiseStreamsTest.java
index 306f58f..092d699 100644
--- a/core/tests/utiltests/src/com/android/internal/util/BitwiseStreamsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/BitwiseStreamsTest.java
@@ -16,20 +16,23 @@
package com.android.internal.util;
-import com.android.internal.util.BitwiseInputStream;
-import com.android.internal.util.BitwiseOutputStream;
-import com.android.internal.util.HexDump;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
import android.util.Log;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
import java.util.Random;
-public class BitwiseStreamsTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class BitwiseStreamsTest {
private final static String LOG_TAG = "BitwiseStreamsTest";
+ @Test
@SmallTest
public void testOne() throws Exception {
int offset = 3;
@@ -45,6 +48,7 @@
assertEquals(HexDump.toHexString(inBuf), HexDump.toHexString(inBufDup));
}
+ @Test
@SmallTest
public void testTwo() throws Exception {
int offset = 3;
@@ -59,6 +63,7 @@
assertEquals(HexDump.toHexString(inBuf), HexDump.toHexString(inBufDup));
}
+ @Test
@SmallTest
public void testThree() throws Exception {
int offset = 4;
@@ -73,6 +78,7 @@
assertEquals(HexDump.toHexString(inBuf), HexDump.toHexString(inBufDup));
}
+ @Test
@SmallTest
public void testFour() throws Exception {
int offset = 7;
@@ -90,6 +96,7 @@
assertEquals(HexDump.toHexString(inBuf), HexDump.toHexString(inBufDup));
}
+ @Test
@SmallTest
public void testFive() throws Exception {
Random random = new Random();
@@ -111,6 +118,7 @@
}
}
+ @Test
@SmallTest
public void testSix() throws Exception {
int num_runs = 10;
@@ -134,6 +142,7 @@
Log.d(LOG_TAG, "repeated encode-decode took " + (end - start) + " ms");
}
+ @Test
@SmallTest
public void testExpandArray() throws Exception {
Random random = new Random();
diff --git a/core/tests/utiltests/src/com/android/internal/util/CallbackRegistryTest.java b/core/tests/utiltests/src/com/android/internal/util/CallbackRegistryTest.java
index 1581abb..9a1402e 100644
--- a/core/tests/utiltests/src/com/android/internal/util/CallbackRegistryTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/CallbackRegistryTest.java
@@ -15,19 +15,21 @@
*/
package com.android.internal.util;
-import junit.framework.TestCase;
-
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Objects;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-public class CallbackRegistryTest extends TestCase {
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.Objects;
+
+@RunWith(AndroidJUnit4.class)
+public class CallbackRegistryTest {
final Integer callback1 = 1;
final Integer callback2 = 2;
@@ -50,6 +52,7 @@
deepNotifyCount[callback]++;
}
+ @Test
public void testAddListener() {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
@@ -89,6 +92,7 @@
assertEquals(otherListener, callbacks.get(0));
}
+ @Test
public void testSimpleNotify() {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
@@ -108,6 +112,7 @@
assertEquals(1, notify2);
}
+ @Test
public void testRemoveWhileNotifying() {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
@@ -135,6 +140,7 @@
assertEquals(callback3, callbacks.get(0));
}
+ @Test
public void testDeepRemoveWhileNotifying() {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
@@ -159,6 +165,7 @@
assertEquals(0, callbacks.size());
}
+ @Test
public void testAddRemovedListener() {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
@@ -191,6 +198,7 @@
assertEquals(1, notify3);
}
+ @Test
public void testVeryDeepRemoveWhileNotifying() {
final Integer[] callbacks = new Integer[deepNotifyCount.length];
for (int i = 0; i < callbacks.length; i++) {
@@ -221,6 +229,7 @@
assertEquals(0, callbackList.size());
}
+ @Test
public void testClear() {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
@@ -245,6 +254,7 @@
}
}
+ @Test
public void testNestedClear() {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
@@ -268,6 +278,7 @@
assertEquals(0, callbackList.size());
}
+ @Test
public void testIsEmpty() throws Exception {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
@@ -284,6 +295,7 @@
assertFalse(registry.isEmpty());
}
+ @Test
public void testClone() throws Exception {
CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer> notifier =
new CallbackRegistry.NotifierCallback<Integer, CallbackRegistryTest, Integer>() {
diff --git a/core/tests/utiltests/src/com/android/internal/util/CharSequencesTest.java b/core/tests/utiltests/src/com/android/internal/util/CharSequencesTest.java
index 469a4cc..9888540 100644
--- a/core/tests/utiltests/src/com/android/internal/util/CharSequencesTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/CharSequencesTest.java
@@ -18,12 +18,26 @@
import static com.android.internal.util.CharSequences.forAsciiBytes;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
-import junit.framework.TestCase;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
-public class CharSequencesTest extends TestCase {
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = CharSequences.class)
+public class CharSequencesTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
+ @Test
@SmallTest
public void testCharSequences() {
String s = "Hello Bob";
diff --git a/core/tests/utiltests/src/com/android/internal/util/FastXmlSerializerTest.java b/core/tests/utiltests/src/com/android/internal/util/FastXmlSerializerTest.java
index 3cef336..7723d58 100644
--- a/core/tests/utiltests/src/com/android/internal/util/FastXmlSerializerTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/FastXmlSerializerTest.java
@@ -16,13 +16,23 @@
package com.android.internal.util;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+import android.provider.DeviceConfig;
import android.util.Log;
import android.util.Xml;
-import junit.framework.TestCase;
+import androidx.test.filters.LargeTest;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;
@@ -34,7 +44,9 @@
* Tests for {@link FastXmlSerializer}
*/
@SmallTest
-public class FastXmlSerializerTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = Xml.class)
+public class FastXmlSerializerTest {
private static final String TAG = "FastXmlSerializerTest";
private static final boolean ENABLE_DUMP = false; // DO NOT SUBMIT WITH TRUE.
@@ -42,6 +54,10 @@
private static final String ROOT_TAG = "root";
private static final String ATTR = "attr";
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
+ @Test
public void testEmptyText() throws Exception {
final ByteArrayOutputStream stream = new ByteArrayOutputStream();
@@ -128,6 +144,7 @@
return ok;
}
+ @Test
@LargeTest
public void testAllCharacters() throws Exception {
boolean ok = true;
diff --git a/core/tests/utiltests/src/com/android/internal/util/FileRotatorTest.java b/core/tests/utiltests/src/com/android/internal/util/FileRotatorTest.java
index 73e47e16..47c1795 100644
--- a/core/tests/utiltests/src/com/android/internal/util/FileRotatorTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/FileRotatorTest.java
@@ -23,16 +23,23 @@
import static android.text.format.DateUtils.WEEK_IN_MILLIS;
import static android.text.format.DateUtils.YEAR_IN_MILLIS;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
import android.util.Log;
+import androidx.test.runner.AndroidJUnit4;
+
import com.android.internal.util.FileRotator.Reader;
import com.android.internal.util.FileRotator.Writer;
-import com.android.internal.util.test.FsUtil;
import com.google.android.collect.Lists;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
@@ -40,6 +47,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
@@ -47,7 +55,8 @@
/**
* Tests for {@link FileRotator}.
*/
-public class FileRotatorTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class FileRotatorTest {
private static final String TAG = "FileRotatorTest";
private File mBasePath;
@@ -59,14 +68,12 @@
// TODO: test throwing rolls back correctly
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mBasePath = getContext().getFilesDir();
- FsUtil.deleteContents(mBasePath);
+ @Before
+ public void setUp() throws Exception {
+ mBasePath = Files.createTempDirectory(TAG).toFile();
}
+ @Test
public void testEmpty() throws Exception {
final FileRotator rotate1 = new FileRotator(
mBasePath, PREFIX, DAY_IN_MILLIS, WEEK_IN_MILLIS);
@@ -85,6 +92,7 @@
assertReadAll(rotate2);
}
+ @Test
public void testCombine() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, DAY_IN_MILLIS, WEEK_IN_MILLIS);
@@ -106,6 +114,7 @@
assertReadAll(rotate, "bar");
}
+ @Test
public void testRotate() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, DAY_IN_MILLIS, WEEK_IN_MILLIS);
@@ -138,6 +147,7 @@
assertReadAll(rotate, "bar", "baz");
}
+ @Test
public void testDelete() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, MINUTE_IN_MILLIS, DAY_IN_MILLIS);
@@ -168,6 +178,7 @@
assertReadAll(rotate);
}
+ @Test
public void testThrowRestoresBackup() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, MINUTE_IN_MILLIS, DAY_IN_MILLIS);
@@ -201,6 +212,7 @@
assertReadAll(rotate, "foo");
}
+ @Test
public void testOtherFilesAndMalformed() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, SECOND_IN_MILLIS, SECOND_IN_MILLIS);
@@ -229,6 +241,7 @@
private static final String BLUE = "blue";
private static final String YELLOW = "yellow";
+ @Test
public void testQueryMatch() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, HOUR_IN_MILLIS, YEAR_IN_MILLIS);
@@ -277,6 +290,7 @@
assertReadMatching(rotate, Long.MIN_VALUE, TEST_TIME - DAY_IN_MILLIS);
}
+ @Test
public void testClockRollingBackwards() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, DAY_IN_MILLIS, YEAR_IN_MILLIS);
@@ -325,7 +339,8 @@
assertReadAll(rotate, "meow", "yay");
}
- @Suppress
+ @Test
+ @Ignore
public void testFuzz() throws Exception {
final FileRotator rotate = new FileRotator(
mBasePath, PREFIX, HOUR_IN_MILLIS, DAY_IN_MILLIS);
@@ -352,6 +367,7 @@
Log.d(TAG, Arrays.toString(mBasePath.list()));
}
+ @Test
public void testRecoverAtomic() throws Exception {
write("rotator.1024-2048", "foo");
write("rotator.1024-2048.backup", "bar");
@@ -366,6 +382,7 @@
assertReadAll(rotate, "bar");
}
+ @Test
public void testReadSorted() throws Exception {
write("rotator.1024-2048", "2");
write("rotator.2048-4096", "3");
@@ -376,11 +393,11 @@
assertReadAll(rotate, "1", "2", "3");
}
+ @Test
public void testFileSystemInaccessible() throws Exception {
- File inaccessibleDir = null;
- String dirPath = getContext().getFilesDir() + File.separator + "inaccessible";
- inaccessibleDir = new File(dirPath);
- final FileRotator rotate = new FileRotator(inaccessibleDir, PREFIX, SECOND_IN_MILLIS, SECOND_IN_MILLIS);
+ File inaccessibleDir = mBasePath.toPath().resolve("does_not_exist").toFile();
+ final FileRotator rotate = new FileRotator(inaccessibleDir, PREFIX,
+ SECOND_IN_MILLIS, SECOND_IN_MILLIS);
// rotate should not throw on dir not mkdir-ed (or otherwise inaccessible)
rotate.maybeRotate(TEST_TIME);
diff --git a/core/tests/utiltests/src/com/android/internal/util/HeavyHitterSketchTest.java b/core/tests/utiltests/src/com/android/internal/util/HeavyHitterSketchTest.java
index f2285a1..74184ca 100644
--- a/core/tests/utiltests/src/com/android/internal/util/HeavyHitterSketchTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/HeavyHitterSketchTest.java
@@ -16,10 +16,17 @@
package com.android.internal.util;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
import android.util.ArraySet;
import android.util.Pair;
-import junit.framework.TestCase;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.ArrayList;
import java.util.Comparator;
@@ -32,7 +39,8 @@
/**
* Tests for {@link HeavyHitterSketch}.
*/
-public final class HeavyHitterSketchTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public final class HeavyHitterSketchTest {
private static final float EPSILON = 0.00001f;
@@ -163,6 +171,7 @@
return input;
}
+ @Test
public void testPositive() throws Exception {
// Simple case
verify(new int[]{2, 9, 9, 9, 7, 6, 4, 9, 9, 9, 3, 9}, 2, new int[]{9},
@@ -179,6 +188,7 @@
new float[]{0.32f, 0.24f, 0.16f, 0.08f});
}
+ @Test
public void testNegative() throws Exception {
// Simple case
verifyNotExpected(new int[]{2, 9, 9, 9, 7, 6, 4, 9, 9, 9, 3, 9}, 2, new int[]{0, 1, 2});
@@ -193,6 +203,7 @@
verifyNotExpected(input, 12, new int[]{0, 1, 2, 1000, 1005});
}
+ @Test
public void testFalsePositive() throws Exception {
// Simple case
verifyNotExpected(new int[]{2, 9, 2, 2, 7, 6, 4, 9, 9, 9, 3, 9}, 2, new int[]{9});
diff --git a/core/tests/utiltests/src/com/android/internal/util/InlinePresentationStyleUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/InlinePresentationStyleUtilsTest.java
index 35c5681..7203b8c 100644
--- a/core/tests/utiltests/src/com/android/internal/util/InlinePresentationStyleUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/InlinePresentationStyleUtilsTest.java
@@ -22,20 +22,28 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import android.graphics.Color;
import android.os.Binder;
import android.os.Bundle;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.internal.widget.InlinePresentationStyleUtils;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@SmallTest
+@IgnoreUnderRavenwood(blockedBy = InlinePresentationStyleUtils.class)
public class InlinePresentationStyleUtilsTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
@Test
public void testBundleEquals_empty() {
Bundle bundle1 = new Bundle();
diff --git a/core/tests/utiltests/src/com/android/internal/util/LockPatternUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/LockPatternUtilsTest.java
index 0b70199..0df5b0a 100644
--- a/core/tests/utiltests/src/com/android/internal/util/LockPatternUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/LockPatternUtilsTest.java
@@ -43,6 +43,8 @@
import android.os.Looper;
import android.os.RemoteException;
import android.os.UserManager;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import android.provider.Settings;
import android.test.mock.MockContentResolver;
@@ -58,6 +60,7 @@
import com.google.android.collect.Lists;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -68,7 +71,10 @@
@RunWith(AndroidJUnit4.class)
@SmallTest
+@IgnoreUnderRavenwood(blockedBy = LockPatternUtils.class)
public class LockPatternUtilsTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
private static final int DEMO_USER_ID = 5;
diff --git a/core/tests/utiltests/src/com/android/internal/util/MessageUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/MessageUtilsTest.java
index 32b969a..36f238e 100644
--- a/core/tests/utiltests/src/com/android/internal/util/MessageUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/MessageUtilsTest.java
@@ -19,10 +19,13 @@
import static org.junit.Assert.*;
import com.android.internal.util.MessageUtils;
-import android.test.suitebuilder.annotation.SmallTest;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
import android.util.SparseArray;
import org.junit.Test;
+import org.junit.runner.RunWith;
class A {
@@ -48,6 +51,7 @@
* Unit tests for {@link com.android.util.MessageUtils}.
*/
@SmallTest
+@RunWith(AndroidJUnit4.class)
public class MessageUtilsTest {
private static final Class[] CLASSES = { A.class, B.class };
diff --git a/core/tests/utiltests/src/com/android/internal/util/MimeIconUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/MimeIconUtilsTest.java
index 4412c2c..6c34797 100644
--- a/core/tests/utiltests/src/com/android/internal/util/MimeIconUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/MimeIconUtilsTest.java
@@ -16,12 +16,27 @@
package com.android.internal.util;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* Tests for {@link MimeIconUtils}.
*/
-public class MimeIconUtilsTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = MimeIconUtils.class)
+public class MimeIconUtilsTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
+ @Test
public void testSimple() throws Exception {
assertEquals("PNG image",
MimeIconUtils.getTypeInfo("image/png").getLabel());
diff --git a/core/tests/utiltests/src/com/android/internal/util/ObjectUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/ObjectUtilsTest.java
index 443183e..4eaacff 100644
--- a/core/tests/utiltests/src/com/android/internal/util/ObjectUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/ObjectUtilsTest.java
@@ -15,11 +15,18 @@
*/
package com.android.internal.util;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
@SmallTest
-public class ObjectUtilsTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class ObjectUtilsTest {
+ @Test
public void testCompare() {
assertEquals(0, ObjectUtils.compare(null, null));
assertEquals(1, ObjectUtils.compare("a", null));
diff --git a/core/tests/utiltests/src/com/android/internal/util/ObservableServiceConnectionTest.java b/core/tests/utiltests/src/com/android/internal/util/ObservableServiceConnectionTest.java
index d124ad9..c852e9f 100644
--- a/core/tests/utiltests/src/com/android/internal/util/ObservableServiceConnectionTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/ObservableServiceConnectionTest.java
@@ -29,14 +29,19 @@
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
import com.android.internal.util.ObservableServiceConnection.ServiceTransformer;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -46,7 +51,12 @@
import java.util.concurrent.Executor;
@SmallTest
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = ObservableServiceConnection.class)
public class ObservableServiceConnectionTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
private static final ComponentName COMPONENT_NAME =
new ComponentName("test.package", "component");
diff --git a/core/tests/utiltests/src/com/android/internal/util/PersistentServiceConnectionTest.java b/core/tests/utiltests/src/com/android/internal/util/PersistentServiceConnectionTest.java
index fee4654..096f303 100644
--- a/core/tests/utiltests/src/com/android/internal/util/PersistentServiceConnectionTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/PersistentServiceConnectionTest.java
@@ -30,6 +30,10 @@
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
+import androidx.test.runner.AndroidJUnit4;
import com.android.internal.util.ObservableServiceConnection.ServiceTransformer;
import com.android.server.testutils.OffsettableClock;
@@ -37,7 +41,9 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -45,7 +51,12 @@
import java.util.Queue;
import java.util.concurrent.Executor;
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = PersistentServiceConnection.class)
public class PersistentServiceConnectionTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
+
private static final ComponentName COMPONENT_NAME =
new ComponentName("test.package", "component");
private static final int MAX_RETRIES = 2;
diff --git a/core/tests/utiltests/src/com/android/internal/util/ProcFileReaderTest.java b/core/tests/utiltests/src/com/android/internal/util/ProcFileReaderTest.java
index b932760..4c00c16 100644
--- a/core/tests/utiltests/src/com/android/internal/util/ProcFileReaderTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/ProcFileReaderTest.java
@@ -16,7 +16,15 @@
package com.android.internal.util;
-import android.test.AndroidTestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.ByteArrayInputStream;
import java.io.File;
@@ -28,8 +36,10 @@
/**
* Tests for {@link ProcFileReader}.
*/
-public class ProcFileReaderTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class ProcFileReaderTest {
+ @Test
public void testEmpty() throws Exception {
final ProcFileReader reader = buildReader("");
@@ -43,6 +53,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testSingleString() throws Exception {
final ProcFileReader reader = buildReader("a\nb\nc\n");
@@ -59,6 +70,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testMixedNumbersSkip() throws Exception {
final ProcFileReader reader = buildReader("1 2 3\n4 abc_def 5 6 7 8 9\n10\n");
@@ -79,6 +91,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testBufferSize() throws Exception {
// read numbers using very small buffer size, exercising fillBuf()
final ProcFileReader reader = buildReader("1 21 3 41 5 61 7 81 9 10\n", 3);
@@ -97,6 +110,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testBlankLines() throws Exception {
final ProcFileReader reader = buildReader("1\n\n2\n\n3\n");
@@ -117,6 +131,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testMinMax() throws Exception {
final ProcFileReader reader = buildReader(
"1 -1024 9223372036854775807 -9223372036854775808\n");
@@ -129,6 +144,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testDelimiterNeverFound() throws Exception {
final ProcFileReader reader = buildReader("teststringwithoutdelimiters");
@@ -141,6 +157,7 @@
}
}
+ @Test
public void testLargerThanBuffer() throws Exception {
// try finishing line larger than buffer
final ProcFileReader reader = buildReader("1 teststringlongerthanbuffer\n", 4);
@@ -155,6 +172,7 @@
}
}
+ @Test
public void testOptionalLongs() throws Exception {
final ProcFileReader reader = buildReader("123 456\n789\n");
@@ -169,6 +187,7 @@
assertEquals(-1L, reader.nextOptionalLong(-1L));
}
+ @Test
public void testInvalidLongs() throws Exception {
final ProcFileReader reader = buildReader("12: 34\n56 78@#\n");
@@ -183,6 +202,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testConsecutiveDelimiters() throws Exception {
final ProcFileReader reader = buildReader("1 2 3 4 5\n");
@@ -195,6 +215,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testIgnore() throws Exception {
final ProcFileReader reader = buildReader("a b c\n");
@@ -209,6 +230,7 @@
assertFalse(reader.hasMoreData());
}
+ @Test
public void testRewind() throws Exception {
final ProcFileReader reader = buildReader("abc\n");
@@ -224,7 +246,7 @@
assertFalse(reader.hasMoreData());
}
-
+ @Test
public void testRewindFileInputStream() throws Exception {
File tempFile = File.createTempFile("procfile", null, null);
Files.write(tempFile.toPath(), "abc\n".getBytes(StandardCharsets.US_ASCII));
diff --git a/core/tests/utiltests/src/com/android/internal/util/QuickSelectTest.java b/core/tests/utiltests/src/com/android/internal/util/QuickSelectTest.java
index 1b9d2ef..1eb5e3ab 100644
--- a/core/tests/utiltests/src/com/android/internal/util/QuickSelectTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/QuickSelectTest.java
@@ -16,7 +16,12 @@
package com.android.internal.util;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.util.Arrays;
import java.util.List;
@@ -24,8 +29,10 @@
/**
* Tests for {@link QuickSelect}.
*/
-public final class QuickSelectTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class QuickSelectTest {
+ @Test
public void testQuickSelect() throws Exception {
test((List<Integer>) null, 0, null);
test(Arrays.asList(), -1, null);
diff --git a/core/tests/utiltests/src/com/android/internal/util/StringPoolTest.java b/core/tests/utiltests/src/com/android/internal/util/StringPoolTest.java
index f67fd51..6523ed7 100644
--- a/core/tests/utiltests/src/com/android/internal/util/StringPoolTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/StringPoolTest.java
@@ -16,12 +16,21 @@
package com.android.internal.util;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
@SmallTest
-public final class StringPoolTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public final class StringPoolTest {
+ @Test
public void testStringPool() {
StringPool stringPool = new StringPool();
String bcd = stringPool.get(new char[] { 'a', 'b', 'c', 'd', 'e' }, 1, 3);
@@ -29,6 +38,7 @@
assertSame(bcd, stringPool.get(new char[] { 'a', 'b', 'c', 'd', 'e' }, 1, 3));
}
+ @Test
public void testHashCollision() {
StringPool stringPool = new StringPool();
char[] a = { (char) 1, (char) 0 };
diff --git a/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java b/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java
index 734ebef..b0db8a1 100644
--- a/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/WakeupMessageTest.java
@@ -24,11 +24,17 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -40,6 +46,8 @@
* Unit tests for {@link com.android.internal.util.WakeupMessage}.
*/
@SmallTest
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = WakeupMessage.class)
public class WakeupMessageTest {
private static final String TEST_CMD_NAME = "TEST cmd Name";
private static final int TEST_CMD = 18;
@@ -47,11 +55,16 @@
private static final int TEST_ARG2 = 182;
private static final Object TEST_OBJ = "hello";
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule.Builder()
+ .setProvideMainThread(true)
+ .build();
+
@Mock Context mContext;
@Mock AlarmManager mAlarmManager;
WakeupMessage mMessage;
// Make a spy so that we can verify calls to it
- @Spy MessageCapturingHandler mHandler = new MessageCapturingHandler();
+ @Spy MessageCapturingHandler mHandler;
ArgumentCaptor<AlarmManager.OnAlarmListener> mListenerCaptor =
ArgumentCaptor.forClass(AlarmManager.OnAlarmListener.class);
@@ -85,6 +98,8 @@
*/
@Before
public void setUp() {
+ mHandler = new MessageCapturingHandler();
+
MockitoAnnotations.initMocks(this);
when(mContext.getSystemService(Context.ALARM_SERVICE)).thenReturn(mAlarmManager);
diff --git a/core/tests/utiltests/src/com/android/internal/util/XmlUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/XmlUtilsTest.java
index 0484068..24eb213 100644
--- a/core/tests/utiltests/src/com/android/internal/util/XmlUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/XmlUtilsTest.java
@@ -17,13 +17,17 @@
package com.android.internal.util;
import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
import android.util.Xml;
+import androidx.test.runner.AndroidJUnit4;
+
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlSerializer;
-import junit.framework.TestCase;
+import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -32,9 +36,11 @@
import java.util.HashMap;
import java.util.Map;
-public class XmlUtilsTest extends TestCase {
+@RunWith(AndroidJUnit4.class)
+public class XmlUtilsTest {
// https://code.google.com/p/android/issues/detail?id=63717
+ @Test
public void testMapWithNullKeys() throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
Map<String, Object> map = new HashMap<String, Object>();
@@ -48,6 +54,7 @@
assertEquals("fooValue", deserialized.get("foo"));
}
+ @Test
public void testreadWriteXmlByteArrayValue() throws Exception {
byte[] testByteArray = {0x1 , 0xa, 0xb, 0x9, 0x34, (byte) 0xaa, (byte) 0xba, (byte) 0x99};
diff --git a/core/tests/utiltests/src/com/android/internal/util/test/FakeSettingsProviderTest.java b/core/tests/utiltests/src/com/android/internal/util/test/FakeSettingsProviderTest.java
index f2be109..502d6b6 100644
--- a/core/tests/utiltests/src/com/android/internal/util/test/FakeSettingsProviderTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/test/FakeSettingsProviderTest.java
@@ -16,33 +16,41 @@
package com.android.internal.util.test;
-import android.content.ContentResolver;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.provider.Settings;
-import android.test.AndroidTestCase;
-import android.test.mock.MockContentResolver;
-import android.test.mock.MockContext;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
+import android.content.ContentProvider;
+import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.ravenwood.RavenwoodRule;
+import android.provider.Settings;
+import android.test.mock.MockContentResolver;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* Unit tests for FakeSettingsProvider.
*/
-public class FakeSettingsProviderTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+@IgnoreUnderRavenwood(blockedBy = ContentProvider.class)
+public class FakeSettingsProviderTest {
+ @Rule
+ public final RavenwoodRule mRavenwood = new RavenwoodRule();
private MockContentResolver mCr;
- @Override
+ @Before
public void setUp() throws Exception {
mCr = new MockContentResolver();
mCr.addProvider(Settings.AUTHORITY, new FakeSettingsProvider());
}
+ @Test
@SmallTest
public void testBasicOperation() throws Exception {
String settingName = Settings.System.SCREEN_BRIGHTNESS;
diff --git a/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_title.xml b/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_title.xml
deleted file mode 100644
index ef30060..0000000
--- a/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_title.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2022 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-<shape android:shape="rectangle"
- android:tintMode="multiply"
- android:tint="@color/decor_title_color"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="@android:color/white" />
-</shape>
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml
index c525a29..85bf2c1 100644
--- a/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml
@@ -21,8 +21,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
- android:orientation="horizontal"
- android:background="@drawable/desktop_mode_decor_title">
+ android:orientation="horizontal">
<LinearLayout
android:id="@+id/open_menu_button"
@@ -45,7 +44,6 @@
android:layout_width="0dp"
android:layout_height="20dp"
android:minWidth="80dp"
- android:textColor="@color/desktop_mode_caption_app_name_dark"
android:textAppearance="@android:style/TextAppearance.Material.Title"
android:textSize="14sp"
android:textFontWeight="500"
@@ -62,7 +60,6 @@
android:layout_height="16dp"
android:contentDescription="@string/expand_menu_text"
android:src="@drawable/ic_baseline_expand_more_24"
- android:tint="@color/desktop_mode_caption_expand_button_dark"
android:background="@null"
android:scaleType="fitCenter"
android:clickable="false"
@@ -87,8 +84,7 @@
android:src="@drawable/decor_desktop_mode_maximize_button_dark"
android:scaleType="fitCenter"
android:gravity="end"
- android:background="@null"
- android:tint="@color/desktop_mode_caption_maximize_button_dark"/>
+ android:background="@null"/>
<ImageButton
android:id="@+id/close_window"
@@ -100,6 +96,5 @@
android:src="@drawable/decor_close_button_dark"
android:scaleType="fitCenter"
android:gravity="end"
- android:background="@null"
- android:tint="@color/desktop_mode_caption_close_button_dark"/>
+ android:background="@null"/>
</com.android.wm.shell.windowdecor.WindowDecorLinearLayout>
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml
index 7638132..cec7ee2 100644
--- a/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml
@@ -20,8 +20,7 @@
android:id="@+id/desktop_mode_caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:background="@drawable/desktop_mode_decor_title">
+ android:gravity="center_horizontal">
<ImageButton
android:id="@+id/caption_handle"
@@ -33,5 +32,4 @@
tools:tint="@color/desktop_mode_caption_handle_bar_dark"
android:scaleType="fitXY"
android:background="?android:selectableItemBackground"/>
-
</com.android.wm.shell.windowdecor.WindowDecorLinearLayout>
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/values/colors.xml b/libs/WindowManager/Shell/res/values/colors.xml
index 9bfd1b4..fae71ef 100644
--- a/libs/WindowManager/Shell/res/values/colors.xml
+++ b/libs/WindowManager/Shell/res/values/colors.xml
@@ -60,14 +60,6 @@
<!-- Desktop Mode -->
<color name="desktop_mode_caption_handle_bar_light">#EFF1F2</color>
<color name="desktop_mode_caption_handle_bar_dark">#1C1C17</color>
- <color name="desktop_mode_caption_expand_button_light">#EFF1F2</color>
- <color name="desktop_mode_caption_expand_button_dark">#48473A</color>
- <color name="desktop_mode_caption_close_button_light">#EFF1F2</color>
- <color name="desktop_mode_caption_close_button_dark">#1C1C17</color>
- <color name="desktop_mode_caption_maximize_button_light">#EFF1F2</color>
- <color name="desktop_mode_caption_maximize_button_dark">#1C1C17</color>
- <color name="desktop_mode_caption_app_name_light">#EFF1F2</color>
- <color name="desktop_mode_caption_app_name_dark">#1C1C17</color>
<color name="desktop_mode_resize_veil_light">#EFF1F2</color>
<color name="desktop_mode_resize_veil_dark">#1C1C17</color>
<color name="desktop_mode_maximize_menu_button">#DDDACD</color>
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
index e74e578d..249f52b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
@@ -1280,7 +1280,14 @@
* Dismiss bubble if it exists and remove it from the stack
*/
public void dismissBubble(Bubble bubble, @Bubbles.DismissReason int reason) {
- mBubbleData.dismissBubbleWithKey(bubble.getKey(), reason);
+ dismissBubble(bubble.getKey(), reason);
+ }
+
+ /**
+ * Dismiss bubble with given key if it exists and remove it from the stack
+ */
+ public void dismissBubble(String key, @Bubbles.DismissReason int reason) {
+ mBubbleData.dismissBubbleWithKey(key, reason);
}
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
index 65db69a..b7f749e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
@@ -2462,6 +2462,7 @@
final Runnable collapseBackToStack = () ->
mExpandedAnimationController.collapseBackToStack(
mStackAnimationController.getStackPositionAlongNearestHorizontalEdge(),
+ /* fadeBubblesDuringCollapse= */ mRemovingLastBubbleWhileExpanded,
() -> {
mBubbleContainer.setActiveController(mStackAnimationController);
updateOverflowVisibility();
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java
index 79f306e..5b0239f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationController.java
@@ -107,6 +107,7 @@
private Runnable mAfterExpand;
private Runnable mAfterCollapse;
private PointF mCollapsePoint;
+ private boolean mFadeBubblesDuringCollapse = false;
/**
* Whether the dragged out bubble is springing towards the touch point, rather than using the
@@ -201,12 +202,14 @@
}
/** Animate collapsing the bubbles back to their stacked position. */
- public void collapseBackToStack(PointF collapsePoint, Runnable after) {
+ public void collapseBackToStack(PointF collapsePoint, boolean fadeBubblesDuringCollapse,
+ Runnable after) {
mAnimatingExpand = false;
mPreparingToCollapse = false;
mAnimatingCollapse = true;
mAfterCollapse = after;
mCollapsePoint = collapsePoint;
+ mFadeBubblesDuringCollapse = fadeBubblesDuringCollapse;
startOrUpdatePathAnimation(false /* expanding */);
}
@@ -253,6 +256,7 @@
}
mAfterCollapse = null;
+ mFadeBubblesDuringCollapse = false;
};
}
@@ -262,7 +266,7 @@
== LAYOUT_DIRECTION_RTL;
// Animate each bubble individually, since each path will end in a different spot.
- animationsForChildrenFromIndex(0, (index, animation) -> {
+ animationsForChildrenFromIndex(0, mFadeBubblesDuringCollapse, (index, animation) -> {
final View bubble = mLayout.getChildAt(index);
// Start a path at the bubble's current position.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/PhysicsAnimationLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/PhysicsAnimationLayout.java
index f3cc514..ed00da8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/PhysicsAnimationLayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/PhysicsAnimationLayout.java
@@ -204,6 +204,13 @@
return animationForChild(mLayout.getChildAt(index));
}
+
+ protected MultiAnimationStarter animationsForChildrenFromIndex(
+ int startIndex, ChildAnimationConfigurator configurator) {
+ return animationsForChildrenFromIndex(startIndex, /* fadeChildren= */ false,
+ configurator);
+ }
+
/**
* Returns a {@link MultiAnimationStarter} whose startAll method will start the physics
* animations for all children from startIndex onward. The provided configurator will be
@@ -211,14 +218,16 @@
* animation appropriately.
*/
protected MultiAnimationStarter animationsForChildrenFromIndex(
- int startIndex, ChildAnimationConfigurator configurator) {
+ int startIndex, boolean fadeChildren, ChildAnimationConfigurator configurator) {
final Set<DynamicAnimation.ViewProperty> allAnimatedProperties = new HashSet<>();
final List<PhysicsPropertyAnimator> allChildAnims = new ArrayList<>();
// Retrieve the animator for each child, ask the configurator to configure it, then save
// it and the properties it chose to animate.
for (int i = startIndex; i < mLayout.getChildCount(); i++) {
- final PhysicsPropertyAnimator anim = animationForChildAtIndex(i);
+ final PhysicsPropertyAnimator anim = fadeChildren
+ ? animationForChildAtIndex(i).alpha(0)
+ : animationForChildAtIndex(i);
configurator.configureAnimationForChildAtIndex(i, anim);
allAnimatedProperties.addAll(anim.getAnimatedProperties());
allChildAnims.add(anim);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java
index 50e1f73..d073f1d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java
@@ -67,7 +67,6 @@
private boolean mIsOverflow;
private BubbleTaskViewHelper mBubbleTaskViewHelper;
private BubbleBarMenuViewController mMenuViewController;
- private BubbleBarExpandedViewDragController mDragController;
private @Nullable Supplier<Rect> mLayerBoundsSupplier;
private @Nullable Listener mListener;
@@ -181,8 +180,6 @@
mHandleView.setOnClickListener(view -> {
mMenuViewController.showMenu(true /* animated */);
});
-
- mDragController = new BubbleBarExpandedViewDragController(this);
}
public BubbleBarHandleView getHandleView() {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt
index 933794b..4ea18f7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt
@@ -19,29 +19,47 @@
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.graphics.PointF
+import android.graphics.Rect
import android.view.MotionEvent
import android.view.View
import com.android.wm.shell.animation.Interpolators
+import com.android.wm.shell.common.bubbles.DismissView
import com.android.wm.shell.common.bubbles.RelativeTouchListener
/** Controller for handling drag interactions with [BubbleBarExpandedView] */
-class BubbleBarExpandedViewDragController(private val expandedView: BubbleBarExpandedView) {
+class BubbleBarExpandedViewDragController(
+ private val expandedView: BubbleBarExpandedView,
+ private val dismissView: DismissView,
+ private val onDismissed: () -> Unit
+) {
init {
expandedView.handleView.setOnTouchListener(HandleDragListener())
}
- private fun resetExpandedViewPosition(initialX: Float, initialY: Float) {
- val listener = object : AnimatorListenerAdapter() {
- override fun onAnimationStart(animation: Animator) {
- expandedView.isAnimating = true
- }
-
- override fun onAnimationEnd(animation: Animator) {
- expandedView.isAnimating = false
- }
+ private fun finishDrag(x: Float, y: Float, viewInitialX: Float, viewInitialY: Float) {
+ val dismissCircleBounds = Rect().apply { dismissView.circle.getBoundsOnScreen(this) }
+ if (dismissCircleBounds.contains(x.toInt(), y.toInt())) {
+ onDismissed()
+ } else {
+ resetExpandedViewPosition(viewInitialX, viewInitialY)
}
- expandedView.animate()
+ dismissView.hide()
+ }
+
+ private fun resetExpandedViewPosition(initialX: Float, initialY: Float) {
+ val listener =
+ object : AnimatorListenerAdapter() {
+ override fun onAnimationStart(animation: Animator) {
+ expandedView.isAnimating = true
+ }
+
+ override fun onAnimationEnd(animation: Animator) {
+ expandedView.isAnimating = false
+ }
+ }
+ expandedView
+ .animate()
.translationX(initialX)
.translationY(initialY)
.setDuration(RESET_POSITION_ANIM_DURATION)
@@ -74,6 +92,7 @@
) {
expandedView.translationX = expandedViewRestPosition.x + dx
expandedView.translationY = expandedViewRestPosition.y + dy
+ dismissView.show()
}
override fun onUp(
@@ -86,11 +105,12 @@
velX: Float,
velY: Float
) {
- resetExpandedViewPosition(expandedViewRestPosition.x, expandedViewRestPosition.y)
+ finishDrag(ev.rawX, ev.rawY, expandedViewRestPosition.x, expandedViewRestPosition.y)
}
override fun onCancel(v: View, ev: MotionEvent, viewInitialX: Float, viewInitialY: Float) {
resetExpandedViewPosition(expandedViewRestPosition.x, expandedViewRestPosition.y)
+ dismissView.hide()
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
index 92cb436..bdb0e20 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
@@ -31,17 +31,21 @@
import android.view.WindowManager;
import android.widget.FrameLayout;
+import com.android.wm.shell.R;
import com.android.wm.shell.bubbles.BubbleController;
import com.android.wm.shell.bubbles.BubbleOverflow;
import com.android.wm.shell.bubbles.BubblePositioner;
import com.android.wm.shell.bubbles.BubbleViewProvider;
+import com.android.wm.shell.bubbles.Bubbles;
import com.android.wm.shell.bubbles.DeviceConfig;
+import com.android.wm.shell.bubbles.DismissViewUtils;
+import com.android.wm.shell.common.bubbles.DismissView;
+
+import kotlin.Unit;
import java.util.Objects;
import java.util.function.Consumer;
-import kotlin.Unit;
-
/**
* Similar to {@link com.android.wm.shell.bubbles.BubbleStackView}, this view is added to window
* manager to display bubbles. However, it is only used when bubbles are being displayed in
@@ -63,7 +67,11 @@
@Nullable
private BubbleViewProvider mExpandedBubble;
+ @Nullable
private BubbleBarExpandedView mExpandedView;
+ @Nullable
+ private BubbleBarExpandedViewDragController mDragController;
+ private DismissView mDismissView;
private @Nullable Consumer<String> mUnBubbleConversationCallback;
// TODO(b/273310265) - currently the view is always on the right, need to update for RTL.
@@ -101,6 +109,8 @@
mScrimView.setBackgroundDrawable(new ColorDrawable(
getResources().getColor(android.R.color.system_neutral1_1000)));
+ setUpDismissView();
+
setOnClickListener(view -> hideMenuOrCollapse());
}
@@ -196,6 +206,13 @@
}
});
+ mDragController = new BubbleBarExpandedViewDragController(mExpandedView, mDismissView,
+ () -> {
+ mBubbleController.dismissBubble(mExpandedBubble.getKey(),
+ Bubbles.DISMISS_USER_GESTURE);
+ return Unit.INSTANCE;
+ });
+
addView(mExpandedView, new FrameLayout.LayoutParams(width, height));
}
@@ -227,6 +244,7 @@
mAnimationHelper.animateCollapse(() -> removeView(viewToRemove));
mBubbleController.getSysuiProxy().onStackExpandChanged(false);
mExpandedView = null;
+ mDragController = null;
setTouchDelegate(null);
showScrim(false);
}
@@ -252,6 +270,18 @@
mUnBubbleConversationCallback = unBubbleConversationCallback;
}
+ private void setUpDismissView() {
+ if (mDismissView != null) {
+ removeView(mDismissView);
+ }
+ mDismissView = new DismissView(getContext());
+ DismissViewUtils.setup(mDismissView);
+ int elevation = getResources().getDimensionPixelSize(R.dimen.bubble_elevation);
+
+ addView(mDismissView);
+ mDismissView.setElevation(elevation);
+ }
+
/** Hides the current modal education/menu view, expanded view or collapses the bubble stack */
private void hideMenuOrCollapse() {
if (mEducationViewController.isEducationVisible()) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java
index d5fab44..fe4980a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java
@@ -554,6 +554,11 @@
}
}
}
+ // if overlay is present remove it immediately, as exit transition came before it faded out
+ if (mPipOrganizer.mSwipePipToHomeOverlay != null) {
+ startTransaction.remove(mPipOrganizer.mSwipePipToHomeOverlay);
+ clearSwipePipToHomeOverlay();
+ }
if (pipChange == null) {
ProtoLog.w(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
"%s: No window of exiting PIP is found. Can't play expand animation", TAG);
@@ -1007,7 +1012,6 @@
// the overlay to the final PIP task.
startTransaction.reparent(swipePipToHomeOverlay, leash)
.setLayer(swipePipToHomeOverlay, Integer.MAX_VALUE);
- mPipOrganizer.mSwipePipToHomeOverlay = null;
}
final Rect sourceBounds = pipTaskInfo.configuration.windowConfiguration.getBounds();
@@ -1029,7 +1033,7 @@
sendOnPipTransitionFinished(TRANSITION_DIRECTION_TO_PIP);
if (swipePipToHomeOverlay != null) {
mPipOrganizer.fadeOutAndRemoveOverlay(swipePipToHomeOverlay,
- null /* callback */, false /* withStartDelay */);
+ this::clearSwipePipToHomeOverlay /* callback */, false /* withStartDelay */);
}
mPipTransitionState.setInSwipePipToHomeTransition(false);
}
@@ -1173,6 +1177,10 @@
mPipMenuController.updateMenuBounds(destinationBounds);
}
+ private void clearSwipePipToHomeOverlay() {
+ mPipOrganizer.mSwipePipToHomeOverlay = null;
+ }
+
@Override
public void dump(PrintWriter pw, String prefix) {
final String innerPrefix = prefix + " ";
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java
index 5c02dbc..473deba 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java
@@ -57,7 +57,9 @@
@NonNull SurfaceControl.Transaction finishTransaction) {
for (TransitionInfo.Change change : info.getChanges()) {
final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
- if (taskInfo == null || taskInfo.taskId == -1) {
+ if (taskInfo == null
+ || taskInfo.taskId == -1
+ || !taskInfo.isRunning) {
continue;
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt
index b739ad3..589a813 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt
@@ -1,14 +1,23 @@
package com.android.wm.shell.windowdecor.viewholder
+import android.annotation.ColorInt
import android.app.ActivityManager.RunningTaskInfo
import android.content.res.ColorStateList
+import android.content.res.Configuration
import android.graphics.Bitmap
-import android.graphics.drawable.GradientDrawable
+import android.graphics.Color
import android.view.View
import android.view.View.OnLongClickListener
import android.widget.ImageButton
import android.widget.ImageView
import android.widget.TextView
+import androidx.core.content.withStyledAttributes
+import com.android.internal.R.attr.materialColorOnSecondaryContainer
+import com.android.internal.R.attr.materialColorOnSurface
+import com.android.internal.R.attr.materialColorSecondaryContainer
+import com.android.internal.R.attr.materialColorSurfaceContainerHigh
+import com.android.internal.R.attr.materialColorSurfaceContainerLow
+import com.android.internal.R.attr.materialColorSurfaceDim
import com.android.wm.shell.R
/**
@@ -49,57 +58,82 @@
}
override fun bindData(taskInfo: RunningTaskInfo) {
- val captionDrawable = captionView.background as GradientDrawable
- taskInfo.taskDescription?.statusBarColor?.let {
- captionDrawable.setColor(it)
- }
-
- closeWindowButton.imageTintList = ColorStateList.valueOf(
- getCaptionCloseButtonColor(taskInfo))
- maximizeWindowButton.imageTintList = ColorStateList.valueOf(
- getCaptionMaximizeButtonColor(taskInfo))
- expandMenuButton.imageTintList = ColorStateList.valueOf(
- getCaptionExpandButtonColor(taskInfo))
- appNameTextView.setTextColor(getCaptionAppNameTextColor(taskInfo))
+ captionView.setBackgroundColor(getCaptionBackgroundColor(taskInfo))
+ val color = getAppNameAndButtonColor(taskInfo)
+ val alpha = Color.alpha(color)
+ closeWindowButton.imageTintList = ColorStateList.valueOf(color)
+ maximizeWindowButton.imageTintList = ColorStateList.valueOf(color)
+ expandMenuButton.imageTintList = ColorStateList.valueOf(color)
+ appNameTextView.setTextColor(color)
+ appIconImageView.imageAlpha = alpha
+ maximizeWindowButton.imageAlpha = alpha
+ closeWindowButton.imageAlpha = alpha
+ expandMenuButton.imageAlpha = alpha
}
override fun onHandleMenuOpened() {}
override fun onHandleMenuClosed() {}
- private fun getCaptionAppNameTextColor(taskInfo: RunningTaskInfo): Int {
- return if (shouldUseLightCaptionColors(taskInfo)) {
- context.getColor(R.color.desktop_mode_caption_app_name_light)
- } else {
- context.getColor(R.color.desktop_mode_caption_app_name_dark)
+ @ColorInt
+ private fun getCaptionBackgroundColor(taskInfo: RunningTaskInfo): Int {
+ val materialColorAttr: Int =
+ if (isDarkMode()) {
+ if (!taskInfo.isFocused) {
+ materialColorSurfaceContainerHigh
+ } else {
+ materialColorSurfaceDim
+ }
+ } else {
+ if (!taskInfo.isFocused) {
+ materialColorSurfaceContainerLow
+ } else {
+ materialColorSecondaryContainer
+ }
}
+ context.withStyledAttributes(null, intArrayOf(materialColorAttr), 0, 0) {
+ return getColor(0, 0)
+ }
+ return 0
}
- private fun getCaptionCloseButtonColor(taskInfo: RunningTaskInfo): Int {
- return if (shouldUseLightCaptionColors(taskInfo)) {
- context.getColor(R.color.desktop_mode_caption_close_button_light)
- } else {
- context.getColor(R.color.desktop_mode_caption_close_button_dark)
+ @ColorInt
+ private fun getAppNameAndButtonColor(taskInfo: RunningTaskInfo): Int {
+ val materialColorAttr = when {
+ isDarkMode() -> materialColorOnSurface
+ else -> materialColorOnSecondaryContainer
}
+ val appDetailsOpacity = when {
+ isDarkMode() && !taskInfo.isFocused -> DARK_THEME_UNFOCUSED_OPACITY
+ !isDarkMode() && !taskInfo.isFocused -> LIGHT_THEME_UNFOCUSED_OPACITY
+ else -> FOCUSED_OPACITY
+ }
+ context.withStyledAttributes(null, intArrayOf(materialColorAttr), 0, 0) {
+ val color = getColor(0, 0)
+ return if (appDetailsOpacity == FOCUSED_OPACITY) {
+ color
+ } else {
+ Color.argb(
+ appDetailsOpacity,
+ Color.red(color),
+ Color.green(color),
+ Color.blue(color)
+ )
+ }
+ }
+ return 0
}
- private fun getCaptionMaximizeButtonColor(taskInfo: RunningTaskInfo): Int {
- return if (shouldUseLightCaptionColors(taskInfo)) {
- context.getColor(R.color.desktop_mode_caption_maximize_button_light)
- } else {
- context.getColor(R.color.desktop_mode_caption_maximize_button_dark)
- }
- }
-
- private fun getCaptionExpandButtonColor(taskInfo: RunningTaskInfo): Int {
- return if (shouldUseLightCaptionColors(taskInfo)) {
- context.getColor(R.color.desktop_mode_caption_expand_button_light)
- } else {
- context.getColor(R.color.desktop_mode_caption_expand_button_dark)
- }
+ private fun isDarkMode(): Boolean {
+ return context.resources.configuration.uiMode and
+ Configuration.UI_MODE_NIGHT_MASK ==
+ Configuration.UI_MODE_NIGHT_YES
}
companion object {
private const val TAG = "DesktopModeAppControlsWindowDecorationViewHolder"
+ private const val DARK_THEME_UNFOCUSED_OPACITY = 140 // 55%
+ private const val LIGHT_THEME_UNFOCUSED_OPACITY = 166 // 65%
+ private const val FOCUSED_OPACITY = 255
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeFocusedWindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeFocusedWindowDecorationViewHolder.kt
index b1fb0f1..4930cb7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeFocusedWindowDecorationViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeFocusedWindowDecorationViewHolder.kt
@@ -2,9 +2,11 @@
import android.animation.ObjectAnimator
import android.app.ActivityManager.RunningTaskInfo
+import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
import android.content.res.ColorStateList
-import android.graphics.drawable.GradientDrawable
+import android.graphics.Color
import android.view.View
+import android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
import android.widget.ImageButton
import com.android.wm.shell.R
import com.android.wm.shell.animation.Interpolators
@@ -34,10 +36,8 @@
override fun bindData(taskInfo: RunningTaskInfo) {
taskInfo.taskDescription?.statusBarColor?.let { captionColor ->
- val captionDrawable = captionView.background as GradientDrawable
- captionDrawable.setColor(captionColor)
+ captionView.setBackgroundColor(captionColor)
}
-
captionHandle.imageTintList = ColorStateList.valueOf(getCaptionHandleBarColor(taskInfo))
}
@@ -57,6 +57,22 @@
}
}
+ /**
+ * Whether the caption items should use the 'light' color variant so that there's good contrast
+ * with the caption background color.
+ */
+ private fun shouldUseLightCaptionColors(taskInfo: RunningTaskInfo): Boolean {
+ return taskInfo.taskDescription
+ ?.let { taskDescription ->
+ if (Color.alpha(taskDescription.statusBarColor) != 0 &&
+ taskInfo.windowingMode == WINDOWING_MODE_FREEFORM) {
+ Color.valueOf(taskDescription.statusBarColor).luminance() < 0.5
+ } else {
+ taskDescription.statusBarAppearance and APPEARANCE_LIGHT_STATUS_BARS == 0
+ }
+ } ?: false
+ }
+
/** Animate appearance/disappearance of caption handle as the handle menu is animated. */
private fun animateCaptionHandleAlpha(startValue: Float, endValue: Float) {
val animator =
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt
index 8b405f0..690b4e4 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt
@@ -1,11 +1,8 @@
package com.android.wm.shell.windowdecor.viewholder
import android.app.ActivityManager.RunningTaskInfo
-import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
import android.content.Context
-import android.graphics.Color
import android.view.View
-import android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
/**
* Encapsulates the root [View] of a window decoration and its children to facilitate looking up
@@ -20,22 +17,6 @@
*/
abstract fun bindData(taskInfo: RunningTaskInfo)
- /**
- * Whether the caption items should use the 'light' color variant so that there's good contrast
- * with the caption background color.
- */
- protected fun shouldUseLightCaptionColors(taskInfo: RunningTaskInfo): Boolean {
- return taskInfo.taskDescription
- ?.let { taskDescription ->
- if (Color.alpha(taskDescription.statusBarColor) != 0 &&
- taskInfo.windowingMode == WINDOWING_MODE_FREEFORM) {
- Color.valueOf(taskDescription.statusBarColor).luminance() < 0.5
- } else {
- taskDescription.statusBarAppearance and APPEARANCE_LIGHT_STATUS_BARS == 0
- }
- } ?: false
- }
-
/** Callback when the handle menu is opened. */
abstract fun onHandleMenuOpened()
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationControllerTest.java
index 6403e79..c1ff260 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationControllerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/animation/ExpandedAnimationControllerTest.java
@@ -106,7 +106,7 @@
verify(afterExpand).run();
Runnable afterCollapse = mock(Runnable.class);
- mExpandedController.collapseBackToStack(mExpansionPoint, afterCollapse);
+ mExpandedController.collapseBackToStack(mExpansionPoint, false, afterCollapse);
waitForPropertyAnimations(DynamicAnimation.TRANSLATION_X, DynamicAnimation.TRANSLATION_Y);
testStackedAtPosition(mExpansionPoint.x, mExpansionPoint.y, -1);
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java
index 421c445..50802c3 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java
@@ -101,7 +101,7 @@
when(change.getTaskInfo()).thenReturn(taskInfo);
when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change)));
- setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_OPEN);
+ setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_OPEN, true);
mHomeTransitionObserver.onTransitionReady(mock(IBinder.class),
info,
@@ -119,7 +119,7 @@
when(change.getTaskInfo()).thenReturn(taskInfo);
when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change)));
- setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_TO_BACK);
+ setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_TO_BACK, true);
mHomeTransitionObserver.onTransitionReady(mock(IBinder.class),
info,
@@ -137,7 +137,25 @@
when(change.getTaskInfo()).thenReturn(taskInfo);
when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change)));
- setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK);
+ setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK, true);
+
+ mHomeTransitionObserver.onTransitionReady(mock(IBinder.class),
+ info,
+ mock(SurfaceControl.Transaction.class),
+ mock(SurfaceControl.Transaction.class));
+
+ verify(mListener, times(0)).onHomeVisibilityChanged(anyBoolean());
+ }
+
+ @Test
+ public void testNonRunningHomeActivityDoesNotTriggerCallback() throws RemoteException {
+ TransitionInfo info = mock(TransitionInfo.class);
+ TransitionInfo.Change change = mock(TransitionInfo.Change.class);
+ ActivityManager.RunningTaskInfo taskInfo = mock(ActivityManager.RunningTaskInfo.class);
+ when(change.getTaskInfo()).thenReturn(taskInfo);
+ when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change)));
+
+ setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK, false);
mHomeTransitionObserver.onTransitionReady(mock(IBinder.class),
info,
@@ -156,7 +174,7 @@
when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change)));
when(change.hasFlags(FLAG_BACK_GESTURE_ANIMATED)).thenReturn(true);
- setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE);
+ setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE, true);
mHomeTransitionObserver.onTransitionReady(mock(IBinder.class),
info,
@@ -166,16 +184,16 @@
verify(mListener, times(1)).onHomeVisibilityChanged(true);
}
-
/**
* Helper class to initialize variables for the rest.
*/
private void setupTransitionInfo(ActivityManager.RunningTaskInfo taskInfo,
TransitionInfo.Change change,
@ActivityType int activityType,
- @TransitionMode int mode) {
+ @TransitionMode int mode,
+ boolean isRunning) {
when(taskInfo.getActivityType()).thenReturn(activityType);
when(change.getMode()).thenReturn(mode);
+ taskInfo.isRunning = isRunning;
}
-
}
diff --git a/packages/CredentialManager/res/values-el/strings.xml b/packages/CredentialManager/res/values-el/strings.xml
index 8d06765..089f898 100644
--- a/packages/CredentialManager/res/values-el/strings.xml
+++ b/packages/CredentialManager/res/values-el/strings.xml
@@ -33,7 +33,7 @@
<string name="passwordless_technology_detail" msgid="6853928846532955882">"Τα κλειδιά πρόσβασης σάς επιτρέπουν να συνδέεστε χωρίς να εξαρτάστε από κωδικούς πρόσβασης. Χρειάζεται μόνο να χρησιμοποιήσετε το δακτυλικό αποτύπωμά σας, την αναγνώριση προσώπου, ένα PIN ή ένα μοτίβο σάρωσης για να επαληθεύσετε την ταυτότητά σας και να δημιουργήσετε ένα κλειδί πρόσβασης."</string>
<string name="public_key_cryptography_title" msgid="6751970819265298039">"Κρυπτογραφία δημόσιου κλειδιού"</string>
<string name="public_key_cryptography_detail" msgid="6937631710280562213">"Βάσει του FIDO Alliance (συμμετ. οι Google, Apple, Microsoft κ.ά.) και προτύπων W3C, τα κλειδιά πρόσβ. χρησιμ. συζεύξεις κλειδιών κρυπτογρ. Σε αντίθεση με το όνομα χρήστη και τη συμβολοσειρά χαρακτ. για κωδ. πρόσβ., δημιουργείται μια σύζευξη ιδιωτικού-δημόσιου κλειδ. για εφαρμ./ιστοτόπους. Το ιδιωτ. κλειδί αποθηκεύεται με ασφάλεια στη συσκευή ή στον διαχειρ. κωδ. πρόσβ. και επιβεβαιώνει την ταυτότητά σας. Το δημόσιο κλειδί κοινοπ. στον διακομιστή εφαρμ./ιστοτόπου. Τα αντίστοιχα κλειδιά επιτρέπουν άμεση εγγραφή και σύνδεση."</string>
- <string name="improved_account_security_title" msgid="1069841917893513424">"Βελτιωμένη ασφάλεια λογαριασμού"</string>
+ <string name="improved_account_security_title" msgid="1069841917893513424">"Βελτιωμένη προστασία λογαριασμού"</string>
<string name="improved_account_security_detail" msgid="9123750251551844860">"Κάθε κλειδί συνδέεται αποκλειστικά με την εφαρμογή ή τον ιστότοπο για τον οποίο δημιουργήθηκε ώστε να μην συνδέεστε ποτέ κατά λάθος σε μη νόμιμες εφαρμογές ή ιστοτόπους. Επιπλέον, οι παραβιάσεις είναι πολύ πιο δύσκολες, επειδή οι διακομιστές διατηρούν μόνο δημόσια κλειδιά."</string>
<string name="seamless_transition_title" msgid="5335622196351371961">"Απρόσκοπτη μετάβαση"</string>
<string name="seamless_transition_detail" msgid="4475509237171739843">"Καθώς κινούμαστε προς ένα μέλλον χωρίς κωδικούς πρόσβασης, οι κωδικοί πρόσβασης θα εξακολουθούν να είναι διαθέσιμοι μαζί με τα κλειδιά πρόσβασης."</string>
diff --git a/packages/PackageInstaller/res/values-af/strings.xml b/packages/PackageInstaller/res/values-af/strings.xml
index a3496ca..cb76a28 100644
--- a/packages/PackageInstaller/res/values-af/strings.xml
+++ b/packages/PackageInstaller/res/values-af/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Hou <xliff:g id="SIZE">%1$s</xliff:g> se programdata."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Wil jy hierdie app uitvee?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Wil jy hierdie app deïnstalleer? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-kloon sal ook uitgevee word."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Wil jy hierdie app van jou private ruimte deïnstalleer?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Voer tans deïnstallerings uit"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislukte deïnstallerings"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deïnstalleer tans …"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Stel <xliff:g id="APPNAME">%1$s</xliff:g> terug vanaf <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Hierdie app sal in die agtergrond begin aflaai"</string>
<string name="restore" msgid="8460854736328970444">"Stel terug"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Jy is vanlyn"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Hierdie app sal outomaties teruggestel word wanneer jy aan die internet gekoppel is"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Iets het skeefgeloop"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Kon nie hierdie app terugstel nie"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Te min berging"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Jy kan spasie op hierdie toestel beskikbaar maak om hierdie app terug te stel. Berging benodig: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Optrede vereis"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Volg die volgende stappe om hierdie app terug te stel"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is gedeaktiveer"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is gedeïnstalleer"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Jy sal <xliff:g id="INSTALLERNAME">%1$s</xliff:g> moet installeer om hierdie app terug te stel"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Gaan voort"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Vee berging uit"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Instellings"</string>
+ <string name="close" msgid="5214897374055647996">"Maak toe"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-am/strings.xml b/packages/PackageInstaller/res/values-am/strings.xml
index 9d0fd53..e58eafea 100644
--- a/packages/PackageInstaller/res/values-am/strings.xml
+++ b/packages/PackageInstaller/res/values-am/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"ከመተግበሪያ ውሂብ <xliff:g id="SIZE">%1$s</xliff:g> አቆይ።"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ይህን መተግበሪያ መሰረዝ ይፈልጋሉ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ይህን መተግበሪያ ማራገፍ ይፈልጋሉ? የተባዛውም <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ይሰረዛል።"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"ይህን መተግበሪያ ከግል ቦታዎ ማራገፍ ይፈልጋሉ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"በማሄድ ላይ ያሉ ማራገፎች"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ያልተሳኩ ማራገፎች"</string>
<string name="uninstalling" msgid="8709566347688966845">"በማራገፍ ላይ…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"ከ <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ወደነበረበት <xliff:g id="APPNAME">%1$s</xliff:g> መልስ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ይህ መተግበሪያ በዳራ ማውረድ ይጀምራል።"</string>
<string name="restore" msgid="8460854736328970444">"ወደነበረበት መልስ"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"ከመስመር ውጭ ነዎት"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"እርስዎ ከበይነመረቡ ጋር ሲገናኙ ይህ መተግበሪያ በራስ-ሰር ወደነበረበት ይመለሳል"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"የሆነ ስህተት ተከስቷል"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ይህን መተግበሪያ ወደነበረበት ለመመለስ እየተሞከረ ሳለ አንድ ችግር ነበር"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"በቂ ማከማቻ የለም"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ይህን መተግበሪያ ወደነበረበት ለመመለስ፣ በዚህ መሳሪያ ላይ ቦታን ማስለቀቅ ይችላሉ። ማከማቻ ያስፈልጋል፦ <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"የሚያስፈልግ እርምጃ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ይህን መተግበሪያ ወደነበረበት ለመመለስ ቀጣዮቹን ደረጃዎች ይከተሉ"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ተሰናክሏል"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ተራግፏል"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ይህን መተግበሪያ ወደነበረበት ለመመለስ፣ <xliff:g id="INSTALLERNAME">%1$s</xliff:g>ን መጫን አለብዎት"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ቀጥል"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ማከማቻን አጽዳ"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ቅንብሮች"</string>
+ <string name="close" msgid="5214897374055647996">"ዝጋ"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ar/strings.xml b/packages/PackageInstaller/res/values-ar/strings.xml
index f4c9581..1edd9b1 100644
--- a/packages/PackageInstaller/res/values-ar/strings.xml
+++ b/packages/PackageInstaller/res/values-ar/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"الاحتفاظ بـ <xliff:g id="SIZE">%1$s</xliff:g> من بيانات التطبيق."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"هل تريد حذف هذا التطبيق؟"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"هل تريد إلغاء تثبيت هذا التطبيق؟ سيتم أيضًا حذف نسخة \"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>\" الطبق الأصل."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"هل تريد إلغاء تثبيت هذا التطبيق من المساحة الخاصة؟"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"عمليات إلغاء التثبيت الجارية"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"عمليات إلغاء التثبيت غير الناجحة"</string>
<string name="uninstalling" msgid="8709566347688966845">"جارٍ إلغاء التثبيت…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"هل تريد استعادة التطبيق \"<xliff:g id="APPNAME">%1$s</xliff:g>\" من \"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>\"؟"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"سيبدأ تنزيل هذا التطبيق في الخلفية."</string>
<string name="restore" msgid="8460854736328970444">"استعادة"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"لا يتوفر اتصال بالإنترنت"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"ستتم استعادة هذا التطبيق تلقائيًا بمجرد اتصالك بالإنترنت."</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"حدث خطأ"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"حدثت مشكلة أثناء محاولة استعادة هذا التطبيق."</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"مساحة التخزين غير كافية"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"لاستعادة هذا التطبيق، يجب إخلاء بعض المساحة على هذا الجهاز. مساحة التخزين المطلوبة: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"مطلوب اتخاذ إجراء"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"يُرجى اتّباع الخطوات التالية لاستعادة هذا التطبيق."</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> غير مفعّل"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> غير مثبَّت"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"لاستعادة هذا التطبيق، يجب تثبيت <xliff:g id="INSTALLERNAME">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"متابعة"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"محو مساحة التخزين"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"الإعدادات"</string>
+ <string name="close" msgid="5214897374055647996">"إغلاق"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-as/strings.xml b/packages/PackageInstaller/res/values-as/strings.xml
index 4d264c6..9bf9cb0 100644
--- a/packages/PackageInstaller/res/values-as/strings.xml
+++ b/packages/PackageInstaller/res/values-as/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"এপৰ ডেটাৰ <xliff:g id="SIZE">%1$s</xliff:g> ৰাখক"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"আপুনি এই এপ্টো মচিব বিচাৰেনে?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"আপুনি এই এপ্টো আনইনষ্টল কৰিব বিচাৰেনে? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>ৰ ক্ল’নো মচা হ’ব।"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"আপুনি আপোনাৰ ব্যক্তিগত স্পেচৰ পৰা এই এপ্টো আনইনষ্টল কৰিব বিচাৰেনে?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"আনইনষ্টল কৰি থকা হৈছে"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"যিবোৰ আনইনষ্টল পৰা নগ\'ল"</string>
<string name="uninstalling" msgid="8709566347688966845">"আনইনষ্টল কৰি থকা হৈছে…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>ৰ পৰা <xliff:g id="APPNAME">%1$s</xliff:g> পুনঃস্থাপন কৰিবনে?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"এই এপ্টোৱে নেপথ্যত ডাউনল’ড কৰিবলৈ আৰম্ভ কৰিব"</string>
<string name="restore" msgid="8460854736328970444">"পুনঃস্থাপন কৰক"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"আপুনি অফলাইন হৈ আছে"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"আপুনি ইণ্টাৰনেটৰ সৈতে সংযুক্ত হ’লে এই এপ্টো স্বয়ংক্ৰিয়ভাৱে পুনঃস্থাপন কৰা হ’ব"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"কিবা ভুল হ’ল"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"এই এপ্টো পুনঃস্থাপন কৰাত কিবা অসুবিধা হৈছিল"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"ষ্ট’ৰেজত পৰ্যাপ্ত ঠাই নাই"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"এই এপ্টো পুনঃস্থাপন কৰিবলৈ, আপুনি এই ডিভাইচটোত ঠাই খালী কৰিব পাৰে। আৱশ্যকীয় ষ্ট’ৰেজ: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"কাৰ্যব্যৱস্থা লোৱাৰ প্ৰয়োজন"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"এই এপ্টো পুনঃস্থাপন কৰিবলৈ পৰৱৰ্তী পদক্ষেপসমূহ অনুসৰণ কৰক"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> অক্ষম কৰা আছে"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> আনইনষ্টল কৰা হৈছে"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"এই এপ্টো পুনঃস্থাপন কৰিবলৈ, আপুনি <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ইনষ্টল কৰিব লাগিব"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"অব্যাহত ৰাখক"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ষ্ট’ৰেজ মচক"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ছেটিং"</string>
+ <string name="close" msgid="5214897374055647996">"বন্ধ কৰক"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-az/strings.xml b/packages/PackageInstaller/res/values-az/strings.xml
index 0807ef7..64004e9 100644
--- a/packages/PackageInstaller/res/values-az/strings.xml
+++ b/packages/PackageInstaller/res/values-az/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Tətbiq datasının <xliff:g id="SIZE">%1$s</xliff:g> hissəsini saxlayın."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Bu tətbiq silinsin?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Bu tətbiqi sistemdən silmək istəyirsiniz? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> kopya da silinəcək."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Bu tətbiqi şəxsi məkandan silmək istəyirsiniz?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"İşləyən sistemlər silinmələr"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Uğursuz olan sistemlər silinmələr"</string>
<string name="uninstalling" msgid="8709566347688966845">"Sistemdən silinir..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ünvanından bərpa edilsin?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Bu tətbiq arxa fonda endirilməyə başlayacaq"</string>
<string name="restore" msgid="8460854736328970444">"Bərpa edin"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Oflaynsınız"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"İnternetə qoşulanda bu tətbiq avtomatik bərpa ediləcək"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Xəta oldu"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Bu tətbiqi bərpa edərkən problem oldu"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Kifayət qədər yaddaş yoxdur"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Bu tətbiqi bərpa etmək üçün bu cihazda yer boşalda bilərsiniz. Lazımi yaddaş: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Tədbir görmək tələb edilir"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Bu tətbiqi bərpa etmək üçün növbəti addımları izləyin"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> deaktiv edilib"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> sistemdən silinib"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Bu tətbiqi bərpa etmək üçün <xliff:g id="INSTALLERNAME">%1$s</xliff:g> quraşdırılmalıdır"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Davam edin"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Yaddaşı təmizləyin"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Ayarlar"</string>
+ <string name="close" msgid="5214897374055647996">"Bağlayın"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml b/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml
index 6b9cd04..464b120 100644
--- a/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml
+++ b/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Zadrži <xliff:g id="SIZE">%1$s</xliff:g> podataka aplikacije."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Želite da izbrišete ovu aplikaciju?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Želite da deinstalirate ovu aplikaciju? Klon aplikacije <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> će takođe biti izbrisan."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Želite da deinstalirate ovu aplikaciju iz privatnog prostora?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Aktivna deinstaliranja"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspela deinstaliranja"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deinstalira se…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Želite da vratite <xliff:g id="APPNAME">%1$s</xliff:g> iz <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Aplikacija će započeti preuzimanje u pozadini."</string>
<string name="restore" msgid="8460854736328970444">"Vrati"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Oflajn ste"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Ova aplikacija će biti vraćena automatski kada se povežete na internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Došlo je do greške"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Došlo je do problema pri vraćanju ove aplikacije"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nema dovoljno memorijskog prostora"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Možete da oslobodite prostor na ovom uređaju da biste vratili ovu aplikaciju. Potreban memorijski prostor: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Treba da reagujete"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Pratite dalja uputstva da biste vratili ovu aplikaciju"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Onemogućen <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Deinstaliran <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Da biste vratili ovu aplikaciju, treba da instalirate <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Nastavi"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Obriši memorijski prostor"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Podešavanja"</string>
+ <string name="close" msgid="5214897374055647996">"Zatvori"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-be/strings.xml b/packages/PackageInstaller/res/values-be/strings.xml
index 9e6e6fd..3977f22 100644
--- a/packages/PackageInstaller/res/values-be/strings.xml
+++ b/packages/PackageInstaller/res/values-be/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Захаваць даныя праграмы (<xliff:g id="SIZE">%1$s</xliff:g>)."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Выдаліць гэту праграму?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Выдаліць гэту праграму? Таксама будзе выдалены клон \"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>\"."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Выдаліць гэту праграму з прыватнай аўдыторыі?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Актыўныя выдаленні"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Нявыкананыя выдаленні"</string>
<string name="uninstalling" msgid="8709566347688966845">"Ідзе выдаленне…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Аднавіць праграму \"<xliff:g id="APPNAME">%1$s</xliff:g>\" адсюль: <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Праграма пачне спампоўвацца ў фонавым рэжыме"</string>
<string name="restore" msgid="8460854736328970444">"Аднавіць"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Вы па-за сеткай"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Гэта праграма будзе аўтаматычна адноўлена, калі прылада падключыцца да інтэрнэту"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Адбылася памылка"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Пры аднаўленні праграмы ўзнікла праблема"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Не хапае месца ў сховішчы"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Каб аднавіць гэту праграму, вызваліце месца на прыладзе. Неабходны аб\'ём месца ў сховішчы: <xliff:g id="BYTES">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Патрабуецца дзеянне"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Каб аднавіць гэту праграму, выканайце далейшыя інструкцыі"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Усталёўшчык \"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>\" адключаны"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Усталёўшчык \"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>\" выдалены"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Каб аднавіць гэту праграму, усталюйце праграму \"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>\""</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Працягнуць"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Ачысціць сховішча"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Налады"</string>
+ <string name="close" msgid="5214897374055647996">"Закрыць"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-bg/strings.xml b/packages/PackageInstaller/res/values-bg/strings.xml
index 1c91874..a5f34a7 100644
--- a/packages/PackageInstaller/res/values-bg/strings.xml
+++ b/packages/PackageInstaller/res/values-bg/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Запазване на <xliff:g id="SIZE">%1$s</xliff:g> данни от приложението."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Искате ли да изтриете това приложение?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Искате ли да деинсталирате това приложение? Копието на <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> също ще бъде изтрито."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Искате ли да деинсталирате това приложение от личното си пространство?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активни деинсталирания"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Неуспешни деинсталирания"</string>
<string name="uninstalling" msgid="8709566347688966845">"Деинсталира се..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Да се възстанови ли <xliff:g id="APPNAME">%1$s</xliff:g> от <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Това приложение ще започне да се изтегля на заден план"</string>
<string name="restore" msgid="8460854736328970444">"Възстановяване"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Офлайн сте"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Това приложение ще бъде възстановено автоматично, когато имате връзка с интернет"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Нещо се обърка"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"При опита за възстановяване на това приложение възникна проблем"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Няма достатъчно място в хранилището"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"За да възстановите това приложение, ще трябва да освободите място на устройството. Необходимо място в хранилището: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Изисква се действие"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Изпълнете следващите стъпки, за да възстановите това приложение"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> е деактивирано"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> е деинсталирано"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"За да възстановите това приложение, ще трябва да инсталирате <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Напред"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Изчистване на данните"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Настройки"</string>
+ <string name="close" msgid="5214897374055647996">"Затваряне"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-bn/strings.xml b/packages/PackageInstaller/res/values-bn/strings.xml
index 5a78f37..eef339a 100644
--- a/packages/PackageInstaller/res/values-bn/strings.xml
+++ b/packages/PackageInstaller/res/values-bn/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"অ্যাপ ডেটার মধ্যে <xliff:g id="SIZE">%1$s</xliff:g> রেখে দিন।"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"আপনি এই অ্যাপ মুছে ফেলতে চান?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"আপনি এই অ্যাপ আনইনস্টল করতে চান? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ক্লোনও মুছে ফেলা হবে।"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"আপনার ব্যক্তিগত স্পেস থেকে এই অ্যাপ আনইনস্টল করতে চান?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"আনইনস্টল করা হচ্ছে"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"আনইনস্টল করা যায়নি"</string>
<string name="uninstalling" msgid="8709566347688966845">"আনইনস্টল করা হচ্ছে…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> থেকে <xliff:g id="APPNAME">%1$s</xliff:g> ফিরিয়ে আনবেন?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"এই অ্যাপটি ব্যাকগ্রাউন্ডে ডাউনলোড হওয়া শুরু হবে"</string>
<string name="restore" msgid="8460854736328970444">"ফিরিয়ে আনুন"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"আপনি অফলাইন আছেন"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"আপনি ইন্টারনেটের সাথে কানেক্ট থাকাকালীন এই অ্যাপ অটোমেটিক ফিরিয়ে আনা হবে"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"কোনও সমস্যা হয়েছে"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"এই অ্যাপ ফিরিয়ে আনতে চেষ্টা করার সময় সমস্যা হয়েছে"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"পর্যাপ্ত স্টোরেজ নেই"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"এই অ্যাপ ফিরিয়ে আনতে, এই ডিভাইসের স্পেস খালি করতে পারেন। স্টোরেজ প্রয়োজন: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"ব্যবস্থা নিতে হবে"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"এই অ্যাপ ফিরিয়ে আনতে পরবর্তী ধাপগুলি ফলো করুন"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> বন্ধ করা হয়েছে"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> আনইনস্টল করা হয়েছে"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"এই অ্যাপ ফিরিয়ে আনতে, আপনাকে <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ইনস্টল করতে হবে"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"চালিয়ে যান"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"স্টোরেজ মুছুন"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"সেটিংস"</string>
+ <string name="close" msgid="5214897374055647996">"বন্ধ করুন"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-bs/strings.xml b/packages/PackageInstaller/res/values-bs/strings.xml
index aed2d22..7838843 100644
--- a/packages/PackageInstaller/res/values-bs/strings.xml
+++ b/packages/PackageInstaller/res/values-bs/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Zadržati <xliff:g id="SIZE">%1$s</xliff:g> podataka aplikacije."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Želite li izbrisati ovu aplikaciju?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Želite li deinstalirati ovu aplikaciju? Izbrisat će se i klon aplikacije <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Želite li deinstalirati ovu aplikaciju iz privatnog prostora?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Tekuća deinstaliranja"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspjela deinstaliranja"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deinstaliranje..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Vratiti aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> s usluge <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Preuzimanje aplikacije će započeti u pozadini"</string>
<string name="restore" msgid="8460854736328970444">"Vrati"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Offline ste"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Aplikacija će se automatski vratiti kada se povežete s internetom"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Nešto nije uredu"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Došlo je do problema prilikom pokušaja vraćanja aplikacije"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nema dovoljno prostora za pohranu"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Da vratite aplikaciju, možete osloboditi prostor na uređaju. Potrebna pohrana: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Potrebna je radnja"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Pratite sljedeće korake da vratite ovu aplikaciju"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Program za instaliranje <xliff:g id="INSTALLERNAME">%1$s</xliff:g> je onemogućen"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Program za instaliranje <xliff:g id="INSTALLERNAME">%1$s</xliff:g> je deinstaliran"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Da vratite aplikaciju, trebat ćete instalirati program za instaliranje <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Nastavi"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Obriši pohranu"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Postavke"</string>
+ <string name="close" msgid="5214897374055647996">"Zatvori"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ca/strings.xml b/packages/PackageInstaller/res/values-ca/strings.xml
index 85e5110..bf28e81 100644
--- a/packages/PackageInstaller/res/values-ca/strings.xml
+++ b/packages/PackageInstaller/res/values-ca/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Conserva <xliff:g id="SIZE">%1$s</xliff:g> de dades de l\'aplicació."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Vols suprimir aquesta aplicació?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Vols desinstal·lar aquesta aplicació? El clon de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> també se suprimirà."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Vols desinstal·lar aquesta aplicació del teu espai privat?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstal·lacions en curs"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstal·lacions fallides"</string>
<string name="uninstalling" msgid="8709566347688966845">"S\'està desinstal·lant…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Vols restaurar <xliff:g id="APPNAME">%1$s</xliff:g> des de <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Aquesta aplicació començarà a baixar-se en segon pla"</string>
<string name="restore" msgid="8460854736328970444">"Restaura"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"No tens connexió"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"L\'aplicació es restaurarà automàticament quan tinguis connexió a Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"S\'ha produït un error"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Hi ha hagut un problema en intentar restaurar aquesta aplicació"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"No hi ha prou emmagatzematge"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Per restaurar l\'aplicació, allibera espai en aquest dispositiu. Emmagatzematge necessari: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Acció necessària"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Segueix els passos que hi ha continuació per restaurar l\'aplicació"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> està desactivat"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> no està instal·lat"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Per restaurar l\'aplicació, cal que instal·lis <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continua"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Esborra emmagatzematge"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Configuració"</string>
+ <string name="close" msgid="5214897374055647996">"Tanca"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-cs/strings.xml b/packages/PackageInstaller/res/values-cs/strings.xml
index fc85bca..5c0ff24 100644
--- a/packages/PackageInstaller/res/values-cs/strings.xml
+++ b/packages/PackageInstaller/res/values-cs/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Ponechat data aplikace o velikosti <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Chcete tuto aplikaci smazat?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Chcete tuto aplikaci odinstalovat? Smazán bude také klon <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Chcete tuto aplikaci odinstalovat ze soukromého prostoru?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Probíhající odinstalace"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neúspěšné odinstalace"</string>
<string name="uninstalling" msgid="8709566347688966845">"Odinstalace…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Obnovit aplikaci <xliff:g id="APPNAME">%1$s</xliff:g> z aplikace <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Aplikace se začne stahovat na pozadí"</string>
<string name="restore" msgid="8460854736328970444">"Obnovit"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Nejste připojeni k internetu"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Tato aplikace se automaticky obnoví, až budete připojeni k internetu"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Něco se pokazilo"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Při pokusu o obnovení této aplikace došlo k problému"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nedostatek úložného prostoru"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Pokud tuto aplikaci chcete obnovit, uvolněte na zařízení místo. Požadované úložiště: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Vyžadovaná akce"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Pokud tuto aplikaci chcete obnovit, postupujte podle následujících pokynů"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> je zakázán"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> je odinstalován"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Pokud tuto aplikaci chcete obnovit, bude potřeba nainstalovat <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Pokračovat"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Vymazat úložiště"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Nastavení"</string>
+ <string name="close" msgid="5214897374055647996">"Zavřít"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-da/strings.xml b/packages/PackageInstaller/res/values-da/strings.xml
index aa6fe8f..acb888a 100644
--- a/packages/PackageInstaller/res/values-da/strings.xml
+++ b/packages/PackageInstaller/res/values-da/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Behold <xliff:g id="SIZE">%1$s</xliff:g> appdata."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Vil du slette denne app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Vil du afinstallere denne app? Klonen af <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> slettes også."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Vil du afinstallere denne app fra dit private område?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Igangværende afinstallationer"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislykkede afinstallationer"</string>
<string name="uninstalling" msgid="8709566347688966845">"Afinstallerer…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Vil du gendanne <xliff:g id="APPNAME">%1$s</xliff:g> fra <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Download af denne app startes i baggrunden"</string>
<string name="restore" msgid="8460854736328970444">"Gendan"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Du er offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Denne app gendannes automatisk, når du har forbindelse til internettet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Noget gik galt"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Der opstod et problem under gendannelsen af denne app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Ikke nok lagerplads"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Hvis du vil gendanne denne app, skal du frigøre plads på enheden. Påkrævet lagerplads: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Handling påkrævet"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Følg de næste trin for at gendanne denne app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> er deaktiveret"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> er afinstalleret"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Du skal installere <xliff:g id="INSTALLERNAME">%1$s</xliff:g> for at gendanne denne app"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Fortsæt"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Ryd lagerplads"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Indstillinger"</string>
+ <string name="close" msgid="5214897374055647996">"Luk"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-de/strings.xml b/packages/PackageInstaller/res/values-de/strings.xml
index dc23696..faecc3e 100644
--- a/packages/PackageInstaller/res/values-de/strings.xml
+++ b/packages/PackageInstaller/res/values-de/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> an App-Daten behalten."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Möchtest du diese App löschen?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Möchtest du diese App deinstallieren? Der <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-Klon wird ebenfalls gelöscht."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Möchtest du diese App in deinem privaten Bereich deinstallieren?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Laufende Deinstallationen"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Fehlgeschlagene Deinstallationen"</string>
<string name="uninstalling" msgid="8709566347688966845">"Wird deinstalliert..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> von <xliff:g id="INSTALLERNAME">%1$s</xliff:g> wiederherstellen?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Diese App beginnt im Hintergrund mit dem Herunterladen"</string>
<string name="restore" msgid="8460854736328970444">"Wiederherstellen"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Du bist offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Die App wird automatisch wiederhergestellt, sobald du mit dem Internet verbunden bist"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Ein Fehler ist aufgetreten"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Beim Wiederherstellen der App ist ein Fehler aufgetreten"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nicht genügend Speicherplatz"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Um die App wiederherzustellen, musst du erst Speicherplatz auf diesem Gerät freigeben. Erforderlicher Speicherplatz: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Aktion erforderlich"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Folge den nächsten Schritten, um die App wiederherzustellen"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ist deaktiviert"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ist deinstalliert"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Um die App wiederherzustellen, musst du den <xliff:g id="INSTALLERNAME">%1$s</xliff:g> installieren"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Weiter"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Speicherinhalt löschen"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Einstellungen"</string>
+ <string name="close" msgid="5214897374055647996">"Schließen"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-el/strings.xml b/packages/PackageInstaller/res/values-el/strings.xml
index ea4eeb6..f5deac9 100644
--- a/packages/PackageInstaller/res/values-el/strings.xml
+++ b/packages/PackageInstaller/res/values-el/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Διατήρηση <xliff:g id="SIZE">%1$s</xliff:g> δεδομένων εφαρμογών."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Θέλετε να διαγράψετε αυτή την εφαρμογή;"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Θέλετε να απεγκαταστήσετε αυτή την εφαρμογή; Θα διαγραφεί επίσης το διπλότυπο της εφαρμογής <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Θέλετε να απεγκαταστήσετε αυτή την εφαρμογή από τον ιδιωτικό χώρο;"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Απεγκαταστάσεις σε εξέλιξη"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Αποτυχημένες απεγκαταστάσεις"</string>
<string name="uninstalling" msgid="8709566347688966845">"Απεγκατάσταση…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Επαναφορά <xliff:g id="APPNAME">%1$s</xliff:g> από <xliff:g id="INSTALLERNAME">%1$s</xliff:g>;"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Η λήψη της εφαρμογής θα ξεκινήσει στο παρασκήνιο"</string>
<string name="restore" msgid="8460854736328970444">"Επαναφορά"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Είστε εκτός σύνδεσης"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Θα γίνει αυτόματη επαναφορά αυτής της εφαρμογής όταν είστε συνδεδεμένοι στο διαδίκτυο"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Κάτι πήγε στραβά"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Παρουσιάστηκε κάποιο πρόβλημα κατά την επαναφορά αυτής της εφαρμογής"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Δεν επαρκεί ο αποθηκευτικός χώρος"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Για να επαναφέρετε αυτή την εφαρμογή, μπορείτε να ελευθερώσετε χώρο στη συσκευή. Απαιτούμενος αποθηκευτικός χώρος: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Απαιτούμενη ενέργεια"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Ακολουθήστε τα επόμενα βήματα για να επαναφέρετε αυτή την εφαρμογή"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Το <xliff:g id="INSTALLERNAME">%1$s</xliff:g> είναι απενεργοποιημένο"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Το <xliff:g id="INSTALLERNAME">%1$s</xliff:g> έχει απεγκατασταθεί"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Για να επαναφέρετε αυτή την εφαρμογή, πρέπει να εγκαταστήσετε το <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Συνέχεια"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Διαγραφή αποθηκευτικού χώρου"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Ρυθμίσεις"</string>
+ <string name="close" msgid="5214897374055647996">"Κλείσιμο"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-en-rAU/strings.xml b/packages/PackageInstaller/res/values-en-rAU/strings.xml
index 0187172..4ad4fa1 100644
--- a/packages/PackageInstaller/res/values-en-rAU/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rAU/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Do you want to delete this app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Do you want to uninstall this app? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> clone will also be deleted."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Do you want to uninstall this app from your private space?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstallations"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restore <xliff:g id="APPNAME">%1$s</xliff:g> from <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"This app will start downloading in the background"</string>
<string name="restore" msgid="8460854736328970444">"Restore"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"You\'re offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"This app will automatically restore when you\'re connected to the Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Something went wrong"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"There was a problem trying to restore this app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Not enough storage"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"To restore this app, you can free up space on this device. Storage required: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Action required"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Follow the next steps to restore this app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is disabled"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is uninstalled"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"To restore this app, you\'ll need to install <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continue"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Clear storage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Settings"</string>
+ <string name="close" msgid="5214897374055647996">"Close"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-en-rCA/strings.xml b/packages/PackageInstaller/res/values-en-rCA/strings.xml
index 9b31f27..831ee1b 100644
--- a/packages/PackageInstaller/res/values-en-rCA/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rCA/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Do you want to delete this app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Do you want to uninstall this app? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> clone will also be deleted."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Do you want to uninstall this app from your private space?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstalls"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstalls"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restore <xliff:g id="APPNAME">%1$s</xliff:g> from <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"This app will begin to download in the background"</string>
<string name="restore" msgid="8460854736328970444">"Restore"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"You\'re offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"This app will automatically restore when you\'re connected to the internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Something went wrong"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"There was a problem trying to restore this app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Not enough storage"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"To restore this app, you can free up space on this device. Storage required: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Action required"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Follow the next steps to restore this app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is disabled"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is uninstalled"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"To restore this app, you\'ll need to install <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continue"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Clear storage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Settings"</string>
+ <string name="close" msgid="5214897374055647996">"Close"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-en-rGB/strings.xml b/packages/PackageInstaller/res/values-en-rGB/strings.xml
index 0187172..4ad4fa1 100644
--- a/packages/PackageInstaller/res/values-en-rGB/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rGB/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Do you want to delete this app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Do you want to uninstall this app? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> clone will also be deleted."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Do you want to uninstall this app from your private space?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstallations"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restore <xliff:g id="APPNAME">%1$s</xliff:g> from <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"This app will start downloading in the background"</string>
<string name="restore" msgid="8460854736328970444">"Restore"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"You\'re offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"This app will automatically restore when you\'re connected to the Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Something went wrong"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"There was a problem trying to restore this app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Not enough storage"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"To restore this app, you can free up space on this device. Storage required: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Action required"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Follow the next steps to restore this app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is disabled"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is uninstalled"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"To restore this app, you\'ll need to install <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continue"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Clear storage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Settings"</string>
+ <string name="close" msgid="5214897374055647996">"Close"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-en-rIN/strings.xml b/packages/PackageInstaller/res/values-en-rIN/strings.xml
index 0187172..4ad4fa1 100644
--- a/packages/PackageInstaller/res/values-en-rIN/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rIN/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Do you want to delete this app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Do you want to uninstall this app? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> clone will also be deleted."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Do you want to uninstall this app from your private space?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstallations"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restore <xliff:g id="APPNAME">%1$s</xliff:g> from <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"This app will start downloading in the background"</string>
<string name="restore" msgid="8460854736328970444">"Restore"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"You\'re offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"This app will automatically restore when you\'re connected to the Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Something went wrong"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"There was a problem trying to restore this app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Not enough storage"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"To restore this app, you can free up space on this device. Storage required: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Action required"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Follow the next steps to restore this app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is disabled"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is uninstalled"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"To restore this app, you\'ll need to install <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continue"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Clear storage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Settings"</string>
+ <string name="close" msgid="5214897374055647996">"Close"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-en-rXC/strings.xml b/packages/PackageInstaller/res/values-en-rXC/strings.xml
index 67ffce5..9ed871eb 100644
--- a/packages/PackageInstaller/res/values-en-rXC/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rXC/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Do you want to delete this app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Do you want to uninstall this app? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> clone will also be deleted."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Do you want to uninstall this app from your private space?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstalls"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstalls"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restore <xliff:g id="APPNAME">%1$s</xliff:g> from <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"This app will begin to download in the background"</string>
<string name="restore" msgid="8460854736328970444">"Restore"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"You\'re offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"This app will automatically restore when you\'re connected to the internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Something went wrong"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"There was a problem trying to restore this app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Not enough storage"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"To restore this app, you can free up space on this device. Storage required: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Action required"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Follow the next steps to restore this app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is disabled"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is uninstalled"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"To restore this app, you\'ll need to install <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continue"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Clear storage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Settings"</string>
+ <string name="close" msgid="5214897374055647996">"Close"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-es-rUS/strings.xml b/packages/PackageInstaller/res/values-es-rUS/strings.xml
index 2a8559a..631875e 100644
--- a/packages/PackageInstaller/res/values-es-rUS/strings.xml
+++ b/packages/PackageInstaller/res/values-es-rUS/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Guardar <xliff:g id="SIZE">%1$s</xliff:g> en datos de apps"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"¿Quieres borrar esta app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"¿Quieres desinstalar esta app? También se borrará el clon de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"¿Quieres desinstalar esta app de tu espacio privado?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalaciones activas"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalaciones con errores"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"¿Quieres restablecer <xliff:g id="APPNAME">%1$s</xliff:g> desde <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Esta app comenzará la descarga en segundo plano"</string>
<string name="restore" msgid="8460854736328970444">"Restablecer"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"No tienes conexión"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Se restablecerá automáticamente esta app cuando te conectes a Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Se produjo un error"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Hubo un problema al intentar restablecer esta app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"No hay suficiente espacio de almacenamiento"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Para restablecer la app, deberás liberar espacio en este dispositivo. Almacenamiento requerido: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Acción obligatoria"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Sigue los próximos pasos para restablecer esta app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Se inhabilitó <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"No se instaló <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Para restablecer esta app, deberás instalar <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuar"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Liberar almacenamiento"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Configuración"</string>
+ <string name="close" msgid="5214897374055647996">"Cerrar"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-es/strings.xml b/packages/PackageInstaller/res/values-es/strings.xml
index 5e1022b..bf85728 100644
--- a/packages/PackageInstaller/res/values-es/strings.xml
+++ b/packages/PackageInstaller/res/values-es/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Mantener <xliff:g id="SIZE">%1$s</xliff:g> de datos de aplicaciones."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"¿Quieres eliminar esta aplicación?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"¿Quieres desinstalar esta aplicación? El clon de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> también se eliminará."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"¿Quieres desinstalar esta aplicación de tu espacio privado?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalaciones en curso"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalaciones fallidas"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"¿Restaurar <xliff:g id="APPNAME">%1$s</xliff:g> de <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Esta aplicación comenzará a descargarse en segundo plano"</string>
<string name="restore" msgid="8460854736328970444">"Restaurar"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"No tienes conexión a Internet"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Esta aplicación se restaurará automáticamente cuando tengas conexión a Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Se ha producido un error"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"No se ha podido restaurar esta aplicación"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"No hay suficiente espacio"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Para restaurar esta aplicación, libera espacio del dispositivo. Almacenamiento necesario: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Acción necesaria"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Sigue los pasos que se indican a continuación para restaurar esta aplicación"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> está inhabilitada"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> está desinstalada"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Para restaurar esta aplicación, tendrás que instalar <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuar"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Borrar almacenamiento"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Ajustes"</string>
+ <string name="close" msgid="5214897374055647996">"Cerrar"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-et/strings.xml b/packages/PackageInstaller/res/values-et/strings.xml
index 2bd2c04..db3c7dc 100644
--- a/packages/PackageInstaller/res/values-et/strings.xml
+++ b/packages/PackageInstaller/res/values-et/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Säilita rakenduse andmete hulk <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Kas soovite selle rakenduse kustutada?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Kas soovite selle rakenduse desinstallida? Rakenduse <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> kloon kustutatakse samuti."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Kas soovite selle rakenduse oma privaatsest ruumist desinstallida?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Käimasolevad desinstallimised"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ebaõnnestunud desinstallimised"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstallimine …"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Kas taastada rakendus <xliff:g id="APPNAME">%1$s</xliff:g> rakenduse <xliff:g id="INSTALLERNAME">%1$s</xliff:g> kaudu?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Selle rakenduse allalaadimine algab taustal"</string>
<string name="restore" msgid="8460854736328970444">"Taasta"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Võrguühendus puudub"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"See rakendus taastatakse automaatselt, kui olete Internetiga ühendatud"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Midagi läks valesti"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Selle rakenduse taastamisel ilmnes probleem"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Pole piisavalt salvestusruumi"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Selle rakenduse taastamiseks saate selles seadmes ruumi vabastada. Vajalik salvestusruum: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Toiming on vajalik"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Selle rakenduse taastamiseks järgige järgmisi samme"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> on keelatud"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> on desinstallitud"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Selle rakenduse taastamiseks peate installima: <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Jätka"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Tühjenda salvestusruum"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Seaded"</string>
+ <string name="close" msgid="5214897374055647996">"Sule"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-eu/strings.xml b/packages/PackageInstaller/res/values-eu/strings.xml
index 574d4ab..e6fe660 100644
--- a/packages/PackageInstaller/res/values-eu/strings.xml
+++ b/packages/PackageInstaller/res/values-eu/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Mantendu aplikazioetako datuen <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Aplikazioa ezabatu nahi duzu?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Aplikazioa desinstalatu nahi duzu? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> aplikazioaren klona ere ezabatuko da."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Aplikazioa eremu pribatutik desinstalatu nahi duzu?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Abian diren desinstalatze-eragiketak"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalatu ezin izan direnak"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalatzen…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> aplikaziotik leheneratu nahi duzu <xliff:g id="APPNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Atzeko planoan deskargatuko da aplikazioa"</string>
<string name="restore" msgid="8460854736328970444">"Leheneratu"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Ez zaude konektatuta Internetera"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Aplikazioa automatikoki leheneratuko da Internetera konektatzen zarenean"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Arazoren bat izan da"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Arazo bat izan da aplikazioa leheneratzean"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Ez dago behar adina toki"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Aplikazioa leheneratzeko, egin tokia gailuan. Behar den tokia: <xliff:g id="BYTES">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Zerbait egin behar duzu"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Aplikazioa leheneratzeko, egin hurrengo urratsak"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> desgaituta dago"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ez dago instalatuta"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Aplikazioa leheneratzeko, <xliff:g id="INSTALLERNAME">%1$s</xliff:g> instalatu beharko duzu"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Egin aurrera"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Egin tokia"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Ezarpenak"</string>
+ <string name="close" msgid="5214897374055647996">"Itxi"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-fa/strings.xml b/packages/PackageInstaller/res/values-fa/strings.xml
index 1869cb6..014dd93 100644
--- a/packages/PackageInstaller/res/values-fa/strings.xml
+++ b/packages/PackageInstaller/res/values-fa/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> از دادههای برنامه را نگهدارید."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"میخواهید این برنامه را حذف کنید؟"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"میخواهید این برنامه را حذف نصب کنید؟ همسانه <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> هم حذف خواهد شد."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"میخواهید این برنامه از فضای خصوصی حذف نصب شود؟"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"حذفنصبهای درحال انجام"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"حذفنصبهای ناموفق"</string>
<string name="uninstalling" msgid="8709566347688966845">"درحال حذف نصب..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> از <xliff:g id="INSTALLERNAME">%1$s</xliff:g> بازیابی شود؟"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"این برنامه در پسزمینه شروع به بارگیری میکند"</string>
<string name="restore" msgid="8460854736328970444">"بازیابی"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"آفلاین هستید"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"وقتی به اینترنت متصل شوید، این برنامه بهطور خودکار بازیابی خواهد شد"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"مشکلی پیش آمد"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"هنگام بازیابی این برنامه مشکلی پیش آمد"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"فضای ذخیرهسازی کافی نیست"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"برای بازیابی این برنامه، میتوانید فضای این دستگاه را آزاد کنید. فضای ذخیرهسازی لازم: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"اقدام لازم است"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"برای بازیابی این برنامه، مراحل بعدی را دنبال کنید"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> غیرفعال است"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> حذف نصب شده است"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"برای بازیابی این برنامه، باید <xliff:g id="INSTALLERNAME">%1$s</xliff:g> را نصب کنید"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ادامه دادن"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"پاک کردن فضای ذخیرهسازی"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"تنظیمات"</string>
+ <string name="close" msgid="5214897374055647996">"بستن"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-fi/strings.xml b/packages/PackageInstaller/res/values-fi/strings.xml
index 8f960ea..78e4067 100644
--- a/packages/PackageInstaller/res/values-fi/strings.xml
+++ b/packages/PackageInstaller/res/values-fi/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Säilytä <xliff:g id="SIZE">%1$s</xliff:g> sovellusdataa"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Haluatko poistaa tämän sovelluksen?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Haluatko poistaa tämän sovelluksen? Myös klooni (<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>) poistetaan."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Haluatko poistaa tämän sovelluksen yksityisestä tilasta?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Käynnissä olevat poistot"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Epäonnistuneet poistot"</string>
<string name="uninstalling" msgid="8709566347688966845">"Poistetaan…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Palautetaanko <xliff:g id="APPNAME">%1$s</xliff:g> sovelluksella <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Sovelluksen lataus aloitetaan taustalla"</string>
<string name="restore" msgid="8460854736328970444">"Palauta"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Olet offline-tilassa"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Sovellus palautuu automaattiseti, kun olet yhteydessä internetiin"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Jotain meni pieleen"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Sovelluksen palauttamisessa oli ongelma"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Tallennustila ei riitä"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Voit palauttaa sovelluksen vapauttamalla tilaa laitteella. Vaadittu tallennustila: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Toimi nyt"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Seuraa vaiheita sovelluksen palauttamiseen"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> on poistettu käytöstä"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Asennus on poistettu (<xliff:g id="INSTALLERNAME">%1$s</xliff:g>)"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Asenna <xliff:g id="INSTALLERNAME">%1$s</xliff:g>, jotta voit palauttaa sovelluksen"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Jatka"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Tyhjennä tallennustila"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Asetukset"</string>
+ <string name="close" msgid="5214897374055647996">"Sulje"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-fr-rCA/strings.xml b/packages/PackageInstaller/res/values-fr-rCA/strings.xml
index 647a7b5..8415b51 100644
--- a/packages/PackageInstaller/res/values-fr-rCA/strings.xml
+++ b/packages/PackageInstaller/res/values-fr-rCA/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Garder <xliff:g id="SIZE">%1$s</xliff:g> de données d\'application."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Voulez-vous supprimer cette application?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Voulez-vous désinstaller cette application? Le clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> sera aussi supprimé."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Voulez-vous désinstaller cette application de votre Espace privé?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Désinstallations en cours…"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Désinstallations échouées"</string>
<string name="uninstalling" msgid="8709566347688966845">"Désinstallation en cours…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restaurer <xliff:g id="APPNAME">%1$s</xliff:g> à partir de <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Le téléchargement de cette application commencera en arrière-plan"</string>
<string name="restore" msgid="8460854736328970444">"Restaurer"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Vous êtes hors ligne"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Cette application sera automatiquement restaurée lorsque vous serez connecté à Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Un problème est survenu"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Un problème est survenu lors de la restauration de cette application"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Espace de stockage insuffisant"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Pour restaurer cette application, vous devez libérer de l\'espace de stockage sur cet appareil. Espace de stockage requis : <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Action requise"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Suivez les étapes suivantes pour restaurer cette application"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> est désactivé"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> est désinstallé"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Pour restaurer cette application, vous devrez installer <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuer"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Effacer le stockage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Paramètres"</string>
+ <string name="close" msgid="5214897374055647996">"Fermer"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-fr/strings.xml b/packages/PackageInstaller/res/values-fr/strings.xml
index 3cf043b..a90fdce 100644
--- a/packages/PackageInstaller/res/values-fr/strings.xml
+++ b/packages/PackageInstaller/res/values-fr/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Conserver <xliff:g id="SIZE">%1$s</xliff:g> de données d\'application."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Voulez-vous supprimer cette appli ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Voulez-vous désinstaller cette appli ? Le clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> sera supprimé aussi."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Souhaitez-vous désinstaller cette application de votre Espace privé ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Désinstallations en cours"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Échec des désinstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Désinstallation…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restaurer <xliff:g id="APPNAME">%1$s</xliff:g> depuis <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Cette application commencera à se télécharger en arrière-plan"</string>
<string name="restore" msgid="8460854736328970444">"Restaurer"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Vous n\'êtes pas connecté"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"L\'application sera automatiquement restaurée lorsque vous serez connecté à Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Un problème est survenu"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Un problème est survenu lors de la restauration de cette application"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Espace de stockage insuffisant"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Pour restaurer cette application, vous pouvez libérer de l\'espace sur cet appareil. Espace de stockage requis : <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Action requise"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Suivre la procédure ci-dessous pour restaurer cette application"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> est désactivé"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> n\'est pas installé"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Pour restaurer cette application, vous devrez installer <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuer"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Vider l\'espace de stockage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Paramètres"</string>
+ <string name="close" msgid="5214897374055647996">"Fermer"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-gl/strings.xml b/packages/PackageInstaller/res/values-gl/strings.xml
index eeb1f95..a758e32 100644
--- a/packages/PackageInstaller/res/values-gl/strings.xml
+++ b/packages/PackageInstaller/res/values-gl/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Conservar os datos da aplicación, que ocupan <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Queres eliminar esta aplicación?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Queres desinstalar esta aplicación? Tamén se eliminará o clon de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Queres desinstalar esta aplicación do teu espazo privado?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalacións en curso"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Erros nas desinstalacións"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Queres restaurar <xliff:g id="APPNAME">%1$s</xliff:g> desde <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Esta aplicación comezará a descargarse en segundo plano"</string>
<string name="restore" msgid="8460854736328970444">"Restaurar"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Estás sen conexión"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Esta aplicación restaurarase automaticamente cando te conectes a Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Produciuse un erro"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Produciuse un problema ao restaurar esta aplicación"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Non hai almacenamento suficiente"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Para restaurar esta aplicación, podes liberar espazo neste dispositivo. Espazo de almacenamento necesario: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Acción necesaria"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Completa os pasos seguintes para restaurar esta aplicación"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Desactivouse <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Desinstalouse <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Para restaurar esta aplicación, tes que instalar <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuar"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Liberar almacenamento"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Configuración"</string>
+ <string name="close" msgid="5214897374055647996">"Pechar"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-gu/strings.xml b/packages/PackageInstaller/res/values-gu/strings.xml
index e1f1887..4873303 100644
--- a/packages/PackageInstaller/res/values-gu/strings.xml
+++ b/packages/PackageInstaller/res/values-gu/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g>નો ઍપ ડેટા રાખો."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"શું તમે આ ઍપ ડિલીટ કરવા માગો છો?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"શું તમે આ ઍપને અનઇન્સ્ટૉલ કરવા માગો છો? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>ની ક્લોન પણ ડિલીટ કરવામાં આવશે."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"શું તમે તમારી ખાનગી સ્પેસમાંથી આ ઍપ અનઇન્સ્ટૉલ કરવા માગો છો?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ચાલી રહેલા અનઇન્સ્ટૉલ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"નિષ્ફળ થયેલા અનઇન્સ્ટૉલ"</string>
<string name="uninstalling" msgid="8709566347688966845">"અનઇન્સ્ટૉલ કરી રહ્યાં છીએ…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>માંથી <xliff:g id="APPNAME">%1$s</xliff:g> રિસ્ટોર કરીએ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"બૅકગ્રાઉન્ડમાં આ ઍપ ડાઉનલોડ થવાનું શરૂ થશે"</string>
<string name="restore" msgid="8460854736328970444">"રિસ્ટોર કરો"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"તમે ઑફલાઇન છો"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"જ્યારે તમે ઇન્ટરનેટ સાથે કનેક્ટેડ થશો, ત્યારે આ ઍપ ઑટોમૅટિક રીતે રિસ્ટોર થશે"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"કંઈક ખોટું થયું"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"આ ઍપને રિસ્ટોર કરવામાં કોઈ સમસ્યા આવી હતી"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"પર્યાપ્ત સ્ટોરેજ નથી"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"આ ઍપને રિસ્ટોર કરવા માટે, તમે આ ડિવાઇસ પર સ્પેસ ખાલી કરી શકો છો. આવશ્યક સ્ટોરેજ: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"પગલું આવશ્યક છે"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"આ ઍપને રિસ્ટોર કરવા માટે આગળના પગલાં અનુસરો"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> બંધ છે"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> અનઇન્સ્ટૉલ કર્યું છે"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"આ ઍપને રિસ્ટોર કરવા માટે, તમારે <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ઇન્સ્ટૉલ કરવું જરૂરી છે"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"આગળ વધો"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"સ્ટોરેજ સાફ કરો"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"સેટિંગ"</string>
+ <string name="close" msgid="5214897374055647996">"બંધ કરો"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-hi/strings.xml b/packages/PackageInstaller/res/values-hi/strings.xml
index 642bbd9..1e2dea2 100644
--- a/packages/PackageInstaller/res/values-hi/strings.xml
+++ b/packages/PackageInstaller/res/values-hi/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ऐप्लिकेशन डेटा रखें."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"क्या आपको यह ऐप्लिकेशन मिटाना है?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"क्या आपको यह ऐप्लिकेशन अनइंस्टॉल करना है? इससे <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> का क्लोन भी मिट जाएगा."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"क्या आपको अपने प्राइवेट स्पेस से यह ऐप्लिकेशन अनइंस्टॉल करना है?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"वे अनइंस्टॉल जो चल रहे हैं"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"वे अनइंस्टॉल जो सफल नहीं रहे"</string>
<string name="uninstalling" msgid="8709566347688966845">"अनइंस्टॉल हो रहा है…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> को <xliff:g id="INSTALLERNAME">%1$s</xliff:g> से वापस लाएं?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"यह ऐप्लिकेशन, बैकग्राउंड में डाउनलोड होना शुरू हो जाएगा"</string>
<string name="restore" msgid="8460854736328970444">"वापस लाएं"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"आप ऑफ़लाइन हैं"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"इंटरनेट कनेक्शन होने पर, यह ऐप्लिकेशन अपने-आप वापस आ जाएगा"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"कोई गड़बड़ी हुई"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"इस ऐप्लिकेशन को वापस लाने में समस्या हुई"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"डिवाइस का स्टोरेज ज़रूरत से कम है"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"इस ऐप्लिकेशन को वापस लाने के लिए, इस डिवाइस में स्टोरेज खाली करें. इतने स्टोरेज की ज़रूरत है: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"कार्रवाई ज़रूरी है"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"इस ऐप्लिकेशन को वापस लाने के लिए, दिया गया तरीका अपनाएं"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> बंद है"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> अनइंस्टॉल है"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"इस ऐप्लिकेशन को वापस लाने के लिए, आपको <xliff:g id="INSTALLERNAME">%1$s</xliff:g> इंस्टॉल करना होगा"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"जारी रखें"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"स्टोरेज खाली करें"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Settings"</string>
+ <string name="close" msgid="5214897374055647996">"बंद करें"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-hr/strings.xml b/packages/PackageInstaller/res/values-hr/strings.xml
index 69ce3f1..34901a4 100644
--- a/packages/PackageInstaller/res/values-hr/strings.xml
+++ b/packages/PackageInstaller/res/values-hr/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Zadrži <xliff:g id="SIZE">%1$s</xliff:g> podataka aplikacije."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Želite li izbrisati ovu aplikaciju?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Želite li deinstalirati ovu aplikaciju? Klon za <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> također će se izbrisati."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Želite li deinstalirati ovu aplikaciju iz svojeg privatnog prostora?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Deinstaliranja u tijeku"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspjela deinstaliranja"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deinstaliranje…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Želite li vratiti aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> putem aplikacije <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Ova aplikacija počet će se preuzimati u pozadini"</string>
<string name="restore" msgid="8460854736328970444">"Vrati"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Niste povezani s internetom"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Aplikacija će se automatski vratiti kad se povežete s internetom"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Nešto nije u redu"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Došlo je do problema s vraćanjem aplikacije"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nema dovoljno prostora za pohranu"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Da biste vratili aplikaciju, možete osloboditi prostor za pohranu na ovom uređaju. Potreban prostor za pohranu: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Potrebna je radnja"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Da biste vratili aplikaciju, slijedite upute u nastavku"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> – onemogućeno"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> – deinstalirano"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Da biste vratili aplikaciju, instalirajte sljedeće: <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Nastavi"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Izbriši pohranu"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Postavke"</string>
+ <string name="close" msgid="5214897374055647996">"Zatvori"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-hu/strings.xml b/packages/PackageInstaller/res/values-hu/strings.xml
index ea8cfc7..e873526 100644
--- a/packages/PackageInstaller/res/values-hu/strings.xml
+++ b/packages/PackageInstaller/res/values-hu/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> alkalmazásadat megtartása."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Szeretné törölni ezt az alkalmazást?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Eltávolítja ezt az alkalmazást? A klónozott <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> is törlésre kerül."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Eltávolítja ezt az alkalmazást a privát területről?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Futó eltávolítások"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Sikertelen telepítések"</string>
<string name="uninstalling" msgid="8709566347688966845">"Eltávolítás…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Visszaállítja a(z) <xliff:g id="APPNAME">%1$s</xliff:g> appot innen: <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"A háttérben megkezdődik az app letöltése"</string>
<string name="restore" msgid="8460854736328970444">"Visszaállítás"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Az eszköz offline állapotban van"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Automatikusan megtörténik az alkalmazás visszaállítása, amikor Ön csatlakozik az internethez."</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Hiba történt"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Hiba történt az alkalmazás visszaállítása során."</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nincs elegendő tárhely"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Az alkalmazás visszaállításához szabadítson fel tárhelyet ezen az eszközön. Szükséges tárhely: <xliff:g id="BYTES">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Fontos teendő"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Az alkalmazás visszaállításához kövesse a következő lépéseket."</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"A(z) <xliff:g id="INSTALLERNAME">%1$s</xliff:g> le van tiltva"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"A(z) <xliff:g id="INSTALLERNAME">%1$s</xliff:g> nincs telepítve"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Az alkalmazás app visszaállításához telepítse a következőt: <xliff:g id="INSTALLERNAME">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Tovább"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Tárhely ürítése"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Beállítások"</string>
+ <string name="close" msgid="5214897374055647996">"Bezárás"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-hy/strings.xml b/packages/PackageInstaller/res/values-hy/strings.xml
index a447371..cccf6b6 100644
--- a/packages/PackageInstaller/res/values-hy/strings.xml
+++ b/packages/PackageInstaller/res/values-hy/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Չհեռացնել հավելվածների տվյալները (<xliff:g id="SIZE">%1$s</xliff:g>):"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Ջնջե՞լ այս հավելվածը"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Ապատեղադրե՞լ այս հավելվածը։ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-ի կլոնը նույնպես կջնջվի։"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Ապատեղադրե՞լ այս հավելվածը ձեր անձնական տարածքից"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Ընթացիկ ապատեղադրումներ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ձախողված ապատեղադրումներ"</string>
<string name="uninstalling" msgid="8709566347688966845">"Ապատեղադրվում է…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Վերականգնե՞լ <xliff:g id="APPNAME">%1$s</xliff:g> հավելվածը <xliff:g id="INSTALLERNAME">%1$s</xliff:g>-ից"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Այս հավելվածը կներբեռնվի ֆոնային ռեժիմում"</string>
<string name="restore" msgid="8460854736328970444">"Վերականգնել"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Կապ չկա"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Այս հավելվածն ավտոմատ կվերականգնվի, երբ միանաք ինտերնետին"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Սխալ առաջացավ"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Չհաջողվեց վերականգնել այս հավելվածը"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Բավարար տարածք չկա"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Հավելվածը վերականգնելու համար տարածք ազատեք սարքում։ Պահանջվում է <xliff:g id="BYTES">%1$s</xliff:g>։"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Պահանջվում է գործողություն"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Այս հավելվածը վերականգնելու համար կատարեք հաջորդ քայլերը"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> հավելվածն անջատված է"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> հավելվածն ապատեղադրված է"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Այս հավելվածը վերականգնելու համար տեղադրեք <xliff:g id="INSTALLERNAME">%1$s</xliff:g> հավելվածը"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Շարունակել"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Մաքրել պահոցը"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Կարգավորումներ"</string>
+ <string name="close" msgid="5214897374055647996">"Փակել"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-in/strings.xml b/packages/PackageInstaller/res/values-in/strings.xml
index 9e24424..5ab5649 100644
--- a/packages/PackageInstaller/res/values-in/strings.xml
+++ b/packages/PackageInstaller/res/values-in/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Pertahankan data aplikasi sebesar <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Ingin menghapus aplikasi ini?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Ingin meng-uninstal aplikasi ini? Clone <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> juga akan dihapus."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Ingin meng-uninstal aplikasi ini dari ruang pribadi?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Menjalankan proses uninstal"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Proses uninstal yang gagal"</string>
<string name="uninstalling" msgid="8709566347688966845">"Meng-uninstal..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Pulihkan <xliff:g id="APPNAME">%1$s</xliff:g> dari <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Aplikasi ini akan mulai didownload di latar belakang"</string>
<string name="restore" msgid="8460854736328970444">"Pulihkan"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Anda offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Aplikasi ini akan otomatis dipulihkan saat Anda terhubung ke internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Terjadi error"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Terjadi error saat mencoba memulihkan aplikasi ini"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Penyimpanan tidak cukup"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Untuk memulihkan aplikasi ini, Anda perlu mengosongkan ruang penyimpanan di perangkat ini. Penyimpanan yang diperlukan: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Tindakan diperlukan"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Ikuti langkah berikutnya untuk memulihkan aplikasi ini"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> dinonaktifkan"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> diuninstal"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Untuk memulihkan aplikasi ini, Anda harus menginstal <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Lanjutkan"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Hapus penyimpanan"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Setelan"</string>
+ <string name="close" msgid="5214897374055647996">"Tutup"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-is/strings.xml b/packages/PackageInstaller/res/values-is/strings.xml
index c24f284..3822994 100644
--- a/packages/PackageInstaller/res/values-is/strings.xml
+++ b/packages/PackageInstaller/res/values-is/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Halda <xliff:g id="SIZE">%1$s</xliff:g> af forritagögnum."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Viltu eyða þessu forriti?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Viltu fjarlægja þetta forrit? Afriti af <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> verður einnig eytt."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Viltu fjarlægja þetta forrit úr einkarýminu?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Fjarlægingar í gangi"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Fjarlægingar sem mistókust"</string>
<string name="uninstalling" msgid="8709566347688966845">"Fjarlægir…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Endurheimta <xliff:g id="APPNAME">%1$s</xliff:g> úr <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Forritið verður sótt í bakgrunni"</string>
<string name="restore" msgid="8460854736328970444">"Endurheimta"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Þú ert ekki á netinu"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Þetta forrit verður endurheimt sjálfkrafa þegar þú tengist netinu"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Eitthvað fór úrskeiðis"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Vandamál kom upp við að endurheimta þetta forrit"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Ekki nógu mikið geymslurými"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Til að endurheimta þetta forrit geturðu losað um pláss í þessu tæki. Geymslurýmið sem þarf: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Aðgerðar krafist"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Fylgdu næstu skrefum til að endurheimta þetta forrit"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Slökkt er á <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Búið er að fjarlægja <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Þú þarft að setja upp <xliff:g id="INSTALLERNAME">%1$s</xliff:g> til að endurheimta þetta forrit"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Halda áfram"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Hreinsa geymslu"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Stillingar"</string>
+ <string name="close" msgid="5214897374055647996">"Loka"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-it/strings.xml b/packages/PackageInstaller/res/values-it/strings.xml
index 604d88a..669a8db 100644
--- a/packages/PackageInstaller/res/values-it/strings.xml
+++ b/packages/PackageInstaller/res/values-it/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Mantieni <xliff:g id="SIZE">%1$s</xliff:g> di dati delle app."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Vuoi eliminare questa app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Vuoi disinstallare questa app? Verrà eliminato anche il clone di <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Vuoi disinstallare questa app dal tuo spazio privato?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Disinstallazioni in esecuzione"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Disinstallazioni non riuscite"</string>
<string name="uninstalling" msgid="8709566347688966845">"Disinstallazione…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Ripristinare <xliff:g id="APPNAME">%1$s</xliff:g> da <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Il download di quest\'app inizierà in background"</string>
<string name="restore" msgid="8460854736328970444">"Ripristina"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Sei offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Quest\'app verrà ripristinata automaticamente quando il dispositivo è connesso a internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Si è verificato un problema"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Si è verificato un problema durante il ripristino di questa app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Spazio di archiviazione insufficiente"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Per ripristinare quest\'app, puoi liberare spazio sul dispositivo. Spazio di archiviazione necessario: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Azione richiesta"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Segui i passaggi successivi per ripristinare quest\'app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> non è attivo"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> è stato disinstallato"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Per ripristinare quest\'app, dovrai installare <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continua"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Libera spazio di archiviazione"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Impostazioni"</string>
+ <string name="close" msgid="5214897374055647996">"Chiudi"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-iw/strings.xml b/packages/PackageInstaller/res/values-iw/strings.xml
index 0e37b2e..1030e03 100644
--- a/packages/PackageInstaller/res/values-iw/strings.xml
+++ b/packages/PackageInstaller/res/values-iw/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"שמירת <xliff:g id="SIZE">%1$s</xliff:g> מנתוני האפליקציה."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"למחוק את האפליקציה הזו?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"להסיר את ההתקנה של האפליקציה הזו? השכפול של <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> גם יימחק."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"להסיר את ההתקנה של האפליקציה הזו מהמרחב הפרטי?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"התקנות בתהליכי הסרה"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"הסרות התקנה שנכשלו"</string>
<string name="uninstalling" msgid="8709566347688966845">"בתהליך הסרת התקנה..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"לשחזר את <xliff:g id="APPNAME">%1$s</xliff:g> מ-<xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"תהליך ההורדה של האפליקציה יתחיל ברקע"</string>
<string name="restore" msgid="8460854736328970444">"שחזור"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"אין חיבור לאינטרנט"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"שחזור האפליקציה יתחיל אוטומטית כשהמכשיר יחובר לאינטרנט"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"משהו השתבש"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"הייתה בעיה בניסיון לשחזר את האפליקציה הזו"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"אין מספיק נפח אחסון פנוי"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"כדי לשחזר את האפליקציה הזו צריך לפנות מקום במכשיר. נפח האחסון הנדרש: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"נדרשת פעולה"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"כדי לשחזר את האפליקציה הזו יש לפעול לפי השלבים הבאים"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> במצב מושבת"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"ההתקנה של <xliff:g id="INSTALLERNAME">%1$s</xliff:g> הוסרה"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"כדי לשחזר את האפליקציה הזו, צריך להתקין את <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"המשך"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"צריך לפנות נפח אחסון"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"הגדרות"</string>
+ <string name="close" msgid="5214897374055647996">"סגירה"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ja/strings.xml b/packages/PackageInstaller/res/values-ja/strings.xml
index 58e46a6..80b60ff 100644
--- a/packages/PackageInstaller/res/values-ja/strings.xml
+++ b/packages/PackageInstaller/res/values-ja/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"アプリのデータ(<xliff:g id="SIZE">%1$s</xliff:g>)を保持"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"このアプリを削除しますか?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"このアプリをアンインストールしますか?<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> のクローンも削除されます。"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"このアプリをプライベート スペースからアンインストールしますか?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"アンインストールを実行しています"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"エラーになったアンインストール"</string>
<string name="uninstalling" msgid="8709566347688966845">"アンインストールしています…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> から <xliff:g id="APPNAME">%1$s</xliff:g> を復元しますか?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"このアプリのダウンロードをバックグラウンドで開始します"</string>
<string name="restore" msgid="8460854736328970444">"復元する"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"オフラインです"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"インターネットに接続すると、このアプリは自動的に復元されます"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"エラーが発生しました"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"このアプリを復元しようとしたときに問題が発生しました"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"空き容量が不足しています"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"このアプリを復元するには、このデバイスの空き容量を増やしてください。必要なストレージ: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"必要な対応"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"このアプリを復元するには、次の手順を行います"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> は無効です"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> はアンインストールされています"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"このアプリを復元するには、<xliff:g id="INSTALLERNAME">%1$s</xliff:g> をインストールする必要があります"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"続行"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ストレージの消去"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"設定"</string>
+ <string name="close" msgid="5214897374055647996">"閉じる"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ka/strings.xml b/packages/PackageInstaller/res/values-ka/strings.xml
index bbd63d1..cfe9050 100644
--- a/packages/PackageInstaller/res/values-ka/strings.xml
+++ b/packages/PackageInstaller/res/values-ka/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"შენარჩუნდეს აპების მონაცემების <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"გსურთ ამ აპის წაშლა?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"გსურთ ამ აპის დეინსტალაცია? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> კლონი ასევე წაიშლება."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"გსურთ ამ აპის დეინსტალაცია თქვენი პირადი სივრციდან?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"გაშვებული დეინსტალაციები"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"შეუსრულებელი დეინსტალაციები"</string>
<string name="uninstalling" msgid="8709566347688966845">"მიმდინარეობს დეინსტალაცია…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"აღვადგინოთ <xliff:g id="APPNAME">%1$s</xliff:g> <xliff:g id="INSTALLERNAME">%1$s</xliff:g>-დან?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ამ აპის ჩამოტვირთვა ფონურ რეჟიმში დაიწყება"</string>
<string name="restore" msgid="8460854736328970444">"აღდგენა"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"თქვენ ხაზგარეშე რეჟიმში ხართ"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"ეს აპი ავტომატურად აღდგება, როცა დაუკავშირდებით ინტერნეტს"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"წარმოიქმნა შეფერხება"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ამ აპის აღდგენისას წარმოიქმნა პრობლემა"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"მეხსიერება საკმარისი არ არის"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ამ აპის აღსადგენად შეგიძლიათ, გამოათავისუფლოთ მეხსიერება ამ მოწყობილობაზე. საჭიროა მეხსიერება: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"საჭიროა მოქმედება"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ამ აპის აღსადგენად მიჰყევით შემდეგ ნაბიჯებს"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> გამორთულია"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> დეინსტალირებულია"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ამ აპის აღსადგენად უნდა დააინსტალიროთ <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"გაგრძელება"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"მეხსიერების გასუფთავება"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"პარამეტრები"</string>
+ <string name="close" msgid="5214897374055647996">"დახურვა"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-kk/strings.xml b/packages/PackageInstaller/res/values-kk/strings.xml
index 02843b8..60f3e66 100644
--- a/packages/PackageInstaller/res/values-kk/strings.xml
+++ b/packages/PackageInstaller/res/values-kk/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Қолданба деректерін (<xliff:g id="SIZE">%1$s</xliff:g>) сақтау."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Осы қолданба жойылсын ба?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Осы қолданба жойылсын ба? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> клоны да жойылады."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Осы құрылғыны жеке бөлмеңізден жойғыңыз келе ме?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Орындалып жатқан жою процестері"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Сәтсіз жою әрекеттері"</string>
<string name="uninstalling" msgid="8709566347688966845">"Жойылуда…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> қолданбасын <xliff:g id="INSTALLERNAME">%1$s</xliff:g> арқылы қалпына келтіру керек пе?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Бұл қолданба фондық режимде жүктеп алына бастайды."</string>
<string name="restore" msgid="8460854736328970444">"Қалпына келтіру"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Құрылғыңыз офлайн режимде"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Бұл қолданба құрылғыңыз интернетке қосылғанда автоматты түрде қалпына келеді."</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Бірдеңе дұрыс болмады"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Бұл құрылғыны қалпына келтіру үшін әрекет жасалғанда мәселе туындады."</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Жадта орын жеткіліксіз"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Бұл қолданбаны қалпына келтіргіңіз келсе, осы құрылғыда орын босатуға болады. Қажетті жад көлемі: <xliff:g id="BYTES">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Әрекет қажет"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Бұл қолданбаны қалпына келтіру үшін келесі қадамдарды орындаңыз."</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> өшірілген"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> жойылған"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Бұл қолданбаны қалпына келтіру үшін орнатқышты (<xliff:g id="INSTALLERNAME">%1$s</xliff:g>) орнатуыңыз керек."</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Жалғастыру"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Жадты тазалау"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Параметрлер"</string>
+ <string name="close" msgid="5214897374055647996">"Жабу"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-km/strings.xml b/packages/PackageInstaller/res/values-km/strings.xml
index bb84976..c7a2b87 100644
--- a/packages/PackageInstaller/res/values-km/strings.xml
+++ b/packages/PackageInstaller/res/values-km/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"រក្សាទុកទិន្នន័យកម្មវិធីទំហំ <xliff:g id="SIZE">%1$s</xliff:g>។"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"តើអ្នកចង់លុបកម្មវិធីនេះដែរឬទេ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"តើអ្នកចង់លុបកម្មវិធីនេះដែរឬទេ? ក្លូន <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ក៏នឹងត្រូវបានលុបផងដែរ។"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"តើអ្នកចង់លុបកម្មវិធីនេះចេញពី private space របស់អ្នកដែរទេ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"កំពុងដំណើរការការលុប"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ការលុបដែលបរាជ័យ"</string>
<string name="uninstalling" msgid="8709566347688966845">"កំពុងលុប…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"ស្ដារ <xliff:g id="APPNAME">%1$s</xliff:g> ពី <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ឬ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"កម្មវិធីនេះនឹងចាប់ផ្ដើមទាញយកនៅផ្ទៃខាងក្រោយ"</string>
<string name="restore" msgid="8460854736328970444">"ស្ដារ"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"អ្នកគ្មានអ៊ីនធឺណិតទេ"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"កម្មវិធីនេះនឹងស្ដារដោយស្វ័យប្រវត្តិ នៅពេលអ្នកភ្ជាប់អ៊ីនធឺណិត"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"មានអ្វីមួយខុសប្រក្រតី"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"មានបញ្ហាក្នុងការព្យាយាមស្ដារកម្មវិធីនេះ"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"ទំហំផ្ទុកមិនគ្រប់គ្រាន់"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ដើម្បីស្ដារកម្មវិធីនេះ អ្នកត្រូវបង្កើនទំហំផ្ទុកទំនេរនៅលើឧបករណ៍នេះ។ តម្រូវឱ្យមានទំហំផ្ទុក៖ <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"សកម្មភាពដែលតម្រូវឱ្យធ្វើ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"អនុវត្តតាមជំហានបន្ទាប់ ដើម្បីស្ដារកម្មវិធីនេះ"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ត្រូវបានបិទ"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ត្រូវបានលុប"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ដើម្បីស្ដារកម្មវិធីនេះ អ្នកនឹងត្រូវដំឡើង <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"បន្ត"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"សម្អាតទំហំផ្ទុក"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ការកំណត់"</string>
+ <string name="close" msgid="5214897374055647996">"បិទ"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-kn/strings.xml b/packages/PackageInstaller/res/values-kn/strings.xml
index 476b45d..200edf0 100644
--- a/packages/PackageInstaller/res/values-kn/strings.xml
+++ b/packages/PackageInstaller/res/values-kn/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"ಆ್ಯಪ್ ಡೇಟಾದಲ್ಲಿ <xliff:g id="SIZE">%1$s</xliff:g> ಇರಿಸಿಕೊಳ್ಳಿ."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ನೀವು ಈ ಆ್ಯಪ್ ಅನ್ನು ಅಳಿಸಲು ಬಯಸುತ್ತೀರಾ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ನೀವು ಈ ಆ್ಯಪ್ ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಬಯಸುತ್ತೀರಾ? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ಕ್ಲೋನ್ ಅನ್ನು ಸಹ ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ನಿಂದ ಈ ಆ್ಯಪ್ ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ನೀವು ಬಯಸುತ್ತೀರಾ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ಚಾಲನೆಯಲ್ಲಿರುವ ಅನ್ಇನ್ಸ್ಟಾಲ್ಗಳು"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ವಿಫಲಗೊಂಡ ಅನ್ಇನ್ಸ್ಟಾಲ್ಗಳು"</string>
<string name="uninstalling" msgid="8709566347688966845">"ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ನಿಂದ <xliff:g id="APPNAME">%1$s</xliff:g> ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಬೇಕೆ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಡೌನ್ಲೋಡ್ ಆಗಲು ಈ ಆ್ಯಪ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ"</string>
<string name="restore" msgid="8460854736328970444">"ಮರುಸ್ಥಾಪಿಸಿ"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"ನೀವು ಆಫ್ಲೈನ್ನಲ್ಲಿರುವಿರಿ"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"ನೀವು ಇಂಟರ್ನೆಟ್ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ, ಈ ಆ್ಯಪ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸ್ಥಾಪನೆಯಾಗುತ್ತದೆ"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"ಏನೋ ತಪ್ಪಾಗಿದೆ"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ಈ ಆ್ಯಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ ಸಮಸ್ಯೆ ಕಂಡುಬಂದಿದೆ"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"ಸಾಕಷ್ಟು ಸಂಗ್ರಹಣೆ ಇಲ್ಲ"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ಈ ಆ್ಯಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು, ನೀವು ಈ ಸಾಧನದಲ್ಲಿ ಸ್ಥಳಾವಕಾಶವನ್ನು ತೆರವುಗೊಳಿಸಬಹುದು. ಅಗತ್ಯವಿರುವ ಸಂಗ್ರಹಣೆ: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"ಕ್ರಮದ ಅಗತ್ಯವಿದೆ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ಈ ಆ್ಯಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಮುಂದಿನ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ಈ ಆ್ಯಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು, ನೀವು <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ಮುಂದುವರಿಸಿ"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ಸಂಗ್ರಹಣೆಯನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
+ <string name="close" msgid="5214897374055647996">"ಮುಚ್ಚಿರಿ"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ko/strings.xml b/packages/PackageInstaller/res/values-ko/strings.xml
index 7ae19ac..d449090 100644
--- a/packages/PackageInstaller/res/values-ko/strings.xml
+++ b/packages/PackageInstaller/res/values-ko/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"앱 데이터 크기를 <xliff:g id="SIZE">%1$s</xliff:g>로 유지합니다."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"이 앱을 삭제하시겠습니까?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"이 앱을 제거하시겠습니까? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> 클론도 삭제됩니다."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"비공개 스페이스에서 이 앱을 제거하시겠습니까?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"실행 중인 제거 작업"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"실패한 제거 작업"</string>
<string name="uninstalling" msgid="8709566347688966845">"제거 중..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>에서 <xliff:g id="APPNAME">%1$s</xliff:g> 앱을 복원하시겠습니까?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"백그라운드에서 앱이 다운로드되기 시작합니다"</string>
<string name="restore" msgid="8460854736328970444">"복원"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"오프라인 상태"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"인터넷에 연결되면 이 앱은 자동으로 복원됩니다"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"문제가 발생했습니다"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"이 앱을 복원하려고 시도하던 중 문제가 발생했습니다"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"저장용량 부족"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"이 앱을 사용하려면 이 기기의 여유 공간을 확보해야 합니다 필요한 저장용량: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"조치 필요"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"이 앱을 복원하려면 다음 단계를 따르세요"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> 사용 중지됨"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> 제거됨"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"이 앱을 복원하려면 <xliff:g id="INSTALLERNAME">%1$s</xliff:g>를 설치해야 합니다"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"계속"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"저장용량 비우기"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"설정"</string>
+ <string name="close" msgid="5214897374055647996">"닫기"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ky/strings.xml b/packages/PackageInstaller/res/values-ky/strings.xml
index faf3df2..952e617 100644
--- a/packages/PackageInstaller/res/values-ky/strings.xml
+++ b/packages/PackageInstaller/res/values-ky/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Колдонмонун <xliff:g id="SIZE">%1$s</xliff:g> дайындарын сактоо."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Бул колдонмону өчүрөсүзбү?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Бул колдонмону чыгарып саласызбы? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> клону да өчүрүлөт."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Бул колдонмону жеке чөйрөдөн чыгарып саласызбы?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Чыгарылып салынууда"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Чыгарылып салынбай калгандар"</string>
<string name="uninstalling" msgid="8709566347688966845">"Чыгарылып салынууда…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> <xliff:g id="INSTALLERNAME">%1$s</xliff:g> платформасынан калыбына келтирилсинби?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Бул колдонмо фондо жүктөлүп алына баштайт"</string>
<string name="restore" msgid="8460854736328970444">"Калыбына келтирүү"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Интернет байланышыңыз жок"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Интернетке туташканыңызда бул колдонмо автоматтык түрдө калыбына келтирилет"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Бир жерден ката кетти"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Бул колдонмону калыбына келтирүүдө маселе келип чыкты"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Сактагычта орун жетишсиз"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Бул колдонмону калыбына келтирүү үчүн түзмөктө орун бошотуңуз. Сактагыч талап кылынат: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Аракет талап кылынат"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Бул колдонмону калыбына келтирүү үчүн кийинки кадамдарды аткарыңыз"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> өчүрүлгөн"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> орнотулду"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Бул колдонмону калыбына келтирүү үчүн <xliff:g id="INSTALLERNAME">%1$s</xliff:g> кызматын орнотуп алышыңыз керек"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Улантуу"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Сактагычты тазалоо"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Параметрлер"</string>
+ <string name="close" msgid="5214897374055647996">"Жабуу"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-lo/strings.xml b/packages/PackageInstaller/res/values-lo/strings.xml
index e9b3e8e..55c10d4 100644
--- a/packages/PackageInstaller/res/values-lo/strings.xml
+++ b/packages/PackageInstaller/res/values-lo/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"ຮັກສາຂະໜາດຂໍ້ມູນແອັບ <xliff:g id="SIZE">%1$s</xliff:g> ໄວ້."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ທ່ານຕ້ອງການລຶບແອັບນີ້ບໍ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ທ່ານຕ້ອງການຖອນການຕິດຕັ້ງແອັບນີ້ບໍ່? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ໂຄລນຈະຖືກລຶບນຳ."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"ທ່ານຕ້ອງການຖອນການຕິດຕັ້ງແອັບນີ້ຈາກພື້ນທີ່ສ່ວນຕົວຂອງທ່ານບໍ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ກຳລັງຖອນການຕິດຕັ້ງ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ຖອນການຕິດຕັ້ງບໍ່ສຳເລັດ"</string>
<string name="uninstalling" msgid="8709566347688966845">"ກຳລັງຖອນການຕິດຕັ້ງ..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"ກູ້ຄືນ <xliff:g id="APPNAME">%1$s</xliff:g> ຈາກ <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ບໍ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ແອັບນີ້ຈະເລີ່ມດາວໂຫຼດໃນພື້ນຫຼັງ"</string>
<string name="restore" msgid="8460854736328970444">"ກູ້ຄືນ"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"ທ່ານອອບລາຍຢູ່"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"ແອັບນີ້ຈະກູ້ຄືນໂດຍອັດຕະໂນມັດເມື່ອທ່ານເຊື່ອມຕໍ່ກັບອິນເຕີເນັດ"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"ມີບາງຢ່າງຜິດພາດເກີດຂຶ້ນ"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ເກີດບັນຫາໃນລະຫວ່າງທີ່ພະຍາຍາມກູ້ຄືນແອັບນີ້"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"ບ່ອນຈັດເກັບຂໍ້ມູນບໍ່ພຽງພໍ"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ເພື່ອກູ້ຄືນແອັບນີ້, ທ່ານສາມາດເພີ່ມພື້ນທີ່ຫວ່າງໃນອຸປະກອນນີ້ໄດ້. ໂດຍຈະຕ້ອງໃຊ້ບ່ອນຈັດເກັບຂໍ້ມູນ: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"ຕ້ອງດຳເນີນການ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອກູ້ຄືນແອັບນີ້"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ຖືກປິດການນຳໃຊ້"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ຖືກຖອນການຕິດຕັ້ງ"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ເພື່ອກູ້ຄືນແອັບນີ້, ທ່ານຈະຕ້ອງຕິດຕັ້ງ <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ສືບຕໍ່"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ລຶບລ້າງບ່ອນຈັດເກັບຂໍ້ມູນ"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ການຕັ້ງຄ່າ"</string>
+ <string name="close" msgid="5214897374055647996">"ປິດ"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-lt/strings.xml b/packages/PackageInstaller/res/values-lt/strings.xml
index 654dee0..1184bab 100644
--- a/packages/PackageInstaller/res/values-lt/strings.xml
+++ b/packages/PackageInstaller/res/values-lt/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Palikti <xliff:g id="SIZE">%1$s</xliff:g> programų duomenų."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Ar norite ištrinti šią programą?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Ar norite pašalinti šią programą? „<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>“ kopija taip pat bus ištrinta."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Ar norite pašalinti šią programą iš privačios erdvės?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Vykdomi pašalinimai"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Nepavykę pašalinimai"</string>
<string name="uninstalling" msgid="8709566347688966845">"Pašalinama…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Atkurti „<xliff:g id="APPNAME">%1$s</xliff:g>“ iš „<xliff:g id="INSTALLERNAME">%1$s</xliff:g>“?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Šios programos atsisiuntimas bus pradėtas fone"</string>
<string name="restore" msgid="8460854736328970444">"Atkurti"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Esate neprisijungę"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Ši programa bus automatiškai atkurta, kai prisijungsite prie interneto"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Kažkas nepavyko"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Bandant atkurti šią programą iškilo problema"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Trūksta saugyklos vietos"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Kad atkurtumėte šią programą, galite atlaisvinti vietos šiame įrenginyje. Reikia saugyklos vietos: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Būtina imtis veiksmų"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Atlikite toliau nurodytus veiksmus, kad atkurtumėte šią programą"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"„<xliff:g id="INSTALLERNAME">%1$s</xliff:g>“ išjungta"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"„<xliff:g id="INSTALLERNAME">%1$s</xliff:g>“ pašalinta"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Kad atkurtumėte šią programą, turėsite įdiegti „<xliff:g id="INSTALLERNAME">%1$s</xliff:g>“"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Tęsti"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Išvalyti saugyklą"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Nustatymai"</string>
+ <string name="close" msgid="5214897374055647996">"Uždaryti"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-lv/strings.xml b/packages/PackageInstaller/res/values-lv/strings.xml
index 2d319fc..71d25d4 100644
--- a/packages/PackageInstaller/res/values-lv/strings.xml
+++ b/packages/PackageInstaller/res/values-lv/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Iegūstiet <xliff:g id="SIZE">%1$s</xliff:g> (lietotnes dati)."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Vai vēlaties izdzēst šo lietotni?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Vai vēlaties atinstalēt šo lietotni? Tiks izdzēsts arī lietotnes <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> klons."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Vai vēlaties atinstalēt šo lietotni no savas privātās mapes?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Pašreizējās atinstalēšanas operācijas"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Nesekmīgi atinstalēšanas mēģinājumi"</string>
<string name="uninstalling" msgid="8709566347688966845">"Notiek atinstalēšana…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Vai atjaunot lietotni <xliff:g id="APPNAME">%1$s</xliff:g> no <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Fonā tiks sākta šīs lietotnes lejupielāde."</string>
<string name="restore" msgid="8460854736328970444">"Atjaunot"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Jūs esat bezsaistē"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Šī lietotne tiks automātiski atjaunota, kad izveidosiet savienojumu ar internetu."</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Radās problēma"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Mēģinot atjaunot šo lietotni, radās problēma."</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Krātuvē nepietiek vietas"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Lai atjaunotu šo lietotni, jums ir jāatbrīvo vieta ierīces krātuvē. Nepieciešamā vieta: <xliff:g id="BYTES">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Nepieciešamā darbība"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Veiciet tālāk minētās darbības, lai atjaunotu šo lietotni."</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Programma <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ir atspējota"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Programma <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ir atinstalēta"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Lai atjaunotu šo lietotni, jums ir jāinstalē programma <xliff:g id="INSTALLERNAME">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Turpināt"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Notīrīt krātuvi"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Iestatījumi"</string>
+ <string name="close" msgid="5214897374055647996">"Aizvērt"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-mk/strings.xml b/packages/PackageInstaller/res/values-mk/strings.xml
index e02c3c5..e68fe06 100644
--- a/packages/PackageInstaller/res/values-mk/strings.xml
+++ b/packages/PackageInstaller/res/values-mk/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Задржи <xliff:g id="SIZE">%1$s</xliff:g> податоци на апликацијата."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Дали сакате да ја избришете оваа апликација?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Дали сакате да ја деинсталирате оваа апликација? Ќе се избрише и клонот на <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Дали сакате да ја деинсталирате апликацијава од вашиот „Приватен простор“?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Деинсталации во тек"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Неуспешни деинсталации"</string>
<string name="uninstalling" msgid="8709566347688966845">"Се деинсталира…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Да се врати <xliff:g id="APPNAME">%1$s</xliff:g> од <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Апликацијава ќе почне да се презема во заднина"</string>
<string name="restore" msgid="8460854736328970444">"Враќање"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Офлајн сте"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Апликацијава ќе се врати автоматски кога ќе се поврзете на интернет"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Нешто тргна наопаку"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Се јави проблем при обидот за враќање на апликацијава"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Нема доволно простор"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"За да ја вратите апликацијава, може да ослободите простор на уредов. Потребен простор: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Потребно е дејство"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Следете ги следниве чекори за да ја вратите апликацијава"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Оневозможено: <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Деинсталирано: <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"За да ја вратите апликацијава, треба да инсталирате <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Продолжете"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Ослободете простор"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Поставки"</string>
+ <string name="close" msgid="5214897374055647996">"Затворете"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ml/strings.xml b/packages/PackageInstaller/res/values-ml/strings.xml
index 2e5dcfb..0b4b81a 100644
--- a/packages/PackageInstaller/res/values-ml/strings.xml
+++ b/packages/PackageInstaller/res/values-ml/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ആപ്പ് ഡാറ്റ വയ്ക്കുക."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ഈ ആപ്പ് ഇല്ലാതാക്കണോ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ഈ ആപ്പ് അൺഇൻസ്റ്റാൾ ചെയ്യണോ? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ക്ലോൺ ചെയ്യലും ഇല്ലാതാക്കും."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"നിങ്ങളുടെ സ്വകാര്യ സ്പെയ്സിൽ നിന്ന് ഈ ആപ്പ് അൺഇൻസ്റ്റാൾ ചെയ്യണോ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"നിലവിൽ അൺഇൻസ്റ്റാൾ ചെയ്യുന്നവ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"അൺ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയാഞ്ഞവ"</string>
<string name="uninstalling" msgid="8709566347688966845">"അണ് ഇൻസ്റ്റാൾ ചെയ്യുന്നു..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> എന്നതിൽ നിന്ന് <xliff:g id="APPNAME">%1$s</xliff:g> പുനഃസ്ഥാപിക്കണോ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"പശ്ചാത്തലത്തിൽ ഈ ആപ്പ് ഡൗൺലോഡ് ചെയ്ത് തുടങ്ങും"</string>
<string name="restore" msgid="8460854736328970444">"പുനഃസ്ഥാപിക്കുക"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"നിങ്ങൾ ഓഫ്ലൈനാണ്"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"നിങ്ങൾ ഇന്റർനെറ്റിലേക്ക് കണക്റ്റ് ചെയ്തിരിക്കുമ്പോൾ, ഈ ആപ്പ് സ്വയമേവ പുനഃസ്ഥാപിക്കും"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"എന്തോ കുഴപ്പമുണ്ടായി"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ഈ ആപ്പ് പുനഃസ്ഥാപിക്കുന്നതിൽ ഒരു പ്രശ്നമുണ്ടായി"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"മതിയായ സ്റ്റോറേജ് ഇല്ല"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ഈ ആപ്പ് പുനഃസ്ഥാപിക്കുന്നതിന്, ഈ ഉപകരണത്തിൽ ഇടം സൃഷ്ടിക്കാം. ആവശ്യമായ സ്റ്റോറേജ്: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"നടപടി ആവശ്യമാണ്"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ഈ ആപ്പ് പുനഃസ്ഥാപിക്കാൻ തുടർന്നുള്ള ഘട്ടങ്ങൾ പാലിക്കുക"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> പ്രവർത്തനരഹിതമാക്കി"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> അൺഇൻസ്റ്റാൾ ചെയ്തു"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ഈ ആപ്പ് പുനഃസ്ഥാപിക്കുന്നതിന്, നിങ്ങൾ <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"തുടരുക"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"സ്റ്റോറേജ് മായ്ക്കുക"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ക്രമീകരണം"</string>
+ <string name="close" msgid="5214897374055647996">"അടയ്ക്കുക"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-mn/strings.xml b/packages/PackageInstaller/res/values-mn/strings.xml
index 5deda94..32952ae 100644
--- a/packages/PackageInstaller/res/values-mn/strings.xml
+++ b/packages/PackageInstaller/res/values-mn/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Аппын өгөгдлийн <xliff:g id="SIZE">%1$s</xliff:g>-г үлдээнэ үү."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Та энэ аппыг устгахыг хүсэж байна уу?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Та энэ аппыг устгахыг хүсэж байна уу? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-н хувилалыг мөн устгана."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Та энэ аппыг хувийн орон зайнаасаа устгахдаа итгэлтэй байна уу?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Устгаж байна"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Устгаж чадсангүй"</string>
<string name="uninstalling" msgid="8709566347688966845">"Устгаж байна…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g>-г <xliff:g id="INSTALLERNAME">%1$s</xliff:g>-с сэргээх үү?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Энэ аппыг дэвсгэрт татаж эхэлнэ"</string>
<string name="restore" msgid="8460854736328970444">"Сэргээх"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Та офлайн байна"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Таныг интернэтэд холбогдсон үед энэ аппыг автоматаар сэргээнэ"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Ямар нэг алдаа гарлаа"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Энэ аппыг сэргээхээр оролдоход асуудал гарлаа"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Хангалттай хадгалах сан байхгүй"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Энэ аппыг сэргээхийн тулд та энэ төхөөрөмжид сул зай гаргах боломжтой. Шаардлагатай хадгалах сан: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Арга хэмжээ авах шаардлагатай"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Энэ аппыг сэргээхийн тулд дараах алхмуудыг дагана уу"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>-г идэвхгүй болгосон"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>-г устгасан"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Энэ аппыг сэргээхийн тулд та <xliff:g id="INSTALLERNAME">%1$s</xliff:g>-г суулгах шаардлагатай"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Үргэлжлүүлэх"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Хадгалах санг цэвэрлэх"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Тохиргоо"</string>
+ <string name="close" msgid="5214897374055647996">"Хаах"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-mr/strings.xml b/packages/PackageInstaller/res/values-mr/strings.xml
index 53ca403..77a5b9b 100644
--- a/packages/PackageInstaller/res/values-mr/strings.xml
+++ b/packages/PackageInstaller/res/values-mr/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"ॲप डेटा पैकी <xliff:g id="SIZE">%1$s</xliff:g> ठेवा."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"तुम्हाला हे अॅप हटवायचे आहे का?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"तुम्हाला हे अॅप अनइंस्टॉल करायचे आहे का? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> क्लोनदेखील हटवले जाईल."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"तुम्हाला तुमच्या खाजगी स्पेसमधून हे अॅप काढून टाकायचे आहे का?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"अनइंस्टॉल रन होत आहेत"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"अनइंस्टॉल करता आले नाही"</string>
<string name="uninstalling" msgid="8709566347688966845">"अनइंस्टॉल करत आहे…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> मधून <xliff:g id="APPNAME">%1$s</xliff:g> रिस्टोअर करायचे आहे का?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"हे ॲप बॅकग्राउंडमध्ये डाउनलोड होण्यास सुरुवात होईल"</string>
<string name="restore" msgid="8460854736328970444">"रिस्टोअर करा"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"तुम्ही ऑफलाइन आहात"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"तुम्ही इंटरनेटशी कनेक्ट केले असेल, तेव्हा हे अॅप आपोआप रिस्टोअर होईल"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"काहीतरी चुकले"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"हे अॅप रिस्टोअर करताना समस्या आली होती"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"पुरेसे स्टोरेज नाही"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"हे अॅप रिस्टोअर करण्यासाठी, तुम्ही या डिव्हाइसवरील जागा मोकळी करू शकता. स्टोरेज आवश्यक आहे: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"कृती आवश्यक आहे"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"हे अॅप रिस्टोअर करण्यासाठी पुढील पायऱ्या फॉलो करा"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> बंद केले आहे"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> अनइंस्टॉल केले आहे"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"हे अॅप रिस्टोअर करण्यासाठी, तुम्हाला <xliff:g id="INSTALLERNAME">%1$s</xliff:g> इंस्टॉल करावे लागेल"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"पुढे सुरू ठेवा"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"स्टोरेज साफ करा"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"सेटिंग्ज"</string>
+ <string name="close" msgid="5214897374055647996">"बंद करा"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ms/strings.xml b/packages/PackageInstaller/res/values-ms/strings.xml
index 4b0b560..7a85370 100644
--- a/packages/PackageInstaller/res/values-ms/strings.xml
+++ b/packages/PackageInstaller/res/values-ms/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Simpan <xliff:g id="SIZE">%1$s</xliff:g> data apl."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Adakah anda mahu memadamkan apl ini?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Adakah anda mahu menyahpasang apl ini? Klon <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> juga akan dipadamkan."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Adakah anda mahu menyahpasang apl ini daripada ruang peribadi anda?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Penyahpasangan yang sedang berjalan"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Penyahpasangan yang gagal"</string>
<string name="uninstalling" msgid="8709566347688966845">"Menyahpasang…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Pulihkan <xliff:g id="APPNAME">%1$s</xliff:g> daripada <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Apl ini akan mula dimuat turun dalam latar"</string>
<string name="restore" msgid="8460854736328970444">"Pulihkan"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Anda berstatus luar talian"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Apl ini akan dipulihkan secara automatik apabila anda disambungkan kepada Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Ada yang tidak kena"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Terdapat masalah semasa memuatkan apl ini"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Storan tidak mencukupi"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Untuk memulihkan apl ini, anda boleh mengosongkan ruang storan pada peranti ini. Storan diperlukan: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Tindakan diperlukan"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Ikut langkah seterusnya untuk memulihkan apl ini"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> dilumpuhkan"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> dinyahpasang"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Untuk memulihkan apl ini, anda perlu memasang <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Teruskan"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Kosongkan storan"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Tetapan"</string>
+ <string name="close" msgid="5214897374055647996">"Tutup"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-my/strings.xml b/packages/PackageInstaller/res/values-my/strings.xml
index 302c2c3..21c223c 100644
--- a/packages/PackageInstaller/res/values-my/strings.xml
+++ b/packages/PackageInstaller/res/values-my/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"အက်ပ်ဒေတာများ၏ <xliff:g id="SIZE">%1$s</xliff:g> ကို ထားရှိရန်။"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ဤအက်ပ်ကို ဖျက်လိုသလား။"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ဤအက်ပ်ကို ဖယ်ရှားလိုသလား။ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ပုံတူပွားကိုလည်း ဖျက်လိုက်မည်။"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"ဤအက်ပ်ကို သင့်သီးသန့်နေရာမှ ဖယ်ရှားလိုသလား။"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ပရိုဂရမ်ကို ဖယ်ရှားနေပါသည်"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ပရိုဂရမ်ကို ဖယ်ရှား၍မရပါ"</string>
<string name="uninstalling" msgid="8709566347688966845">"ပရိုဂရမ်ကို ဖယ်ရှားနေသည်..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> မှ <xliff:g id="APPNAME">%1$s</xliff:g> ကို ပြန်ယူမလား။"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ဤအက်ပ်ကို နောက်ခံတွင် စတင်ဒေါင်းလုဒ်လုပ်ပါမည်"</string>
<string name="restore" msgid="8460854736328970444">"ပြန်ယူရန်"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"သင်အော့ဖ်လိုင်း ဖြစ်နေသည်"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"အင်တာနက် ချိတ်ဆက်ထားသည့်အခါ ဤအက်ပ်ကို အလိုအလျောက် ပြန်ယူပါမည်"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"တစ်ခုခုမှားသွားသည်"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ဤအက်ပ်ကို ပြန်ယူရန် ကြိုးပမ်းရာတွင် ပြဿနာရှိသည်"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"သိုလှောင်ခန်း မလုံလောက်ပါ"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ဤအက်ပ်ကို ပြန်ယူရန် ဤစက်တွင် နေရာလွတ်ပြုလုပ်နိုင်သည်။ သိုလှောင်ခန်း လိုအပ်သည်- <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"လုပ်ဆောင်ချက် လိုအပ်သည်"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ဤအက်ပ်ကို ပြန်ယူရန် နောက်အဆင့်များအတိုင်း လုပ်ဆောင်ပါ"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ကို ပိတ်ထားသည်"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ကို ဖယ်ရှားထားသည်"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ဤအက်ပ်ကို ပြန်ယူရန် <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ကို ထည့်သွင်းရမည်"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ရှေ့ဆက်ရန်"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"သိုလှောင်ခန်း ရှင်းလင်းရန်"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ဆက်တင်များ"</string>
+ <string name="close" msgid="5214897374055647996">"ပိတ်ရန်"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-nb/strings.xml b/packages/PackageInstaller/res/values-nb/strings.xml
index 65c0cb8..86442e1 100644
--- a/packages/PackageInstaller/res/values-nb/strings.xml
+++ b/packages/PackageInstaller/res/values-nb/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Behold <xliff:g id="SIZE">%1$s</xliff:g> med appdata."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Vil du slette denne appen?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Vil du avinstallere denne appen? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-klonen slettes også."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Vil du avinstallere denne appen fra det private området ditt?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Avinstalleringer som er i gang"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislykkede avinstalleringer"</string>
<string name="uninstalling" msgid="8709566347688966845">"Avinstallerer …"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Vil du gjenopprette <xliff:g id="APPNAME">%1$s</xliff:g> fra <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Denne appen begynner å laste ned i bakgrunnen"</string>
<string name="restore" msgid="8460854736328970444">"Gjenopprett"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Du er uten nett"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Denne appen gjenopprettes automatisk når du er koblet til internett"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Noe gikk galt"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Det oppsto et problem med å gjenopprette denne appen"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Ikke nok lagringsplass"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"For å gjenopprette denne appen kan du frigjøre plass på enheten. Nødvendig lagringsplass: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Handling påkrevd"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Følg de neste trinnene for å gjenopprette denne appen"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> er deaktivert"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> er avinstallert"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"For å gjenopprette denne appen må du installere <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Fortsett"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Frigjør lagringsplass"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Innstillinger"</string>
+ <string name="close" msgid="5214897374055647996">"Lukk"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ne/strings.xml b/packages/PackageInstaller/res/values-ne/strings.xml
index b72218c..ee704d0 100644
--- a/packages/PackageInstaller/res/values-ne/strings.xml
+++ b/packages/PackageInstaller/res/values-ne/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> एपको डेटा राख्नुहोस्।"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"तपाईं यो एप मेटाउन चाहनुहुन्छ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"तपाईं यो एप अनइन्स्टल गर्न चाहनुहुन्छ? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> क्लोन पनि मेटाइने छ।"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"तपाईं आफ्नो निजी स्पेसबाट यो एप अनइन्स्टल गर्न चाहनुहुन्छ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"चलिरहेका स्थापना रद्द गर्ने कार्यहरू"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"असफल भएका स्थापना रद्द गर्ने कार्यहरू"</string>
<string name="uninstalling" msgid="8709566347688966845">"स्थापना रद्द गर्दै…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> बाट <xliff:g id="APPNAME">%1$s</xliff:g> रिस्टोर गर्ने हो?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"यो एप ब्याकग्राउन्डमा डाउनलोड हुन थाल्ने छ"</string>
<string name="restore" msgid="8460854736328970444">"रिस्टोर गर्नुहोस्"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"तपाईंको डिभाइस अफलाइन छ"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"तपाईंको डिभाइस इन्टरनेटमा कनेक्ट भएपछि यो एप स्वतः रिस्टोर हुने छ"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"कुनै समस्या आयो"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"यो एप रिस्टोर गर्ने क्रममा कुनै समस्या आयो"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"पर्याप्त खाली ठाउँ छैन"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"यो एप रिस्टोर गर्न तपाईं यो डिभाइसमा ठाउँ खाली गर्न सक्नुहुन्छ। आवश्यक भण्डारण: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"कारबाही गर्नु पर्ने हुन्छ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"यो एप रिस्टोर गर्न आगामी चरणहरू पालना गर्नुहोस्"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> अफ गरिएको छ"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> अनइन्स्टल गरिएको छ"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"यो एप रिस्टोर गर्न तपाईंले <xliff:g id="INSTALLERNAME">%1$s</xliff:g> इन्स्टल गर्नु पर्ने हुन्छ"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"जारी राख्नुहोस्"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"भण्डारण खाली गर्नुहोस्"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"सेटिङ"</string>
+ <string name="close" msgid="5214897374055647996">"बन्द गर्नुहोस्"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-nl/strings.xml b/packages/PackageInstaller/res/values-nl/strings.xml
index a1eb708..a63ff93 100644
--- a/packages/PackageInstaller/res/values-nl/strings.xml
+++ b/packages/PackageInstaller/res/values-nl/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> aan app-gegevens behouden."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Wil je deze app verwijderen?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Wil je deze app verwijderen? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-kloon wordt ook verwijderd."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Wil je deze app verwijderen uit je privéruimte?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Actieve verwijderingen"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislukte verwijderingen"</string>
<string name="uninstalling" msgid="8709566347688966845">"Verwijderen…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> herstellen via <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Deze app wordt gedownload op de achtergrond"</string>
<string name="restore" msgid="8460854736328970444">"Herstellen"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Je bent offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Deze app wordt automatisch hersteld als je verbinding hebt met internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Er is iets misgegaan"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Er is iets misgegaan bij het herstellen van deze app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Onvoldoende opslagruimte"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Je kunt ruimte op dit apparaat vrijmaken om deze app te herstellen. Vereiste opslagruimte: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Actie vereist"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Voer de volgende stappen uit om deze app te herstellen"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is uitgezet"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> is verwijderd"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Je moet <xliff:g id="INSTALLERNAME">%1$s</xliff:g> installeren om deze app te herstellen"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Doorgaan"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Opslag wissen"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Instellingen"</string>
+ <string name="close" msgid="5214897374055647996">"Sluiten"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-or/strings.xml b/packages/PackageInstaller/res/values-or/strings.xml
index a1c685c..c9041d1 100644
--- a/packages/PackageInstaller/res/values-or/strings.xml
+++ b/packages/PackageInstaller/res/values-or/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ଆକାରର ଆପ୍ ଡାଟା ରଖନ୍ତୁୁ।"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ଆପଣ ଏହି ଆପକୁ ଡିଲିଟ କରିବାକୁ ଚାହୁଁଛନ୍ତି?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ଆପଣ ଏହି ଆପକୁ ଅନଇନଷ୍ଟଲ କରିବାକୁ ଚାହୁଁଛନ୍ତି? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> କ୍ଲୋନକୁ ମଧ୍ୟ ଡିଲିଟ କରାଯିବ।"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"ଆପଣ ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସରୁ ଏହି ଆପକୁ ଅନଇନଷ୍ଟଲ କରିବାକୁ ଚାହାଁନ୍ତି?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ଅନଇନଷ୍ଟଲ୍ ଚାଲୁଛି"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ବିଫଳ ହୋଇଥିବା ଅନଇନଷ୍ଟଲ୍"</string>
<string name="uninstalling" msgid="8709566347688966845">"ଅନ୍ଇନଷ୍ଟଲ୍ କରାଯାଉଛି…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>ରୁ <xliff:g id="APPNAME">%1$s</xliff:g>କୁ ରିଷ୍ଟୋର କରିବେ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ଏହି ଆପ ପୃଷ୍ଠପଟରେ ଡାଉନଲୋଡ ହେବା ଆରମ୍ଭ କରିବ"</string>
<string name="restore" msgid="8460854736328970444">"ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"ଆପଣ ଅଫଲାଇନ ଅଛନ୍ତି"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"ଆପଣ ଇଣ୍ଟରନେଟ ସହ କନେକ୍ଟ ହେଲେ ଏହି ଆପ ସ୍ୱତଃ ରିଷ୍ଟୋର ହେବ"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"କିଛି ତ୍ରୁଟି ହୋଇଛି"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ଏହି ଆପ ରିଷ୍ଟୋର କରିବାକୁ ଚେଷ୍ଟା କରିବା ସମୟରେ ଏକ ସମସ୍ୟା ହୋଇଛି"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"ଯଥେଷ୍ଟ ଷ୍ଟୋରେଜ ନାହିଁ"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ଏହି ଆପ ରିଷ୍ଟୋର କରିବା ପାଇଁ ଆପଣ ଏହି ଡିଭାଇସରେ ସ୍ପେସ ଖାଲି କରିପାରିବେ। ଷ୍ଟୋରେଜ ଆବଶ୍ୟକ: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"ପଦକ୍ଷେପ ନେବା ଆବଶ୍ୟକ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ଏହି ଆପ ରିଷ୍ଟୋର କରିବାକୁ ପରବର୍ତ୍ତୀ ଷ୍ଟେପଗୁଡ଼ିକୁ ଫଲୋ କରନ୍ତୁ"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>କୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>କୁ ଅନଇନଷ୍ଟଲ କରାଯାଇଛି"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ଏହି ଆପ ରିଷ୍ଟୋର କରିବା ପାଇଁ ଆପଣଙ୍କୁ <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ଇନଷ୍ଟଲ କରିବାକୁ ହେବ"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ଜାରି ରଖନ୍ତୁ"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ଷ୍ଟୋରେଜ ଖାଲି କରନ୍ତୁ"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ସେଟିଂସ"</string>
+ <string name="close" msgid="5214897374055647996">"ବନ୍ଦ କରନ୍ତୁ"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-pa/strings.xml b/packages/PackageInstaller/res/values-pa/strings.xml
index 1c7fb862..d968672 100644
--- a/packages/PackageInstaller/res/values-pa/strings.xml
+++ b/packages/PackageInstaller/res/values-pa/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ਐਪ ਡਾਟਾ ਰੱਖੋ।"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ਕੀ ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ਕੀ ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਅਣਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ਦੇ ਕਲੋਨ ਨੂੰ ਵੀ ਮਿਟਾਇਆ ਜਾਵੇਗਾ।"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"ਕੀ ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਆਪਣੇ ਨਿੱਜੀ ਸਪੇਸ ਤੋਂ ਅਣਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ਚੱਲ ਰਹੀਆਂ ਅਣਸਥਾਪਨਾਵਾਂ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ਅਸਫਲ ਅਣਸਥਾਪਨਾਵਾਂ"</string>
<string name="uninstalling" msgid="8709566347688966845">"ਅਣਸਥਾਪਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"ਕੀ <xliff:g id="APPNAME">%1$s</xliff:g> ਨੂੰ <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ਤੋਂ ਮੁੜ-ਬਹਾਲ ਕਰਨਾ ਹੈ?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ਇਹ ਐਪ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਡਾਊਨਲੋਡ ਹੋਣੀ ਸ਼ੁਰੂ ਹੋ ਜਾਵੇਗੀ"</string>
<string name="restore" msgid="8460854736328970444">"ਮੁੜ-ਬਹਾਲ ਕਰੋ"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"ਤੁਸੀਂ ਆਫ਼ਲਾਈਨ ਹੋ"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"ਜਦੋਂ ਤੁਸੀਂ ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਐਪ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਮੁੜ-ਬਹਾਲ ਹੋ ਜਾਵੇਗੀ"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ਇਸ ਐਪ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਵੇਲੇ ਕੋਈ ਸਮੱਸਿਆ ਆਈ"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"ਲੋੜੀਂਦੀ ਸਟੋਰੇਜ ਨਹੀਂ ਹੈ"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ਇਸ ਐਪ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਜਗ੍ਹਾ ਖਾਲੀ ਕਰ ਸਕਦੇ ਹੋ। ਲੋੜੀਂਦੀ ਸਟੋਰੇਜ: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"ਕਾਰਵਾਈ ਦੀ ਲੋੜ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ਇਸ ਐਪ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਲਈ ਅਗਲੇ ਪੜਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ਨੂੰ ਬੰਦ ਕੀਤਾ ਗਿਆ"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ਨੂੰ ਅਣਸਥਾਪਤ ਕੀਤਾ ਗਿਆ"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ਇਸ ਐਪ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ਜਾਰੀ ਰੱਖੋ"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ਸਟੋਰੇਜ ਕਲੀਅਰ ਕਰੋ"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ਸੈਟਿੰਗਾਂ"</string>
+ <string name="close" msgid="5214897374055647996">"ਬੰਦ ਕਰੋ"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-pl/strings.xml b/packages/PackageInstaller/res/values-pl/strings.xml
index 8fa11ed..6aa6aff 100644
--- a/packages/PackageInstaller/res/values-pl/strings.xml
+++ b/packages/PackageInstaller/res/values-pl/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Zachowaj <xliff:g id="SIZE">%1$s</xliff:g> danych aplikacji."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Chcesz usunąć tę aplikację?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Chcesz odinstalować tę aplikację? Klon aplikacji <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> również zostanie usunięty."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Chcesz odinstalować tę aplikację ze swojego obszaru prywatnego?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Aktywne odinstalowania"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Nieudane odinstalowania"</string>
<string name="uninstalling" msgid="8709566347688966845">"Odinstalowuję…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Przywrócić aplikację <xliff:g id="APPNAME">%1$s</xliff:g> z aplikacji <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Ta aplikacja zacznie pobieranie w tle"</string>
<string name="restore" msgid="8460854736328970444">"Przywróć"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Jesteś offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Ta aplikacja zostanie automatycznie przywrócona, gdy połączysz się z internetem"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Coś poszło nie tak"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Podczas przywracania tej aplikacji wystąpił błąd"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Za mało miejsca na dane"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Aby przywrócić tę aplikację, musisz zwolnić miejsce na urządzeniu. Wymagane miejsce na dane: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Wymagane działanie"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Aby przywrócić tę aplikację, wykonaj następne czynności"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Aplikacja <xliff:g id="INSTALLERNAME">%1$s</xliff:g> jest wyłączona"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Aplikacja <xliff:g id="INSTALLERNAME">%1$s</xliff:g> jest odinstalowana"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Aby przywrócić tę aplikację, musisz zainstalować aplikację <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Dalej"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Wyczyść pamięć"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Ustawienia"</string>
+ <string name="close" msgid="5214897374055647996">"Zamknij"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-pt-rBR/strings.xml b/packages/PackageInstaller/res/values-pt-rBR/strings.xml
index 71ecb2b3..3f71c49 100644
--- a/packages/PackageInstaller/res/values-pt-rBR/strings.xml
+++ b/packages/PackageInstaller/res/values-pt-rBR/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Manter <xliff:g id="SIZE">%1$s</xliff:g> de dados do app."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Quer excluir este app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Quer desinstalar este app? O clone <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> também vai ser excluído."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Você quer desinstalar esse app do seu espaço particular?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Executando desinstalações"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Falha nas desinstalações"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restaurar <xliff:g id="APPNAME">%1$s</xliff:g> usando o app <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"O download desse app será feito em segundo plano"</string>
<string name="restore" msgid="8460854736328970444">"Restaurar"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Você está off-line"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Este app será restaurado automaticamente quando você tiver uma conexão de Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Algo deu errado"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Ocorreu um problema ao tentar restaurar este app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Armazenamento insuficiente"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Para restaurar o app, libere espaço no dispositivo. Armazenamento necessário: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Ação necessária"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Siga as próximas etapas para restaurar este app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"A <xliff:g id="INSTALLERNAME">%1$s</xliff:g> está desativada"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"A <xliff:g id="INSTALLERNAME">%1$s</xliff:g> não está instalada"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Para restaurar o app, instale a <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuar"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Limpar armazenamento"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Configurações"</string>
+ <string name="close" msgid="5214897374055647996">"Fechar"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-pt-rPT/strings.xml b/packages/PackageInstaller/res/values-pt-rPT/strings.xml
index 1d5c1a2..9d47276 100644
--- a/packages/PackageInstaller/res/values-pt-rPT/strings.xml
+++ b/packages/PackageInstaller/res/values-pt-rPT/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Manter <xliff:g id="SIZE">%1$s</xliff:g> de dados da app."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Quer apagar esta app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Quer desinstalar esta app? O clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> também vai ser apagado."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Quer desinstalar esta app do seu espaço privado?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalações em execução"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalações com falha"</string>
<string name="uninstalling" msgid="8709566347688966845">"A desinstalar…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restaurar <xliff:g id="APPNAME">%1$s</xliff:g> a partir da <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Esta app vai começar a ser transferida em segundo plano"</string>
<string name="restore" msgid="8460854736328970444">"Restaurar"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Está offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Esta app vai ser reposta automaticamente quando estabelecer ligação à Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Algo correu mal"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Ocorreu um problema ao tentar repor esta app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Sem armazenamento suficiente"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Para repor esta app, pode libertar espaço neste dispositivo. Armazenamento necessário: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Ação necessária"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Siga os passos abaixo para repor esta app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"O instalador <xliff:g id="INSTALLERNAME">%1$s</xliff:g> está desativado"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"O instalador <xliff:g id="INSTALLERNAME">%1$s</xliff:g> está desinstalado"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Para repor esta app, tem de instalar o instalador <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuar"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Limpar armazenamento"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Definições"</string>
+ <string name="close" msgid="5214897374055647996">"Fechar"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-pt/strings.xml b/packages/PackageInstaller/res/values-pt/strings.xml
index 71ecb2b3..3f71c49 100644
--- a/packages/PackageInstaller/res/values-pt/strings.xml
+++ b/packages/PackageInstaller/res/values-pt/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Manter <xliff:g id="SIZE">%1$s</xliff:g> de dados do app."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Quer excluir este app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Quer desinstalar este app? O clone <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> também vai ser excluído."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Você quer desinstalar esse app do seu espaço particular?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Executando desinstalações"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Falha nas desinstalações"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restaurar <xliff:g id="APPNAME">%1$s</xliff:g> usando o app <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"O download desse app será feito em segundo plano"</string>
<string name="restore" msgid="8460854736328970444">"Restaurar"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Você está off-line"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Este app será restaurado automaticamente quando você tiver uma conexão de Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Algo deu errado"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Ocorreu um problema ao tentar restaurar este app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Armazenamento insuficiente"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Para restaurar o app, libere espaço no dispositivo. Armazenamento necessário: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Ação necessária"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Siga as próximas etapas para restaurar este app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"A <xliff:g id="INSTALLERNAME">%1$s</xliff:g> está desativada"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"A <xliff:g id="INSTALLERNAME">%1$s</xliff:g> não está instalada"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Para restaurar o app, instale a <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuar"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Limpar armazenamento"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Configurações"</string>
+ <string name="close" msgid="5214897374055647996">"Fechar"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ro/strings.xml b/packages/PackageInstaller/res/values-ro/strings.xml
index 810f544..a48c9c5 100644
--- a/packages/PackageInstaller/res/values-ro/strings.xml
+++ b/packages/PackageInstaller/res/values-ro/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Păstrează <xliff:g id="SIZE">%1$s</xliff:g> din datele aplicației."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Vrei să ștergi această aplicație?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Dezinstalezi această aplicație? Se va șterge și clona <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Dezinstalezi aplicația din spațiul privat?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Dezinstalări în curs"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Dezinstalări nereușite"</string>
<string name="uninstalling" msgid="8709566347688966845">"Se dezinstalează…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Restabilești <xliff:g id="APPNAME">%1$s</xliff:g> din <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Descărcarea aplicației va începe în fundal"</string>
<string name="restore" msgid="8460854736328970444">"Restabilește"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Ești offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Aplicația va fi restabilită automat după ce te conectezi la internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"A apărut o eroare"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"A apărut o problemă la restabilirea aplicației"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nu există suficient spațiu de stocare"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Pentru a restabili aplicația, eliberează spațiu pe dispozitiv. Spațiu de stocare necesar: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Acțiune necesară"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Urmează pașii de mai jos pentru a restabili aplicația"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> este dezactivat"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> este dezinstalat"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Pentru a restabili aplicația, va trebui să instalezi <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Continuă"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Șterge datele stocate"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Setări"</string>
+ <string name="close" msgid="5214897374055647996">"Închide"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ru/strings.xml b/packages/PackageInstaller/res/values-ru/strings.xml
index e368f12..93cc6d8 100644
--- a/packages/PackageInstaller/res/values-ru/strings.xml
+++ b/packages/PackageInstaller/res/values-ru/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Сохранить данные приложения (<xliff:g id="SIZE">%1$s</xliff:g>)"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Удалить это приложение?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Удалить это приложение? Клон приложения <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> также будет удален."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Удалить это приложение из личного пространства?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активные процессы удаления"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ошибки удаления"</string>
<string name="uninstalling" msgid="8709566347688966845">"Удаление…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Восстановить приложение \"<xliff:g id="APPNAME">%1$s</xliff:g>\" из <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Приложение начнет скачиваться в фоновом режиме."</string>
<string name="restore" msgid="8460854736328970444">"Восстановить"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Нет доступа к Сети"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Приложение автоматически восстановится, когда устройство будет подключено к интернету."</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Что-то пошло не так"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Не удалось восстановить приложение."</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Недостаточно места"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Чтобы восстановить приложение, освободите место на устройстве. Необходимо <xliff:g id="BYTES">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Требуется действие"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Чтобы восстановить приложение, следуйте дальнейшим инструкциям."</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Установщик \"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>\" отключен"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Установщик \"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>\" удален"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Чтобы восстановить приложение, установите программу \"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>\"."</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Продолжить"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Очистить хранилище"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Настройки"</string>
+ <string name="close" msgid="5214897374055647996">"Закрыть"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-si/strings.xml b/packages/PackageInstaller/res/values-si/strings.xml
index cea50a6..7ee1c78 100644
--- a/packages/PackageInstaller/res/values-si/strings.xml
+++ b/packages/PackageInstaller/res/values-si/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"යෙදුම් දත්තවලින් <xliff:g id="SIZE">%1$s</xliff:g> තබා ගන්න."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ඔබට මෙම යෙදුම මැකීමට අවශ්ය ද?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ඔබට මෙම යෙදුම අස්ථාපනය කිරීමට අවශ්ය ද? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ක්ලෝනය ද මකා දැමෙනු ඇත."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"ඔබට ඔබේ පෞද්ගලික අවකාශයෙන් මෙම යෙදුම අස්ථාපනය කිරීමට අවශ්ය ද?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"අස්ථාපන ධාවනය කරමින්"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"අසාර්ථක වූ අස්ථාපන"</string>
<string name="uninstalling" msgid="8709566347688966845">"අස්ථාපනය කරමින්…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> වෙතින් <xliff:g id="APPNAME">%1$s</xliff:g> ප්රතිසාධනය කරන්න ද?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"මෙම යෙදුම පසුබිමේ බාගැනීම ආරම්භ කරනු ඇත"</string>
<string name="restore" msgid="8460854736328970444">"ප්රතිසාධනය කරන්න"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"ඔබ නොබැඳි වේ"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"ඔබ අන්තර්ජාලයට සම්බන්ධ වූ විට මෙම යෙදුම ස්වයංක්රීයව ප්රතිසාධනය වනු ඇත"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"යමක් වැරදී ඇත"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"මෙම යෙදුම ප්රතිසාධනය කිරීමට උත්සාහ කිරීමේ ගැටලුවක් ඇති විය"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"ප්රමාණවත් ආචයනයක් නොමැත"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"මෙම යෙදුම ප්රතිසාධනය කිරීම සඳහා, ඔබට මෙම උපාංගයෙහි ඉඩ නිදහස් කර ගත හැක. අවශ්ය ආචයනය: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"ක්රියාමාර්ගය අවශ්යයි"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"මෙම යෙදුම ප්රතිසාධනය කිරීමට මීළඟ පියවර අනුගමනය කරන්න"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> අබල කර ඇත"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> අස්ථාපනය කර ඇත"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"මෙම යෙදුම ප්රතිසාධනය කිරීම සඳහා, ඔබට <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ස්ථාපනය කිරීමට අවශ්ය වනු ඇත"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ඉදිරියට යන්න"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ආචයනය හිස් කරන්න"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"සැකසීම්"</string>
+ <string name="close" msgid="5214897374055647996">"වසන්න"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-sk/strings.xml b/packages/PackageInstaller/res/values-sk/strings.xml
index 34117c3..785a080 100644
--- a/packages/PackageInstaller/res/values-sk/strings.xml
+++ b/packages/PackageInstaller/res/values-sk/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Zachovať nasledujúcu veľkosť dát aplikácie: <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Chcete túto aplikáciu odstrániť?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Chcete túto aplikáciu odinštalovať? Bude odstránený aj klon aplikácie <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Chcete túto aplikáciu odinštalovať zo svojho súkromného priestoru?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Prebiehajúce odinštalovania"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neúspešné odinštalácie"</string>
<string name="uninstalling" msgid="8709566347688966845">"Prebieha odinštalovanie..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Chcete obnoviť <xliff:g id="APPNAME">%1$s</xliff:g> z inštalátora <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Táto aplikácia sa začne sťahovať na pozadí"</string>
<string name="restore" msgid="8460854736328970444">"Obnoviť"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Ste offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Po pripojení k internetu bude táto aplikácia automaticky obnovená"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Niečo sa pokazilo"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Pri pokuse o obnovenie tejto aplikácie sa vyskytol problém"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Úložisko je nedostatočné"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Ak chcete túto aplikáciu obnoviť, môžete uvoľniť priestor v tomto zariadení. Potrebný priestor: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Vyžaduje sa akcia"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Podľa nasledujúcich krokov obnovte túto aplikáciu"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Inštalátor <xliff:g id="INSTALLERNAME">%1$s</xliff:g> je deaktivovaný"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Inštalátor <xliff:g id="INSTALLERNAME">%1$s</xliff:g> je odinštalovaný"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Ak chcete túto aplikáciu obnoviť, musíte si nainštalovať <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Pokračovať"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Vymazať priestor"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Nastavenia"</string>
+ <string name="close" msgid="5214897374055647996">"Zavrieť"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-sl/strings.xml b/packages/PackageInstaller/res/values-sl/strings.xml
index a303759..eae7c272 100644
--- a/packages/PackageInstaller/res/values-sl/strings.xml
+++ b/packages/PackageInstaller/res/values-sl/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Obdrži <xliff:g id="SIZE">%1$s</xliff:g> podatkov aplikacije."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Ali želite izbrisati to aplikacijo?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Ali želite odmestiti to aplikacijo? Izbrisana bo tudi klonirana aplikacija <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Ali želite to aplikacijo odmestiti iz zasebnega prostora?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Odstranitve v teku"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspele odstranitve"</string>
<string name="uninstalling" msgid="8709566347688966845">"Odstranjevanje …"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Želite obnoviti aplikacijo <xliff:g id="APPNAME">%1$s</xliff:g> iz aplikacije <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Aplikacija bo začela prenos v ozadju"</string>
<string name="restore" msgid="8460854736328970444">"Obnovi"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Nimate vzpostavljene povezave"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Ta aplikacija bo samodejno obnovljena, ko boste povezani v internet."</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Prišlo je do težave"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Pri obnavljanju te aplikacije je prišlo do težave."</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Ni dovolj prostora za shranjevanje"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Če želite obnoviti to aplikacijo, sprostite prostor v tej napravi. Potrebni prostor za shranjevanje: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Potrebno je ukrepanje"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Če želite obnoviti to aplikacijo, uporabite postopek, opisan v nadaljevanju."</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Namestitveni program <xliff:g id="INSTALLERNAME">%1$s</xliff:g> je onemogočen"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Namestitveni program <xliff:g id="INSTALLERNAME">%1$s</xliff:g> je odmeščen"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Če želite obnoviti to aplikacijo, morate namestiti <xliff:g id="INSTALLERNAME">%1$s</xliff:g>."</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Nadaljuj"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Počisti shrambo"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Nastavitve"</string>
+ <string name="close" msgid="5214897374055647996">"Zapri"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-sq/strings.xml b/packages/PackageInstaller/res/values-sq/strings.xml
index 7f68c8b..b1f2775 100644
--- a/packages/PackageInstaller/res/values-sq/strings.xml
+++ b/packages/PackageInstaller/res/values-sq/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Mbaj <xliff:g id="SIZE">%1$s</xliff:g> nga të dhënat e aplikacionit."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Dëshiron ta fshish këtë aplikacion?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Dëshiron ta çinstalosh këtë aplikacion? Kloni i <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> do të fshihet gjithashtu."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Dëshiron ta çinstalosh këtë aplikacion nga hapësira jote private?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Çinstalimet në ekzekutim"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Çinstalimet e dështuara"</string>
<string name="uninstalling" msgid="8709566347688966845">"Po çinstalohet…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Të restaurohet <xliff:g id="APPNAME">%1$s</xliff:g> nga <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Ky aplikacion do të fillojë të shkarkohet në sfond"</string>
<string name="restore" msgid="8460854736328970444">"Restauro"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Je offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Ky aplikacion do të restaurohet automatikisht kur të lidhesh me internetin"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Ndodhi një gabim"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Pati një problem gjatë përpjekjes për të restauruar këtë aplikacion"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Hapësira ruajtëse e pamjaftueshme"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Për ta restauruar këtë aplikacion, mund të lirosh hapësirë në këtë pajisje. Hapësira ruajtëse e kërkuar: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Kërkohet veprim"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Ndiq hapat e radhës për të restauruar këtë aplikacion"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> është çaktivizuar"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> është çinstaluar"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Për ta restauruar këtë aplikacion, do të të duhet të instalosh <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Vazhdo"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Pastro hapësirën ruajtëse"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Cilësimet"</string>
+ <string name="close" msgid="5214897374055647996">"Mbyll"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-sr/strings.xml b/packages/PackageInstaller/res/values-sr/strings.xml
index 196e784..3c51f34 100644
--- a/packages/PackageInstaller/res/values-sr/strings.xml
+++ b/packages/PackageInstaller/res/values-sr/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Задржи <xliff:g id="SIZE">%1$s</xliff:g> података апликације."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Желите да избришете ову апликацију?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Желите да деинсталирате ову апликацију? Клон апликације <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ће такође бити избрисан."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Желите да деинсталирате ову апликацију из приватног простора?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активна деинсталирања"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Неуспела деинсталирања"</string>
<string name="uninstalling" msgid="8709566347688966845">"Деинсталира се…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Желите да вратите <xliff:g id="APPNAME">%1$s</xliff:g> из <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Апликација ће започети преузимање у позадини."</string>
<string name="restore" msgid="8460854736328970444">"Врати"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Офлајн сте"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Ова апликација ће бити враћена аутоматски када се повежете на интернет"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Дошло је до грешке"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Дошло је до проблема при враћању ове апликације"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Нема довољно меморијског простора"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Можете да ослободите простор на овом уређају да бисте вратили ову апликацију. Потребан меморијски простор: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Треба да реагујете"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Пратите даља упутства да бисте вратили ову апликацију"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Онемогућен <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Деинсталиран <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Да бисте вратили ову апликацију, треба да инсталирате <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Настави"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Обриши меморијски простор"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Подешавања"</string>
+ <string name="close" msgid="5214897374055647996">"Затвори"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-sv/strings.xml b/packages/PackageInstaller/res/values-sv/strings.xml
index 0ce696e..3fd403c 100644
--- a/packages/PackageInstaller/res/values-sv/strings.xml
+++ b/packages/PackageInstaller/res/values-sv/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Behåll <xliff:g id="SIZE">%1$s</xliff:g> appdata."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Vill du radera den här appen?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Vill du avinstallera den här appen? Klonen av <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> raderas också."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Vill du avinstallera appen från ditt privata rum?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Avinstallationer som pågår"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Avinstallationer som misslyckats"</string>
<string name="uninstalling" msgid="8709566347688966845">"Avinstallerar …"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Vill du återställa <xliff:g id="APPNAME">%1$s</xliff:g> från <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Appen börjar ladda ned i bakgrunden"</string>
<string name="restore" msgid="8460854736328970444">"Återställ"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Du är offline"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Appen återställs automatiskt när du är ansluten till internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Något gick fel"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Det gick inte att återställa appen"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Inte tillräckligt med lagringsutrymme"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Frigör lagringsutrymme på enheten om du vill återställa appen. Tillgängligt lagringsutrymme som krävs: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Åtgärd krävs"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Följ anvisningarna för att återställa appen"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> är inaktiverad"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> är avinstallerad"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Du måste installera <xliff:g id="INSTALLERNAME">%1$s</xliff:g> om du vill återställa appen"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Fortsätt"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Rensa lagringsutrymme"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Inställningar"</string>
+ <string name="close" msgid="5214897374055647996">"Stäng"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-sw/strings.xml b/packages/PackageInstaller/res/values-sw/strings.xml
index 0a34d81..58d3277 100644
--- a/packages/PackageInstaller/res/values-sw/strings.xml
+++ b/packages/PackageInstaller/res/values-sw/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Dumisha <xliff:g id="SIZE">%1$s</xliff:g> ya data ya programu."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Ungependa kufuta programu hii?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Ungependa kuondoa programu hii? Nakala ya <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> pia itafutwa."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Je, ungependa kuondoa programu hii kwenye nafasi yako ya faragha?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Programu zinazoondolewa"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mara ambazo programu haikuondolewa"</string>
<string name="uninstalling" msgid="8709566347688966845">"Inaondoa…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Je, ungependa kurejesha <xliff:g id="APPNAME">%1$s</xliff:g> kutoka kwenye <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Itaanza kupakua programu hii chinichini"</string>
<string name="restore" msgid="8460854736328970444">"Rejesha"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Uko nje ya mtandao"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Programu hii itarejeshwa kiotomatiki utakapounganisha kwenye intaneti"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Hitilafu fulani imetokea"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Hitilafu fulani imetokea wakati wa kujaribu kurejesha programu hii"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Nafasi ya hifadhi haitoshi"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Ili urejeshe programu hii, unaweza kufuta faili ili upate nafasi kwenye kifaa hiki. Nafasi ya hifadhi inayohitajika: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Unahitaji kuchukua hatua"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Fuata hatua zinazofuata ili urejeshe programu hii"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> imezimwa"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> imeondolewa"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Ili urejeshe programu hii, utahitaji kusakinisha <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Endelea"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Futa data kwenye hifadhi"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Mipangilio"</string>
+ <string name="close" msgid="5214897374055647996">"Funga"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ta/strings.xml b/packages/PackageInstaller/res/values-ta/strings.xml
index 322ce5c..4ae9e91 100644
--- a/packages/PackageInstaller/res/values-ta/strings.xml
+++ b/packages/PackageInstaller/res/values-ta/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ஆப்ஸ் தரவை வைத்திரு."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"இந்த ஆப்ஸை நீக்க வேண்டுமா?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"இந்த ஆப்ஸை நிறுவல் நீக்க வேண்டுமா? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> குளோனும் நீக்கப்படும்."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"உங்கள் தனிப்பட்ட சேமிப்பிடத்திலிருந்து இந்த ஆப்ஸை நிறுவல் நீக்க வேண்டுமா?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"இயக்கத்திலுள்ள நிறுவல் நீக்கங்கள்"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"தோல்வியுற்ற நிறுவல் நீக்கங்கள்"</string>
<string name="uninstalling" msgid="8709566347688966845">"நிறுவல் நீக்குகிறது…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g>ல் இருந்து <xliff:g id="APPNAME">%1$s</xliff:g> ஐ மீட்டெடுக்கவா?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"இந்த ஆப்ஸ் பின்னணியில் பதிவிறக்கத் தொடங்கும்"</string>
<string name="restore" msgid="8460854736328970444">"மீட்டெடு"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"ஆஃப்லைனில் உள்ளீர்கள்"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"நீங்கள் இணையத்துடன் இணைக்கப்பட்டிருக்கும்போது இந்த ஆப்ஸ் தானாக மீட்டெடுக்கப்படும்"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"ஏதோ தவறாகிவிட்டது"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"இந்த ஆப்ஸை மீட்டெடுக்க முயலும்போது சிக்கல் ஏற்பட்டது"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"போதுமான சேமிப்பகம் இல்லை"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"இந்த ஆப்ஸை மீட்டெடுக்க, இந்தச் சாதனத்தில் உள்ள சேமிப்பகத்தை காலியாக்கலாம். தேவைப்படும் சேமிப்பகம்: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"நடவடிக்கை தேவை"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"இந்த ஆப்ஸை மீட்டெடுக்க அடுத்த வழிமுறைகளைப் பின்பற்றுங்கள்"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> முடக்கப்பட்டுள்ளது"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> நிறுவல் நீக்கப்பட்டது"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"இந்த ஆப்ஸை மீட்டெடுக்க <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ஐ நிறுவ வேண்டும்"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"தொடர்க"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"சேமிப்பகத்தைக் காலியாக்கு"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"அமைப்புகள்"</string>
+ <string name="close" msgid="5214897374055647996">"மூடுக"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-te/strings.xml b/packages/PackageInstaller/res/values-te/strings.xml
index 9abc87e..45f895b 100644
--- a/packages/PackageInstaller/res/values-te/strings.xml
+++ b/packages/PackageInstaller/res/values-te/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> యాప్ డేటాను ఉంచండి."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"మీరు ఈ యాప్ను తొలగించాలనుకుంటున్నారా?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"మీరు ఈ యాప్ను అన్ఇన్స్టాల్ చేయాలనుకుంటున్నారా? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> క్లోన్ కూడా తొలగించబడుతుంది."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"మీరు మీ ప్రైవేట్ స్పేస్ నుండి ఈ యాప్ను అన్ఇన్స్టాల్ చేయాలనుకుంటున్నారా?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"అన్ఇన్స్టాల్ చేయబడుతున్నవి"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"విఫలమైన అన్ఇన్స్టాల్లు"</string>
<string name="uninstalling" msgid="8709566347688966845">"అన్ఇన్స్టాల్ చేస్తోంది…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> నుండి <xliff:g id="APPNAME">%1$s</xliff:g>ను రీస్టోర్ చేయాలా?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"ఈ యాప్ బ్యాక్గ్రౌండ్లో డౌన్లోడ్ అవ్వడం ప్రారంభమవుతుంది"</string>
<string name="restore" msgid="8460854736328970444">"రీస్టోర్ చేయండి"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"మీరు ఆఫ్లైన్లో ఉన్నారు"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"మీరు ఇంటర్నెట్కు కనెక్ట్ అయ్యి ఉన్నప్పుడు ఈ యాప్ ఆటోమేటిక్గా రీస్టోర్ చేయబడుతుంది"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"ఏదో పొరపాటు జరిగింది"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"ఈ యాప్ను రీస్టోర్ చేయడానికి ట్రై చేస్తున్నపుడు సమస్య ఏర్పడింది"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"తగినంత స్టోరేజ్ స్పేస్ లేదు"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"ఈ యాప్ను రీస్టోర్ చేయడానికి, మీరు ఈ పరికరంలో స్పేస్ను ఖాళీ చేయవచ్చు. స్టోరేజ్ అవసరం: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"మీరు పూర్తి చేయాల్సిన చర్య"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ఈ యాప్ను రీస్టోర్ చేయడానికి తదుపరి దశలను ఫాలో అవ్వండి"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> డిజేబుల్ చేయబడింది"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> అన్ఇన్స్టాల్ చేయబడింది"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"ఈ యాప్ను రీస్టోర్ చేయడానికి, మీరు <xliff:g id="INSTALLERNAME">%1$s</xliff:g>ను ఇన్స్టాల్ చేయాలి"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"కొనసాగించండి"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"స్టోరేజ్ను క్లియర్ చేయండి"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"సెట్టింగ్లు"</string>
+ <string name="close" msgid="5214897374055647996">"మూసివేయండి"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-th/strings.xml b/packages/PackageInstaller/res/values-th/strings.xml
index b1faa1c..7cdb3b2 100644
--- a/packages/PackageInstaller/res/values-th/strings.xml
+++ b/packages/PackageInstaller/res/values-th/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"เก็บข้อมูลแอปไว้ <xliff:g id="SIZE">%1$s</xliff:g>"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"ต้องการลบแอปนี้ไหม"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"ต้องการถอนการติดตั้งแอปนี้ไหม ระบบจะลบโคลนของ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ด้วย"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"คุณต้องการถอนการติดตั้งแอปนี้จากพื้นที่ส่วนตัวไหม"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"กำลังเรียกใช้การถอนการติดตั้ง"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ถอนการติดตั้งไม่สำเร็จ"</string>
<string name="uninstalling" msgid="8709566347688966845">"กำลังถอนการติดตั้ง…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"กู้คืน <xliff:g id="APPNAME">%1$s</xliff:g> จาก <xliff:g id="INSTALLERNAME">%1$s</xliff:g> ใช่ไหม"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"แอปนี้จะเริ่มดาวน์โหลดในเบื้องหลัง"</string>
<string name="restore" msgid="8460854736328970444">"กู้คืน"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"คุณออฟไลน์อยู่"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"แอปนี้จะคืนค่าโดยอัตโนมัติเมื่อคุณเชื่อมต่อกับอินเทอร์เน็ต"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"เกิดข้อผิดพลาด"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"เกิดปัญหาขณะพยายามคืนค่าแอปนี้"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"พื้นที่เก็บข้อมูลไม่เพียงพอ"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"หากต้องการคืนค่าแอปนี้ คุณสามารถเพิ่มพื้นที่ว่างในอุปกรณ์ โดยจะต้องใช้พื้นที่เก็บข้อมูล <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"ขอให้ดำเนินการ"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"ทำตามขั้นตอนถัดไปเพื่อคืนค่าแอปนี้"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ถูกปิดใช้"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ถูกถอนการติดตั้ง"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"หากต้องการคืนค่าแอปนี้ คุณจะต้องติดตั้ง <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"ต่อไป"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"ล้างพื้นที่เก็บข้อมูล"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"การตั้งค่า"</string>
+ <string name="close" msgid="5214897374055647996">"ปิด"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-tl/strings.xml b/packages/PackageInstaller/res/values-tl/strings.xml
index 8e6e2517..f084030 100644
--- a/packages/PackageInstaller/res/values-tl/strings.xml
+++ b/packages/PackageInstaller/res/values-tl/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Panatilihin ang <xliff:g id="SIZE">%1$s</xliff:g> ng data ng app."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Gusto mo bang i-delete ang app na ito?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Gusto mo bang i-uninstall ang app na ito? Made-delete din ang clone ng <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Gusto mo bang i-uninstall ang app na ito sa iyong pribadong space?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Mga kasalukuyang pag-uninstall"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mga hindi na-uninstall"</string>
<string name="uninstalling" msgid="8709566347688966845">"Ina-uninstall…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"I-restore ang <xliff:g id="APPNAME">%1$s</xliff:g> mula sa <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Magsisimulang mag-download ang app na ito sa background"</string>
<string name="restore" msgid="8460854736328970444">"I-restore"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Offline ka"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Awtomatikong mare-restore ang app na ito kapag nakakonekta ka sa internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Nagkaproblema"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Nagkaproblema sa pagsubok na i-restore ang app na ito"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Hindi sapat ang storage"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Para i-restore ang app na ito, puwede kang magbakante ng espasyo sa device na ito. Kinakailangang storage: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Nangangailangan ng pagkilos"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Sundin ang mga susunod na hakbang para i-restore ang app na ito"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"Naka-disable ang <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Na-uninstall ang <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Para i-restore ang app na ito, kailangan mong i-install ang <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Magpatuloy"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"I-clear ang storage"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Mga Setting"</string>
+ <string name="close" msgid="5214897374055647996">"Isara"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-tr/strings.xml b/packages/PackageInstaller/res/values-tr/strings.xml
index dc84030..c322991 100644
--- a/packages/PackageInstaller/res/values-tr/strings.xml
+++ b/packages/PackageInstaller/res/values-tr/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Uygulama verilerinin <xliff:g id="SIZE">%1$s</xliff:g> kadarını sakla."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Bu uygulamayı silmek istiyor musunuz?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Bu uygulamanın yüklemesini kaldırmak istiyor musunuz? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> klonu da silinecektir."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Bu uygulamanın gizli alanınızdaki yüklemesini kaldırmak istiyor musunuz?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Devam eden yükleme kaldırma işlemleri"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Başarısız yükleme kaldırma işlemleri"</string>
<string name="uninstalling" msgid="8709566347688966845">"Yükleme kaldırılıyor…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> uygulaması <xliff:g id="INSTALLERNAME">%1$s</xliff:g> üzerinden geri yüklensin mi?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Bu uygulama arka planda indirilmeye başlanacak"</string>
<string name="restore" msgid="8460854736328970444">"Geri yükle"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"İnternete bağlı değilsiniz"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Bu uygulama, internete bağlandığınızda otomatik olarak geri yüklenecek"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Bir hata oluştu"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Bu uygulamayı geri yüklemeye çalışırken bir sorun oluştu"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Yeterli depolama alanı yok"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Bu uygulamayı geri yüklemek için bu cihazda yer açabilirsiniz. Bunun için <xliff:g id="BYTES">%1$s</xliff:g> depolama alanı gerekiyor"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"İşlem gerekli"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Bu uygulamayı geri yüklemek için sonraki adımları uygulayın"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> devre dışı bırakıldı"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> yüklemesi kaldırılmış"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Bu uygulamayı geri yüklemek için <xliff:g id="INSTALLERNAME">%1$s</xliff:g> yükleyicisini yüklemeniz gerekiyor"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Devam"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Depolama alanını temizle"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Ayarlar"</string>
+ <string name="close" msgid="5214897374055647996">"Kapat"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-uk/strings.xml b/packages/PackageInstaller/res/values-uk/strings.xml
index 3d7083f..657eb39 100644
--- a/packages/PackageInstaller/res/values-uk/strings.xml
+++ b/packages/PackageInstaller/res/values-uk/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Залишити <xliff:g id="SIZE">%1$s</xliff:g> даних додатка."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Видалити цей додаток?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Видалити цей додаток? Копію <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> також буде видалено."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Видалити цей додаток із вашого приватного простору?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активні видалення"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Невиконані видалення"</string>
<string name="uninstalling" msgid="8709566347688966845">"Видалення..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Відновити додаток <xliff:g id="APPNAME">%1$s</xliff:g> з <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Цей додаток почне завантажуватись у фоновому режимі"</string>
<string name="restore" msgid="8460854736328970444">"Відновити"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Пристрій не в мережі"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Додаток автоматично відновиться, коли пристрій підключиться до Інтернету"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Помилка"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Під час спроби відновити цей додаток сталася помилка"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Недостатньо пам’яті"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Щоб відновити цей додаток, ви можете звільнити місце на пристрої. Потрібний обсяг пам’яті: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Потрібна дія"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Виконайте подальші вказівки, щоб відновити цей додаток"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> вимкнено"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> видалено"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Щоб відновити цей додаток, установіть <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Продовжити"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Очистити пам’ять"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Налаштування"</string>
+ <string name="close" msgid="5214897374055647996">"Закрити"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-ur/strings.xml b/packages/PackageInstaller/res/values-ur/strings.xml
index 08a8315..f496e10 100644
--- a/packages/PackageInstaller/res/values-ur/strings.xml
+++ b/packages/PackageInstaller/res/values-ur/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"ایپ ڈیٹا کا <xliff:g id="SIZE">%1$s</xliff:g> رکھیں۔"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"کیا آپ یہ ایپ حذف کرنا چاہتے ہیں؟"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"کیا آپ یہ ایپ اَن انسٹال کرنا چاہتے ہیں؟ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> کلون کو بھی حذف کر دیا جائے گا۔"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"کیا آپ اس ایپ کو اپنی نجی جگہ سے اَن انسٹال کرنا چاہتے ہیں؟"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"چل رہے اَن انسٹالز"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ناکام اَن انسٹالز"</string>
<string name="uninstalling" msgid="8709566347688966845">"اَن انسٹال ہو رہا ہے…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> کو <xliff:g id="INSTALLERNAME">%1$s</xliff:g> سے بحال کریں"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"یہ ایپ پس منظر میں ڈاؤن لوڈ ہونا شروع ہو جائے گی"</string>
<string name="restore" msgid="8460854736328970444">"بحال کریں"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"آپ آف لائن ہیں"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"جب آپ انٹرنیٹ سے منسلک ہوں گے تو یہ ایپ خودکار طور پر بحال ہو جائے گی"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"کچھ غلط ہو گیا"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"اس ایپ کو بحال کرنے کی کوشش میں ایک مسئلہ تھا"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"کافی اسٹوریج نہیں ہے"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"اس ایپ کو بحال کرنے کے لیے، آپ اس آلہ پر اسپیس خالی کر سکتے ہیں۔ درکار اسٹوریج: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"کارروائی درکار ہے"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"اس ایپ کو بحال کرنے کے لیے اگلے مراحل کی پیروی کریں"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> غیر فعال ہے"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> اَن انسٹال ہو گیا ہے"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"اس ایپ کو بحال کرنے کے لیے، آپ کو <xliff:g id="INSTALLERNAME">%1$s</xliff:g> انسٹال کرنا ہوگا"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"جاری رکھیں"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"اسٹوریج صاف کریں"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"ترتیبات"</string>
+ <string name="close" msgid="5214897374055647996">"بند کریں"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-uz/strings.xml b/packages/PackageInstaller/res/values-uz/strings.xml
index 894e867..a1f116d 100644
--- a/packages/PackageInstaller/res/values-uz/strings.xml
+++ b/packages/PackageInstaller/res/values-uz/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> hajmdagi ilova axborotlari saqlab qolinsin"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Bu ilova oʻchirilsinmi?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Bu ilovani oʻchirib tashlamoqchimisiz? <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> nusxasi ham oʻchib ketadi."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Bu ilovani maxfiy joydan olib tashlamoqchimisiz?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Davom etayotganlar"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Amalga oshmaganlar"</string>
<string name="uninstalling" msgid="8709566347688966845">"O‘chirilmoqda…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"<xliff:g id="APPNAME">%1$s</xliff:g> ilovasi <xliff:g id="INSTALLERNAME">%1$s</xliff:g> orqali tiklansinmi?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Bu ilova orqa fonda yuklab olinishi boshlanadi"</string>
<string name="restore" msgid="8460854736328970444">"Tiklash"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Siz internetga ulanmagansiz"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Internetga ulanganingizda bu ilova avtomatik ravishda tiklanadi"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Nimadir xato ketdi"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Bu ilovani tiklashda muammo chiqdi"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Xotirada yetarli boʻsh joy yoʻq"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Bu ilovani tiklash uchun ushbu qurilmada joy ochishingiz mumkin. Kerakli joy: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Amal bajarish zarur"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Bu ilovani tiklash uchun keyingi qadamlarga rioya qiling"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> faolsizlantirilgan"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> oʻchirib tashlandi"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Bu ilovani tiklash uchun <xliff:g id="INSTALLERNAME">%1$s</xliff:g> oʻrnatilishi kerak"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Davom etish"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Xotirani tozalash"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Sozlamalar"</string>
+ <string name="close" msgid="5214897374055647996">"Yopish"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-vi/strings.xml b/packages/PackageInstaller/res/values-vi/strings.xml
index 14959da..39d6725 100644
--- a/packages/PackageInstaller/res/values-vi/strings.xml
+++ b/packages/PackageInstaller/res/values-vi/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Giữ lại <xliff:g id="SIZE">%1$s</xliff:g> dữ liệu ứng dụng."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Bạn có muốn xoá ứng dụng này không?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Bạn có muốn gỡ cài đặt ứng dụng này không? Bản sao của <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> cũng sẽ bị xoá."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Bạn có muốn gỡ cài đặt ứng dụng này khỏi không gian riêng tư của mình không?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Các quá trình gỡ cài đặt đang chạy"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Gỡ cài đặt không thành công"</string>
<string name="uninstalling" msgid="8709566347688966845">"Đang gỡ cài đặt..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Khôi phục <xliff:g id="APPNAME">%1$s</xliff:g> từ <xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Ứng dụng này sẽ bắt đầu tải xuống ở chế độ nền"</string>
<string name="restore" msgid="8460854736328970444">"Khôi phục"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Không có kết nối mạng"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Ứng dụng này sẽ tự động khôi phục khi bạn kết nối với Internet"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Đã xảy ra lỗi"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Đã xảy ra vấn đề khi tìm cách khôi phục ứng dụng này"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Không đủ dung lượng lưu trữ"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Để khôi phục ứng dụng này, bạn có thể giải phóng dung lượng trên thiết bị này. Dung lượng lưu trữ cần thiết: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Việc cần làm"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Hãy làm theo các bước tiếp theo để khôi phục ứng dụng này"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> đã bị tắt"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> đã bị gỡ cài đặt"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Để khôi phục ứng dụng này, bạn sẽ phải cài đặt <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Tiếp tục"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Xoá bộ nhớ"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Cài đặt"</string>
+ <string name="close" msgid="5214897374055647996">"Đóng"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-zh-rCN/strings.xml b/packages/PackageInstaller/res/values-zh-rCN/strings.xml
index ae12559..07cadbf 100644
--- a/packages/PackageInstaller/res/values-zh-rCN/strings.xml
+++ b/packages/PackageInstaller/res/values-zh-rCN/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"保留 <xliff:g id="SIZE">%1$s</xliff:g> 的应用数据。"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"要删除此应用吗?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"要卸载此应用吗?<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> 克隆应用也会被删除。"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"要从私密空间卸载此应用吗?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"正在进行卸载操作"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"卸载操作失败"</string>
<string name="uninstalling" msgid="8709566347688966845">"正在卸载…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"要从 <xliff:g id="INSTALLERNAME">%1$s</xliff:g> 中恢复 <xliff:g id="APPNAME">%1$s</xliff:g> 吗?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"系统将开始在后台下载此应用"</string>
<string name="restore" msgid="8460854736328970444">"恢复"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"您没有联网"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"当您联网后,此应用将自动恢复"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"出了点问题"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"尝试恢复此应用时出现问题"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"存储空间不足"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"若要恢复此应用,您需要释放此设备上的空间。所需的存储空间为:<xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"请采取行动"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"请按照后续步骤恢复此应用"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> 已停用"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> 已卸载"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"若要恢复此应用,您需要安装 <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"继续"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"清空存储空间"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"设置"</string>
+ <string name="close" msgid="5214897374055647996">"关闭"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-zh-rHK/strings.xml b/packages/PackageInstaller/res/values-zh-rHK/strings.xml
index 5a79817..3e13aff 100644
--- a/packages/PackageInstaller/res/values-zh-rHK/strings.xml
+++ b/packages/PackageInstaller/res/values-zh-rHK/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"保留應用程式資料 (<xliff:g id="SIZE">%1$s</xliff:g>)。"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"要刪除此應用程式嗎?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"要解除安裝此應用程式嗎?「<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>」複製本亦將被刪除。"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"要從私人空間解除安裝此應用程式嗎?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"正在執行的解除安裝操作"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"失敗的解除安裝操作"</string>
<string name="uninstalling" msgid="8709566347688966845">"正在解除安裝…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"要從「<xliff:g id="INSTALLERNAME">%1$s</xliff:g>」還原「<xliff:g id="APPNAME">%1$s</xliff:g>」嗎?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"此應用程式將開始在背景下載"</string>
<string name="restore" msgid="8460854736328970444">"還原"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"你已離線"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"連接互聯網後,系統就會自動還原此應用程式"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"發生問題"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"嘗試還原此應用程式時發生問題"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"儲存空間不足"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"如要還原此應用程式,請騰出此裝置的儲存空間。需要的儲存空間大小:<xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"請即行動"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"按照後續步驟還原此應用程式"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"已停用 <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"已解除安裝 <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"如要還原此應用程式,你必須安裝 <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"繼續"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"清除儲存空間"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"設定"</string>
+ <string name="close" msgid="5214897374055647996">"關閉"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-zh-rTW/strings.xml b/packages/PackageInstaller/res/values-zh-rTW/strings.xml
index 873392b..f457462 100644
--- a/packages/PackageInstaller/res/values-zh-rTW/strings.xml
+++ b/packages/PackageInstaller/res/values-zh-rTW/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"保留 <xliff:g id="SIZE">%1$s</xliff:g> 的應用程式資料。"</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"要刪除這個應用程式嗎?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"要解除安裝這個應用程式嗎?系統也會一併刪除「<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>」副本。"</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"想要從私人空間解除安裝這個應用程式嗎?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"執行中的解除安裝作業"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"失敗的解除安裝作業"</string>
<string name="uninstalling" msgid="8709566347688966845">"解除安裝中…"</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"要從「<xliff:g id="INSTALLERNAME">%1$s</xliff:g>」還原「<xliff:g id="APPNAME">%1$s</xliff:g>」嗎?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"系統將開始在背景下載這個應用程式"</string>
<string name="restore" msgid="8460854736328970444">"還原"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"裝置目前離線"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"連上網際網路後,系統就會自動還原這個應用程式"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"發生錯誤"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"嘗試還原這個應用程式時發生問題"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"儲存空間不足"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"如要還原這個應用程式,請釋出這部裝置的儲存空間。需要的儲存空間大小:<xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"敬請採取行動"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"請按照後續步驟還原這個應用程式"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"「<xliff:g id="INSTALLERNAME">%1$s</xliff:g>」已停用"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"「<xliff:g id="INSTALLERNAME">%1$s</xliff:g>」已解除安裝"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"如要還原這個應用程式,請安裝「<xliff:g id="INSTALLERNAME">%1$s</xliff:g>」"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"繼續"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"清除儲存空間"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"設定"</string>
+ <string name="close" msgid="5214897374055647996">"關閉"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-zu/strings.xml b/packages/PackageInstaller/res/values-zu/strings.xml
index 8ff1e38..1de22a4 100644
--- a/packages/PackageInstaller/res/values-zu/strings.xml
+++ b/packages/PackageInstaller/res/values-zu/strings.xml
@@ -66,6 +66,7 @@
<string name="uninstall_keep_data" msgid="7002379587465487550">"Gcina u-<xliff:g id="SIZE">%1$s</xliff:g> wedatha yohlelo lokusebenza."</string>
<string name="uninstall_application_text_current_user_clone_profile" msgid="835170400160011636">"Ingabe ufuna ukusula le app?"</string>
<string name="uninstall_application_text_with_clone_instance" msgid="6944473334273349036">"Ufuna ukukhipha le app? I-clone ye-<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> nayo izosulwa."</string>
+ <string name="uninstall_application_text_current_user_private_profile" msgid="867004464945674674">"Ingabe ufuna ukukhipha le app endaweni yakho egodliwe?"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Ukukhishwa okuqhubekayo"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ukukhishwa okuhlulekile"</string>
<string name="uninstalling" msgid="8709566347688966845">"Iyakhipha..."</string>
@@ -106,4 +107,21 @@
<string name="unarchive_application_title" msgid="7958278328280721421">"Buyisela i-<xliff:g id="APPNAME">%1$s</xliff:g> ukusuka ku-<xliff:g id="INSTALLERNAME">%1$s</xliff:g>?"</string>
<string name="unarchive_body_text" msgid="8244155079861708964">"Le app izoqala ukudawuniloda ingemuva"</string>
<string name="restore" msgid="8460854736328970444">"Buyisela"</string>
+ <string name="unarchive_error_offline_title" msgid="4021785324565678605">"Awuxhunyiwe ku-inthanethi"</string>
+ <string name="unarchive_error_offline_body" msgid="255717000519772755">"Le app izobuyiswa ngokuzenzakalelayo uma usuxhume ku-inthanethi"</string>
+ <string name="unarchive_error_generic_title" msgid="7123457671482449992">"Kukhona okungahambanga kahle"</string>
+ <string name="unarchive_error_generic_body" msgid="4486803312463813079">"Kube nenkinga ekuzameni ukubuyisa le app"</string>
+ <string name="unarchive_error_storage_title" msgid="5080723357273852630">"Indawo yokubeka ayanele"</string>
+ <string name="unarchive_error_storage_body" msgid="6879544407568780524">"Ukuze ubuyise le app, ungavula isikhala kule divayisi. Isitoreji esidingekayo: <xliff:g id="BYTES">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_title" msgid="4971245740162604619">"Kudingeka isenzo"</string>
+ <string name="unarchive_action_required_body" msgid="1679431572983989231">"Landela izinyathelo ezilandelayo ukuze ubuyise le app"</string>
+ <string name="unarchive_error_installer_disabled_title" msgid="4815715617014985605">"<xliff:g id="INSTALLERNAME">%1$s</xliff:g> ivimbelwe"</string>
+ <!-- no translation found for unarchive_error_installer_disabled_body (4820821285907011729) -->
+ <skip />
+ <string name="unarchive_error_installer_uninstalled_title" msgid="3748354109176326489">"Okuthi <xliff:g id="INSTALLERNAME">%1$s</xliff:g> kukhishiwe"</string>
+ <string name="unarchive_error_installer_uninstalled_body" msgid="944733542444183204">"Ukuze ubuyise le app, kuzodingeka ufake okuthi <xliff:g id="INSTALLERNAME">%1$s</xliff:g>"</string>
+ <string name="unarchive_action_required_continue" msgid="5711202111224184257">"Qhubeka"</string>
+ <string name="unarchive_clear_storage_button" msgid="1549537154535608744">"Sula isitoreji"</string>
+ <string name="unarchive_settings_button" msgid="3504171760009177425">"Amasethingi"</string>
+ <string name="close" msgid="5214897374055647996">"Vala"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 3a25838..9ae4d0c 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Gekoppel deur ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Gekoppel deur eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV-verstek"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-uitset"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Interne luidsprekers"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Kan nie koppel nie. Skakel toestel af en weer aan"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Bedrade oudiotoestel"</string>
<string name="help_label" msgid="3528360748637781274">"Hulp en terugvoer"</string>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 6dd70fa..6c31c76 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"متّصل من خلال ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"متّصل من خلال eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"الجهاز التلقائي لإخراج صوت التلفزيون"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"إخراج الصوت من خلال HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"مكبّرات الصوت الداخلية"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"حدثت مشكلة أثناء الاتصال. يُرجى إيقاف الجهاز ثم إعادة تشغيله."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"جهاز سماعي سلكي"</string>
<string name="help_label" msgid="3528360748637781274">"المساعدة والملاحظات"</string>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index c8eeee3..8b06f5d 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARCৰ জৰিয়তে সংযুক্ত"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARCৰ জৰিয়তে সংযুক্ত"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"টিভি ডিফ’ল্ট"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI আউটপুট"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"অভ্যন্তৰীণ স্পীকাৰ"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"সংযোগ হোৱাত সমস্যা হৈছে। ডিভাইচটো অফ কৰি পুনৰ অন কৰক"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"তাঁৰযুক্ত অডিঅ’ ডিভাইচ"</string>
<string name="help_label" msgid="3528360748637781274">"সহায় আৰু মতামত"</string>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index 34f506e..a36ab27 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Chrome-da Tətbiqin İşləmə Müddəti vasitəsilə qoşulub"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC vasitəsilə qoşulub"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV defoltu"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI çıxışı"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Daxili dinamiklər"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Qoşulmaqla bağlı problem. Cihazı deaktiv edin, sonra yenidən aktiv edin"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Simli audio cihaz"</string>
<string name="help_label" msgid="3528360748637781274">"Yardım və rəy"</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index ee75df2..83f7c05 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Povezano preko ARC-a"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Povezano preko eARC-a"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Podrazumevana vrednost za TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI izlaz"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Unutrašnji zvučnici"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem pri povezivanju. Isključite uređaj, pa ga ponovo uključite"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audio uređaj"</string>
<string name="help_label" msgid="3528360748637781274">"Pomoć i povratne informacije"</string>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index c17d7236..7e8cd8b 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Падключана праз ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Падключана праз eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Стандартны аўдыявыхад тэлевізара"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Выхад HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Унутраныя дынамікі"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Праблема з падключэннем. Выключыце і зноў уключыце прыладу"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Правадная аўдыяпрылада"</string>
<string name="help_label" msgid="3528360748637781274">"Даведка і водгукі"</string>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 222e758..d279349 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Свързано посредством ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Свързано посредством eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Стандартното за телевизора"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI изход"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Вградени високоговорители"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"При свързването възникна проблем. Изключете устройството и го включете отново"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Аудиоустройство с кабел"</string>
<string name="help_label" msgid="3528360748637781274">"Помощ и отзиви"</string>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index a7c95df..3ac3a3b 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC-এর মাধ্যমে কানেক্ট করা হয়েছে"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC-এর মাধ্যমে কানেক্ট করা হয়েছে"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"টিভির ডিফল্ট সেটিং"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI আউটপুট"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ইন্টার্নাল স্পিকার"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"কানেক্ট করতে সমস্যা হচ্ছে। ডিভাইস বন্ধ করে আবার চালু করুন"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ওয়্যার অডিও ডিভাইস"</string>
<string name="help_label" msgid="3528360748637781274">"সহায়তা ও মতামত"</string>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index 31ea4d4..f84ccb0 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Povezano je putem ARC-a"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Povezano je putem eARC-a"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Zadano za TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI izlaz"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Interni zvučnici"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Došlo je do problema prilikom povezivanja. Isključite, pa ponovo uključite uređaj"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audio uređaj"</string>
<string name="help_label" msgid="3528360748637781274">"Pomoć i povratne informacije"</string>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 1bb02c2..c205f74 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Connectat mitjançant ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Connectat mitjançant eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Televisor predeterminat"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Sortida HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Altaveus interns"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Hi ha hagut un problema amb la connexió. Apaga el dispositiu i torna\'l a encendre."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositiu d\'àudio amb cable"</string>
<string name="help_label" msgid="3528360748637781274">"Ajuda i suggeriments"</string>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 7ab6669..2a6a247 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Forbundet via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Forbundet via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Standardindstillinger for fjernsyn"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-udgang"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Interne højttalere"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Der kunne ikke oprettes forbindelse. Sluk og tænd enheden"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Lydenhed med ledning"</string>
<string name="help_label" msgid="3528360748637781274">"Hjælp og feedback"</string>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 29038bc..a5f089a 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Connected via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Connected via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV default"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI output"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Internal speakers"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
<string name="help_label" msgid="3528360748637781274">"Help and feedback"</string>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 29038bc..a5f089a 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Connected via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Connected via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV default"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI output"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Internal speakers"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
<string name="help_label" msgid="3528360748637781274">"Help and feedback"</string>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 29038bc..a5f089a 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Connected via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Connected via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV default"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI output"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Internal speakers"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
<string name="help_label" msgid="3528360748637781274">"Help and feedback"</string>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 82cd2bf..c07e1fd 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Conectado mediante ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Conectado mediante eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Predeterminada de la televisión"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Salida HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Altavoces internos"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"No se ha podido conectar; reinicia el dispositivo"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
<string name="help_label" msgid="3528360748637781274">"Ayuda y comentarios"</string>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index 35ae73e..ddc16b0 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Ühendatud ARC-i kaudu"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Ühendatud eARC-i kaudu"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Teleri vaikeväljund"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-väljund"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Sisemised kõlarid"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Probleem ühendamisel. Lülitage seade välja ja uuesti sisse"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Juhtmega heliseade"</string>
<string name="help_label" msgid="3528360748637781274">"Abi ja tagasiside"</string>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index 7ebad68..deb4bc6 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC bidez konektatuta"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC bidez konektatuta"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Telebistaren audio-erreproduzigailu lehenetsia"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI irteera"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Barneko bozgorailuak"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Arazo bat izan da konektatzean. Itzali gailua eta pitz ezazu berriro."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Audio-gailu kableduna"</string>
<string name="help_label" msgid="3528360748637781274">"Laguntza eta iritziak"</string>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 51fd626..d73571e 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"متصل ازطریق ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"متصل ازطریق eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"پیشفرض تلویزیون"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"خروجی HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"بلندگوهای داخلی"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"مشکل در اتصال. دستگاه را خاموش و دوباره روشن کنید"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"دستگاه صوتی سیمی"</string>
<string name="help_label" msgid="3528360748637781274">"راهنما و بازخورد"</string>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index f8c9054..3533d77 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Yhdistetty ARC:n kautta"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Yhdistetty eARC:n kautta"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV:n oletusasetus"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-toisto"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Sisäiset kaiuttimet"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Yhteysvirhe. Sammuta laite ja käynnistä se uudelleen."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Langallinen äänilaite"</string>
<string name="help_label" msgid="3528360748637781274">"Ohje ja palaute"</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index 2a7266d..06eeae0 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Connecté par ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Connecté par eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Sortie audio par défaut de la télévision"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Sortie HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Haut-parleurs internes"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problème de connexion. Éteingez et rallumez l\'appareil"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Appareil audio à câble"</string>
<string name="help_label" msgid="3528360748637781274">"Aide et commentaires"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 7b79386..f896d16 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Conectado mediante ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Conectado mediante eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Opción predeterminada da televisión"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Saída HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Altofalantes internos"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Produciuse un problema coa conexión. Apaga e acende o dispositivo."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
<string name="help_label" msgid="3528360748637781274">"Axuda e comentarios"</string>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index ec534da..50741dd 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC મારફતે કનેક્ટેડ"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC મારફતે કનેક્ટેડ"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ડિવાઇસનું ડિફૉલ્ટ ઑડિયો આઉટપુટ, ટીવી"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI આઉટપુટ"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"આંતરિક સ્પીકર"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"કનેક્ટ કરવામાં સમસ્યા આવી રહી છે. ડિવાઇસને બંધ કરીને ફરી ચાલુ કરો"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"વાયરવાળો ઑડિયો ડિવાઇસ"</string>
<string name="help_label" msgid="3528360748637781274">"સહાય અને પ્રતિસાદ"</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 092c729..0a29b6a 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"एचडीएमआई eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC से कनेक्ट किए गए डिवाइस"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC से कनेक्ट किए गए डिवाइस"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"टीवी की डिफ़ॉल्ट सेटिंग"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"एचडीएमआई आउटपुट"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"इंटरनल स्पीकर"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"कनेक्ट करने में समस्या हो रही है. डिवाइस को बंद करके चालू करें"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"वायर वाला ऑडियो डिवाइस"</string>
<string name="help_label" msgid="3528360748637781274">"सहायता और सुझाव"</string>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index eaebfc9..b206ac0 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Povezano putem ARC-a"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Povezano putem eARC-a"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Zadano za TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI izlaz"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Unutarnji zvučnici"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem s povezivanjem. Isključite i ponovo uključite uređaj"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audiouređaj"</string>
<string name="help_label" msgid="3528360748637781274">"Pomoć i povratne informacije"</string>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index d287ce3..68ff9ae 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Csatlakoztatva ARC-n keresztül"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Csatlakoztatva eARC-n keresztül"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Tévé alapértelmezett eszköze"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-kimenet"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Belső hangszórók"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Sikertelen csatlakozás. Kapcsolja ki az eszközt, majd kapcsolja be újra."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Vezetékes audioeszköz"</string>
<string name="help_label" msgid="3528360748637781274">"Súgó és visszajelzés"</string>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index 4d27099..f3061a7 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Միացված է ARC-ի միջոցով"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Միացված է eARC-ի միջոցով"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Հեռուստացույցի կանխադրված կարգավորումներ"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI ելք"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Ներքին բարձրախոսներ"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Կապի խնդիր կա: Սարքն անջատեք և նորից միացրեք:"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Լարով աուդիո սարք"</string>
<string name="help_label" msgid="3528360748637781274">"Օգնություն և հետադարձ կապ"</string>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index ce770af..2c16603 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Terhubung melalui ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Terhubung melalui eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV sebagai default"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Output HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Speaker internal"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ada masalah saat menghubungkan. Nonaktifkan perangkat & aktifkan kembali"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Perangkat audio berkabel"</string>
<string name="help_label" msgid="3528360748637781274">"Bantuan & masukan"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index fd68d14..5a82e16 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"eARC HDMI"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Connessione tramite ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Connessione tramite eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV predefinita"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Uscita HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Speaker interni"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problema di connessione. Spegni e riaccendi il dispositivo"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo audio cablato"</string>
<string name="help_label" msgid="3528360748637781274">"Guida e feedback"</string>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 58d4f0e..5d57843 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC 経由で接続済み"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC 経由で接続済み"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"テレビのデフォルト"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI 出力"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"内蔵スピーカー"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"接続エラーです。デバイスを OFF にしてから ON に戻してください"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線オーディオ デバイス"</string>
<string name="help_label" msgid="3528360748637781274">"ヘルプとフィードバック"</string>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index 0d31dde..a8fb9aa 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC арқылы жалғанған."</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC арқылы жалғанған."</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Теледидардың әдепкі шығысы"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI шығыс интерфейсі"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Ішкі динамиктер"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Байланыс орнату қатесі шығуып жатыр. Құрылғыны өшіріп, қайта қосыңыз."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Сымды аудио құрылғысы"</string>
<string name="help_label" msgid="3528360748637781274">"Анықтама және пікір"</string>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index 8ee7987..16f14ff 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"បានភ្ជាប់តាមរយៈ ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"បានភ្ជាប់តាមរយៈ eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"លំនាំដើមទូរទស្សន៍"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"ធាតុចេញ HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ឧបករណ៍បំពងសំឡេងខាងក្នុង"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"មានបញ្ហាក្នុងការភ្ជាប់។ បិទ រួចបើកឧបករណ៍វិញ"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ឧបករណ៍សំឡេងប្រើខ្សែ"</string>
<string name="help_label" msgid="3528360748637781274">"ជំនួយ និងមតិកែលម្អ"</string>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 73f7a20..640d4e9 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC ಮೂಲಕ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC ಮೂಲಕ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ಟಿವಿ ಡೀಫಾಲ್ಟ್"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI ಔಟ್ಪುಟ್"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ಆಂತರಿಕ ಸ್ಪೀಕರ್ಗಳು"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ಕನೆಕ್ಟ್ ಮಾಡುವಾಗ ಸಮಸ್ಯೆ ಎದುರಾಗಿದೆ ಸಾಧನವನ್ನು ಆಫ್ ಮಾಡಿ ಹಾಗೂ ನಂತರ ಪುನಃ ಆನ್ ಮಾಡಿ"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ವೈರ್ ಹೊಂದಿರುವ ಆಡಿಯೋ ಸಾಧನ"</string>
<string name="help_label" msgid="3528360748637781274">"ಸಹಾಯ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ"</string>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 418e47e..1bf0a51 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC를 통해 연결됨"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC를 통해 연결됨"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV 기본값"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI 출력"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"내부 스피커"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"연결 중에 문제가 발생했습니다. 기기를 껐다가 다시 켜 보세요."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"유선 오디오 기기"</string>
<string name="help_label" msgid="3528360748637781274">"고객센터"</string>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index 182e912..9565fb0 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC аркылуу туташты"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC аркылуу туташты"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Cыналгыдагы демейки түзмөк"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI аудио түзмөгү"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Ички динамиктер"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Туташууда маселе келип чыкты. Түзмөктү өчүрүп, кайра күйгүзүп көрүңүз"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Зымдуу аудио түзмөк"</string>
<string name="help_label" msgid="3528360748637781274">"Жардам/Пикир билдирүү"</string>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 5f8ba5f..23f249a0d 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ເຊື່ອມຕໍ່ຜ່ານ ARC ແລ້ວ"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"ເຊື່ອມຕໍ່ຜ່ານ eARC ແລ້ວ"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ຄ່າເລີ່ມຕົ້ນສຳລັບໂທລະທັດ"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"ເອົ້າພຸດ HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ລຳໂພງຂອງເຄື່ອງ"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ເກີດບັນຫາໃນການເຊື່ອມຕໍ່. ປິດອຸປະກອນແລ້ວເປີດກັບຄືນມາໃໝ່"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ອຸປະກອນສຽງແບບມີສາຍ"</string>
<string name="help_label" msgid="3528360748637781274">"ຊ່ວຍເຫຼືອ ແລະ ຕິຊົມ"</string>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 5294f4a..f529ca4 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI „eARC“"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Prisijungta per ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Prisijungta per „eARC“"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV numatytoji išvestis"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI išvestis"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Vidiniai garsiakalbiai"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Prisijungiant kilo problema. Išjunkite įrenginį ir vėl jį įjunkite"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Laidinis garso įrenginys"</string>
<string name="help_label" msgid="3528360748637781274">"Pagalba ir atsiliepimai"</string>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 7ea01e7..24be0aa 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Savienojums izveidots, izmantojot ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Savienojums izveidots, izmantojot eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Noklusējuma iestatījums televizorā"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI izvade"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Iekšējie skaļruņi"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Radās problēma ar savienojuma izveidi. Izslēdziet un atkal ieslēdziet ierīci."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Vadu audioierīce"</string>
<string name="help_label" msgid="3528360748637781274">"Palīdzība un atsauksmes"</string>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index d38f42c..030a438 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Поврзано преку ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Поврзано преку eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Стандарден излез на телевизор"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Излез за HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Внатрешни звучници"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Проблем со поврзување. Исклучете го уредот и повторно вклучете го"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Жичен аудиоуред"</string>
<string name="help_label" msgid="3528360748637781274">"Помош и повратни информации"</string>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index 8b6150d..9a01b53 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC വഴി കണക്റ്റ് ചെയ്തിരിക്കുന്നു"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC വഴി കണക്റ്റ് ചെയ്തിരിക്കുന്നു"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ടിവി ഡിഫോൾട്ട്"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI ഔട്ട്പുട്ട്"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ആന്തരിക സ്പീക്കറുകൾ"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"കണക്റ്റ് ചെയ്യുന്നതിൽ പ്രശ്നമുണ്ടായി. ഉപകരണം ഓഫാക്കി വീണ്ടും ഓണാക്കുക"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"വയർ മുഖേന ബന്ധിപ്പിച്ച ഓഡിയോ ഉപകരണം"</string>
<string name="help_label" msgid="3528360748637781274">"സഹായവും ഫീഡ്ബാക്കും"</string>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index e7c83a8..03fecc4 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC-р холбогдсон"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC-р холбогдсон"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ТВ-ийн өгөгдмөл"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI гаралт"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Дотоод чанга яригч"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Холбогдоход асуудал гарлаа. Төхөөрөмжийг унтраагаад дахин асаана уу"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Утастай аудио төхөөрөмж"</string>
<string name="help_label" msgid="3528360748637781274">"Тусламж, санал хүсэлт"</string>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index 381d0b8..e4edf08 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC द्वारे कनेक्ट केलेली"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC द्वारे कनेक्ट केलेली"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"टीव्ही डीफॉल्ट"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI आउटपुट"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"अंतर्गत स्पीकर"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"कनेक्ट करण्यात समस्या आली. डिव्हाइस बंद करा आणि नंतर सुरू करा"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"वायर असलेले ऑडिओ डिव्हाइस"</string>
<string name="help_label" msgid="3528360748637781274">"मदत आणि फीडबॅक"</string>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index 3e7d901..88f13f6f 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Disambungkan melalui ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Disambungkan melalui eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Tetapan lalai TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Output HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Pembesar suara dalaman"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Masalah penyambungan. Matikan & hidupkan kembali peranti"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Peranti audio berwayar"</string>
<string name="help_label" msgid="3528360748637781274">"Bantuan & maklum balas"</string>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index 68ae549..58e2cf4 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC မှတစ်ဆင့် ချိတ်ဆက်ထားသည်"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC မှတစ်ဆင့် ချိတ်ဆက်ထားသည်"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV မူရင်း"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI အထွက်"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"စက်ရှိ စပီကာများ"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ချိတ်ဆက်ရာတွင် ပြဿနာရှိပါသည်။ စက်ကိုပိတ်ပြီး ပြန်ဖွင့်ပါ"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ကြိုးတပ် အသံစက်ပစ္စည်း"</string>
<string name="help_label" msgid="3528360748637781274">"အကူအညီနှင့် အကြံပြုချက်"</string>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index a11bfff..a5bfe5e 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Tilkoblet via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Tilkoblet via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV-ens standardinnstilling"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-utgang"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Interne høyttalere"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Tilkoblingsproblemer. Slå enheten av og på igjen"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Lydenhet med kabel"</string>
<string name="help_label" msgid="3528360748637781274">"Hjelp og tilbakemelding"</string>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index b833c14..d8e1152 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC मार्फत कनेक्ट गरिएका"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC मार्फत कनेक्ट गरिएका"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"टिभीको डिफल्ट अडियो आउटपुट"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI आउटपुट"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"आन्तरिक स्पिकरहरू"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"जोड्ने क्रममा समस्या भयो। यन्त्रलाई निष्क्रिय पारेर फेरि अन गर्नुहोस्"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"तारयुक्त अडियो यन्त्र"</string>
<string name="help_label" msgid="3528360748637781274">"मद्दत र प्रतिक्रिया"</string>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index f9215e5..a65ff730 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Verbonden via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Verbonden via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Tv-standaard"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-uitvoer"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Interne speakers"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Probleem bij verbinding maken. Zet het apparaat uit en weer aan."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Bedraad audioapparaat"</string>
<string name="help_label" msgid="3528360748637781274">"Hulp en feedback"</string>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index c4ed005..add9ff7 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC ମାଧ୍ୟମରେ କନେକ୍ଟ କରାଯାଇଛି"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC ମାଧ୍ୟମରେ କନେକ୍ଟ କରାଯାଇଛି"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ଟିଭିର ଡିଫଲ୍ଟ ଅଡିଓ ଆଉଟପୁଟ"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI ଆଉଟପୁଟ"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ଇଣ୍ଟର୍ନଲ ସ୍ପିକର"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ସଂଯୋଗ କରିବାରେ ସମସ୍ୟା ହେଉଛି। ଡିଭାଇସ୍ ବନ୍ଦ କରି ପୁଣି ଚାଲୁ କରନ୍ତୁ"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ତାରଯୁକ୍ତ ଅଡିଓ ଡିଭାଇସ୍"</string>
<string name="help_label" msgid="3528360748637781274">"ସାହାଯ୍ୟ ଓ ମତାମତ"</string>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index b7a67fd..4a33f05 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤੇ ਗਏ ਡੀਵਾਈਸ"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤੇ ਗਏ ਡੀਵਾਈਸ"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ਟੀਵੀ ਦਾ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਆਊਟਪੁੱਟ"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI ਆਊਟਪੁੱਟ"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ਅੰਦਰੂਨੀ ਸਪੀਕਰ"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ। ਡੀਵਾਈਸ ਨੂੰ ਬੰਦ ਕਰਕੇ ਵਾਪਸ ਚਾਲੂ ਕਰੋ"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ਤਾਰ ਵਾਲਾ ਆਡੀਓ ਡੀਵਾਈਸ"</string>
<string name="help_label" msgid="3528360748637781274">"ਮਦਦ ਅਤੇ ਵਿਚਾਰ"</string>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 3ef8fd7e..b319cab 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Połączono przez ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Połączono przez eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Ustawienie domyślne telewizora"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Wyjście HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Głośniki wewnętrzne"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem z połączeniem. Wyłącz i ponownie włącz urządzenie"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Przewodowe urządzenie audio"</string>
<string name="help_label" msgid="3528360748637781274">"Pomoc i opinie"</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index b76b37b..32fa1b6 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -237,8 +237,8 @@
<string name="adb_wireless_error" msgid="721958772149779856">"Erro"</string>
<string name="adb_wireless_settings" msgid="2295017847215680229">"Depuração por Wi-Fi"</string>
<string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"Para acessar e usar dispositivos disponíveis, ative a depuração por Wi-Fi."</string>
- <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"Parear o dispositivo com um código QR"</string>
- <string name="adb_pair_method_qrcode_summary" msgid="7130694277228970888">"Parear novos dispositivos usando um leitor de código QR"</string>
+ <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"Parear o dispositivo com um QR code"</string>
+ <string name="adb_pair_method_qrcode_summary" msgid="7130694277228970888">"Parear novos dispositivos usando um leitor de QR code"</string>
<string name="adb_pair_method_code_title" msgid="1122590300445142904">"Parear o dispositivo com um código de pareamento"</string>
<string name="adb_pair_method_code_summary" msgid="6370414511333685185">"Parear novos dispositivos usando um código de seis dígitos"</string>
<string name="adb_paired_devices_title" msgid="5268997341526217362">"Dispositivos pareados"</string>
@@ -252,12 +252,12 @@
<string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"Código de pareamento por Wi‑Fi"</string>
<string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"Falha no pareamento"</string>
<string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"Verifique se o dispositivo está conectado à mesma rede."</string>
- <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do código QR"</string>
+ <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do QR code"</string>
<string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"Pareando dispositivo…"</string>
- <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"Falha ao parear o dispositivo. O código QR está incorreto ou o dispositivo não está conectado à mesma rede."</string>
+ <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"Falha ao parear o dispositivo. O QR code está incorreto ou o dispositivo não está conectado à mesma rede."</string>
<string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Endereço IP e porta"</string>
- <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Ler código QR"</string>
- <string name="adb_wireless_qrcode_pairing_description" msgid="6014121407143607851">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do código QR"</string>
+ <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Ler QR code"</string>
+ <string name="adb_wireless_qrcode_pairing_description" msgid="6014121407143607851">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do QR code"</string>
<string name="adb_wireless_no_network_msg" msgid="2365795244718494658">"Conecte-se a uma rede Wi-Fi"</string>
<string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
<string name="bugreport_in_power" msgid="8664089072534638709">"Atalho para relatório de bugs"</string>
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Conectado via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Conectado via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Padrão da TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Saída HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Alto-falantes internos"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ocorreu um problema na conexão. Desligue o dispositivo e ligue-o novamente"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fio"</string>
<string name="help_label" msgid="3528360748637781274">"Ajuda e feedback"</string>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index b76b37b..32fa1b6 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -237,8 +237,8 @@
<string name="adb_wireless_error" msgid="721958772149779856">"Erro"</string>
<string name="adb_wireless_settings" msgid="2295017847215680229">"Depuração por Wi-Fi"</string>
<string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"Para acessar e usar dispositivos disponíveis, ative a depuração por Wi-Fi."</string>
- <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"Parear o dispositivo com um código QR"</string>
- <string name="adb_pair_method_qrcode_summary" msgid="7130694277228970888">"Parear novos dispositivos usando um leitor de código QR"</string>
+ <string name="adb_pair_method_qrcode_title" msgid="6982904096137468634">"Parear o dispositivo com um QR code"</string>
+ <string name="adb_pair_method_qrcode_summary" msgid="7130694277228970888">"Parear novos dispositivos usando um leitor de QR code"</string>
<string name="adb_pair_method_code_title" msgid="1122590300445142904">"Parear o dispositivo com um código de pareamento"</string>
<string name="adb_pair_method_code_summary" msgid="6370414511333685185">"Parear novos dispositivos usando um código de seis dígitos"</string>
<string name="adb_paired_devices_title" msgid="5268997341526217362">"Dispositivos pareados"</string>
@@ -252,12 +252,12 @@
<string name="adb_pairing_device_dialog_pairing_code_label" msgid="3639239786669722731">"Código de pareamento por Wi‑Fi"</string>
<string name="adb_pairing_device_dialog_failed_title" msgid="3426758947882091735">"Falha no pareamento"</string>
<string name="adb_pairing_device_dialog_failed_msg" msgid="6611097519661997148">"Verifique se o dispositivo está conectado à mesma rede."</string>
- <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do código QR"</string>
+ <string name="adb_wireless_qrcode_summary" msgid="8051414549011801917">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do QR code"</string>
<string name="adb_wireless_verifying_qrcode_text" msgid="6123192424916029207">"Pareando dispositivo…"</string>
- <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"Falha ao parear o dispositivo. O código QR está incorreto ou o dispositivo não está conectado à mesma rede."</string>
+ <string name="adb_qrcode_pairing_device_failed_msg" msgid="6936292092592914132">"Falha ao parear o dispositivo. O QR code está incorreto ou o dispositivo não está conectado à mesma rede."</string>
<string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Endereço IP e porta"</string>
- <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Ler código QR"</string>
- <string name="adb_wireless_qrcode_pairing_description" msgid="6014121407143607851">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do código QR"</string>
+ <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Ler QR code"</string>
+ <string name="adb_wireless_qrcode_pairing_description" msgid="6014121407143607851">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do QR code"</string>
<string name="adb_wireless_no_network_msg" msgid="2365795244718494658">"Conecte-se a uma rede Wi-Fi"</string>
<string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
<string name="bugreport_in_power" msgid="8664089072534638709">"Atalho para relatório de bugs"</string>
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Conectado via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Conectado via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Padrão da TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Saída HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Alto-falantes internos"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ocorreu um problema na conexão. Desligue o dispositivo e ligue-o novamente"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fio"</string>
<string name="help_label" msgid="3528360748637781274">"Ajuda e feedback"</string>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 862e3d4..fe65be5 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Подключено через ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Подключено через eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Стандартный выход на телевизоре"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Выход HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Внутренние динамики"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ошибка подключения. Выключите и снова включите устройство."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Проводное аудиоустройство"</string>
<string name="help_label" msgid="3528360748637781274">"Справка/отзыв"</string>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index 795abec..55e0778 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC හරහා සම්බන්ධ කර ඇත"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC හරහා සම්බන්ධ කර ඇත"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"රූපවාහිනී පෙරනිමිය"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI ප්රතිදානය"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"අභ්යන්තර ස්පීකර්"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"සම්බන්ධ කිරීමේ ගැටලුවකි උපාංගය ක්රියාවිරහිත කර & ආපසු ක්රියාත්මක කරන්න"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"රැහැන්ගත කළ ඕඩියෝ උපාංගය"</string>
<string name="help_label" msgid="3528360748637781274">"උදවු & ප්රතිපෝෂණ"</string>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 00c0bc1..4d03ddd 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Pripojené prostredníctvom rozhrania ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Pripojené prostredníctvom rozhrania eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Predvolené nastavenie televízora"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Výstup HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Interné reproduktory"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Pri pripájaní sa vyskytol problém. Zariadenie vypnite a znova zapnite."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Audio zariadenie s káblom"</string>
<string name="help_label" msgid="3528360748637781274">"Pomocník a spätná väzba"</string>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index f204017..b627d09 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Lidhur përmes ARC-së"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Lidhur përmes eARC-së"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Parazgjedhja e televizorit"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Dalja HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Altoparlantët e brendshëm"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem me lidhjen. Fike dhe ndize përsëri pajisjen"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Pajisja audio me tel"</string>
<string name="help_label" msgid="3528360748637781274">"Ndihma dhe komentet"</string>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index b83986a..224be52 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Повезано преко ARC-а"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Повезано преко eARC-а"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Подразумевана вредност за ТВ"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI излаз"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Унутрашњи звучници"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Проблем при повезивању. Искључите уређај, па га поново укључите"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Жичани аудио уређај"</string>
<string name="help_label" msgid="3528360748637781274">"Помоћ и повратне информације"</string>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 58e3705..7ffad7c 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Ansluten via ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Ansluten via eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Standardutgång för tv:n"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI-utgång"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Interna högtalare"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Det gick inte att ansluta. Stäng av enheten och slå på den igen"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Ljudenhet med kabelanslutning"</string>
<string name="help_label" msgid="3528360748637781274">"Hjälp och feedback"</string>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index 2a2536b..b76f7e3 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC மூலம் இணைக்கப்பட்டுள்ளவை"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC மூலம் இணைக்கப்பட்டுள்ளவை"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"டிவி இயல்புநிலை"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI அவுட்புட்"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"உட்புற ஸ்பீக்கர்கள்"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"இணைப்பதில் சிக்கல். சாதனத்தை ஆஃப் செய்து மீண்டும் ஆன் செய்யவும்"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"வயருடன்கூடிய ஆடியோ சாதனம்"</string>
<string name="help_label" msgid="3528360748637781274">"உதவியும் கருத்தும்"</string>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index 303d310..23c00c1 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC ద్వారా కనెక్ట్ చేయబడింది"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC ద్వారా కనెక్ట్ చేయబడింది"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"టీవీ ఆటోమేటిక్ సెట్టింగ్"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI అవుట్పుట్"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"అంతర్గత స్పీకర్లు"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"కనెక్ట్ చేయడంలో సమస్య ఉంది. పరికరాన్ని ఆఫ్ చేసి, ఆపై తిరిగి ఆన్ చేయండి"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"వైర్ గల ఆడియో పరికరం"</string>
<string name="help_label" msgid="3528360748637781274">"సహాయం & ఫీడ్బ్యాక్"</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 0ac8cb8..4d9d382 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"เชื่อมต่อผ่าน ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"เชื่อมต่อผ่าน eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"ค่าเริ่มต้นของทีวี"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"เอาต์พุต HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"ลำโพงของเครื่อง"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"เกิดปัญหาในการเชื่อมต่อ ปิดอุปกรณ์แล้วเปิดใหม่อีกครั้ง"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"อุปกรณ์เสียงแบบมีสาย"</string>
<string name="help_label" msgid="3528360748637781274">"ความช่วยเหลือและความคิดเห็น"</string>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 4f92e1d..c9e3494 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Nakakonekta sa pamamagitan ng ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Nakakonekta sa pamamagitan ng eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Default ng TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI output"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Mga internal speaker"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Nagkaproblema sa pagkonekta. I-off at pagkatapos ay i-on ang device"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired na audio device"</string>
<string name="help_label" msgid="3528360748637781274">"Tulong at feedback"</string>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 795bb30..0f628b4 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC ile bağlandı"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC ile bağlandı"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV varsayılanı"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI çıkışı"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Dahili hoparlörler"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Bağlanırken sorun oluştu. Cihazı kapatıp tekrar açın"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Kablolu ses cihazı"</string>
<string name="help_label" msgid="3528360748637781274">"Yardım ve geri bildirim"</string>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index beb2c91..e00fbc9 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Підключено через ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Підключено через eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Стандартний вихід телевізора"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Вихід HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Внутрішні динаміки"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Не вдається підключитися. Перезавантажте пристрій."</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Дротовий аудіопристрій"</string>
<string name="help_label" msgid="3528360748637781274">"Довідка й відгуки"</string>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 13718d9..0dcb12f 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC کے ذریعے منسلک ہے"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC کے ذریعے منسلک ہے"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"TV ڈیفالٹ"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI آؤٹ پٹ"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"اندرونی اسپیکرز"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"منسلک کرنے میں مسئلہ پیش آ گیا۔ آلہ کو آف اور بیک آن کریں"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"وائرڈ آڈیو آلہ"</string>
<string name="help_label" msgid="3528360748637781274">"مدد اور تاثرات"</string>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index 7559a3d..c94ff4d 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"ARC orqali ulangan"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"eARC orqali ulangan"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Televizorda birlamchi"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI chiqishi"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Ichki karnaylar"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ulanishda muammo yuz berdi. Qurilmani oʻchiring va yoqing"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Simli audio qurilma"</string>
<string name="help_label" msgid="3528360748637781274">"Yordam/fikr-mulohaza"</string>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index ccdc0bc..03f0770 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Đã kết nối qua ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Đã kết nối qua eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"Chế độ mặc định của TV"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Đầu ra HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Các loa trong"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Sự cố kết nối. Hãy tắt thiết bị rồi bật lại"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Thiết bị âm thanh có dây"</string>
<string name="help_label" msgid="3528360748637781274">"Trợ giúp và phản hồi"</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 6b3e061..30db033 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"已通过 ARC 连接"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"已通过 eARC 连接"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"电视默认设置"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI 输出"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"内置扬声器"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"连接时遇到问题。请关闭并重新开启设备"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有线音频设备"</string>
<string name="help_label" msgid="3528360748637781274">"帮助和反馈"</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 3517109..2ce4de9 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"已透過 ARC 連接"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"已透過 eARC 連接"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"電視預設的音訊輸出"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI 輸出"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"內置喇叭"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"無法連接,請關閉裝置然後重新開機"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線音響裝置"</string>
<string name="help_label" msgid="3528360748637781274">"說明與意見反映"</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index eeed9f3..2fac076 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"透過 ARC 連線"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"透過 eARC 連線"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"電視預設的音訊輸出裝置"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"HDMI 輸出裝置"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"內建揚聲器"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"無法連線,請關閉裝置後再重新開啟"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線音訊裝置"</string>
<string name="help_label" msgid="3528360748637781274">"說明與意見回饋"</string>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index e94b929..9a81808 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -567,12 +567,9 @@
<string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"I-HDMI eARC"</string>
<string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"Ixhunywe nge-ARC"</string>
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Ixhunywe nge-eARC"</string>
- <!-- no translation found for tv_media_transfer_default (5403053145185843843) -->
- <skip />
- <!-- no translation found for tv_media_transfer_hdmi (692569220956829921) -->
- <skip />
- <!-- no translation found for tv_media_transfer_internal_speakers (8181494402866565865) -->
- <skip />
+ <string name="tv_media_transfer_default" msgid="5403053145185843843">"I-TV ezenzakalelayo"</string>
+ <string name="tv_media_transfer_hdmi" msgid="692569220956829921">"umphumela we-HDMI"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Izipikha zangaphakathi"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Inkinga yokuxhumeka. Vala idivayisi futhi uphinde uyivule"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Idivayisi yomsindo enentambo"</string>
<string name="help_label" msgid="3528360748637781274">"Usizo nempendulo"</string>
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileDataInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileDataInteractorTest.kt
new file mode 100644
index 0000000..7497ebd
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileDataInteractorTest.kt
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight.domain
+
+import android.app.UiModeManager
+import android.content.res.Configuration
+import android.content.res.Configuration.UI_MODE_NIGHT_NO
+import android.content.res.Configuration.UI_MODE_NIGHT_YES
+import android.os.UserHandle
+import android.testing.LeakCheck
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.coroutines.collectValues
+import com.android.systemui.qs.tiles.base.interactor.DataUpdateTrigger
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.interactor.UiModeNightTileDataInteractor
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.model.UiModeNightTileModel
+import com.android.systemui.statusbar.phone.ConfigurationControllerImpl
+import com.android.systemui.statusbar.policy.ConfigurationController
+import com.android.systemui.util.mockito.mock
+import com.android.systemui.util.mockito.whenever
+import com.android.systemui.util.time.DateFormatUtil
+import com.android.systemui.utils.leaks.FakeBatteryController
+import com.android.systemui.utils.leaks.FakeLocationController
+import com.google.common.truth.Truth.assertThat
+import java.time.LocalTime
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.verify
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class UiModeNightTileDataInteractorTest : SysuiTestCase() {
+ private val configurationController: ConfigurationController =
+ ConfigurationControllerImpl(context)
+ private val batteryController = FakeBatteryController(LeakCheck())
+ private val locationController = FakeLocationController(LeakCheck())
+
+ private lateinit var underTest: UiModeNightTileDataInteractor
+
+ @Mock private lateinit var uiModeManager: UiModeManager
+ @Mock private lateinit var dateFormatUtil: DateFormatUtil
+
+ @Before
+ fun setup() {
+ uiModeManager = mock<UiModeManager>()
+ dateFormatUtil = mock<DateFormatUtil>()
+
+ whenever(uiModeManager.customNightModeStart).thenReturn(LocalTime.MIN)
+ whenever(uiModeManager.customNightModeEnd).thenReturn(LocalTime.MAX)
+
+ underTest =
+ UiModeNightTileDataInteractor(
+ context,
+ configurationController,
+ uiModeManager,
+ batteryController,
+ locationController,
+ dateFormatUtil
+ )
+ }
+
+ @Test
+ fun collectTileDataReadsUiModeManagerNightMode() = runTest {
+ val expectedNightMode = Configuration.UI_MODE_NIGHT_UNDEFINED
+ whenever(uiModeManager.nightMode).thenReturn(expectedNightMode)
+
+ val model by
+ collectLastValue(
+ underTest.tileData(TEST_USER, flowOf(DataUpdateTrigger.InitialRequest))
+ )
+ runCurrent()
+
+ assertThat(model).isNotNull()
+ val actualNightMode = model?.uiMode
+ assertThat(actualNightMode).isEqualTo(expectedNightMode)
+ }
+
+ @Test
+ fun collectTileDataReadsUiModeManagerNightModeCustomTypeAndTimes() = runTest {
+ collectLastValue(underTest.tileData(TEST_USER, flowOf(DataUpdateTrigger.InitialRequest)))
+
+ runCurrent()
+
+ verify(uiModeManager).nightMode
+ verify(uiModeManager).nightModeCustomType
+ verify(uiModeManager).customNightModeStart
+ verify(uiModeManager).customNightModeEnd
+ }
+
+ /** Here, available refers to the tile showing up, not the tile being clickable. */
+ @Test
+ fun isAvailableRegardlessOfPowerSaveModeOn() = runTest {
+ batteryController.setPowerSaveMode(true)
+
+ runCurrent()
+ val availability by collectLastValue(underTest.availability(TEST_USER))
+
+ assertThat(availability).isTrue()
+ }
+
+ @Test
+ fun dataMatchesConfigurationController() = runTest {
+ setUiMode(UI_MODE_NIGHT_NO)
+ val flowValues: List<UiModeNightTileModel> by
+ collectValues(underTest.tileData(TEST_USER, flowOf(DataUpdateTrigger.InitialRequest)))
+
+ runCurrent()
+ setUiMode(UI_MODE_NIGHT_YES)
+ runCurrent()
+ setUiMode(UI_MODE_NIGHT_NO)
+ runCurrent()
+
+ assertThat(flowValues.size).isEqualTo(3)
+ assertThat(flowValues.map { it.isNightMode }).containsExactly(false, true, false).inOrder()
+ }
+
+ @Test
+ fun dataMatchesBatteryController() = runTest {
+ batteryController.setPowerSaveMode(false)
+ val flowValues: List<UiModeNightTileModel> by
+ collectValues(underTest.tileData(TEST_USER, flowOf(DataUpdateTrigger.InitialRequest)))
+
+ runCurrent()
+ batteryController.setPowerSaveMode(true)
+ runCurrent()
+ batteryController.setPowerSaveMode(false)
+ runCurrent()
+
+ assertThat(flowValues.size).isEqualTo(3)
+ assertThat(flowValues.map { it.isPowerSave }).containsExactly(false, true, false).inOrder()
+ }
+
+ @Test
+ fun dataMatchesLocationController() = runTest {
+ locationController.setLocationEnabled(false)
+ val flowValues: List<UiModeNightTileModel> by
+ collectValues(underTest.tileData(TEST_USER, flowOf(DataUpdateTrigger.InitialRequest)))
+
+ runCurrent()
+ locationController.setLocationEnabled(true)
+ runCurrent()
+ locationController.setLocationEnabled(false)
+ runCurrent()
+
+ assertThat(flowValues.size).isEqualTo(3)
+ assertThat(flowValues.map { it.isLocationEnabled })
+ .containsExactly(false, true, false)
+ .inOrder()
+ }
+
+ @Test
+ fun collectTileDataReads24HourFormatFromDateTimeUtil() = runTest {
+ collectLastValue(underTest.tileData(TEST_USER, flowOf(DataUpdateTrigger.InitialRequest)))
+ runCurrent()
+
+ verify(dateFormatUtil).is24HourFormat
+ }
+
+ /**
+ * Use this method to trigger [ConfigurationController.ConfigurationListener.onUiModeChanged]
+ */
+ private fun setUiMode(uiMode: Int) {
+ val config = context.resources.configuration
+ val newConfig = Configuration(config)
+ newConfig.uiMode = uiMode
+
+ /** [underTest] will see this config the next time it creates a model */
+ context.orCreateTestableResources.overrideConfiguration(newConfig)
+
+ /** Trigger updateUiMode callbacks */
+ configurationController.onConfigurationChanged(newConfig)
+ }
+
+ private companion object {
+ val TEST_USER = UserHandle.of(1)!!
+ }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileMapperTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileMapperTest.kt
new file mode 100644
index 0000000..87f5009
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileMapperTest.kt
@@ -0,0 +1,481 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight.domain
+
+import android.app.UiModeManager
+import android.text.TextUtils
+import android.view.View
+import android.widget.Switch
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.qs.tiles.impl.custom.QSTileStateSubject
+import com.android.systemui.qs.tiles.impl.uimodenight.UiModeNightTileModelHelper.createModel
+import com.android.systemui.qs.tiles.impl.uimodenight.qsUiModeNightTileConfig
+import com.android.systemui.qs.tiles.viewmodel.QSTileState
+import com.android.systemui.res.R
+import kotlin.reflect.KClass
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class UiModeNightTileMapperTest : SysuiTestCase() {
+ private val kosmos = Kosmos()
+ private val qsTileConfig = kosmos.qsUiModeNightTileConfig
+
+ private val mapper by lazy {
+ UiModeNightTileMapper(context.orCreateTestableResources.resources)
+ }
+
+ private fun createUiNightModeTileState(
+ iconRes: Int = R.drawable.qs_light_dark_theme_icon_off,
+ label: CharSequence = context.getString(R.string.quick_settings_ui_mode_night_label),
+ activationState: QSTileState.ActivationState = QSTileState.ActivationState.INACTIVE,
+ secondaryLabel: CharSequence? = null,
+ supportedActions: Set<QSTileState.UserAction> =
+ if (activationState == QSTileState.ActivationState.UNAVAILABLE)
+ setOf(QSTileState.UserAction.LONG_CLICK)
+ else setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK),
+ contentDescription: CharSequence? = null,
+ stateDescription: CharSequence? = null,
+ sideViewIcon: QSTileState.SideViewIcon = QSTileState.SideViewIcon.None,
+ enabledState: QSTileState.EnabledState = QSTileState.EnabledState.ENABLED,
+ expandedAccessibilityClass: KClass<out View>? = Switch::class,
+ ): QSTileState {
+ return QSTileState(
+ { Icon.Resource(iconRes, null) },
+ label,
+ activationState,
+ secondaryLabel,
+ supportedActions,
+ contentDescription,
+ stateDescription,
+ sideViewIcon,
+ enabledState,
+ expandedAccessibilityClass?.qualifiedName
+ )
+ }
+
+ @Test
+ fun mapsEnabledDataToUnavailableStateWhenOnPowerSave() {
+ val inputModel = createModel(nightMode = true, powerSave = true)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_battery_saver)
+ val expectedContentDescription =
+ TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel)
+ val expectedState =
+ createUiNightModeTileState(
+ activationState = QSTileState.ActivationState.UNAVAILABLE,
+ secondaryLabel = expectedSecondaryLabel,
+ contentDescription = expectedContentDescription
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun mapsDisabledDataToUnavailableStateWhenOnPowerSave() {
+ val inputModel = createModel(nightMode = false, powerSave = true)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_battery_saver)
+ val expectedContentDescription =
+ TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel)
+ val expectedState =
+ createUiNightModeTileState(
+ activationState = QSTileState.ActivationState.UNAVAILABLE,
+ secondaryLabel = expectedSecondaryLabel,
+ contentDescription = expectedContentDescription
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun mapsDisabledDataToInactiveState() {
+ val inputModel = createModel(nightMode = false, powerSave = false)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[1]
+ val expectedState =
+ createUiNightModeTileState(
+ activationState = QSTileState.ActivationState.INACTIVE,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ contentDescription = expectedLabel
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun mapsEnabledDataToActiveState() {
+ val inputModel = createModel(true, false)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[2]
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_on,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.ACTIVE,
+ contentDescription = expectedLabel
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun mapsEnabledDataToOnIconState() {
+ val inputModel = createModel(nightMode = true, powerSave = false)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[2]
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_on,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.ACTIVE,
+ contentDescription = expectedLabel
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun mapsDisabledDataToOffIconState() {
+ val inputModel = createModel(nightMode = false, powerSave = false)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[1]
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.INACTIVE,
+ contentDescription = expectedLabel
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun supportsClickAndLongClickActionsWhenNotInPowerSaveInNightMode() {
+ val inputModel = createModel(nightMode = true, powerSave = false)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[2]
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_on,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.ACTIVE,
+ contentDescription = expectedLabel,
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun supportsOnlyLongClickActionWhenUnavailableInPowerSaveInNightMode() {
+ val inputModel = createModel(nightMode = true, powerSave = true)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_battery_saver)
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedContentDescription =
+ TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.UNAVAILABLE,
+ contentDescription = expectedContentDescription,
+ supportedActions = setOf(QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun supportsClickAndLongClickActionsWhenNotInPowerSaveNotInNightMode() {
+ val inputModel = createModel(nightMode = false, powerSave = false)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[1]
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.INACTIVE,
+ contentDescription = expectedLabel,
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun supportsOnlyClickActionWhenUnavailableInPowerSaveNotInNightMode() {
+ val inputModel = createModel(nightMode = false, powerSave = true)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_battery_saver)
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.UNAVAILABLE,
+ contentDescription = TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel),
+ supportedActions = setOf(QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenInPowerSaveMode() {
+ val inputModel = createModel(powerSave = true)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_battery_saver)
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.UNAVAILABLE,
+ contentDescription = TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel),
+ supportedActions = setOf(QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenInNightModeNotInPowerSaveModeLocationEnabledUiModeIsNightAuto() {
+ val inputModel =
+ createModel(
+ nightMode = true,
+ powerSave = false,
+ isLocationEnabled = true,
+ uiMode = UiModeManager.MODE_NIGHT_AUTO
+ )
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_until_sunrise)
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_on,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.ACTIVE,
+ contentDescription = TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel),
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenNotInNightModeNotInPowerSaveModeLocationEnableUiModeIsNightAuto() {
+ val inputModel =
+ createModel(
+ nightMode = false,
+ powerSave = false,
+ isLocationEnabled = true,
+ uiMode = UiModeManager.MODE_NIGHT_AUTO
+ )
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_on_at_sunset)
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.INACTIVE,
+ contentDescription = TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel),
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenNotInPowerSaveAndUiModeIsNightYesInNightMode() {
+ val inputModel =
+ createModel(nightMode = true, powerSave = false, uiMode = UiModeManager.MODE_NIGHT_YES)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[2]
+
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_on,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.ACTIVE,
+ contentDescription = expectedLabel,
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenNotInPowerSaveAndUiModeIsNightNoNotInNightMode() {
+ val inputModel =
+ createModel(nightMode = false, powerSave = false, uiMode = UiModeManager.MODE_NIGHT_NO)
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[1]
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.INACTIVE,
+ contentDescription = expectedLabel,
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenNotInPowerSaveAndUiModeIsUnknownCustomNotInNightMode() {
+ val inputModel =
+ createModel(
+ nightMode = false,
+ powerSave = false,
+ uiMode = UiModeManager.MODE_NIGHT_CUSTOM,
+ nighModeCustomType = UiModeManager.MODE_NIGHT_CUSTOM_TYPE_UNKNOWN
+ )
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[1]
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.INACTIVE,
+ contentDescription = expectedLabel,
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenNotInPowerSaveAndUiModeIsUnknownCustomInNightMode() {
+ val inputModel =
+ createModel(
+ nightMode = true,
+ powerSave = false,
+ uiMode = UiModeManager.MODE_NIGHT_CUSTOM,
+ nighModeCustomType = UiModeManager.MODE_NIGHT_CUSTOM_TYPE_UNKNOWN
+ )
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel = context.resources.getStringArray(R.array.tile_states_dark)[2]
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_on,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.ACTIVE,
+ contentDescription = expectedLabel,
+ supportedActions =
+ setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+
+ @Test
+ fun secondaryLabelCorrectWhenInPowerSaveAndUiModeIsUnknownCustomNotInNightMode() {
+ val inputModel =
+ createModel(
+ nightMode = false,
+ powerSave = true,
+ uiMode = UiModeManager.MODE_NIGHT_CUSTOM,
+ nighModeCustomType = UiModeManager.MODE_NIGHT_CUSTOM_TYPE_UNKNOWN
+ )
+
+ val actualState: QSTileState = mapper.map(qsTileConfig, inputModel)
+
+ val expectedSecondaryLabel =
+ context.getString(R.string.quick_settings_dark_mode_secondary_label_battery_saver)
+ val expectedLabel = context.getString(R.string.quick_settings_ui_mode_night_label)
+ val expectedContentDescription =
+ TextUtils.concat(expectedLabel, ", ", expectedSecondaryLabel)
+ val expectedState =
+ createUiNightModeTileState(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ label = expectedLabel,
+ secondaryLabel = expectedSecondaryLabel,
+ activationState = QSTileState.ActivationState.UNAVAILABLE,
+ contentDescription = expectedContentDescription,
+ supportedActions = setOf(QSTileState.UserAction.LONG_CLICK)
+ )
+ QSTileStateSubject.assertThat(actualState).isEqualTo(expectedState)
+ }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileUserActionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileUserActionInteractorTest.kt
new file mode 100644
index 0000000..004ec62
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileUserActionInteractorTest.kt
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight.domain
+
+import android.app.UiModeManager
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.qs.tiles.base.actions.FakeQSTileIntentUserInputHandler
+import com.android.systemui.qs.tiles.base.actions.intentInputs
+import com.android.systemui.qs.tiles.base.interactor.QSTileInputTestKtx
+import com.android.systemui.qs.tiles.impl.uimodenight.UiModeNightTileModelHelper.createModel
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.interactor.UiModeNightTileUserActionInteractor
+import com.android.systemui.util.mockito.any
+import com.android.systemui.util.mockito.mock
+import com.google.common.truth.Truth
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.never
+import org.mockito.Mockito.verify
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class UiModeNightTileUserActionInteractorTest : SysuiTestCase() {
+
+ private val qsTileIntentUserActionHandler = FakeQSTileIntentUserInputHandler()
+
+ private lateinit var underTest: UiModeNightTileUserActionInteractor
+
+ @Mock private lateinit var uiModeManager: UiModeManager
+
+ @Before
+ fun setup() {
+ uiModeManager = mock<UiModeManager>()
+ underTest =
+ UiModeNightTileUserActionInteractor(
+ EmptyCoroutineContext,
+ uiModeManager,
+ qsTileIntentUserActionHandler
+ )
+ }
+
+ @Test
+ fun handleClickToEnable() = runTest {
+ val stateBeforeClick = false
+
+ underTest.handleInput(QSTileInputTestKtx.click(createModel(stateBeforeClick)))
+
+ verify(uiModeManager).setNightModeActivated(!stateBeforeClick)
+ }
+
+ @Test
+ fun handleClickToDisable() = runTest {
+ val stateBeforeClick = true
+
+ underTest.handleInput(QSTileInputTestKtx.click(createModel(stateBeforeClick)))
+
+ verify(uiModeManager).setNightModeActivated(!stateBeforeClick)
+ }
+
+ @Test
+ fun clickToEnableDoesNothingWhenInPowerSaveInNightMode() = runTest {
+ val isNightMode = true
+ val isPowerSave = true
+
+ underTest.handleInput(QSTileInputTestKtx.click(createModel(isNightMode, isPowerSave)))
+
+ verify(uiModeManager, never()).setNightModeActivated(any())
+ }
+
+ @Test
+ fun clickToEnableDoesNothingWhenInPowerSaveNotInNightMode() = runTest {
+ val isNightMode = false
+ val isPowerSave = true
+
+ underTest.handleInput(QSTileInputTestKtx.click(createModel(isNightMode, isPowerSave)))
+
+ verify(uiModeManager, never()).setNightModeActivated(any())
+ }
+
+ @Test
+ fun handleLongClickNightModeEnabled() = runTest {
+ val isNightMode = true
+
+ underTest.handleInput(QSTileInputTestKtx.longClick(createModel(isNightMode)))
+
+ Truth.assertThat(qsTileIntentUserActionHandler.handledInputs).hasSize(1)
+ val intentInput = qsTileIntentUserActionHandler.intentInputs.last()
+ val actualIntentAction = intentInput.intent.action
+ val expectedIntentAction = Settings.ACTION_DARK_THEME_SETTINGS
+ Truth.assertThat(actualIntentAction).isEqualTo(expectedIntentAction)
+ }
+
+ @Test
+ fun handleLongClickNightModeDisabled() = runTest {
+ val isNightMode = false
+
+ underTest.handleInput(QSTileInputTestKtx.longClick(createModel(isNightMode)))
+
+ Truth.assertThat(qsTileIntentUserActionHandler.handledInputs).hasSize(1)
+ val intentInput = qsTileIntentUserActionHandler.intentInputs.last()
+ val actualIntentAction = intentInput.intent.action
+ val expectedIntentAction = Settings.ACTION_DARK_THEME_SETTINGS
+ Truth.assertThat(actualIntentAction).isEqualTo(expectedIntentAction)
+ }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt
index 70be031..c110de9 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt
@@ -63,7 +63,6 @@
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertWithMessage
-import kotlin.test.Ignore
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.MutableStateFlow
@@ -396,7 +395,6 @@
}
@Test
- @Ignore("b/315130482")
fun deviceGoesToSleep_wakeUp_unlock() =
testScope.runTest {
unlockDevice()
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
index 06e9b10..5d85fba 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
@@ -174,7 +174,7 @@
public String spec;
/** Get the state text. */
- public String getStateText(int arrayResId, Resources resources) {
+ public CharSequence getStateText(int arrayResId, Resources resources) {
if (state == Tile.STATE_UNAVAILABLE || this instanceof QSTile.BooleanState) {
String[] array = resources.getStringArray(arrayResId);
return array[state];
@@ -184,13 +184,13 @@
}
/** Get the text for secondaryLabel. */
- public String getSecondaryLabel(String stateText) {
+ public CharSequence getSecondaryLabel(CharSequence stateText) {
// Use a local reference as the value might change from other threads
CharSequence localSecondaryLabel = secondaryLabel;
if (TextUtils.isEmpty(localSecondaryLabel)) {
return stateText;
}
- return localSecondaryLabel.toString();
+ return localSecondaryLabel;
}
public boolean copyTo(State other) {
diff --git a/packages/SystemUI/res-keyguard/drawable/bouncer_password_text_view_focused_background.xml b/packages/SystemUI/res-keyguard/drawable/bouncer_password_text_view_focused_background.xml
new file mode 100644
index 0000000..02e10cd
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/drawable/bouncer_password_text_view_focused_background.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_focused="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="16dp" />
+ <stroke android:width="3dp"
+ android:color="@color/bouncer_password_focus_color" />
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_bouncer_message_area.xml b/packages/SystemUI/res-keyguard/layout/keyguard_bouncer_message_area.xml
index 66c54f2..0b35559 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_bouncer_message_area.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_bouncer_message_area.xml
@@ -23,7 +23,7 @@
android:layout_marginTop="@dimen/keyguard_lock_padding"
android:importantForAccessibility="no"
android:ellipsize="marquee"
- android:focusable="true"
+ android:focusable="false"
android:gravity="center"
android:singleLine="true" />
</merge>
diff --git a/packages/SystemUI/res-keyguard/values/styles.xml b/packages/SystemUI/res-keyguard/values/styles.xml
index 88f7bcd..6e6709f 100644
--- a/packages/SystemUI/res-keyguard/values/styles.xml
+++ b/packages/SystemUI/res-keyguard/values/styles.xml
@@ -76,6 +76,7 @@
</style>
<style name="Widget.TextView.Password" parent="@android:style/Widget.TextView">
<item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+ <item name="android:background">@drawable/bouncer_password_text_view_focused_background</item>
<item name="android:gravity">center</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
diff --git a/packages/SystemUI/res/layout/udfps_touch_overlay.xml b/packages/SystemUI/res/layout/udfps_touch_overlay.xml
index ea92776..498d59b 100644
--- a/packages/SystemUI/res/layout/udfps_touch_overlay.xml
+++ b/packages/SystemUI/res/layout/udfps_touch_overlay.xml
@@ -17,6 +17,5 @@
<com.android.systemui.biometrics.ui.view.UdfpsTouchOverlay xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/udfps_touch_overlay"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:contentDescription="@string/accessibility_fingerprint_label">
+ android:layout_height="match_parent">
</com.android.systemui.biometrics.ui.view.UdfpsTouchOverlay>
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 09f3766..14f6821 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Knoppie <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Oppyl"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Afpyl"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Linkspyl"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Regspyl"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Middel"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Spasie"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Kennisgewings"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Kortpadsleutels"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Wissel sleutelborduitleg"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"of"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Maak soeknavraag skoon"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Kortpaaie"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Soek kortpaaie"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Geen kortpaaie gevind nie"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Invoer"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Maak apps oop"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Huidige app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Wys tans soekresultate"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Wys tans stelselkortpaaie"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Wys tans invoerkortpaaie"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Wys tans kortpaaie wat apps oopmaak"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Wys tans kortpaaie vir die huidige app"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Bekyk kennisgewings"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Neem skermskoot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Wys kortpaaie"</string>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 1c065bb..17ff32f 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"الزر <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"سهم متّجه للأعلى"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"سهم متّجه للأسفل"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"سهم متّجه لليسار"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"سهم متّجه لليمين"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"وسط"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"مسافة"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"الإشعارات"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"اختصارات لوحة المفاتيح"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"تبديل تنسيق لوحة المفاتيح"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"أو"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"محو طلب البحث"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"الاختصارات"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"البحث في الاختصارات"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"لم يُعثَر على اختصارات."</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"إدخال"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"فتح التطبيقات"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"التطبيق الحالي"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"جارٍ عرض نتائج البحث"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"جارٍ عرض اختصارات النظام"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"جارٍ عرض اختصارات الإدخال"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"جارٍ عرض اختصارات فتح التطبيقات"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"جارٍ عرض اختصارات التطبيق الحالي"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"عرض الإشعارات"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"أخذ لقطة شاشة"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"عرض الاختصارات"</string>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 0c5f104..457f931 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> বুটাম"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"হ\'ম"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"উভতি যাওক"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ওপৰলৈ নিৰ্দেশ কৰা কাঁড় চিহ্ন"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"তললৈ নিৰ্দেশ কৰা কাঁড় চিহ্ন"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"বাওঁফাললৈ নিৰ্দেশ কৰা কাঁড় চিহ্ন"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"সোঁফাললৈ নিৰ্দেশ কৰা কাঁড় চিহ্ন"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"স্ক্ৰীনৰ মাজত"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"স্পেচ"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"জাননীসমূহ"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"কীব\'ৰ্ড শ্বৰ্টকাটসমূহ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"কীব\'ৰ্ডৰ সজ্জা সলনি কৰক"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"অথবা"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"সন্ধান কৰা প্ৰশ্ন মচক"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"শ্বৰ্টকাট"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"সন্ধানৰ শ্বৰ্টকাট"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"কোনো শ্বৰ্টকাট বিচাৰি পোৱা নাই"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ইনপুট"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"এপ্ খোলক"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"বৰ্তমানৰ এপ্"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"সন্ধানৰ ফলাফল দেখুৱাই থকা হৈছে"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"ছিষ্টেমৰ শ্বৰ্টকাট দেখুৱাই থকা হৈছে"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ইনপুট শ্বৰ্টকাট দেখুৱাই থকা হৈছে"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"এনে শ্বৰ্টকাট দেখুৱাই থকা হৈছে যিয়ে এপ্সমূহ খোলে"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"বৰ্তমানৰ এপ্টোৰ বাবে শ্বৰ্টকাট দেখুৱাই থকা হৈছে"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"জাননী চাওক"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"স্ক্ৰীনশ্বট লওক"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"শ্বৰ্টকাট দেখুৱাওক"</string>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index b2ee455..3603135 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Düymə <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Əsas səhifə"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Geri"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Yuxarı ox"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Aşağı ox"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Sol ox"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Sağ ox"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Mərkəz"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Boşluq"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Bildirişlər"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Klaviatura qısa yolları"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Klaviatura düzümünü dəyişin"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"və ya"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Axtarış sorğusunu silin"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Qısayollar"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Qısayollar axtarın"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Qısayol tapılmadı"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Daxiletmə"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Açıq tətbiqlər"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Cari tətbiq"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Axtarış nəticələri göstərilir"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Sistem qısayolları göstərilir"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Daxiletmə qısayolları göstərilir"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Tətbiqləri açan qısayollar göstərilir"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Cari tətbiq üçün qısayollar göstərilir"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Bildirişlərə baxın"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Skrinşot çəkin"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Qısayolları göstərin"</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index ce734dc..f26a9c5 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Dugme <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Taster Početna"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Taster Nazad"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Strelica nagore"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Strelica nadole"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Strelica nalevo"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Strelica nadesno"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Taster sa centralnom strelicom"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Razmak"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Obaveštenja"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Tasterske prečice"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Promeni raspored tastature"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ili"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Obriši upit za pretragu"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Prečice"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Pretražite prečice"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nisu pronađene prečice"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Unos"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Otvaranje aplik"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aktuelna aplik"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Prikazuju se rezultati pretrage"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Prikazuju se sistemske prečice"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Prikazuju se prečice za umetanje"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Prikazuju se prečice za otvaranje aplikacija"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Prikazuju se prečice za aktuelnu aplikaciju"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Prikaži obaveštenja"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Napravi snimak ekrana"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Prikaži prečice"</string>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 74e46fc..c3d1d0a 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Кнопка <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Назад"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Стрэлка ўверх"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Стрэлка ўніз"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Стрэлка ўлева"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Стрэлка ўправа"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Цэнтр"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Прабел"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Апавяшчэнні"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Спалучэнні клавіш"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Пераключыць раскладку клавіятуры"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"або"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Ачысціць пошукавы запыт"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Ярлыкі"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Пошук ярлыкоў"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Ярлыкі не знойдзены"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Увод"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Адкрытыя праграмы"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Бягучая праграма"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Паказаны вынікі пошуку"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Паказаны сістэмныя спалучэнні клавіш"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Паказаны спалучэнні клавіш, звязаныя з уводам"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Паказаны спалучэнні клавіш для адкрыцця праграм"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Паказаны спалучэнні клавіш для бягучай праграмы"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Праглядзець апавяшчэнні"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Зрабіць здымак экрана"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Паказаць спалучэнні клавіш"</string>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 7a00ded..e3eb1e0 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Бутон „<xliff:g id="NAME">%1$s</xliff:g>“"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Начало"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Назад"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Стрелка за нагоре"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Стрелка за надолу"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Стрелка за наляво"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Стрелка за надясно"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Център"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Интервал"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Известия"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Клавишни комбинации"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Превкл. на клавиат. подредба"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"или"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Изчистване на заявката за търсене"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Клавишни комбинации"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Търсете комбинации"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Няма клавишни комбинации"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Въвеждане"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Отворени прил."</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Текущо прилож."</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Показани са резултатите от търсенето"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Показани са системните преки пътища"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Показани са преките пътища за въвеждане"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Показани са преките пътища, които отварят приложения"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Показани са преките пътища за текущото приложение"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Преглед на известията"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Създаване на екранна снимка"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Показване на клавишните комбинации"</string>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index 9954fbd..6972379 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> বোতাম"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"হোম"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"ফিরুন"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ঊর্ধমুখী তীরচিহ্ন"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"নিম্নমুখী তীরচিহ্ন"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"বাঁদিকের তীরচিহ্ন"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ডানদিকের তীরচিহ্ন"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"কেন্দ্র"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"বিজ্ঞপ্তি"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"কীবোর্ড শর্টকাট"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"কীবোর্ড লে-আউট পাল্টান"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"অথবা"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"সার্চ কোয়েরি মুছুন"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"শর্টকাট"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"শর্টকাট সার্চ করুন"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"কোনও শর্টকার্ট পাওয়া যায়নি"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ইনপুট"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"খুলে রাখা অ্যাপ"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"বর্তমান অ্যাপ"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"সার্চ ফলাফল দেখানো হচ্ছে"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"সিস্টেম শর্টকাট দেখানো হচ্ছে"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ইনপুট শর্টকাট দেখানো হচ্ছে"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"যে শর্টকাট ব্যবহার করলে অ্যাপ খুলবে, সেগুলি দেখানো হচ্ছে"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"বর্তমান অ্যাপের জন্য শর্টকাট দেখানো হচ্ছে"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"বিজ্ঞপ্তি দেখুন"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"স্ক্রিনশট নিন"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"শর্টকাট দেখুন"</string>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index 041e3b6..939c2b2 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Dugme <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Tipka za početak"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Nazad"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Strelica nagore"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Strelica nadolje"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Strelica ulijevo"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Strelica udesno"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Sredina"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Tipka za razmak"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Obavještenja"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Prečice tastature"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Zamijeni raspored tastature"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ili"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Brisanje upita za pretraživanje"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Prečice"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Pretraživanje prečica"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nisu pronađene prečice"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Unos"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Otvorene aplik."</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Trenutna aplik."</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Prikazivanje rezultata pretraživanja"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Prikazivanje prečica za sistem"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Prikazivanje prečica za unos"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Prikazivanje prečica koje otvaraju aplikacije"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Prikazivanje prečica za trenutnu aplikaciju"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Prikaz obavještenja"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Pravljenje snimka ekrana"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Prikaz prečica"</string>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index eb652a1..1a95e2a 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Botó <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Inici"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Enrere"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Fletxa amunt"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Fletxa avall"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Fletxa esquerra"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Fletxa dreta"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centre"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Espai"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notificacions"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Tecles de drecera"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Canvia disposició de teclat"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"o"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Esborra la consulta de cerca"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Dreceres"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Cerca dreceres"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"No s\'ha trobat cap drecera"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Entrada"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Obre aplicacions"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aplicació actual"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"S\'estan mostrant els resultats de la cerca"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"S\'estan mostrant les dreceres del sistema"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"S\'estan mostrant les dreceres d\'entrada"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"S\'estan mostrant les dreceres que obren aplicacions"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"S\'estan mostrant les dreceres per a l\'aplicació actual"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Mostra les notificacions"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Fes una captura de pantalla"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Mostra les dreceres"</string>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 1cfb005..f97a754 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g>-knap"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Tilbage"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Pil op"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Pil ned"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Venstrepil"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Højrepil"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Midtertast"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Mellemrumstast"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notifikationer"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Tastaturgenveje"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Skift tastaturlayout"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"eller"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Ryd søgeforespørgsel"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Genveje"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Søg efter genveje"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Ingen genveje blev fundet"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Input"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Åbn apps"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aktuel app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Viser søgeresultater"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Viser systemgenveje"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Viser tastaturgenveje"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Viser genveje til at åbne apps"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Viser genveje til den aktuelle app"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Se notifikationer"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Tag et screenshot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Vis genveje"</string>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 30b03b2..937fe67 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Button <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Up arrow"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Down arrow"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Left arrow"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Right arrow"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centre"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notifications"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Keyboard shortcuts"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Switch keyboard layout"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"or"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Clear search query"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Shortcuts"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Search shortcuts"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"No shortcuts found"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Input"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Open apps"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Current app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Showing search results"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Showing system shortcuts"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Showing input shortcuts"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Showing shortcuts that open apps"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Showing shortcuts for the current app"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"View notifications"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Take screenshot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Show shortcuts"</string>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 30b03b2..937fe67 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Button <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Up arrow"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Down arrow"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Left arrow"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Right arrow"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centre"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notifications"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Keyboard shortcuts"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Switch keyboard layout"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"or"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Clear search query"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Shortcuts"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Search shortcuts"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"No shortcuts found"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Input"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Open apps"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Current app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Showing search results"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Showing system shortcuts"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Showing input shortcuts"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Showing shortcuts that open apps"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Showing shortcuts for the current app"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"View notifications"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Take screenshot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Show shortcuts"</string>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 30b03b2..937fe67 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Button <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Up arrow"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Down arrow"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Left arrow"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Right arrow"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centre"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notifications"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Keyboard shortcuts"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Switch keyboard layout"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"or"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Clear search query"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Shortcuts"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Search shortcuts"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"No shortcuts found"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Input"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Open apps"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Current app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Showing search results"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Showing system shortcuts"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Showing input shortcuts"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Showing shortcuts that open apps"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Showing shortcuts for the current app"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"View notifications"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Take screenshot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Show shortcuts"</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index f642386..329b0f0 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Botón <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Inicio"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Atrás"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Flecha hacia arriba"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Flecha hacia abajo"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Flecha hacia la izquierda"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Flecha hacia la derecha"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centro"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tabulador"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Espacio"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notificaciones"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Ver combinaciones de teclas"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Cambiar diseño del teclado"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"o"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Borrar la consulta de búsqueda"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Combinaciones de teclas"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Buscar combinaciones de teclas"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Ninguna encontrada"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Entrada"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Apps abiertas"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"App en uso"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Mostrando resultados de la búsqueda"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Mostrando combinaciones de teclas del sistema"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Mostrando combinaciones de teclas de entrada"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Mostrando combinaciones de teclas que abren aplicaciones"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Mostrando combinaciones de teclas de la aplicación actual"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Ver notificaciones"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Hacer captura de pantalla"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Mostrar accesos directos"</string>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index 8e9616f..48bf1d5 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Nupp <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Avakuva"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Tagasi"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Ülesnool"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Allanool"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Vasaknool"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Paremnool"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Keskele"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Tühik"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Märguanded"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Klaviatuuri otseteed"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Klaviatuuripaigutuse vahetus"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"või"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Otsingupäringu tühjendamine"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Otseteed"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Otseteede otsing"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Otseteid ei leitud"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Sisend"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Rakenduste avamine"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Praegune rakendus"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Kuvatakse otsingutulemused"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Kuvatakse süsteemi otseteed"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Kuvatakse sisendi otseteed"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Kuvatakse rakenduste avamise otseteed"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Kuvatakse praeguse rakenduse otseteed"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Märguannete vaatamine"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Ekraanipildi jäädvustamine"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Otseteede kuvamine"</string>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index fe04218..e481157 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> botoia"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Hasiera"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Atzera"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Gora egiteko gezi-tekla"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Behera egiteko gezi-tekla"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Ezkerrera egiteko gezi-tekla"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Eskuinera egiteko gezi-tekla"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Erdiratu"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Zuriunea"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Jakinarazpenak"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Lasterbideak"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Aldatu tekl. diseinua"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"edo"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Garbitu bilaketa-kontsulta"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Lasterbideak"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Bilatu lasterbideak"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Ez da aurkitu lasterbiderik"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Sarrera"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Irekitako aplikazioak"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Uneko aplikazioa"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Bilaketa-emaitzak daude ikusgai"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Sistemaren lasterbideak daude ikusgai"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Informazioa sartzeko lasterbideak daude ikusgai"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Aplikazioak irekitzen dituzten lasterbideak daude ikusgai"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Oraingo aplikaziorako lasterbideak daude ikusgai"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Ikusi jakinarazpenak"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Atera pantaila-argazki bat"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Erakutsi lasterbideak"</string>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 2f17835..fa5cce2 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"دکمه <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"ابتدا"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"برگشت"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"پیکان رو بهبالا"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"پیکان روبهپایین"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"پیکان چپ"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"پیکان راست"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"مرکز"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"اعلانها"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"میانبرهای صفحهکلید"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"تغییر جانمایی صفحهکلید"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"یا"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"پاک کردن پُرسمان جستجو"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"میانبرها"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"جستجوی میانبرها"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"میانبری پیدا نشد"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ورودی"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"باز کردن برنامهها"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"برنامه فعلی"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"درحال نمایش نتایج جستجو"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"درحال نمایش میانبرهای سیستم"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"درحال نمایش میانبرهای ورودی"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"درحال نمایش میانبرهای باز کردن برنامهها"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"درحال نمایش میانبرهای برنامه کنونی"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"مشاهده اعلانها"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"گرفتن نماگرفت"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"نمایش میانبرها"</string>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index d1bd05b..aebcd58 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Painike <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Takaisin"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Ylänuoli"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Alanuoli"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Vasen nuoli"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Oikea nuoli"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Keskelle"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Välilyönti"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Ilmoitukset"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Pikanäppäimet"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Vaihda näppäimistöasettelu"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"tai"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Tyhjennä hakulauseke"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Pikanäppäimet"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Hae pikanäppäimiä"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Pikanäppäimiä ei löytynyt"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Syöttötapa"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Avoimet"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Sovelluslista"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Näytetään hakutuloksia"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Näytetään järjestelmän pikanäppäimiä"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Näytetään pikanäppäimiä"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Näytetään sovellusten avaamiseen tarkoitettuja pikanäppäimiä"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Näytetään sovelluksen pikanäppäimiä"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Katso ilmoitukset"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Ota kuvakaappaus"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Näytä pikakuvakkeet"</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index bcf0e96..9440689 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Bouton <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Accueil"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Précédent"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Flèche vers le haut"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Flèche vers le bas"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Flèche vers la gauche"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Flèche vers la droite"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centrer"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Espace"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notifications"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Raccourcis clavier"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Changer la disposition du clavier"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ou"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Effacez la requête de recherche"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Raccourcis"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Recherchez des raccourcis"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Aucun raccourci trouvé"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Entrée"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Ouvrir applis"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Appli actuelle"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Affichage des résultats de recherche en cours…"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Affichage des raccourcis du système en cours…"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Affichage des raccourcis d\'entrée en cours…"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Affichage des raccourcis qui ouvrent les applications en cours…"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Affichage des raccourcis de l\'application actuelle en cours…"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Afficher les notifications"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Prendre une capture d\'écran"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Afficher les raccourcis"</string>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 716fcf2..38daccb 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Botón <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Inicio"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Volver"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Frecha arriba"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Frecha abaixo"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Frecha esquerda"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Frecha dereita"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centro"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Espazo"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notificacións"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Atallos de teclado"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Cambiar deseño do teclado"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ou"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Borrar a busca"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Atallos"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Buscar atallos"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Non se atoparon atallos"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Entrada"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Abrir aplicacións"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"App actual"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Mostrando resultados da busca"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Mostrando atallos do sistema"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Mostrando atallos de introdución de datos"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Mostrando atallos que abren aplicacións"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Mostrando atallos da aplicación actual"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Ver notificacións"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Facer captura de pantalla"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Mostrar atallos"</string>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 8379865..be5328b 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"બટન <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ઉપરની ઍરો કી"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"નીચેની ઍરો કી"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ડાબી ઍરો કી"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"જમણી ઍરો કી"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Center"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"નોટિફિકેશન"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"કીબોર્ડ શૉર્ટકટ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"કીબોર્ડ લેઆઉટ સ્વિચ કરો"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"અથવા"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"શોધ ક્વેરી સાફ કરો"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"શૉર્ટકટ"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"શૉર્ટકટ શોધો"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"કોઈ શૉર્ટકટ મળ્યો નથી"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ઇનપુટ"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ઍપ ખોલો"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"હાલની ઍપ"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"શોધ પરિણામો બતાવી રહ્યાં છીએ"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"સિસ્ટમના શૉર્ટકટ બતાવી રહ્યાં છીએ"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ઇનપુટ માટે શૉર્ટકટ બતાવી રહ્યાં છીએ"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ઍપ ખોલનારા શૉર્ટકટ બતાવી રહ્યાં છીએ"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"હાલની ઍપ માટે શૉર્ટકટ બતાવી રહ્યાં છીએ"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"નોટિફિકેશન જુઓ"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"સ્ક્રીનશૉટ લો"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"શૉર્ટકટ બતાવો"</string>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index ab01d2b..da72681 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"बटन <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"अप ऐरो"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"डाउन ऐरो"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"लेफ़्ट ऐरो"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"राइट ऐरो"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"मध्य तीर"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"सूचनाएं"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"कीबोर्ड शॉर्टकट"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"कीबोर्ड लेआउट बदलें"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"या"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"सर्च क्वेरी साफ़ करें"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"शॉर्टकट"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"शॉर्टकट खोजें"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"कोई शॉर्टकट नहीं मिला"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"इनपुट"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"खुले हुए ऐप्लिकेशन"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"मौजूदा ऐप्लिकेशन"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"खोज के नतीजे दिखाए जा रहे हैं"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"सिस्टम के शॉर्टकट दिखाए जा रहे हैं"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"इनपुट के लिए शॉर्टकट दिखाए जा रहे हैं"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ऐसे शॉर्टकट दिखाए जा रहे हैं जिनसे ऐप्लिकेशन खोले जा सकें"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"मौजूदा ऐप्लिकेशन के लिए शॉर्टकट दिखाए जा रहे हैं"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"सूचनाएं देखें"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"स्क्रीनशॉट लें"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"शॉर्टकट दिखाएं"</string>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 7584e8a..065bc28 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Tipka <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Početak"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Natrag"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Strelica prema gore"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Strelica prema dolje"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Strelica lijevo"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Strelica desno"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Sredina"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Razmaknica"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Obavijesti"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Tipkovni prečaci"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Promjena rasporeda tipkovnice"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ili"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Brisanje upita za pretraživanje"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Prečaci"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Pretražite prečace"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nema nijednog prečaca"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Unos"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Otvaranje aplikacija"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Trenutačna aplikacija"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Prikazuju se rezultati pretraživanja"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Prikazuju se prečaci sustava"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Prikazuju se prečaci za unos"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Prikazuju se prečaci koji otvaraju aplikacije"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Prikazuju se prečaci za trenutačnu aplikaciju"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Prikaži obavijesti"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Snimi zaslon"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Prikaži prečace"</string>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 85fe455..2a08e15 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> gomb"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Kezdőképernyő"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Vissza"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Felfelé nyíl"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Lefelé nyíl"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Balra nyíl"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Jobbra nyíl"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Középre"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Szóköz"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Értesítések"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Billentyűkódok"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Billentyűzetkiosztás váltása"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"vagy"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Keresőkifejezés törlése"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Billentyűparancsok"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Billentyűparancs keresése"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nincs billentyűparancs"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Bevitel"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Futó appok"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aktuális app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Keresési találatok megjelenítve"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Rendszer-billentyűparancsok megjelenítve"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Beviteli billentyűparancsok megjelenítve"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Alkalmazásokat megnyitó billentyűparancsok megjelenítve"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"A jelenlegi alkalmazáshoz tartozó billentyűparancsok megjelenítve"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Értesítések megtekintése"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Képernyőkép készítése"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Parancsikonok megjelenítése"</string>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index 5be6a87..5816264 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> կոճակ"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Գլխավոր էջ"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Հետ"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Վերև սլաք"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Ներքև սլաք"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Ձախ սլաք"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Աջ սլաք"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Կենտրոն"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Բացատ"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Ծանուցումներ"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Ստեղնային դյուրանցումներ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Դասավորության փոխարկում"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"կամ"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Մաքրել որոնման դաշտը"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Դյուրանցումներ"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Դյուրանցումների որոնում"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Դյուրանցումներ չեն գտնվել"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Ներածում"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Բաց հավելվածներ"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Այս հավելվածը"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Ցուցադրվում են որոնման արդյունքները"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Ցուցադրվում են համակարգի դյուրանցումները"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Ցուցադրվում են մուտքագրման դյուրանցումները"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Ցուցադրվում են հավելվածներ բացող դյուրանցումները"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Ցուցադրվում են ընթացիկ հավելվածի դյուրանցումները"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Դիտել ծանուցումները"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Սքրինշոթ անել"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Ցույց տալ դյուրանցումները"</string>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 8d372dc..428bd38 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Tombol <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Panah atas"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Panah bawah"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Panah kiri"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Panah kanan"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Center"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notifikasi"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Pintasan keyboard"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Ganti tata letak keyboard"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"atau"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Hapus kueri penelusuran"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Pintasan"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Pintasan penelusuran"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Tidak ditemukan pintasan"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Input"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Aplikasi yang terbuka"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aplikasi saat ini"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Menampilkan hasil penelusuran"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Menampilkan pintasan sistem"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Menampilkan pintasan input"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Menampilkan pintasan yang membuka aplikasi"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Menampilkan pintasan untuk aplikasi saat ini"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Lihat notifikasi"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Ambil screenshot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Tampilkan pintasan"</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index aad1e56..d4847e5 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Pulsante <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home page"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Indietro"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Freccia su"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Freccia giù"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Freccia sinistra"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Freccia destra"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Al centro"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Spazio"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notifiche"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Scorciatoie da tastiera"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Cambia layout della tastiera"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"oppure"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Cancella la query di ricerca"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Scorciatoie"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Cerca scorciatoie"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Scorciatoie non trovate"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Inserimento"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"App aperte"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"App corrente"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Visualizzazione dei risultati di ricerca"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Visualizzazione delle scorciatoie di sistema"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Visualizzazione delle scorciatoie degli ingressi"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Visualizzazione delle scorciatoie che aprono le app"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Visualizzazione delle scorciatoie per l\'app corrente"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Visualizza notifiche"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Acquisisci screenshot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Mostra scorciatoie"</string>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index c8a0a54..8e1fd1c 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> ボタン"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"戻る"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"上矢印"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"下矢印"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"左矢印"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"右矢印"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"中央"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"通知"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"キーボード ショートカット"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"キーボード レイアウトの切り替え"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"または"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"検索クエリをクリア"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ショートカット"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ショートカットの検索"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"ショートカットがありません"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"入力"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"開いているアプリ"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"現在のアプリ"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"検索結果を表示しています"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"システムのショートカットを表示しています"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"入力用のショートカットを表示しています"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"アプリを開くショートカットを表示しています"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"現在のアプリのショートカットを表示しています"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"お知らせを表示する"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"スクリーンショットを撮る"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"ショートカットを表示する"</string>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index 2831cf9..20eeb76 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> түймесі"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Артқа"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Жоғары бағыт пернесі"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Төмен бағыт пернесі"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Сол бағыт пернесі"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Оң бағыт пернесі"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Орталық"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Бос орын"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Хабарландырулар"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Перне тіркесімдері"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Пернетақта форматын ауыстыру"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"немесе"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Іздеу сұрауын өшіру"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Перне тіркесімдері"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Перне тіркесімдерін іздеу"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Перне тіркесімдері табылмады."</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Енгізу"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Ашылған қолданбалар"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Ағымдағы қолданба"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Іздеу нәтижелерін көрсетеді."</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Жүйе жылдам пәрмендерін көрсетеді."</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Енгізу жылдам пәрмендерін көрсетеді."</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Қолданбаларды ашатын жылдам пәрмендерді көрсетеді."</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Қазіргі қолданбаға арналған жылдам пәрмендер көрсетіледі."</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Хабарландыруларды көру"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Скриншот жасау"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Жылдам пәрмендерді көрсету"</string>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index aff6ef7..2167443 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"ប៊ូតុង <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ព្រួញឡើងលើ"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"ព្រួញចុះក្រោម"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ព្រួញទៅឆ្វេង"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ព្រួញទៅស្ដាំ"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Center"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"ការជូនដំណឹង"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"ផ្លូវកាត់ក្ដារចុច"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"ប្ដូរប្លង់ក្ដារចុច"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ឬ"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"សម្អាតសំណួរស្វែងរក"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ផ្លូវកាត់"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ស្វែងរកផ្លូវកាត់"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"រកផ្លូវកាត់មិនឃើញទេ"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"បញ្ចូល"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"កម្មវិធីដែលបើក"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"កម្មវិធីបច្ចុប្បន្ន"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"កំពុងបង្ហាញលទ្ធផលស្វែងរក"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"កំពុងបង្ហាញផ្លូវកាត់ប្រព័ន្ធ"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"កំពុងបង្ហាញផ្លូវកាត់បញ្ចូល"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"កំពុងបង្ហាញផ្លូវកាត់ដែលបើកកម្មវិធី"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"កំពុងបង្ហាញផ្លូវកាត់សម្រាប់កម្មវិធីបច្ចុប្បន្ន"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"មើលការជូនដំណឹង"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ថតរូបអេក្រង់"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"បង្ហាញផ្លូវកាត់"</string>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 5be72d8..1118a19 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> ಬಟನ್"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"ಹಿಂದೆ"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ಅಪ್ ಆ್ಯರೋ"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"ಡೌನ್ ಆ್ಯರೋ"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ಲೆಫ್ಟ್ ಆ್ಯರೋ"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ರೈಟ್ ಆ್ಯರೋ"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"ಮಧ್ಯ"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"ಸ್ಪೇಸ್"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"ನೋಟಿಫಿಕೇಶನ್ಗಳು"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್ಕಟ್ಗಳು"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"ಕೀಬೋರ್ಡ್ ಲೇಔಟ್ ಬದಲಾಯಿಸಿ"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ಅಥವಾ"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"ಹುಡುಕಾಟದ ಪ್ರಶ್ನೆಯನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ಶಾರ್ಟ್ಕಟ್ಗಳು"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಹುಡುಕಿ"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"ಯಾವುದೇ ಶಾರ್ಟ್ಕಟ್ಗಳಿಲ್ಲ"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ಇನ್ಪುಟ್"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ಆ್ಯಪ್ಗಳನ್ನು ತೆರೆಯಿರಿ"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"ಪ್ರಸ್ತುತ ಆ್ಯಪ್"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"ಸಿಸ್ಟಂ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ಇನ್ಪುಟ್ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ಆ್ಯಪ್ಗಳನ್ನು ತೆರೆಯುವ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"ಪ್ರಸ್ತುತ ಆ್ಯಪ್ಗಾಗಿ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ಸ್ಕ್ರೀನ್ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಿ"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ತೋರಿಸಿ"</string>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 71c0a35..0fa9266 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> 버튼"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"뒤로"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"위쪽 화살표"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"아래쪽 화살표"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"왼쪽 화살표"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"오른쪽 화살표"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"중앙"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"알림"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"단축키"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"키보드 레이아웃 전환"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"또는"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"검색어 삭제"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"단축키"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"단축키 검색"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"단축키 없음"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"입력"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"열린 앱"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"현재 앱"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"검색 결과 표시"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"시스템 바로가기 표시"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"입력 바로가기 표시"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"앱 열기 바로가기 표시"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"현재 앱 바로가기 표시"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"알림 보기"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"스크린샷 촬영"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"단축키 표시"</string>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index 6276160..06c0f99 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> баскычы"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Башкы бет"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Артка"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Өйдө жебе"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Ылдый жебе"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Солго жебе"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Оңго жебе"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Ортолотуу"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Боштук"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Билдирмелер"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Ыкчам баскычтар"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Баскычтоп калыбын которуштуруу"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"же"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Изделген суроону тазалоо"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Ыкчам баскычтар"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Ыкчам баскычтарды издөө"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Ыкчам баскычтар жок"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Киргизүү"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Ачык колдон-лор"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Учурдагы кол-мо"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Табылган нерселер көрсөтүлүүдө"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Тутумдун ыкчам баскычтары көрсөтүлүүдө"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Киргизүү үчүн ыкчам баскычтар көрсөтүлүүдө"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Колдонмолорду ачкан ыкчам баскычтар көрсөтүлүүдө"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Учурдагы колдонмонун ыкчам баскычтары көрсөтүлүүдө"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Билдирмелерди көрүү"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Скриншот тартуу"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Ыкчам баскычтарды көрсөтүү"</string>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index 5da52a5..f88de0c 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"ປຸ່ມ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"ກັບຄືນ"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ລູກສອນຂຶ້ນ"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"ລູກສອນລົງ"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ລູກສອນຊ້າຍ"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ລູກສອນຂວາ"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"ເຄິ່ງກາງ"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"ການແຈ້ງເຕືອນ"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"ປຸ່ມລັດແປ້ນພິມ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"ສະຫຼັບແປ້ນພິມ"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ຫຼື"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"ລຶບລ້າງຄຳຊອກຫາ"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ທາງລັດ"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ທາງລັດການຊອກຫາ"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"ບໍ່ພົບທາງລັດ"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ການປ້ອນຂໍ້ມູນ"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ແອັບທີ່ເປີດຢູ່"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"ແອັບປັດຈຸບັນ"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"ສະແດງຜົນການຊອກຫາ"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"ສະແດງທາງລັດລະບົບ"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ສະແດງທາງລັດອິນພຸດ"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ສະແດງທາງລັດທີ່ເປີດແອັບ"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"ສະແດງທາງລັດສຳລັບແອັບປັດຈຸບັນ"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"ເບິ່ງການແຈ້ງເຕືອນ"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ຖ່າຍຮູບໜ້າຈໍ"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"ສະແດງທາງລັດ"</string>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 34c06bd..de8756c 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Mygtukas <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Pagrindinis"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Atgal"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Rodyklė aukštyn"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Rodyklė žemyn"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Rodyklė kairėn"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Rodyklė dešinėn"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centras"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Tarpas"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Pranešimai"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Spartieji klavišai"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Perjungti klaviat. išdėstymą"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"arba"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Išvalyti paieškos užklausą"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Spartieji klavišai"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Ieškoti sparčiųjų klavišų"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Sparčiųjų klavišų nerasta"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Įvestis"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Atidar. progr."</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Esama programa"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Rodomi paieškos rezultatai"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Rodomi sistemos spartieji klavišai"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Rodomi įvesties spartieji klavišai"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Rodomi programas atidarantys spartieji klavišai"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Rodomi dabartinės programos spartieji klavišai"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Peržiūrėti pranešimus"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Padaryti ekrano kopiją"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Rodyti sparčiuosius klavišus"</string>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 66933bc..2584230 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Poga <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Sākumvietas taustiņš"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Atpakaļ"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Augšupvērstā bultiņa"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Lejupvērstā bultiņa"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Kreisā bultiņa"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Labā bultiņa"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centrā"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Atstarpe"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Paziņojumi"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Īsinājumtaustiņi"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Mainīt tastatūras izkārtojumu"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"vai"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Notīrīt meklēšanas vaicājumu"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Īsinājumtaustiņi"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Meklēt īsinājumtaustiņus"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nav atrasti"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Ievade"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Atvērtās"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Pašreizējā"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Tiek rādīti meklēšanas rezultāti"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Tiek rādīti sistēmas īsinājumtaustiņi"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Tiek rādīti ievades īsinājumtaustiņi"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Tiek rādīti īsinājumtaustiņi lietotņu atvēršanai"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Tiek rādīti īsinājumtaustiņi pašreizējai lietotnei"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Skatīt paziņojumus"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Izveidot ekrānuzņēmumu"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Rādīt īsinājumtaustiņus"</string>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index 44f6e0c..f0036b8 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Копче <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home-копче"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Назад"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Стрелка нагоре"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Стрелка надолу"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Стрелка налево"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Стрелка надесно"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Центар"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Известувања"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Кратенки на тастатурата"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Промени јазик на тастатура"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"или"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Бришење поим за пребарување"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Кратенки"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Пребарувајте кратенки"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Не се пронајдени кратенки"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Внесување"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Отворени аплик."</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Тековна аплик."</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Се прикажуваат резултати од пребарувањето"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Се прикажуваат системски кратенки"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Се прикажуваат кратенки за внесување"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Се прикажуваат кратенки за отворање апликации"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Се прикажуваат кратенки за тековната апликација"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Прегледајте ги известувањата"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Направете слика од екранот"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Прикажи кратенки"</string>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 4644fa5..dadf2ce3 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"ബട്ടൺ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"ഹോം"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"ബാക്ക്"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"മുകളിലേക്കുള്ള അമ്പടയാളം"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"താഴേക്കുള്ള അമ്പടയാളം"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ഇടത് അമ്പടയാളം"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"വലത് അമ്പടയാളം"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"മധ്യം"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"TAB"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"സ്പെയ്സ്"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"അറിയിപ്പുകൾ"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"കീബോർഡ് കുറുക്കുവഴികൾ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"കീബോർഡ് ലേഔട്ട് മാറുക"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"അല്ലെങ്കിൽ"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"തിരയൽ ചോദ്യം മായ്ക്കുക"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"കുറുക്കുവഴികൾ"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"കുറുക്കുവഴികൾ തിരയുക"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"കുറുക്കുവഴി കണ്ടെത്തിയില്ല"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ഇൻപുട്ട്"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"തുറന്ന ആപ്പുകൾ"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"നിലവിലെ ആപ്പ്"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"തിരയൽ ഫലങ്ങൾ കാണിക്കുന്നു"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"സിസ്റ്റം കുറുക്കുവഴികൾ കാണിക്കുന്നു"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ഇൻപുട്ട് കുറുക്കുവഴികൾ കാണിക്കുന്നു"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ആപ്പുകൾ തുറക്കുന്ന കുറുക്കുവഴികൾ കാണിക്കുന്നു"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"നിലവിലെ ആപ്പിനുള്ള കുറുക്കുവഴികൾ കാണിക്കുന്നു"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"അറിയിപ്പുകൾ കാണുക"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"സ്ക്രീൻഷോട്ട് എടുക്കുക"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"കുറുക്കുവഴികൾ കാണിക്കുക"</string>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 217eeb1..9c73642c 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> товчлуур"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Нүүр хуудас"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Буцах"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Дээш сум"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Доош сум"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Зүүн сум"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Баруун сум"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Гол хэсэг"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Зай"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Мэдэгдэл"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Гарын товчлол"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Гарын бүдүүвч рүү сэлгэх"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"эсвэл"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Хайлтын асуулгыг арилгах"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Товчлолууд"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Товчлолууд хайх"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Ямар ч товчлол олдсонгүй"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Оролт"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Нээлттэй аппууд"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Одоогийн апп"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Хайлтын илэрцүүдийг харуулж байна"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Системийн товчлолуудыг харуулж байна"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Оролтын товчлолуудыг харуулж байна"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Аппуудыг нээдэг товчлолуудыг харуулж байна"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Одоогийн аппад товчлолууд харуулж байна"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Мэдэгдлийг харах"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Дэлгэцийн агшныг авах"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Товчлол харуулах"</string>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index f768881..27f1b8c 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"बटण <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"परत"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"अप अॅरो"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"डाउन अॅरो"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"लेफ्ट अॅरो"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"राइट अॅरो"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"मध्यवर्ती"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"सूचना"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"कीबोर्ड शॉर्टकट"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"कीबोर्ड लेआउट स्विच करा"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"किंवा"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"शोध क्वेरी साफ करा"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"शॉर्टकट"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"शॉर्टकट शोधा"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"एकही शॉर्टकट आढळला नाहीत"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"इनपुट"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ॲप्स उघडा"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"सध्याचे अॅप"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"शोध परिणाम दाखवत आहे"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"सिस्टीम शॉर्टकट दाखवत आहे"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"इनपुट शॉर्टकट दाखवत आहे"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ॲप्स उघडणारे शॉर्टकट दाखवत आहे"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"सद्य अॅपसाठी शॉर्टकट दाखवत आहे"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"सूचना पहा"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"स्क्रीनशॉट घ्या"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"शॉर्टकट दाखवा"</string>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index db53890..704cd66 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Butang <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Skrin Utama"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Kembali"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Anak panah ke atas"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Anak panah ke bawah"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Anak panah ke kiri"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Anak panah ke kanan"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Tengah"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Pemberitahuan"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Pintasan Papan Kekunci"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Tukar reka letak papan kekunci"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"atau"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Kosongkan pertanyaan carian"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Pintasan"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Cari pintasan"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Tiada pintasan ditemukan"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Input"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Apl yang dibuka"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Apl semasa"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Memaparkan hasil carian"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Memaparkan pintasan sistem"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Memaparkan pintasan input"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Memaparkan pintasan yang membuka apl"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Memaparkan pintasan untuk apl semasa"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Lihat pemberitahuan"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Ambil tangkapan skrin"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Tunjukkan pintasan"</string>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index 6221ca1..3331659 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"ခလုတ် <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"ပင်မ"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"နောက်သို့"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"အပေါ်ညွှန်မြား"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"အောက်ညွှန်မြား"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ဘယ်ညွှန်မြား"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ညာညွှန်မြား"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"ဌာန"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"အကြောင်းကြားချက်များ"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"ကီးဘုတ် ဖြတ်လမ်းများ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"ကီးဘုတ်အပြင်အဆင် ပြောင်းခြင်း"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"သို့မဟုတ်"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"ရှာဖွေစာလုံး ရှင်းထုတ်ရန်"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ဖြတ်လမ်းလင့်ခ်များ"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ဖြတ်လမ်းလင့်ခ်များ ရှာပါ"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"ဖြတ်လမ်းလင့်ခ် မတွေ့ပါ"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"စာရိုက်ခြင်း"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ဖွင့်ထားသောအက်ပ်"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"လက်ရှိအက်ပ်"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"ရှာဖွေမှုရလဒ်များ ပြထားသည်"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"စနစ်ဖြတ်လမ်းလင့်ခ်များ ပြထားသည်"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ထည့်သွင်းသည့် ဖြတ်လမ်းလင့်ခ်များ ပြထားသည်"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"အက်ပ်ဖွင့်သည့် ဖြတ်လမ်းလင့်ခ်များ ပြထားသည်"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"လက်ရှိအက်ပ်အတွက် ဖြတ်လမ်းလင့်ခ်များ ပြထားသည်"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"အကြောင်းကြားချက်များ ကြည့်ရန်"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ဖန်သားပြင်ဓာတ်ပုံ ရိုက်ရန်"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"ဖြတ်လမ်းလင့်ခ်များ ပြပါ"</string>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 9fc3625..e076102 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g>-knappen"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Startskjerm"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Tilbake"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Oppoverpil"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Nedoverpil"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Venstrepil"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Høyrepil"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Midttasten"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Mellomrom"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Varsler"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Hurtigtaster"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Bytt tastaturoppsett"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"eller"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Fjern søket"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Hurtigtaster"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Søk etter hurtigtaster"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Fant ingen hurtigtaster"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Inndata"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Åpne apper"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aktiv app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Viser søkeresultater"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Viser systemsnarveier"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Viser inndatasnarveier"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Viser snarveier som åpner apper"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Viser snarveier for den gjeldende appen"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Se varsler"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Ta skjermdump"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Vis snarveier"</string>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index 79cb703..1a0eacb 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> बटन"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"पछाडि"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"अप एरो"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"डाउन एरो"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"लेफ्ट एरो"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"राइट एरो"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"केन्द्र"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"स्पेस"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"सूचनाहरू"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"किबोर्ड सर्टकटहरू"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"किबोर्डको लेआउट बदल्नुहोस्"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"वा"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"किवर्ड हटाउनुहोस्"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"सर्टकटहरू"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"सर्टकटहरू खोज्नुहोस्"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"कुनै पनि सर्टकट भेटिएन"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"इनपुट"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"खोलिएका एपहरू"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"हालको एप"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"खोज परिणामहरू देखाइँदै छ"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"सिस्टमका सर्टकटहरू देखाइँदै छ"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"इनपुट गर्ने सर्टकटहरू देखाइँदै छ"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"एपहरू खोल्ने सर्टकटहरू देखाइँदै छ"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"हालको एपका लागि सर्टकटहरू देखाइँदै छ"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"सूचनाहरू हेर्नुहोस्"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"स्क्रिनसट खिच्नुहोस्"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"सर्टकटहरू देखाइऊन्"</string>
diff --git a/packages/SystemUI/res/values-night/colors.xml b/packages/SystemUI/res/values-night/colors.xml
index bcc3c83..a22fd18 100644
--- a/packages/SystemUI/res/values-night/colors.xml
+++ b/packages/SystemUI/res/values-night/colors.xml
@@ -93,6 +93,9 @@
<color name="qs_user_switcher_selected_avatar_icon_color">#202124</color>
<!-- Color of background circle of user avatars in quick settings user switcher -->
<color name="qs_user_switcher_avatar_background">#3C4043</color>
+ <!-- Color of border for keyguard password input when focused -->
+ <color name="bouncer_password_focus_color">@*android:color/system_secondary_dark</color>
+
<!-- Accessibility floating menu -->
<color name="accessibility_floating_menu_background">#B3000000</color> <!-- 70% -->
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 60ddb89..8754473 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Knop <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Terug"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Pijl-omhoog"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Pijl-omlaag"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Pijl-links"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Pijl-rechts"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Midden"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Spatiebalk"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Meldingen"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Sneltoetsen"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Toetsenbordindeling wisselen"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"of"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Zoekopdracht wissen"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Sneltoetsen"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Sneltoetsen zoeken"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Geen sneltoetsen gevonden"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Invoer"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Apps openen"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Huidige app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Zoekresultaten tonen"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Systeemsnelkoppelingen tonen"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Invoersnelkoppelingen tonen"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Snelkoppelingen tonen die apps openen"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Snelkoppelingen voor de huidige app tonen"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Meldingen bekijken"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Screenshot maken"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Snelkoppelingen tonen"</string>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index e02a5a7..8914d95 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"ବଟନ୍ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"ହୋମ"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"ଫେରନ୍ତୁ"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ଅପ ତୀର କୀ"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"ଡାଉନ ଆରୋ"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ବାମ ତୀର କୀ"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ଡାହାଣ ତୀର କୀ"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"କେନ୍ଦ୍ର"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"ସ୍ପେସ୍"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"ବିଜ୍ଞପ୍ତି"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"କୀବୋର୍ଡ ସର୍ଟକଟ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"କୀ\'ବୋର୍ଡ୍ର ଲେଆଉଟ୍କୁ ବଦଳାନ୍ତୁ"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"କିମ୍ବା"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"ସର୍ଚ୍ଚ କ୍ୱେରୀକୁ ଖାଲି କରନ୍ତୁ"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ସର୍ଟକଟଗୁଡ଼ିକ"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ସର୍ଟକଟ ସର୍ଚ୍ଚ କରନ୍ତୁ"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"କୌଣସି ସର୍ଟକଟ ମିଳିଲା ନାହିଁ"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ଇନପୁଟ କରନ୍ତୁ"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ଆପ୍ସ ଖୋଲନ୍ତୁ"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"ବର୍ତ୍ତମାନର ଆପ"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"ସର୍ଚ୍ଚ ଫଳାଫଳ ଦେଖାଯାଉଛି"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"ସିଷ୍ଟମ ସର୍ଟକଟ ଦେଖାଯାଉଛି"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ଇନପୁଟ ସର୍ଟକଟ ଦେଖାଯାଉଛି"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ଆପ୍ସକୁ ଖୋଲୁଥିବା ସର୍ଟକଟ ଦେଖାଯାଉଛି"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"ବର୍ତ୍ତମାନର ଆପ ପାଇଁ ସର୍ଟକଟ ଦେଖାଯାଉଛି"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଭ୍ୟୁ କରନ୍ତୁ"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ସ୍କ୍ରିନସଟ ନିଅନ୍ତୁ"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"ସର୍ଟକଟଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"</string>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index 4ab6e8be..e450b2d 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"ਬਟਨ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ਉੱਪਰ ਤੀਰ"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"ਹੇਠਾਂ ਤੀਰ"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ਖੱਬਾ ਤੀਰ"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ਸੱਜਾ ਤੀਰ"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Center"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"ਸੂਚਨਾਵਾਂ"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"ਕੀ-ਬੋਰਡ ਖਾਕਾ ਬਦਲੋ"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ਜਾਂ"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"ਖੋਜ ਪੁੱਛਗਿੱਛ ਕਲੀਅਰ ਕਰੋ"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ਸ਼ਾਰਟਕੱਟ"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਖੋਜੋ"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"ਕੋਈ ਸ਼ਾਰਟਕੱਟ ਨਹੀਂ ਮਿਲਿਆ"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ਇਨਪੁੱਟ"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ਐਪਾਂ ਖੋਲ੍ਹੋ"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"ਮੌਜੂਦਾ ਐਪ"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"ਖੋਜ ਨਤੀਜੇ ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"ਸਿਸਟਮ ਸ਼ਾਰਟਕੱਟ ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ਇਨਪੁੱਟ ਸ਼ਾਰਟਕੱਟ ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹਣ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟ ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"ਮੌਜੂਦਾ ਐਪ ਦੇ ਸ਼ਾਰਟਕੱਟ ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"ਸੂਚਨਾਵਾਂ ਦੇਖੋ"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਓ"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"ਸ਼ਾਰਟਕੱਟ ਦਿਖਾਓ"</string>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 3647bd4..2d064fa 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Przycisk <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Wstecz"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Strzałka w górę"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Strzałka w dół"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Strzałka w lewo"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Strzałka w prawo"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Do środka"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Spacja"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Powiadomienia"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Skróty klawiszowe"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Przełącz układ klawiatury"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"lub"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Wyczyść wyszukiwanie hasło"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Skróty"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Wyszukiwanie skrótów"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nie znaleziono skrótów"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Wprowadzanie"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Otwieranie aplikacji"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Bieżąca aplikacja"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Pokazuję wyniki wyszukiwania"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Pokazuję skróty systemowe"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Pokazuję skróty dotyczące danych wejściowych"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Pokazuję skróty otwierające aplikacje"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Pokazuję skróty dotyczące bieżącej aplikacji"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Wyświetlanie powiadomień"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Robienie zrzutu ekranu"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Pokazywanie skrótów"</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 329f40a..320c6b2 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -133,7 +133,7 @@
<string name="accessibility_phone_button" msgid="4256353121703100427">"Telefone"</string>
<string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Assistência de voz"</string>
<string name="accessibility_wallet_button" msgid="1458258783460555507">"Carteira"</string>
- <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Leitor de código QR"</string>
+ <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Leitor de QR code"</string>
<string name="accessibility_unlock_button" msgid="3613812140816244310">"Desbloqueado"</string>
<string name="accessibility_lock_icon" msgid="661492842417875775">"Dispositivo bloqueado"</string>
<string name="accessibility_scanning_face" msgid="3093828357921541387">"Verificando rosto"</string>
@@ -568,7 +568,7 @@
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para usar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Ocorreu um problema ao carregar os cards. Tente novamente mais tarde"</string>
<string name="wallet_lockscreen_settings_label" msgid="3539105300870383570">"Configurações de tela de bloqueio"</string>
- <string name="qr_code_scanner_title" msgid="1938155688725760702">"Leitor de código QR"</string>
+ <string name="qr_code_scanner_title" msgid="1938155688725760702">"Leitor de QR code"</string>
<string name="qr_code_scanner_updating_secondary_label" msgid="8344598017007876352">"Atualizando"</string>
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabalho"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo avião"</string>
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Botão <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Voltar"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Seta para cima"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Seta para baixo"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Seta para a esquerda"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Seta para a direita"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centralizar"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notificações"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Atalhos do teclado"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Alterar layout do teclado"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ou"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Limpar a consulta de pesquisa"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Atalhos"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Atalhos de pesquisa"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nenhum atalho encontrado"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Entrada"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Apps abertos"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"App atual"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Mostrando resultados da pesquisa"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Mostrando atalhos do sistema"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Mostrando atalhos de entrada"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Mostrando atalhos que abrem apps"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Mostrando atalhos do app atual"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Mostrar as notificações"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Fazer uma captura de tela"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Mostrar atalhos"</string>
@@ -1043,7 +1032,7 @@
<string name="media_output_first_broadcast_title" msgid="6292237789860753022">"Como funciona a transmissão"</string>
<string name="media_output_broadcast" msgid="3555580945878071543">"Transmitir"</string>
<string name="media_output_first_notify_broadcast_message" msgid="6353857724136398494">"As pessoas próximas a você com dispositivos Bluetooth compatíveis podem ouvir a mídia que você está transmitindo"</string>
- <string name="media_output_broadcasting_message" msgid="4150299923404886073">"As pessoas próximas com dispositivos Bluetooth compatíveis podem ler seu código QR ou usar o nome da transmissão e a senha para ouvir a transmissão."</string>
+ <string name="media_output_broadcasting_message" msgid="4150299923404886073">"As pessoas próximas com dispositivos Bluetooth compatíveis podem ler seu QR code ou usar o nome da transmissão e a senha para ouvir a transmissão."</string>
<string name="media_output_broadcast_name" msgid="8786127091542624618">"Nome da transmissão"</string>
<string name="media_output_broadcast_code" msgid="870795639644728542">"Senha"</string>
<string name="media_output_broadcast_dialog_save" msgid="7910865591430010198">"Salvar"</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 329f40a..320c6b2 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -133,7 +133,7 @@
<string name="accessibility_phone_button" msgid="4256353121703100427">"Telefone"</string>
<string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Assistência de voz"</string>
<string name="accessibility_wallet_button" msgid="1458258783460555507">"Carteira"</string>
- <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Leitor de código QR"</string>
+ <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Leitor de QR code"</string>
<string name="accessibility_unlock_button" msgid="3613812140816244310">"Desbloqueado"</string>
<string name="accessibility_lock_icon" msgid="661492842417875775">"Dispositivo bloqueado"</string>
<string name="accessibility_scanning_face" msgid="3093828357921541387">"Verificando rosto"</string>
@@ -568,7 +568,7 @@
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para usar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Ocorreu um problema ao carregar os cards. Tente novamente mais tarde"</string>
<string name="wallet_lockscreen_settings_label" msgid="3539105300870383570">"Configurações de tela de bloqueio"</string>
- <string name="qr_code_scanner_title" msgid="1938155688725760702">"Leitor de código QR"</string>
+ <string name="qr_code_scanner_title" msgid="1938155688725760702">"Leitor de QR code"</string>
<string name="qr_code_scanner_updating_secondary_label" msgid="8344598017007876352">"Atualizando"</string>
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabalho"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo avião"</string>
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Botão <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Voltar"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Seta para cima"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Seta para baixo"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Seta para a esquerda"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Seta para a direita"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centralizar"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notificações"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Atalhos do teclado"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Alterar layout do teclado"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ou"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Limpar a consulta de pesquisa"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Atalhos"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Atalhos de pesquisa"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nenhum atalho encontrado"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Entrada"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Apps abertos"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"App atual"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Mostrando resultados da pesquisa"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Mostrando atalhos do sistema"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Mostrando atalhos de entrada"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Mostrando atalhos que abrem apps"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Mostrando atalhos do app atual"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Mostrar as notificações"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Fazer uma captura de tela"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Mostrar atalhos"</string>
@@ -1043,7 +1032,7 @@
<string name="media_output_first_broadcast_title" msgid="6292237789860753022">"Como funciona a transmissão"</string>
<string name="media_output_broadcast" msgid="3555580945878071543">"Transmitir"</string>
<string name="media_output_first_notify_broadcast_message" msgid="6353857724136398494">"As pessoas próximas a você com dispositivos Bluetooth compatíveis podem ouvir a mídia que você está transmitindo"</string>
- <string name="media_output_broadcasting_message" msgid="4150299923404886073">"As pessoas próximas com dispositivos Bluetooth compatíveis podem ler seu código QR ou usar o nome da transmissão e a senha para ouvir a transmissão."</string>
+ <string name="media_output_broadcasting_message" msgid="4150299923404886073">"As pessoas próximas com dispositivos Bluetooth compatíveis podem ler seu QR code ou usar o nome da transmissão e a senha para ouvir a transmissão."</string>
<string name="media_output_broadcast_name" msgid="8786127091542624618">"Nome da transmissão"</string>
<string name="media_output_broadcast_code" msgid="870795639644728542">"Senha"</string>
<string name="media_output_broadcast_dialog_save" msgid="7910865591430010198">"Salvar"</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index ee3945d..5ea8f36 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Кнопка <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Главный экран"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Назад"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Стрелка вверх"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Стрелка вниз"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Стрелка влево"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Стрелка вправо"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Центральная стрелка"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Пробел"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Уведомления"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Быстрые клавиши"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Переключение раскладки"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"или"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Удалить поисковый запрос"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Сочетания клавиш"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Поиск сочетаний клавиш"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Нет сочетаний клавиш."</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Ввод"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Запущенные приложения"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Это приложение"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Показаны результаты поиска"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Показаны системные сочетания клавиш"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Показаны сочетания клавиш, связанные с вводом"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Показаны сочетания клавиш для открытия приложений"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Показаны сочетания клавиш для текущего приложения"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Посмотреть уведомления"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Сделать скриншот"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Показать сочетания клавиш"</string>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index e03c7c0..afd7208 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> බොත්තම"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home යතුර"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"ආපසු"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ඉහළ ඊතලය"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"පහළ ඊතලය"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"වම් ඊතලය"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"දකුණු ඊතලය"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"මැද"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"ඉඩ යතුර"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"දැනුම්දීම්"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"යතුරු පුවරු කෙටිමං"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"යතුරුපුවරු පිරිසැලසුම මාරු කරන්න"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"හෝ"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"සෙවීම් විමසුම හිස් කරන්න"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"කෙටිමං"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"කෙටිමං සොයන්න"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"කෙටිමං හමු නොවුණි"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ආදානය"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"විවෘත යෙදුම්"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"වත්මන් යෙදුම"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"සෙවීම් ප්රතිඵල පෙන්වමින්"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"පද්ධති කෙටිමං පෙන්වමින්"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ආදාන කෙටිමං පෙන්වමින්"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"යෙදුම් විවෘත කරන කෙටිමං පෙන්වමින්"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"වත්මන් යෙදුම සඳහා කෙටිමං පෙන්වමින්"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"දැනුම්දීම් බලන්න"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"තිර රුව ගන්න"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"කෙටිමං පෙන්වන්න"</string>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index ca49d66..6019e18 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Tlačidlo <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Domov"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Späť"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Šípka nahor"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Šípka nadol"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Šípka doľava"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Šípka doprava"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Do stredu"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Medzerník"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Upozornenia"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Klávesové skratky"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Prepnúť rozloženie klávesnice"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"alebo"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Vymazať vyhľadávací dopyt"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Skratky"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Hľadajte skratky"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nenašli sa žiadne skratky"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Vstup"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Otvorenie apl."</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aktuálna aplik."</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Zobrazujú sa výsledky vyhľadávania"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Zobrazujú sa skratky systému"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Zobrazujú sa skratky vstupu"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Zobrazujú sa skratky na otvorenie aplikácií"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Zobrazujú sa skratky aktuálnej aplikácie"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Zobrazenie upozornení"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Vytvorenie snímky obrazovky"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Zobrazenie skratiek"</string>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index c779b65..80ce4ec 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Butoni <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Kreu"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Prapa"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Shigjeta lart"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Shigjeta poshtë"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Shigjeta majtas"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Shigjeta djathtas"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Qendror"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Hapësirë"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Njoftimet"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Shkurtoret e tastierës"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Ndërro strukturën e tastierës"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"ose"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Pastro pyetjen e kërkimit"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Shkurtoret"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Kërko shkurtoret"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Nuk u gjet shkurtore"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Hyrja"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Apl. e hapura"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Apl. aktual"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Po shfaqen rezultatet e kërkimit"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Po shfaqen shkurtoret e sistemit"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Po shfaqen shkurtoret e hyrjes"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Po shfaqen shkurtoret që hapin aplikacionet"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Po shfaqen shkurtoret për aplikacionin aktual"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Shiko njoftimet"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Nxirr një pamje ekrani"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Shfaq shkurtoret"</string>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 48673b9..a6d00ba 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Дугме <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Тастер Почетна"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Тастер Назад"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Стрелица нагоре"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Стрелица надоле"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Стрелица налево"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Стрелица надесно"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Тастер са централном стрелицом"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Размак"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Обавештења"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Тастерске пречице"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Промени распоред тастатуре"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"или"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Обриши упит за претрагу"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Пречице"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Претражите пречице"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Нису пронађене пречице"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Унос"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Отварање аплик"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Актуелна аплик"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Приказују се резултати претраге"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Приказују се системске пречице"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Приказују се пречице за уметање"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Приказују се пречице за отварање апликација"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Приказују се пречице за актуелну апликацију"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Прикажи обавештења"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Направи снимак екрана"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Прикажи пречице"</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 0b2cab0..6b6fa6a 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Knappen <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Start"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Tillbaka"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Uppåtpil"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Nedåtpil"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Vänsterpil"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Högerpil"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centrera"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Blanksteg"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Aviseringar"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Kortkommandon"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Byt tangentbordslayout"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"eller"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Rensa sökfråga"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Kortkommandon"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Sök efter kortkommando"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Inga resultat"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Inmatning"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Öppna appar"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Aktuell app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Visar sökresultat"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Visar genvägar för systemet"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Visar genvägar för indata"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Visar genvägar som öppnar appar"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Visar genvägar för den aktuella appen"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Se aviseringar"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Ta skärmbild"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Se genvägar"</string>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index 7989a35..f247da5 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> பட்டன்"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"ஹோம்"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"பேக்"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"மேல்நோக்கிய அம்புக்குறி"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"கீழ்நோக்கிய அம்புக்குறி"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"இடது அம்புக்குறி"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"வலது அம்புக்குறி"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"நடு"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"ஸ்பேஸ்"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"அறிவிப்புகள்"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"கீபோர்டு ஷார்ட்கட்கள்"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"கீபோர்டு லே அவுட்டை மாற்று"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"அல்லது"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"தேடல் வினவலை அழிக்கும்"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"ஷார்ட்கட்கள்"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ஷார்ட்கட்களைத் தேடுக"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"ஷார்ட்கட்கள் எதுவுமில்லை"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"உள்ளீடு"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"திறந்த ஆப்ஸ்"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"தற்போதைய ஆப்ஸ்"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"தேடல் முடிவுகளைக் காட்டுகிறது"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"சிஸ்டம் ஷார்ட்கட்களைக் காட்டுகிறது"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"உள்ளிடுவதற்கான ஷார்ட்கட்களைக் காட்டுகிறது"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ஆப்ஸைத் திறப்பதற்கான ஷார்ட்கட்களைக் காட்டுகிறது"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"தற்போது உபயோகத்தில் இருக்கும் ஆப்ஸுக்கான ஷார்ட்கட்களைக் காட்டுகிறது"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"அறிவிப்புகளைக் காட்டுதல்"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ஸ்கிரீன்ஷாட் எடுத்தல்"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"ஷார்ட்கட்களைக் காட்டுதல்"</string>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 6b2c032..cdc57c8 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"బటన్ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"వెనుకకు"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"పై వైపు బాణం"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"కింది వైపు బాణం"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ఎడమ వైపు బాణం"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"కుడి వైపు బాణం"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"మధ్య"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"అంతరం"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"నోటిఫికేషన్లు"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"కీబోర్డ్ షార్ట్కట్లు"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"కీబోర్డ్ లేఅవుట్ను మార్చండి"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"లేదా"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"సెర్చ్ క్వెరీని క్లియర్ చేయండి"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"షార్ట్కట్లు"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"షార్ట్కట్స్ సెర్చ్ చేయండి"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"షార్ట్కట్లు ఏవీ లేవు"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ఇన్పుట్"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"యాప్స్ తెరవండి"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"ప్రస్తుత యాప్"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"సెర్చ్ ఫలితాలను చూపుతోంది"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"సిస్టమ్ షార్ట్కట్లను చూపుతోంది"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ఇన్పుట్ షార్ట్కట్లను చూపుతోంది"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"యాప్లను తెరిచే షార్ట్కట్లను చూపుతోంది"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"ప్రస్తుత యాప్ కోసం షార్ట్కట్లను చూపుతోంది"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"నోటిఫికేషన్లను చూడండి"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"స్క్రీన్షాట్ను తీయండి"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"షార్ట్కట్లను చూపించండి"</string>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 3c5396f..945563b 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"ปุ่ม <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"กลับ"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"ลูกศรขึ้น"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"ลูกศรลง"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"ลูกศรซ้าย"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"ลูกศรขวา"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"กึ่งกลาง"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"วรรค"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"การแจ้งเตือน"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"แป้นพิมพ์ลัด"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"สลับรูปแบบแป้นพิมพ์"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"หรือ"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"ล้างคำค้นหา"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"แป้นพิมพ์ลัด"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"ค้นหาแป้นพิมพ์ลัด"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"ไม่พบแป้นพิมพ์ลัด"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"อินพุต"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"แอปที่เปิดอยู่"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"แอปปัจจุบัน"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"แสดงผลการค้นหา"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"แสดงแป้นพิมพ์ลัดสำหรับระบบ"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"แสดงแป้นพิมพ์ลัดสำหรับอินพุต"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"แสดงแป้นพิมพ์ลัดที่เปิดแอป"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"แสดงแป้นพิมพ์ลัดสำหรับแอปปัจจุบัน"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"ดูการแจ้งเตือน"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"ถ่ายภาพหน้าจอ"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"แสดงแป้นพิมพ์ลัด"</string>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 21111a4..c251ae8 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Button na <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Back"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Pataas na arrow"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Pababang arrow"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Pakaliwang arrow"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Pakanang arrow"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Center"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Mga Notification"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Mga Keyboard Shortcut"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Magpalit ng layout ng keyboard"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"o"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"I-clear ang query sa paghahanap"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Mga Shortcut"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Maghanap ng mga shortcut"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Walang nakitang shortcut"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Input"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Buksan ang app"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Kasalukuyang app"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Ipinapakita ang mga resulta ng paghahanap"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Ipinapakita ang mga shortcut ng system"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Ipinapakita ang mga shortcut ng input"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Ipinapakita ang mga shortcut na nagbubukas ng mga app"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Ipinapakita ang mga shortcut para sa kasalukuyang app"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Tumingin ng mga notification"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Kumuha ng screenshot"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Ipakita ang mga shortcut"</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 08b0251..f56b331 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> düğmesi"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Geri"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Yukarı ok"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Aşağı ok"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Sol ok"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Sağ ok"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Orta"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Boşluk"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Bildirimler"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Klavye Kısayolları"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Klavye düzenini değiştir"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"veya"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Arama sorgusunu temizle"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Kısayollar"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Kısayol araması yapın"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Kısayol bulunamadı"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Giriş"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Uygulamaları açma"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Mevcut uygulama"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Arama sonuçları gösteriliyor"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Sistem kısayolları gösteriliyor"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Giriş kısayolları gösteriliyor"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Uygulamaları açan kısayollar gösteriliyor"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Mevcut uygulamanın kısayolları gösteriliyor"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Bildirimleri görüntüle"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Ekran görüntüsü al"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Kısayolları göster"</string>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 9048b63..2ea2326 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Кнопка <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Назад"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Стрілка вгору"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Стрілка вниз"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Стрілка вліво"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Стрілка вправо"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Центр"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Пробіл"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Сповіщення"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Комбінації клавіш"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Змінити розкладку клавіатури"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"або"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Очистити пошуковий запит"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Швидкі команди"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Пошук швидких команд"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Швидк. команд не знайдено"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Метод введення"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Відкр. додатки"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Поточн. додаток"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Показано результати пошуку"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Показано комбінації клавіш для системних дій"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Показано комбінації клавіш для введення даних"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Показано комбінації клавіш, які відкривають додатки"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Показано комбінації клавіш для поточного додатка"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Переглянути сповіщення"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Зробити знімок екрана"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Показати комбінації клавіш"</string>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index d9bb0ae..6fb08c4 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"بٹن <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"پیچھے"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"اوپر تیر کا نشان"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"نیچے تیر کا نشان"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"بایاں تیر"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"دایاں تیر"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"سینٹر"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Space"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"اطلاعات"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"کی بورڈ شارٹ کٹس"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"کی بورڈ لے آؤٹ سوئچ کریں"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"یا"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"تلاش کا استفسار صاف کریں"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"شارٹ کٹس"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"شارٹ کٹس تلاش کریں"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"کوئی شارٹ کٹ نہیں ملا"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"ان پٹ"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"ایپس کھولیں"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"موجودہ ایپ"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"تلاش کے نتائج دکھائے جا رہے ہیں"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"سسٹم کے شارٹ کٹس دکھائے جا رہے ہیں"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"ان پٹ شارٹ کٹس دکھائے جا رہے ہیں"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"ایپس کو کھولنے والے شارٹ کٹس دکھائے جا رہے ہیں"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"موجودہ ایپ کے شارٹ کٹس دکھائے جا رہے ہیں"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"اطلاعات دیکھیں"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"اسکرین شاٹ لیں"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"شارٹ کٹس دکھائيں"</string>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 5696c61..4f1e1a1 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> tugmasi"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Bosh ekran"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Orqaga"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Tepaga strelka"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Pastga strelka"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Chapga strelka"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Oʻngga strelka"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Markaziy ko‘rsatkichli chiziq"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Probel"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Bildirishnomalar"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Tezkor tugmalar"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Klaviatura terilmasini almashtirish"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"yoki"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Qidiruv soʻrovini tozalash"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Tezkor tugmalar"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Tezkor tugmalar qidiruvi"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Tezkor tugmalar topilmadi"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Kiritish"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Ochiq ilovalar"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Joriy ilova"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Qidiruv natijalarini koʻrsatadi"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Tizim tezkor tugmalari koʻrsatiladi"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Kirish bilan bogʻliq tezkor tugmalarni koʻrsatiladi"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Ilovalarni ochuvchi tezkor tugmalar koʻrsatiladi"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Joriy ilova uchun tezkor tugmalar koʻrsatiladi"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Bildirishnomalarni ochish"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Skrinshot olish"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Yorliqlarni ochish"</string>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index c281d90..aae84c2 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Nút <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Quay lại"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Mũi tên lên"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Mũi tên xuống"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Mũi tên trái"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Mũi tên phải"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Giữa"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Dấu cách"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Thông báo"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Phím tắt"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Chuyển đổi bố cục bàn phím"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"hoặc"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Xoá cụm từ tìm kiếm"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Lối tắt"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Lối tắt tìm kiếm"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Không tìm thấy lối tắt"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Đầu vào"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Ứng dụng đang mở"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"Ứng dụng hiện tại"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Hiện các kết quả tìm kiếm"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Hiện các phím tắt cho hệ thống"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Hiện các phím tắt cho phương thức nhập"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Hiện các phím tắt mở ứng dụng"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Hiện các phím tắt cho ứng dụng hiện tại"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Xem thông báo"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Chụp ảnh màn hình"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Hiện phím tắt"</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 7cde292..6e73dc1 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g>按钮"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"返回"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"向上键"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"向下键"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"向左键"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"向右键"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"中心"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"空格"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"通知"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"键盘快捷键"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"切换键盘布局"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"或"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"清除搜索查询"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"快捷键"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"搜索快捷键"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"未找到任何快捷键"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"输入"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"已开应用"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"当前应用"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"目前显示的是搜索结果"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"目前显示的是系统快捷键"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"目前显示的是输入法的快捷键"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"目前显示的是用于打开应用的快捷键"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"目前显示的是当前应用的快捷键"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"查看通知"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"截取屏幕截图"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"显示快捷键"</string>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index a997d06..1286fce 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> 鍵"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"返回"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"向上箭咀"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"向下箭咀"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"向左箭咀"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"向右箭咀"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"箭咀中央"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"空格"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"通知"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"鍵盤快速鍵"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"切換鍵盤配置"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"或"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"清除搜尋查詢"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"快速鍵"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"搜尋快速鍵"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"找不到快速鍵"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"輸入"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"已開應用程式"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"目前的應用程式"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"顯示緊搜尋結果"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"顯示緊系統嘅快速鍵"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"顯示緊輸入裝置嘅快速鍵"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"顯示緊打開應用程式嘅快速鍵"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"顯示緊而家呢個應用程式用到嘅快速鍵"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"查看通知"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"擷取螢幕截圖"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"顯示快速鍵"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 9900adf..ff9b88a 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"<xliff:g id="NAME">%1$s</xliff:g> 按鈕"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home 鍵"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"返回"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"向上箭頭"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"向下箭頭"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"向左箭頭"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"向右箭頭"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"中央鍵"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"空格鍵"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"通知"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"鍵盤快速鍵"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"切換鍵盤配置"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"或"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"清除搜尋查詢"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"快速鍵"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"搜尋快速鍵"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"找不到快速鍵"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"輸入"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"已開啟的應用程式"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"目前的應用程式"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"顯示搜尋結果"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"顯示系統快速鍵"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"顯示輸入快速鍵"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"顯示可開啟應用程式的快速鍵"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"顯示目前應用程式的快速鍵"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"查看通知"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"拍攝螢幕截圖"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"顯示快速鍵"</string>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 42ddb35..6c4261a 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -640,14 +640,10 @@
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Inkinobho <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Ekhaya"</string>
<string name="keyboard_key_back" msgid="4185420465469481999">"Emuva"</string>
- <!-- no translation found for keyboard_key_dpad_up (7199805608386368673) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_down (3354221123220737397) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_left (144176368026538621) -->
- <skip />
- <!-- no translation found for keyboard_key_dpad_right (8485763312139820037) -->
- <skip />
+ <string name="keyboard_key_dpad_up" msgid="7199805608386368673">"Umcibisholo waphezulu"</string>
+ <string name="keyboard_key_dpad_down" msgid="3354221123220737397">"Umcibisholo waphansi"</string>
+ <string name="keyboard_key_dpad_left" msgid="144176368026538621">"Umcibisholo wangokwesokunxele"</string>
+ <string name="keyboard_key_dpad_right" msgid="8485763312139820037">"Umcibisholo wangokwesokudla"</string>
<string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Maphakathi"</string>
<string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string>
<string name="keyboard_key_space" msgid="6980847564173394012">"Isikhala"</string>
@@ -675,10 +671,8 @@
<string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Izaziso"</string>
<string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Izinqamulelo Zekhibhodi"</string>
<string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Shintsha isakhiwo sekhibhodi"</string>
- <!-- no translation found for keyboard_shortcut_join (3578314570034512676) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_clear_text (6631051796030377857) -->
- <skip />
+ <string name="keyboard_shortcut_join" msgid="3578314570034512676">"noma"</string>
+ <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"Sula umbuzo wosesho"</string>
<string name="keyboard_shortcut_search_list_title" msgid="1156178106617830429">"Izinqamuleli"</string>
<string name="keyboard_shortcut_search_list_hint" msgid="5982623262974326746">"Sesha izinqamuleli"</string>
<string name="keyboard_shortcut_search_list_no_result" msgid="6819302191660875501">"Azikho izinqamuleli ezitholakele"</string>
@@ -686,16 +680,11 @@
<string name="keyboard_shortcut_search_category_input" msgid="5440558509904296233">"Okokufaka"</string>
<string name="keyboard_shortcut_search_category_open_apps" msgid="1450959949739257562">"Vula ama-app"</string>
<string name="keyboard_shortcut_search_category_current_app" msgid="2011953559133734491">"I-app yamanje"</string>
- <!-- no translation found for keyboard_shortcut_a11y_show_search_results (2865241062981833705) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_system (7744143131119370483) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_input (4589316004510335529) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_open_apps (6175417687221004059) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_a11y_filter_current_app (7944592357493737911) -->
- <skip />
+ <string name="keyboard_shortcut_a11y_show_search_results" msgid="2865241062981833705">"Ibonisa imiphumela yosesho"</string>
+ <string name="keyboard_shortcut_a11y_filter_system" msgid="7744143131119370483">"Ibonisa izinqamuleli zesistimu"</string>
+ <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Ibonisa izinqamuleli zokufakwayo"</string>
+ <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Ibonisa izinqamuleli ezivula ama-app"</string>
+ <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Ibonisa izinqamuleli ze-app yamanje"</string>
<string name="group_system_access_notification_shade" msgid="1619028907006553677">"Buka izaziso"</string>
<string name="group_system_full_screenshot" msgid="5742204844232667785">"Thatha isithombe-skrini"</string>
<string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Bonisa izinqamuleli"</string>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 5f6a39a..462fc95 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -56,6 +56,8 @@
<color name="kg_user_switcher_restricted_avatar_icon_color">@color/GM2_grey_600</color>
<!-- Color of background circle of user avatars in keyguard user switcher -->
<color name="user_avatar_color_bg">?android:attr/colorBackgroundFloating</color>
+ <!-- Color of border for keyguard password input when focused -->
+ <color name="bouncer_password_focus_color">@*android:color/system_secondary_light</color>
<!-- Icon color for user avatars in user switcher quick settings -->
<color name="qs_user_switcher_avatar_icon_color">#3C4043</color>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java
index 36fe75f..9764de1 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java
@@ -168,7 +168,6 @@
// Set selected property on so the view can send accessibility events.
mPasswordEntry.setSelected(true);
- mPasswordEntry.setDefaultFocusHighlightEnabled(false);
mOkButton = findViewById(R.id.key_enter);
diff --git a/packages/SystemUI/src/com/android/systemui/authentication/domain/interactor/AuthenticationInteractor.kt b/packages/SystemUI/src/com/android/systemui/authentication/domain/interactor/AuthenticationInteractor.kt
index eb87505..1ba0220 100644
--- a/packages/SystemUI/src/com/android/systemui/authentication/domain/interactor/AuthenticationInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/authentication/domain/interactor/AuthenticationInteractor.kt
@@ -45,7 +45,6 @@
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
/**
* Hosts application business logic related to user authentication.
@@ -228,10 +227,6 @@
// Since authentication succeeded, we should refresh throttling to make sure that our
// state is completely reflecting the upstream source of truth.
refreshThrottling()
-
- // Force a garbage collection in an attempt to erase any credentials left in memory.
- // Do it after a 5-sec delay to avoid making the bouncer dismiss animation janky.
- initiateGarbageCollection(delayMs = 5000)
}
return if (authenticationResult.isSuccessful) {
@@ -315,15 +310,6 @@
}
}
- private suspend fun initiateGarbageCollection(delayMs: Long) {
- withContext(backgroundDispatcher) {
- delay(delayMs)
- System.gc()
- System.runFinalization()
- System.gc()
- }
- }
-
companion object {
const val TAG = "AuthenticationInteractor"
}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java b/packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java
index 9672fac..e7b8773 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java
@@ -36,6 +36,8 @@
import com.android.systemui.unfold.FoldStateLoggingProvider;
import com.android.systemui.unfold.SysUIUnfoldComponent;
import com.android.systemui.unfold.UnfoldTransitionProgressProvider;
+import com.android.systemui.unfold.dagger.UnfoldBg;
+import com.android.systemui.unfold.progress.UnfoldTransitionProgressForwarder;
import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.bubbles.Bubbles;
import com.android.wm.shell.desktopmode.DesktopMode;
@@ -137,19 +139,26 @@
c.getUnfoldHapticsPlayer();
c.getNaturalRotationUnfoldProgressProvider().init();
c.getUnfoldLatencyTracker().init();
- c.getFoldStateLoggingProvider()
- .ifPresent(FoldStateLoggingProvider::init);
- c.getFoldStateLogger().ifPresent(FoldStateLogger::init);
- final UnfoldTransitionProgressProvider progressProvider =
- Flags.unfoldAnimationBackgroundProgress()
- ? c.getBgUnfoldTransitionProgressProvider()
- : c.getUnfoldTransitionProgressProvider();
- progressProvider.addCallback(c.getUnfoldTransitionProgressForwarder());
});
// No init method needed, just needs to be gotten so that it's created.
getMediaMuteAwaitConnectionCli();
getNearbyMediaDevicesManager();
getConnectingDisplayViewModel().init();
+ getFoldStateLoggingProvider().ifPresent(FoldStateLoggingProvider::init);
+ getFoldStateLogger().ifPresent(FoldStateLogger::init);
+
+ Optional<UnfoldTransitionProgressProvider> unfoldTransitionProgressProvider;
+
+ if (Flags.unfoldAnimationBackgroundProgress()) {
+ unfoldTransitionProgressProvider = getBgUnfoldTransitionProgressProvider();
+ } else {
+ unfoldTransitionProgressProvider = getUnfoldTransitionProgressProvider();
+ }
+ unfoldTransitionProgressProvider
+ .ifPresent(
+ (progressProvider) ->
+ getUnfoldTransitionProgressForwarder()
+ .ifPresent(progressProvider::addCallback));
}
/**
@@ -171,6 +180,37 @@
ContextComponentHelper getContextComponentHelper();
/**
+ * Creates a UnfoldTransitionProgressProvider that calculates progress in the background.
+ */
+ @SysUISingleton
+ @UnfoldBg
+ Optional<UnfoldTransitionProgressProvider> getBgUnfoldTransitionProgressProvider();
+
+ /**
+ * Creates a UnfoldTransitionProgressProvider that calculates progress in the main thread.
+ */
+ @SysUISingleton
+ Optional<UnfoldTransitionProgressProvider> getUnfoldTransitionProgressProvider();
+
+ /**
+ * Creates a UnfoldTransitionProgressForwarder.
+ */
+ @SysUISingleton
+ Optional<UnfoldTransitionProgressForwarder> getUnfoldTransitionProgressForwarder();
+
+ /**
+ * Creates a FoldStateLoggingProvider.
+ */
+ @SysUISingleton
+ Optional<FoldStateLoggingProvider> getFoldStateLoggingProvider();
+
+ /**
+ * Creates a FoldStateLogger.
+ */
+ @SysUISingleton
+ Optional<FoldStateLogger> getFoldStateLogger();
+
+ /**
* Main dependency providing module.
*/
@SysUISingleton
diff --git a/packages/SystemUI/src/com/android/systemui/dump/LogBufferFreezer.kt b/packages/SystemUI/src/com/android/systemui/dump/LogBufferFreezer.kt
index 29f4642..a97d505 100644
--- a/packages/SystemUI/src/com/android/systemui/dump/LogBufferFreezer.kt
+++ b/packages/SystemUI/src/com/android/systemui/dump/LogBufferFreezer.kt
@@ -20,6 +20,7 @@
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
+import android.os.Trace
import android.os.UserHandle
import android.util.Log
import com.android.systemui.broadcast.BroadcastDispatcher
@@ -53,6 +54,8 @@
}
private fun onBugreportStarted() {
+ Trace.instantForTrack(Trace.TRACE_TAG_APP, "bugreport",
+ "BUGREPORT_STARTED broadcast received")
pendingToken?.run()
Log.i(TAG, "Freezing log buffers")
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
index 5cc2e0a..45433e6 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
@@ -60,6 +60,7 @@
import android.os.Message;
import android.os.RemoteException;
import android.os.SystemProperties;
+import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -1052,6 +1053,7 @@
if (ActivityManager.isUserAMonkey()) {
return;
}
+ Trace.instantForTrack(Trace.TRACE_TAG_APP, "bugreport", "BugReportAction#onPress");
// Add a little delay before executing, to give the
// dialog a chance to go away before it takes a
// screenshot.
@@ -1065,6 +1067,8 @@
mUiEventLogger.log(GlobalActionsEvent.GA_BUGREPORT_PRESS);
if (!mIActivityManager.launchBugReportHandlerApp()) {
Log.w(TAG, "Bugreport handler could not be launched");
+ Trace.instantForTrack(Trace.TRACE_TAG_APP, "bugreport",
+ "BugReportAction#requestingInteractiveBugReport");
mIActivityManager.requestInteractiveBugReport();
}
} catch (RemoteException e) {
@@ -1084,6 +1088,8 @@
// Take a "full" bugreport.
mMetricsLogger.action(MetricsEvent.ACTION_BUGREPORT_FROM_POWER_MENU_FULL);
mUiEventLogger.log(GlobalActionsEvent.GA_BUGREPORT_LONG_PRESS);
+ Trace.instantForTrack(Trace.TRACE_TAG_APP, "bugreport",
+ "BugReportAction#requestingFullBugReport");
mIActivityManager.requestFullBugReport();
} catch (RemoteException e) {
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt
index fbd62ce..48b6634 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt
@@ -28,7 +28,7 @@
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
+import kotlinx.coroutines.flow.MutableStateFlow
/**
* Manages blueprint changes for the lockscreen.
@@ -48,17 +48,14 @@
configurationRepository: ConfigurationRepository,
blueprints: Set<@JvmSuppressWildcards KeyguardBlueprint>,
) {
- private val blueprintIdMap: TreeMap<String, KeyguardBlueprint> = TreeMap()
- private val _blueprint: MutableSharedFlow<KeyguardBlueprint> = MutableSharedFlow(replay = 1)
- val blueprint: Flow<KeyguardBlueprint> = _blueprint.asSharedFlow()
-
+ // This is TreeMap so that we can order the blueprints and assign numerical values to the
+ // blueprints in the adb tool.
+ private val blueprintIdMap: TreeMap<String, KeyguardBlueprint> =
+ TreeMap<String, KeyguardBlueprint>().apply { putAll(blueprints.associateBy { it.id }) }
+ val blueprint: MutableStateFlow<KeyguardBlueprint> = MutableStateFlow(blueprintIdMap[DEFAULT]!!)
+ val refreshBluePrint: MutableSharedFlow<Unit> = MutableSharedFlow(extraBufferCapacity = 1)
val configurationChange: Flow<Unit> = configurationRepository.onAnyConfigurationChange
- init {
- blueprintIdMap.putAll(blueprints.associateBy { it.id })
- applyBlueprint(blueprintIdMap[DEFAULT]!!)
- }
-
/**
* Emits the blueprint value to the collectors.
*
@@ -96,14 +93,17 @@
/** Emits the blueprint value to the collectors. */
fun applyBlueprint(blueprint: KeyguardBlueprint?) {
- blueprint?.let { _blueprint.tryEmit(it) }
+ if (blueprint == this.blueprint.value) {
+ refreshBlueprint()
+ return
+ }
+
+ blueprint?.let { this.blueprint.value = it }
}
/** Re-emits the last emitted blueprint value if possible. */
fun refreshBlueprint() {
- if (_blueprint.replayCache.isNotEmpty()) {
- _blueprint.tryEmit(_blueprint.replayCache.last())
- }
+ refreshBluePrint.tryEmit(Unit)
}
/** Prints all available blueprints to the PrintWriter. */
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt
index 7dab84d..ba44e68 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt
@@ -21,11 +21,15 @@
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.keyguard.data.repository.KeyguardBlueprintRepository
+import com.android.systemui.keyguard.shared.model.KeyguardBlueprint
import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBlueprint
import com.android.systemui.keyguard.ui.view.layout.blueprints.SplitShadeKeyguardBlueprint
import com.android.systemui.statusbar.policy.SplitShadeStateController
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.merge
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.launch
@@ -39,7 +43,18 @@
private val splitShadeStateController: SplitShadeStateController,
) {
- val blueprint = keyguardBlueprintRepository.blueprint
+ /**
+ * The current blueprint for the lockscreen.
+ *
+ * This flow can also emit the same blueprint value if refreshBlueprint is emitted.
+ */
+ val blueprint: Flow<KeyguardBlueprint> =
+ merge(
+ keyguardBlueprintRepository.blueprint,
+ keyguardBlueprintRepository.refreshBluePrint.map {
+ keyguardBlueprintRepository.blueprint.value
+ }
+ )
init {
applicationScope.launch {
@@ -91,4 +106,8 @@
fun refreshBlueprint() {
keyguardBlueprintRepository.refreshBlueprint()
}
+
+ fun getCurrentBlueprint(): KeyguardBlueprint {
+ return keyguardBlueprintRepository.blueprint.value
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/transitions/BaseBlueprintTransition.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/transitions/BaseBlueprintTransition.kt
index 42b1c10..d0626d5 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/transitions/BaseBlueprintTransition.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/transitions/BaseBlueprintTransition.kt
@@ -24,6 +24,7 @@
import android.transition.Visibility
import android.view.View
import android.view.ViewGroup
+import androidx.constraintlayout.helper.widget.Layer
class BaseBlueprintTransition : TransitionSet() {
init {
@@ -31,6 +32,7 @@
addTransition(AlphaOutVisibility())
.addTransition(ChangeBounds())
.addTransition(AlphaInVisibility())
+ excludeTarget(Layer::class.java, /* exclude= */ true)
}
class AlphaOutVisibility : Visibility() {
override fun onDisappear(
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SplitShadeNotificationStackScrollLayoutSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SplitShadeNotificationStackScrollLayoutSection.kt
index 921fb3b..f5963be 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SplitShadeNotificationStackScrollLayoutSection.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SplitShadeNotificationStackScrollLayoutSection.kt
@@ -87,8 +87,13 @@
)
setGoneMargin(R.id.nssl_placeholder, TOP, bottomMargin)
} else {
- connect(R.id.nssl_placeholder, TOP, R.id.keyguard_status_view, TOP, bottomMargin)
+ val splitShadeTopMargin =
+ context.resources.getDimensionPixelSize(
+ R.dimen.large_screen_shade_header_height
+ )
+ connect(R.id.nssl_placeholder, TOP, PARENT_ID, TOP, splitShadeTopMargin)
}
+
connect(R.id.nssl_placeholder, START, PARENT_ID, START)
connect(R.id.nssl_placeholder, END, PARENT_ID, END)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileMapper.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileMapper.kt
new file mode 100644
index 0000000..3f30c75
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/UiModeNightTileMapper.kt
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight.domain
+
+import android.app.UiModeManager
+import android.content.res.Resources
+import android.text.TextUtils
+import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.qs.tiles.base.interactor.QSTileDataToStateMapper
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.model.UiModeNightTileModel
+import com.android.systemui.qs.tiles.viewmodel.QSTileConfig
+import com.android.systemui.qs.tiles.viewmodel.QSTileState
+import com.android.systemui.res.R
+import java.time.LocalTime
+import java.time.format.DateTimeFormatter
+import javax.inject.Inject
+
+/** Maps [UiModeNightTileModel] to [QSTileState]. */
+class UiModeNightTileMapper @Inject constructor(@Main private val resources: Resources) :
+ QSTileDataToStateMapper<UiModeNightTileModel> {
+ companion object {
+ val formatter12Hour: DateTimeFormatter = DateTimeFormatter.ofPattern("hh:mm a")
+ val formatter24Hour: DateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm")
+ }
+ override fun map(config: QSTileConfig, data: UiModeNightTileModel): QSTileState =
+ with(data) {
+ QSTileState.build(resources, config.uiConfig) {
+ var shouldSetSecondaryLabel = false
+
+ if (isPowerSave) {
+ secondaryLabel =
+ resources.getString(
+ R.string.quick_settings_dark_mode_secondary_label_battery_saver
+ )
+ } else if (uiMode == UiModeManager.MODE_NIGHT_AUTO && isLocationEnabled) {
+ secondaryLabel =
+ resources.getString(
+ if (isNightMode)
+ R.string.quick_settings_dark_mode_secondary_label_until_sunrise
+ else R.string.quick_settings_dark_mode_secondary_label_on_at_sunset
+ )
+ } else if (uiMode == UiModeManager.MODE_NIGHT_CUSTOM) {
+ if (nightModeCustomType == UiModeManager.MODE_NIGHT_CUSTOM_TYPE_SCHEDULE) {
+ val time: LocalTime =
+ if (isNightMode) {
+ customNightModeEnd
+ } else {
+ customNightModeStart
+ }
+
+ val formatter: DateTimeFormatter =
+ if (is24HourFormat) formatter24Hour else formatter12Hour
+
+ secondaryLabel =
+ resources.getString(
+ if (isNightMode)
+ R.string.quick_settings_dark_mode_secondary_label_until
+ else R.string.quick_settings_dark_mode_secondary_label_on_at,
+ formatter.format(time)
+ )
+ } else if (
+ nightModeCustomType == UiModeManager.MODE_NIGHT_CUSTOM_TYPE_BEDTIME
+ ) {
+ secondaryLabel =
+ resources.getString(
+ if (isNightMode)
+ R.string
+ .quick_settings_dark_mode_secondary_label_until_bedtime_ends
+ else R.string.quick_settings_dark_mode_secondary_label_on_at_bedtime
+ )
+ } else {
+ secondaryLabel = null // undefined type of nightModeCustomType
+ shouldSetSecondaryLabel = true
+ }
+ } else {
+ secondaryLabel = null
+ shouldSetSecondaryLabel = true
+ }
+
+ contentDescription =
+ if (TextUtils.isEmpty(secondaryLabel)) label
+ else TextUtils.concat(label, ", ", secondaryLabel)
+ if (isPowerSave) {
+ activationState = QSTileState.ActivationState.UNAVAILABLE
+ if (shouldSetSecondaryLabel)
+ secondaryLabel = resources.getStringArray(R.array.tile_states_dark)[0]
+ } else {
+ activationState =
+ if (isNightMode) QSTileState.ActivationState.ACTIVE
+ else QSTileState.ActivationState.INACTIVE
+
+ if (shouldSetSecondaryLabel) {
+ secondaryLabel =
+ if (activationState == QSTileState.ActivationState.INACTIVE)
+ resources.getStringArray(R.array.tile_states_dark)[1]
+ else resources.getStringArray(R.array.tile_states_dark)[2]
+ }
+ }
+
+ val iconRes =
+ if (activationState == QSTileState.ActivationState.ACTIVE)
+ R.drawable.qs_light_dark_theme_icon_on
+ else R.drawable.qs_light_dark_theme_icon_off
+ val iconResource = Icon.Resource(iconRes, null)
+ icon = { iconResource }
+
+ supportedActions =
+ if (activationState == QSTileState.ActivationState.UNAVAILABLE)
+ setOf(QSTileState.UserAction.LONG_CLICK)
+ else setOf(QSTileState.UserAction.CLICK, QSTileState.UserAction.LONG_CLICK)
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/interactor/UiModeNightTileDataInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/interactor/UiModeNightTileDataInteractor.kt
new file mode 100644
index 0000000..c928e8a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/interactor/UiModeNightTileDataInteractor.kt
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight.domain.interactor
+
+import android.app.UiModeManager
+import android.content.Context
+import android.content.res.Configuration
+import android.os.UserHandle
+import com.android.systemui.common.coroutine.ConflatedCallbackFlow
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.qs.tiles.base.interactor.DataUpdateTrigger
+import com.android.systemui.qs.tiles.base.interactor.QSTileDataInteractor
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.model.UiModeNightTileModel
+import com.android.systemui.statusbar.policy.BatteryController
+import com.android.systemui.statusbar.policy.ConfigurationController
+import com.android.systemui.statusbar.policy.LocationController
+import com.android.systemui.util.time.DateFormatUtil
+import javax.inject.Inject
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOf
+
+/** Observes ui mode night state changes providing the [UiModeNightTileModel]. */
+class UiModeNightTileDataInteractor
+@Inject
+constructor(
+ @Application private val context: Context,
+ private val configurationController: ConfigurationController,
+ private val uiModeManager: UiModeManager,
+ private val batteryController: BatteryController,
+ private val locationController: LocationController,
+ private val dateFormatUtil: DateFormatUtil,
+) : QSTileDataInteractor<UiModeNightTileModel> {
+
+ override fun tileData(
+ user: UserHandle,
+ triggers: Flow<DataUpdateTrigger>
+ ): Flow<UiModeNightTileModel> =
+ ConflatedCallbackFlow.conflatedCallbackFlow {
+ // send initial state
+ trySend(createModel())
+
+ val configurationCallback =
+ object : ConfigurationController.ConfigurationListener {
+ override fun onUiModeChanged() {
+ trySend(createModel())
+ }
+ }
+ configurationController.addCallback(configurationCallback)
+
+ val batteryCallback =
+ object : BatteryController.BatteryStateChangeCallback {
+ override fun onPowerSaveChanged(isPowerSave: Boolean) {
+ trySend(createModel())
+ }
+ }
+ batteryController.addCallback(batteryCallback)
+
+ val locationCallback =
+ object : LocationController.LocationChangeCallback {
+ override fun onLocationSettingsChanged(locationEnabled: Boolean) {
+ trySend(createModel())
+ }
+ }
+ locationController.addCallback(locationCallback)
+
+ awaitClose {
+ configurationController.removeCallback(configurationCallback)
+ batteryController.removeCallback(batteryCallback)
+ locationController.removeCallback(locationCallback)
+ }
+ }
+
+ private fun createModel(): UiModeNightTileModel {
+ val uiMode = uiModeManager.nightMode
+ val nightMode =
+ (context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) ==
+ Configuration.UI_MODE_NIGHT_YES
+ val powerSave = batteryController.isPowerSave
+ val locationEnabled = locationController.isLocationEnabled
+ val nightModeCustomType = uiModeManager.nightModeCustomType
+ val use24HourFormat = dateFormatUtil.is24HourFormat
+ val customNightModeEnd = uiModeManager.customNightModeEnd
+ val customNightModeStart = uiModeManager.customNightModeStart
+
+ return UiModeNightTileModel(
+ uiMode,
+ nightMode,
+ powerSave,
+ locationEnabled,
+ nightModeCustomType,
+ use24HourFormat,
+ customNightModeEnd,
+ customNightModeStart
+ )
+ }
+
+ override fun availability(user: UserHandle): Flow<Boolean> = flowOf(true)
+}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/interactor/UiModeNightTileUserActionInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/interactor/UiModeNightTileUserActionInteractor.kt
new file mode 100644
index 0000000..00d7a62
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/interactor/UiModeNightTileUserActionInteractor.kt
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight.domain.interactor
+
+import android.app.UiModeManager
+import android.content.Intent
+import android.provider.Settings
+import com.android.systemui.dagger.qualifiers.Background
+import com.android.systemui.qs.tiles.base.actions.QSTileIntentUserInputHandler
+import com.android.systemui.qs.tiles.base.interactor.QSTileInput
+import com.android.systemui.qs.tiles.base.interactor.QSTileUserActionInteractor
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.model.UiModeNightTileModel
+import com.android.systemui.qs.tiles.viewmodel.QSTileUserAction
+import javax.inject.Inject
+import kotlin.coroutines.CoroutineContext
+import kotlinx.coroutines.withContext
+
+/** Handles ui mode night tile clicks. */
+class UiModeNightTileUserActionInteractor
+@Inject
+constructor(
+ @Background private val backgroundContext: CoroutineContext,
+ private val uiModeManager: UiModeManager,
+ private val qsTileIntentUserActionHandler: QSTileIntentUserInputHandler,
+) : QSTileUserActionInteractor<UiModeNightTileModel> {
+
+ override suspend fun handleInput(input: QSTileInput<UiModeNightTileModel>) =
+ with(input) {
+ when (action) {
+ is QSTileUserAction.Click -> {
+ if (!input.data.isPowerSave) {
+ withContext(backgroundContext) {
+ uiModeManager.setNightModeActivated(!input.data.isNightMode)
+ }
+ }
+ }
+ is QSTileUserAction.LongClick -> {
+ qsTileIntentUserActionHandler.handle(
+ action.view,
+ Intent(Settings.ACTION_DARK_THEME_SETTINGS)
+ )
+ }
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/model/UiModeNightTileModel.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/model/UiModeNightTileModel.kt
new file mode 100644
index 0000000..4fa1306
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/uimodenight/domain/model/UiModeNightTileModel.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight.domain.model
+
+import java.time.LocalTime
+
+/**
+ * UiModeNight tile model. Quick Settings tile for: Night Mode / Dark Theme / Dark Mode.
+ *
+ * @param isNightMode is true when the NightMode is enabled;
+ */
+data class UiModeNightTileModel(
+ val uiMode: Int,
+ val isNightMode: Boolean,
+ val isPowerSave: Boolean,
+ val isLocationEnabled: Boolean,
+ val nightModeCustomType: Int,
+ val is24HourFormat: Boolean,
+ val customNightModeEnd: LocalTime,
+ val customNightModeStart: LocalTime
+)
diff --git a/packages/SystemUI/src/com/android/systemui/scene/shared/flag/SceneContainerFlags.kt b/packages/SystemUI/src/com/android/systemui/scene/shared/flag/SceneContainerFlags.kt
index dbb58a3..1156250 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/shared/flag/SceneContainerFlags.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/shared/flag/SceneContainerFlags.kt
@@ -31,6 +31,7 @@
import com.android.systemui.flags.ResourceBooleanFlag
import com.android.systemui.flags.UnreleasedFlag
import com.android.systemui.keyguard.shared.KeyguardShadeMigrationNssl
+import com.android.systemui.media.controls.util.MediaInSceneContainerFlag
import com.android.systemui.res.R
import dagger.Module
import dagger.Provides
@@ -82,6 +83,10 @@
flagName = KeyguardShadeMigrationNssl.FLAG_NAME,
flagValue = KeyguardShadeMigrationNssl.isEnabled,
),
+ AconfigFlagMustBeEnabled(
+ flagName = MediaInSceneContainerFlag.FLAG_NAME,
+ flagValue = MediaInSceneContainerFlag.isEnabled,
+ ),
) +
classicFlagTokens.map { flagToken -> FlagMustBeEnabled(flagToken) } +
listOf(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractor.kt
index c2c5eed..adf6cca 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractor.kt
@@ -68,6 +68,8 @@
marginTop = getDimensionPixelSize(R.dimen.notification_panel_margin_top),
marginTopLargeScreen =
getDimensionPixelSize(R.dimen.large_screen_shade_header_height),
+ keyguardSplitShadeTopMargin =
+ getDimensionPixelSize(R.dimen.keyguard_split_shade_top_margin),
)
}
}
@@ -95,5 +97,6 @@
val marginBottom: Int,
val marginTop: Int,
val marginTopLargeScreen: Int,
+ val keyguardSplitShadeTopMargin: Int,
)
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
index b0f1038..5b854e6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
@@ -83,6 +83,14 @@
marginTop =
if (it.useLargeScreenHeader) it.marginTopLargeScreen else it.marginTop,
useSplitShade = it.useSplitShade,
+ paddingTop =
+ if (it.useSplitShade) {
+ // When in split shade, the margin is applied twice as the legacy shade
+ // code uses it to calculate padding.
+ it.keyguardSplitShadeTopMargin - 2 * it.marginTopLargeScreen
+ } else {
+ 0
+ }
)
}
.distinctUntilChanged()
@@ -156,11 +164,7 @@
),
) { onLockscreen, bounds, config, (top, isInTransitionToAnyState, qsExpansion) ->
if (onLockscreen) {
- if (config.useSplitShade) {
- bounds.copy(top = 0f)
- } else {
- bounds
- }
+ bounds.copy(top = bounds.top + config.paddingTop)
} else {
// When QS expansion > 0, it should directly set the top padding so do not
// animate it
@@ -268,5 +272,6 @@
val marginEnd: Int,
val marginBottom: Int,
val useSplitShade: Boolean,
+ val paddingTop: Int,
)
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/model/InternetTileModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/model/InternetTileModel.kt
index 1886590..ed0eb6d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/model/InternetTileModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/model/InternetTileModel.kt
@@ -29,7 +29,7 @@
/** Model describing the state that the QS Internet tile should be in. */
sealed interface InternetTileModel {
- val secondaryTitle: String?
+ val secondaryTitle: CharSequence?
val secondaryLabel: Text?
val iconId: Int?
val icon: QSTile.Icon?
@@ -62,7 +62,7 @@
}
data class Active(
- override val secondaryTitle: String? = null,
+ override val secondaryTitle: CharSequence? = null,
override val secondaryLabel: Text? = null,
override val iconId: Int? = null,
override val icon: QSTile.Icon? = null,
@@ -71,7 +71,7 @@
) : InternetTileModel
data class Inactive(
- override val secondaryTitle: String? = null,
+ override val secondaryTitle: CharSequence? = null,
override val secondaryLabel: Text? = null,
override val iconId: Int? = null,
override val icon: QSTile.Icon? = null,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModel.kt
index a80ea90..99b123f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModel.kt
@@ -17,13 +17,14 @@
package com.android.systemui.statusbar.pipeline.shared.ui.viewmodel
import android.content.Context
-import com.android.systemui.res.R
+import android.text.Html
import com.android.systemui.common.shared.model.ContentDescription
import com.android.systemui.common.shared.model.Text
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.qs.tileimpl.QSTileImpl.ResourceIcon
+import com.android.systemui.res.R
import com.android.systemui.statusbar.pipeline.airplane.data.repository.AirplaneModeRepository
import com.android.systemui.statusbar.pipeline.ethernet.domain.EthernetInteractor
import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractor
@@ -120,7 +121,7 @@
InternetTileModel.Active(
secondaryTitle = secondary,
icon = SignalIcon(signalIcon.toSignalDrawableState()),
- stateDescription = ContentDescription.Loaded(secondary),
+ stateDescription = ContentDescription.Loaded(secondary.toString()),
contentDescription = ContentDescription.Loaded(internetLabel),
)
}
@@ -130,22 +131,25 @@
private fun mobileDataContentConcat(
networkName: String?,
dataContentDescription: CharSequence?
- ): String {
+ ): CharSequence {
if (dataContentDescription == null) {
return networkName ?: ""
}
if (networkName == null) {
- return dataContentDescription.toString()
+ return Html.fromHtml(dataContentDescription.toString(), 0)
}
- return context.getString(
- R.string.mobile_carrier_text_format,
- networkName,
- dataContentDescription
+ return Html.fromHtml(
+ context.getString(
+ R.string.mobile_carrier_text_format,
+ networkName,
+ dataContentDescription
+ ),
+ 0
)
}
- private fun loadString(resId: Int): String? =
+ private fun loadString(resId: Int): CharSequence? =
if (resId > 0) {
context.getString(resId)
} else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
index 3deb9e7..80c6802 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
@@ -216,7 +216,11 @@
private void notifyKeyguardFaceAuthEnabledChanged() {
// Copy the list to allow removal during callback.
- new ArrayList<>(mCallbacks).forEach(Callback::onFaceEnrolledChanged);
+ new ArrayList<>(mCallbacks).forEach(callback -> {
+ if (callback != null) {
+ callback.onFaceEnrolledChanged();
+ }
+ });
}
private void notifyUnlockedChanged() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PolicyModule.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PolicyModule.kt
index 0f2da2d..087e100 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PolicyModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PolicyModule.kt
@@ -38,6 +38,10 @@
import com.android.systemui.qs.tiles.impl.location.domain.interactor.LocationTileDataInteractor
import com.android.systemui.qs.tiles.impl.location.domain.interactor.LocationTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.location.domain.model.LocationTileModel
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.UiModeNightTileMapper
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.interactor.UiModeNightTileDataInteractor
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.interactor.UiModeNightTileUserActionInteractor
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.model.UiModeNightTileModel
import com.android.systemui.qs.tiles.viewmodel.QSTileConfig
import com.android.systemui.qs.tiles.viewmodel.QSTileUIConfig
import com.android.systemui.qs.tiles.viewmodel.QSTileViewModel
@@ -64,6 +68,7 @@
const val FLASHLIGHT_TILE_SPEC = "flashlight"
const val LOCATION_TILE_SPEC = "location"
const val ALARM_TILE_SPEC = "alarm"
+ const val UIMODENIGHT_TILE_SPEC = "dark"
/** Inject flashlight config */
@Provides
@@ -160,6 +165,38 @@
stateInteractor,
mapper,
)
+
+ /** Inject uimodenight config */
+ @Provides
+ @IntoMap
+ @StringKey(UIMODENIGHT_TILE_SPEC)
+ fun provideUiModeNightTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =
+ QSTileConfig(
+ tileSpec = TileSpec.create(UIMODENIGHT_TILE_SPEC),
+ uiConfig =
+ QSTileUIConfig.Resource(
+ iconRes = R.drawable.qs_light_dark_theme_icon_off,
+ labelRes = R.string.quick_settings_ui_mode_night_label,
+ ),
+ instanceId = uiEventLogger.getNewInstanceId(),
+ )
+
+ /** Inject uimodenight into tileViewModelMap in QSModule */
+ @Provides
+ @IntoMap
+ @StringKey(UIMODENIGHT_TILE_SPEC)
+ fun provideUiModeNightTileViewModel(
+ factory: QSTileViewModelFactory.Static<UiModeNightTileModel>,
+ mapper: UiModeNightTileMapper,
+ stateInteractor: UiModeNightTileDataInteractor,
+ userActionInteractor: UiModeNightTileUserActionInteractor
+ ): QSTileViewModel =
+ factory.create(
+ TileSpec.create(UIMODENIGHT_TILE_SPEC),
+ userActionInteractor,
+ stateInteractor,
+ mapper,
+ )
}
/** Inject FlashlightTile into tileMap in QSModule */
diff --git a/packages/SystemUI/src/com/android/systemui/unfold/SysUIUnfoldModule.kt b/packages/SystemUI/src/com/android/systemui/unfold/SysUIUnfoldModule.kt
index ff73e0e..10fc83c 100644
--- a/packages/SystemUI/src/com/android/systemui/unfold/SysUIUnfoldModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/unfold/SysUIUnfoldModule.kt
@@ -21,7 +21,6 @@
import com.android.systemui.shade.NotificationPanelUnfoldAnimationController
import com.android.systemui.statusbar.phone.StatusBarMoveFromCenterAnimationController
import com.android.systemui.unfold.dagger.UnfoldBg
-import com.android.systemui.unfold.progress.UnfoldTransitionProgressForwarder
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider
import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider
import com.android.systemui.unfold.util.UnfoldKeyguardVisibilityManager
@@ -107,20 +106,4 @@
fun getUnfoldLatencyTracker(): UnfoldLatencyTracker
fun getNaturalRotationUnfoldProgressProvider(): NaturalRotationUnfoldProgressProvider
-
- /** Creates a UnfoldTransitionProgressProvider that calculates progress in the main thread. */
- fun getUnfoldTransitionProgressProvider(): UnfoldTransitionProgressProvider
-
- /** Creates a UnfoldTransitionProgressProvider that calculates progress in the background. */
- @UnfoldBg
- fun getBgUnfoldTransitionProgressProvider(): UnfoldTransitionProgressProvider
-
- /** Creates a UnfoldTransitionProgressForwarder. */
- fun getUnfoldTransitionProgressForwarder(): UnfoldTransitionProgressForwarder
-
- /** Creates a FoldStateLoggingProvider. */
- fun getFoldStateLoggingProvider(): Optional<FoldStateLoggingProvider>
-
- /** Creates a FoldStateLogger. */
- fun getFoldStateLogger(): Optional<FoldStateLogger>
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt
index 5852bdb..f2bd817 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt
@@ -15,6 +15,8 @@
*
*/
+@file:OptIn(ExperimentalCoroutinesApi::class)
+
package com.android.systemui.keyguard.data.repository
import androidx.test.filters.SmallTest
@@ -25,8 +27,10 @@
import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBlueprint.Companion.DEFAULT
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
@@ -76,8 +80,21 @@
fun testTransitionToLayout_validId() {
assertThat(underTest.applyBlueprint(DEFAULT)).isTrue()
}
+
@Test
fun testTransitionToLayout_invalidId() {
assertThat(underTest.applyBlueprint("abc")).isFalse()
}
+
+ @Test
+ fun testTransitionToSameBlueprint_refreshesBlueprint() =
+ testScope.runTest {
+ val refreshBlueprint by collectLastValue(underTest.refreshBluePrint)
+ runCurrent()
+
+ underTest.applyBlueprint(defaultLockscreenBlueprint)
+ runCurrent()
+
+ assertThat(refreshBlueprint).isNotNull()
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/scene/shared/flag/SceneContainerFlagsTest.kt b/packages/SystemUI/tests/src/com/android/systemui/scene/shared/flag/SceneContainerFlagsTest.kt
index 0173c32..b90ccc0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/scene/shared/flag/SceneContainerFlagsTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/scene/shared/flag/SceneContainerFlagsTest.kt
@@ -27,6 +27,7 @@
import com.android.systemui.flags.ResourceBooleanFlag
import com.android.systemui.flags.UnreleasedFlag
import com.android.systemui.keyguard.shared.KeyguardShadeMigrationNssl
+import com.android.systemui.media.controls.util.MediaInSceneContainerFlag
import com.android.systemui.res.R
import com.google.common.truth.Truth.assertThat
import org.junit.Before
@@ -71,6 +72,7 @@
AconfigFlags.FLAG_SCENE_CONTAINER,
AconfigFlags.FLAG_KEYGUARD_BOTTOM_AREA_REFACTOR,
KeyguardShadeMigrationNssl.FLAG_NAME,
+ MediaInSceneContainerFlag.FLAG_NAME,
)
.forEach { flagToken ->
setFlagsRule.enableFlags(flagToken)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractorTest.kt
index 198f278..a07b570 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/domain/interactor/SharedNotificationContainerInteractorTest.kt
@@ -19,10 +19,10 @@
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
-import com.android.systemui.res.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.ui.data.repository.FakeConfigurationRepository
import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.res.R
import com.android.systemui.statusbar.policy.ResourcesSplitShadeStateController
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runCurrent
@@ -56,6 +56,7 @@
overrideResource(R.dimen.notification_panel_margin_bottom, 10)
overrideResource(R.dimen.notification_panel_margin_top, 10)
overrideResource(R.dimen.large_screen_shade_header_height, 0)
+ overrideResource(R.dimen.keyguard_split_shade_top_margin, 55)
val dimens = collectLastValue(underTest.configurationBasedDimensions)
@@ -70,5 +71,6 @@
assertThat(lastDimens.marginBottom).isGreaterThan(0)
assertThat(lastDimens.marginTop).isGreaterThan(0)
assertThat(lastDimens.marginTopLargeScreen).isEqualTo(0)
+ assertThat(lastDimens.keyguardSplitShadeTopMargin).isEqualTo(55)
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt
index b4f7b20..2209e5e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt
@@ -100,6 +100,34 @@
}
@Test
+ fun validatePaddingTopInSplitShade() =
+ testScope.runTest {
+ overrideResource(R.bool.config_use_split_notification_shade, true)
+ overrideResource(R.dimen.large_screen_shade_header_height, 10)
+ overrideResource(R.dimen.keyguard_split_shade_top_margin, 50)
+
+ val dimens by collectLastValue(underTest.configurationBasedDimensions)
+
+ configurationRepository.onAnyConfigurationChange()
+
+ assertThat(dimens!!.paddingTop).isEqualTo(30)
+ }
+
+ @Test
+ fun validatePaddingTop() =
+ testScope.runTest {
+ overrideResource(R.bool.config_use_split_notification_shade, false)
+ overrideResource(R.dimen.large_screen_shade_header_height, 10)
+ overrideResource(R.dimen.keyguard_split_shade_top_margin, 50)
+
+ val dimens by collectLastValue(underTest.configurationBasedDimensions)
+
+ configurationRepository.onAnyConfigurationChange()
+
+ assertThat(dimens!!.paddingTop).isEqualTo(0)
+ }
+
+ @Test
fun validateMarginEnd() =
testScope.runTest {
overrideResource(R.dimen.notification_panel_margin_horizontal, 50)
@@ -226,9 +254,9 @@
}
@Test
- fun positionOnLockscreenNotInSplitShade() =
+ fun boundsOnLockscreenNotInSplitShade() =
testScope.runTest {
- val position by collectLastValue(underTest.bounds)
+ val bounds by collectLastValue(underTest.bounds)
// When not in split shade
overrideResource(R.bool.config_use_split_notification_shade, false)
@@ -242,16 +270,19 @@
NotificationContainerBounds(top = 1f, bottom = 2f)
)
- assertThat(position).isEqualTo(NotificationContainerBounds(top = 1f, bottom = 2f))
+ assertThat(bounds).isEqualTo(NotificationContainerBounds(top = 1f, bottom = 2f))
}
@Test
- fun positionOnLockscreenInSplitShade() =
+ fun boundsOnLockscreenInSplitShade() =
testScope.runTest {
- val position by collectLastValue(underTest.bounds)
+ val bounds by collectLastValue(underTest.bounds)
// When in split shade
overrideResource(R.bool.config_use_split_notification_shade, true)
+ overrideResource(R.dimen.large_screen_shade_header_height, 10)
+ overrideResource(R.dimen.keyguard_split_shade_top_margin, 50)
+
configurationRepository.onAnyConfigurationChange()
runCurrent()
@@ -263,8 +294,8 @@
)
runCurrent()
- // Top should be overridden to 0f
- assertThat(position).isEqualTo(NotificationContainerBounds(top = 0f, bottom = 2f))
+ // Top should be equal to bounds (1) + padding adjustment (30)
+ assertThat(bounds).isEqualTo(NotificationContainerBounds(top = 31f, bottom = 2f))
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModelTest.kt
index 8405fb4..22dce3a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/InternetTileViewModelTest.kt
@@ -337,12 +337,12 @@
networkName.value = NetworkNameModel.Default("test network")
}
- assertThat(latest?.secondaryTitle).contains("test network")
+ assertThat(latest?.secondaryTitle.toString()).contains("test network")
assertThat(latest?.secondaryLabel).isNull()
assertThat(latest?.icon).isInstanceOf(SignalIcon::class.java)
assertThat(latest?.iconId).isNull()
assertThat(latest?.stateDescription.loadContentDescription(context))
- .isEqualTo(latest?.secondaryTitle)
+ .isEqualTo(latest?.secondaryTitle.toString())
assertThat(latest?.contentDescription.loadContentDescription(context))
.isEqualTo(internet)
}
diff --git a/packages/SystemUI/tests/utils/src/android/view/accessibility/AccessibilityManagerKosmos.kt b/packages/SystemUI/tests/utils/src/android/view/accessibility/AccessibilityManagerKosmos.kt
new file mode 100644
index 0000000..a11bf6a
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/android/view/accessibility/AccessibilityManagerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.view.accessibility
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.accessibilityManager by Fixture { mock<AccessibilityManager>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/internal/logging/MetricsLoggerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/internal/logging/MetricsLoggerKosmos.kt
new file mode 100644
index 0000000..a1815c5
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/internal/logging/MetricsLoggerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.logging
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.metricsLogger by Fixture { mock<MetricsLogger>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/internal/statusbar/StatusBarServiceKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/internal/statusbar/StatusBarServiceKosmos.kt
new file mode 100644
index 0000000..b1d67b8
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/internal/statusbar/StatusBarServiceKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.statusbar
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.statusBarService by Fixture { mock<IStatusBarService>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/accessibility/data/repository/AccessibilityRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/accessibility/data/repository/AccessibilityRepositoryKosmos.kt
new file mode 100644
index 0000000..a464fa8
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/accessibility/data/repository/AccessibilityRepositoryKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.accessibility.data.repository
+
+import android.view.accessibility.accessibilityManager
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.accessibilityRepository by Fixture {
+ AccessibilityRepository.invoke(a11yManager = accessibilityManager)
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/accessibility/domain/interactor/AccessibilityInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/accessibility/domain/interactor/AccessibilityInteractorKosmos.kt
new file mode 100644
index 0000000..a48fe0a
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/accessibility/domain/interactor/AccessibilityInteractorKosmos.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.accessibility.domain.interactor
+
+import com.android.systemui.accessibility.data.repository.accessibilityRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.accessibilityInteractor by Fixture {
+ AccessibilityInteractor(
+ a11yRepo = accessibilityRepository,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/classifier/FalsingManagerFakeKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/classifier/FalsingManagerFakeKosmos.kt
new file mode 100644
index 0000000..72e1e8e
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/classifier/FalsingManagerFakeKosmos.kt
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.classifier
+
+import com.android.systemui.kosmos.Kosmos
+
+val Kosmos.fakeFalsingManager by Kosmos.Fixture { FalsingManagerFake() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/classifier/FalsingManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/classifier/FalsingManagerKosmos.kt
new file mode 100644
index 0000000..366db9c
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/classifier/FalsingManagerKosmos.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.classifier
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.falsingManager by Fixture { fakeFalsingManager }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/common/domain/interactor/ConfigurationInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/common/domain/interactor/ConfigurationInteractorKosmos.kt
new file mode 100644
index 0000000..94d9a72
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/common/domain/interactor/ConfigurationInteractorKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.common.domain.interactor
+
+import com.android.systemui.common.ui.data.repository.configurationRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.configurationInteractor by Fixture {
+ ConfigurationInteractorImpl(repository = configurationRepository)
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/concurrency/FakeExecutorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/concurrency/FakeExecutorKosmos.kt
new file mode 100644
index 0000000..ea887ea
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/concurrency/FakeExecutorKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.concurrency
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.util.concurrency.FakeExecutor
+import com.android.systemui.util.time.fakeSystemClock
+
+var Kosmos.fakeExecutor by Kosmos.Fixture { FakeExecutor(fakeSystemClock) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/dump/DumpManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/dump/DumpManagerKosmos.kt
new file mode 100644
index 0000000..7a6edd0
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/dump/DumpManagerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.dump
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.dumpManager by Fixture { mock<DumpManager>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/WakefulnessLifecycleKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/WakefulnessLifecycleKosmos.kt
new file mode 100644
index 0000000..934ea5f
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/WakefulnessLifecycleKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.keyguard
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.wakefulnessLifecycle by Fixture { mock<WakefulnessLifecycle>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/NaturalScrollingSettingObserverKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/NaturalScrollingSettingObserverKosmos.kt
new file mode 100644
index 0000000..61fc6c7
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/NaturalScrollingSettingObserverKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.keyguard.domain.interactor
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.naturalScrollingSettingObserver by Fixture { mock<NaturalScrollingSettingObserver>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/impl/uimodenight/UiModeNightTileKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/impl/uimodenight/UiModeNightTileKosmos.kt
new file mode 100644
index 0000000..f0e5807
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/impl/uimodenight/UiModeNightTileKosmos.kt
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.qs.qsEventLogger
+import com.android.systemui.statusbar.policy.PolicyModule
+
+val Kosmos.qsUiModeNightTileConfig by
+ Kosmos.Fixture { PolicyModule.provideUiModeNightTileConfig(qsEventLogger) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/impl/uimodenight/UiModeNightTileModelHelper.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/impl/uimodenight/UiModeNightTileModelHelper.kt
new file mode 100644
index 0000000..1fe18e3
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/impl/uimodenight/UiModeNightTileModelHelper.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.qs.tiles.impl.uimodenight
+
+import android.content.res.Configuration
+import com.android.systemui.qs.tiles.impl.uimodenight.domain.model.UiModeNightTileModel
+import java.time.LocalTime
+
+object UiModeNightTileModelHelper {
+
+ const val DEFAULT_NIGHT_MODE_CUSTOM_TYPE = 0
+ val defaultCustomNightEnd: LocalTime = LocalTime.MAX
+ val defaultCustomNightStart: LocalTime = LocalTime.MIN
+
+ fun createModel(
+ nightMode: Boolean = false,
+ powerSave: Boolean = false,
+ uiMode: Int = Configuration.UI_MODE_NIGHT_NO,
+ isLocationEnabled: Boolean = true,
+ nighModeCustomType: Int = DEFAULT_NIGHT_MODE_CUSTOM_TYPE,
+ is24HourFormat: Boolean = false,
+ customNightModeEnd: LocalTime = defaultCustomNightEnd,
+ customNightModeStart: LocalTime = defaultCustomNightStart
+ ): UiModeNightTileModel {
+ return UiModeNightTileModel(
+ uiMode,
+ nightMode,
+ powerSave,
+ isLocationEnabled,
+ nighModeCustomType,
+ is24HourFormat,
+ customNightModeEnd,
+ customNightModeStart
+ )
+ }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/WindowRootViewVisibilityRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/WindowRootViewVisibilityRepositoryKosmos.kt
new file mode 100644
index 0000000..11871d5
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/WindowRootViewVisibilityRepositoryKosmos.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.scene.data.repository
+
+import com.android.internal.statusbar.statusBarService
+import com.android.systemui.concurrency.fakeExecutor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.windowRootViewVisibilityRepository by Fixture {
+ WindowRootViewVisibilityRepository(
+ statusBarService = statusBarService,
+ uiBgExecutor = fakeExecutor,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/transition/LargeScreenShadeInterpolatorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/transition/LargeScreenShadeInterpolatorKosmos.kt
new file mode 100644
index 0000000..e50d59e
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/transition/LargeScreenShadeInterpolatorKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.shade.transition
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.largeScreenShadeInterpolator by Fixture { mock<LargeScreenShadeInterpolator>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeKeyguardTransitionControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeKeyguardTransitionControllerKosmos.kt
new file mode 100644
index 0000000..e5a75d5
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeKeyguardTransitionControllerKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.lockscreenShadeKeyguardTransitionControllerFactory by Fixture {
+ mock<LockscreenShadeKeyguardTransitionController.Factory>()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeQsTransitionControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeQsTransitionControllerKosmos.kt
new file mode 100644
index 0000000..2767980
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeQsTransitionControllerKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.lockscreenShadeQsTransitionControllerFactory by Fixture {
+ mock<LockscreenShadeQsTransitionController.Factory>()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeScrimTransitionControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeScrimTransitionControllerKosmos.kt
new file mode 100644
index 0000000..93a7adf
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeScrimTransitionControllerKosmos.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 android.content.testableContext
+import com.android.systemui.dump.dumpManager
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.statusbar.phone.scrimController
+import com.android.systemui.statusbar.policy.configurationController
+import com.android.systemui.statusbar.policy.splitShadeStateController
+
+val Kosmos.lockscreenShadeScrimTransitionController by Fixture {
+ LockscreenShadeScrimTransitionController(
+ scrimController = scrimController,
+ context = testableContext,
+ configurationController = configurationController,
+ dumpManager = dumpManager,
+ splitShadeStateController = splitShadeStateController,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerKosmos.kt
new file mode 100644
index 0000000..2752cc2
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerKosmos.kt
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 android.content.testableContext
+import com.android.systemui.classifier.falsingCollector
+import com.android.systemui.classifier.falsingManager
+import com.android.systemui.dump.dumpManager
+import com.android.systemui.keyguard.domain.interactor.naturalScrollingSettingObserver
+import com.android.systemui.keyguard.wakefulnessLifecycle
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.media.controls.ui.mediaHierarchyManager
+import com.android.systemui.plugins.activityStarter
+import com.android.systemui.power.domain.interactor.powerInteractor
+import com.android.systemui.shade.data.repository.shadeRepository
+import com.android.systemui.shade.domain.interactor.shadeInteractor
+import com.android.systemui.statusbar.notification.stack.ambientState
+import com.android.systemui.statusbar.phone.keyguardBypassController
+import com.android.systemui.statusbar.phone.lsShadeTransitionLogger
+import com.android.systemui.statusbar.policy.configurationController
+import com.android.systemui.statusbar.policy.splitShadeStateController
+
+val Kosmos.lockscreenShadeTransitionController by Fixture {
+ LockscreenShadeTransitionController(
+ statusBarStateController = sysuiStatusBarStateController,
+ logger = lsShadeTransitionLogger,
+ keyguardBypassController = keyguardBypassController,
+ lockScreenUserManager = notificationLockscreenUserManager,
+ falsingCollector = falsingCollector,
+ ambientState = ambientState,
+ mediaHierarchyManager = mediaHierarchyManager,
+ scrimTransitionController = lockscreenShadeScrimTransitionController,
+ keyguardTransitionControllerFactory = lockscreenShadeKeyguardTransitionControllerFactory,
+ depthController = notificationShadeDepthController,
+ context = testableContext,
+ splitShadeOverScrollerFactory = splitShadeLockScreenOverScrollerFactory,
+ singleShadeOverScrollerFactory = singleShadeLockScreenOverScrollerFactory,
+ activityStarter = activityStarter,
+ wakefulnessLifecycle = wakefulnessLifecycle,
+ configurationController = configurationController,
+ falsingManager = falsingManager,
+ dumpManager = dumpManager,
+ qsTransitionControllerFactory = lockscreenShadeQsTransitionControllerFactory,
+ shadeRepository = shadeRepository,
+ shadeInteractor = shadeInteractor,
+ powerInteractor = powerInteractor,
+ splitShadeStateController = splitShadeStateController,
+ naturalScrollingSettingObserver = naturalScrollingSettingObserver,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/MediaHierarchyManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/MediaHierarchyManagerKosmos.kt
new file mode 100644
index 0000000..db2cdfa
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/MediaHierarchyManagerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.media.controls.ui
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.mediaHierarchyManager by Fixture { mock<MediaHierarchyManager>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerKosmos.kt
new file mode 100644
index 0000000..3743812
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.notificationLockscreenUserManager by Fixture {
+ mock<NotificationLockscreenUserManager>()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationShadeDepthControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationShadeDepthControllerKosmos.kt
new file mode 100644
index 0000000..3960cd1
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/NotificationShadeDepthControllerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.notificationShadeDepthController by Fixture { mock<NotificationShadeDepthController>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/SingleShadeLockScreenOverScrollerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/SingleShadeLockScreenOverScrollerKosmos.kt
new file mode 100644
index 0000000..43e39c0
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/SingleShadeLockScreenOverScrollerKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.singleShadeLockScreenOverScrollerFactory by Fixture {
+ mock<SingleShadeLockScreenOverScroller.Factory>()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScrollerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScrollerKosmos.kt
new file mode 100644
index 0000000..017371a
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScrollerKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.splitShadeLockScreenOverScrollerFactory by Fixture {
+ mock<SplitShadeLockScreenOverScroller.Factory>()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/domain/interactor/SeenNotificationsInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/domain/interactor/SeenNotificationsInteractorKosmos.kt
new file mode 100644
index 0000000..c1e0419
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/domain/interactor/SeenNotificationsInteractorKosmos.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.domain.interactor
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
+
+val Kosmos.seenNotificationsInteractor by Fixture {
+ SeenNotificationsInteractor(
+ notificationListRepository = activeNotificationListRepository,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/footer/ui/viewmodel/FooterViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/footer/ui/viewmodel/FooterViewModelKosmos.kt
new file mode 100644
index 0000000..ff22ca0
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/footer/ui/viewmodel/FooterViewModelKosmos.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.footer.ui.viewmodel
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.shade.domain.interactor.shadeInteractor
+import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
+import com.android.systemui.statusbar.notification.domain.interactor.seenNotificationsInteractor
+
+val Kosmos.footerViewModel by Fixture {
+ FooterViewModel(
+ activeNotificationsInteractor = activeNotificationsInteractor,
+ seenNotificationsInteractor = seenNotificationsInteractor,
+ shadeInteractor = shadeInteractor,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/domain/interactor/NotificationIconsInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/domain/interactor/NotificationIconsInteractorKosmos.kt
index e7bd5ea..5c8fe0d 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/domain/interactor/NotificationIconsInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/domain/interactor/NotificationIconsInteractorKosmos.kt
@@ -20,31 +20,29 @@
import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor
import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.statusbar.data.repository.notificationListenerSettingsRepository
import com.android.systemui.statusbar.notification.data.repository.notificationsKeyguardViewStateRepository
import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
import com.android.wm.shell.bubbles.bubblesOptional
import kotlinx.coroutines.ExperimentalCoroutinesApi
-val Kosmos.alwaysOnDisplayNotificationIconsInteractor by
- Kosmos.Fixture {
- AlwaysOnDisplayNotificationIconsInteractor(
- deviceEntryInteractor = deviceEntryInteractor,
- iconsInteractor = notificationIconsInteractor,
- )
- }
-val Kosmos.statusBarNotificationIconsInteractor by
- Kosmos.Fixture {
- StatusBarNotificationIconsInteractor(
- iconsInteractor = notificationIconsInteractor,
- settingsRepository = notificationListenerSettingsRepository,
- )
- }
-val Kosmos.notificationIconsInteractor by
- Kosmos.Fixture {
- NotificationIconsInteractor(
- activeNotificationsInteractor = activeNotificationsInteractor,
- bubbles = bubblesOptional,
- keyguardViewStateRepository = notificationsKeyguardViewStateRepository,
- )
- }
+val Kosmos.alwaysOnDisplayNotificationIconsInteractor by Fixture {
+ AlwaysOnDisplayNotificationIconsInteractor(
+ deviceEntryInteractor = deviceEntryInteractor,
+ iconsInteractor = notificationIconsInteractor,
+ )
+}
+val Kosmos.statusBarNotificationIconsInteractor by Fixture {
+ StatusBarNotificationIconsInteractor(
+ iconsInteractor = notificationIconsInteractor,
+ settingsRepository = notificationListenerSettingsRepository,
+ )
+}
+val Kosmos.notificationIconsInteractor by Fixture {
+ NotificationIconsInteractor(
+ activeNotificationsInteractor = activeNotificationsInteractor,
+ bubbles = bubblesOptional,
+ keyguardViewStateRepository = notificationsKeyguardViewStateRepository,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/ShelfNotificationIconViewStoreKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/ShelfNotificationIconViewStoreKosmos.kt
new file mode 100644
index 0000000..f7f16a4
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/ShelfNotificationIconViewStoreKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.icon.ui.viewbinder
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.statusbar.notification.stack.ui.viewbinder.notifCollection
+
+val Kosmos.shelfNotificationIconViewStore by Fixture {
+ ShelfNotificationIconViewStore(notifCollection = notifCollection)
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBindingFailureTrackerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBindingFailureTrackerKosmos.kt
new file mode 100644
index 0000000..dbd7c6b
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBindingFailureTrackerKosmos.kt
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.icon.ui.viewbinder
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.statusBarIconViewBindingFailureTracker by Fixture {
+ StatusBarIconViewBindingFailureTracker()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerShelfViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerShelfViewModelKosmos.kt
new file mode 100644
index 0000000..d679bb6
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerShelfViewModelKosmos.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.icon.ui.viewmodel
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.statusbar.notification.icon.domain.interactor.notificationIconsInteractor
+
+val Kosmos.notificationIconContainerShelfViewModel by
+ Kosmos.Fixture {
+ NotificationIconContainerShelfViewModel(
+ interactor = notificationIconsInteractor,
+ )
+ }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ui/viewmodel/ActivatableNotificationViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ui/viewmodel/ActivatableNotificationViewModelKosmos.kt
new file mode 100644
index 0000000..2523975
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ui/viewmodel/ActivatableNotificationViewModelKosmos.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.row.ui.viewmodel
+
+import com.android.systemui.accessibility.domain.interactor.accessibilityInteractor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.activatableNotificationViewModel by Fixture {
+ ActivatableNotificationViewModel.invoke(
+ a11yInteractor = accessibilityInteractor,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorKosmos.kt
new file mode 100644
index 0000000..2057b84
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorKosmos.kt
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.shelf.domain.interactor
+
+import com.android.systemui.keyguard.data.repository.deviceEntryFaceAuthRepository
+import com.android.systemui.keyguard.data.repository.keyguardRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.power.domain.interactor.powerInteractor
+import com.android.systemui.statusbar.lockscreenShadeTransitionController
+
+val Kosmos.notificationShelfInteractor by Fixture {
+ NotificationShelfInteractor(
+ keyguardRepository = keyguardRepository,
+ deviceEntryFaceAuthRepository = deviceEntryFaceAuthRepository,
+ powerInteractor = powerInteractor,
+ keyguardTransitionController = lockscreenShadeTransitionController,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModelKosmos.kt
new file mode 100644
index 0000000..988172c
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModelKosmos.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.shelf.ui.viewmodel
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.statusbar.notification.icon.ui.viewmodel.notificationIconContainerShelfViewModel
+import com.android.systemui.statusbar.notification.row.ui.viewmodel.activatableNotificationViewModel
+import com.android.systemui.statusbar.notification.shelf.domain.interactor.notificationShelfInteractor
+
+val Kosmos.notificationShelfViewModel by Fixture {
+ NotificationShelfViewModel(
+ interactor = notificationShelfInteractor,
+ activatableViewModel = activatableNotificationViewModel,
+ icons = notificationIconContainerShelfViewModel,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/AmbientStateKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/AmbientStateKosmos.kt
new file mode 100644
index 0000000..83ac330
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/AmbientStateKosmos.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack
+
+import android.content.testableContext
+import com.android.systemui.dump.dumpManager
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.shade.transition.largeScreenShadeInterpolator
+import com.android.systemui.statusbar.phone.statusBarKeyguardViewManager
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+
+@OptIn(ExperimentalCoroutinesApi::class)
+val Kosmos.ambientState by Fixture {
+ AmbientState(
+ /*context=*/ testableContext,
+ /*dumpManager=*/ dumpManager,
+ /*sectionProvider=*/ stackScrollAlgorithmSectionProvider,
+ /*bypassController=*/ stackScrollAlgorithmBypassController,
+ /*statusBarKeyguardViewManager=*/ statusBarKeyguardViewManager,
+ /*largeScreenShadeInterpolator=*/ largeScreenShadeInterpolator,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmKosmos.kt
new file mode 100644
index 0000000..67343c95
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmKosmos.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.stackScrollAlgorithmSectionProvider by Fixture {
+ mock<StackScrollAlgorithm.SectionProvider>()
+}
+
+var Kosmos.stackScrollAlgorithmBypassController by Fixture {
+ mock<StackScrollAlgorithm.BypassController>()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractorKosmos.kt
new file mode 100644
index 0000000..baca8b2
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractorKosmos.kt
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack.domain.interactor
+
+import com.android.systemui.common.domain.interactor.configurationInteractor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.power.domain.interactor.powerInteractor
+import com.android.systemui.unfold.domain.interactor.unfoldTransitionInteractor
+import com.android.systemui.util.animation.data.repository.animationStatusRepository
+
+val Kosmos.hideNotificationsInteractor by Fixture {
+ HideNotificationsInteractor(
+ unfoldTransitionInteractor = unfoldTransitionInteractor,
+ configurationInteractor = configurationInteractor,
+ animationsStatus = animationStatusRepository,
+ powerInteractor = powerInteractor,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotifCollectionKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotifCollectionKosmos.kt
new file mode 100644
index 0000000..d98f496
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotifCollectionKosmos.kt
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack.ui.viewbinder
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.statusbar.notification.collection.NotifCollection
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.notifCollection by Fixture { mock<NotifCollection>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationListViewBinderKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationListViewBinderKosmos.kt
new file mode 100644
index 0000000..75e5aeaf
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationListViewBinderKosmos.kt
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack.ui.viewbinder
+
+import com.android.internal.logging.metricsLogger
+import com.android.systemui.classifier.falsingManager
+import com.android.systemui.common.ui.configurationState
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.kosmos.testDispatcher
+import com.android.systemui.statusbar.notification.icon.ui.viewbinder.shelfNotificationIconViewStore
+import com.android.systemui.statusbar.notification.icon.ui.viewbinder.statusBarIconViewBindingFailureTracker
+import com.android.systemui.statusbar.notification.stack.ui.viewmodel.notificationListViewModel
+import com.android.systemui.statusbar.phone.notificationIconAreaController
+import com.android.systemui.statusbar.policy.configurationController
+
+val Kosmos.notificationListViewBinder by Fixture {
+ NotificationListViewBinder(
+ viewModel = notificationListViewModel,
+ backgroundDispatcher = testDispatcher,
+ configuration = configurationState,
+ configurationController = configurationController,
+ falsingManager = falsingManager,
+ iconAreaController = notificationIconAreaController,
+ iconViewBindingFailureTracker = statusBarIconViewBindingFailureTracker,
+ metricsLogger = metricsLogger,
+ shelfIconViewStore = shelfNotificationIconViewStore,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/HideListViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/HideListViewModelKosmos.kt
new file mode 100644
index 0000000..0dc62bf
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/HideListViewModelKosmos.kt
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack.ui.viewmodel
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.statusbar.notification.stack.domain.interactor.hideNotificationsInteractor
+import javax.inject.Provider
+
+val Kosmos.hideListViewModel by Fixture {
+ HideListViewModel(hideNotificationsInteractor = Provider { hideNotificationsInteractor })
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelKosmos.kt
new file mode 100644
index 0000000..44f3134
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelKosmos.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack.ui.viewmodel
+
+import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.shade.domain.interactor.shadeInteractor
+import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
+import com.android.systemui.statusbar.notification.domain.interactor.seenNotificationsInteractor
+import com.android.systemui.statusbar.notification.footer.ui.viewmodel.footerViewModel
+import com.android.systemui.statusbar.notification.shelf.ui.viewmodel.notificationShelfViewModel
+import com.android.systemui.statusbar.policy.domain.interactor.zenModeInteractor
+import java.util.Optional
+
+val Kosmos.notificationListViewModel by Fixture {
+ NotificationListViewModel(
+ shelf = notificationShelfViewModel,
+ hideListViewModel = hideListViewModel,
+ footer = Optional.of(footerViewModel),
+ activeNotificationsInteractor = activeNotificationsInteractor,
+ keyguardTransitionInteractor = keyguardTransitionInteractor,
+ seenNotificationsInteractor = seenNotificationsInteractor,
+ shadeInteractor = shadeInteractor,
+ zenModeInteractor = zenModeInteractor,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/WindowRootViewVisibilityInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/WindowRootViewVisibilityInteractorKosmos.kt
new file mode 100644
index 0000000..e4313bb1
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/WindowRootViewVisibilityInteractorKosmos.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification.stack.ui.viewmodel
+
+import com.android.systemui.keyguard.data.repository.keyguardRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.power.domain.interactor.powerInteractor
+import com.android.systemui.scene.data.repository.windowRootViewVisibilityRepository
+import com.android.systemui.scene.domain.interactor.WindowRootViewVisibilityInteractor
+import com.android.systemui.statusbar.policy.headsUpManager
+
+val Kosmos.windowRootViewVisibilityInteractor by Fixture {
+ WindowRootViewVisibilityInteractor(
+ scope = testScope,
+ windowRootViewVisibilityRepository = windowRootViewVisibilityRepository,
+ keyguardRepository = keyguardRepository,
+ headsUpManager = headsUpManager,
+ powerInteractor = powerInteractor,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/KeyguardBypassControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/KeyguardBypassControllerKosmos.kt
new file mode 100644
index 0000000..f4a1da0
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/KeyguardBypassControllerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.keyguardBypassController by Fixture { mock<KeyguardBypassController>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/LSShadeTransitionLoggerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/LSShadeTransitionLoggerKosmos.kt
new file mode 100644
index 0000000..496102f
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/LSShadeTransitionLoggerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.lsShadeTransitionLogger by Fixture { mock<LSShadeTransitionLogger>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/NotificationIconAreaControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/NotificationIconAreaControllerKosmos.kt
new file mode 100644
index 0000000..d44e061
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/NotificationIconAreaControllerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.notificationIconAreaController by Fixture { mock<NotificationIconAreaController>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ScrimControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ScrimControllerKosmos.kt
new file mode 100644
index 0000000..3ff57022
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ScrimControllerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.scrimController by Fixture { mock<ScrimController>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerKosmos.kt
index 4e15ea2..ddce4c8 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerKosmos.kt
@@ -18,5 +18,7 @@
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.util.mockito.mock
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+@OptIn(ExperimentalCoroutinesApi::class)
var Kosmos.statusBarKeyguardViewManager by Kosmos.Fixture { mock<StatusBarKeyguardViewManager>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/HeadsUpManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/HeadsUpManagerKosmos.kt
new file mode 100644
index 0000000..a4db00c
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/HeadsUpManagerKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.policy
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.headsUpManager by Fixture { mock<HeadsUpManager>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/data/repository/ZenModeRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/data/repository/ZenModeRepositoryKosmos.kt
new file mode 100644
index 0000000..1ec7511
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/data/repository/ZenModeRepositoryKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.data.repository
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.zenModeRepository by Fixture { fakeZenModeRepository }
+val Kosmos.fakeZenModeRepository by Fixture { FakeZenModeRepository() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorKosmos.kt
new file mode 100644
index 0000000..78242b6
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorKosmos.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.domain.interactor
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.statusbar.policy.data.repository.zenModeRepository
+
+val Kosmos.zenModeInteractor by Fixture {
+ ZenModeInteractor(
+ repository = zenModeRepository,
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/UnfoldTransitionProgressProviderKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/UnfoldTransitionProgressProviderKosmos.kt
new file mode 100644
index 0000000..7c54a57
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/UnfoldTransitionProgressProviderKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.unfold
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.util.mockito.mock
+
+var Kosmos.unfoldTransitionProgressProvider by Fixture { mock<UnfoldTransitionProgressProvider>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/data/repository/UnfoldTransitionRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/data/repository/UnfoldTransitionRepositoryKosmos.kt
new file mode 100644
index 0000000..2a250c8
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/data/repository/UnfoldTransitionRepositoryKosmos.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.unfold.data.repository
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.unfold.unfoldTransitionProgressProvider
+import java.util.Optional
+
+val Kosmos.unfoldTransitionRepository by Fixture {
+ UnfoldTransitionRepositoryImpl(
+ unfoldProgressProvider = Optional.of(unfoldTransitionProgressProvider),
+ )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractorKosmos.kt
new file mode 100644
index 0000000..d03616a
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractorKosmos.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.unfold.domain.interactor
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.unfold.data.repository.unfoldTransitionRepository
+
+val Kosmos.unfoldTransitionInteractor by Fixture {
+ UnfoldTransitionInteractorImpl(repository = unfoldTransitionRepository)
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/animation/data/repository/AnimationStatusRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/animation/data/repository/AnimationStatusRepositoryKosmos.kt
new file mode 100644
index 0000000..63ea085
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/animation/data/repository/AnimationStatusRepositoryKosmos.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.animation.data.repository
+
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+
+val Kosmos.animationStatusRepository by Fixture { fakeAnimationStatusRepository }
+val Kosmos.fakeAnimationStatusRepository by Fixture { FakeAnimationStatusRepository() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeBatteryController.java b/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeBatteryController.java
index 209cac6..5ae033c 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeBatteryController.java
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeBatteryController.java
@@ -22,11 +22,16 @@
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
public class FakeBatteryController extends BaseLeakChecker<BatteryStateChangeCallback>
implements BatteryController {
private boolean mIsAodPowerSave = false;
private boolean mWirelessCharging;
+ private boolean mPowerSaveMode = false;
+
+ private final List<BatteryStateChangeCallback> mCallbacks = new ArrayList<>();
public FakeBatteryController(LeakCheck test) {
super(test, "battery");
@@ -44,12 +49,18 @@
@Override
public void setPowerSaveMode(boolean powerSave) {
-
+ mPowerSaveMode = powerSave;
+ for (BatteryStateChangeCallback callback: mCallbacks) {
+ callback.onPowerSaveChanged(powerSave);
+ }
}
+ /**
+ * Note: this method ignores the View argument
+ */
@Override
public void setPowerSaveMode(boolean powerSave, View view) {
-
+ setPowerSaveMode(powerSave);
}
@Override
@@ -59,7 +70,7 @@
@Override
public boolean isPowerSave() {
- return false;
+ return mPowerSaveMode;
}
@Override
@@ -79,4 +90,14 @@
public void setWirelessCharging(boolean wirelessCharging) {
mWirelessCharging = wirelessCharging;
}
+
+ @Override
+ public void addCallback(BatteryStateChangeCallback listener) {
+ mCallbacks.add(listener);
+ }
+
+ @Override
+ public void removeCallback(BatteryStateChangeCallback listener) {
+ mCallbacks.remove(listener);
+ }
}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeLocationController.java b/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeLocationController.java
index 3c63275..442d15b 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeLocationController.java
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/utils/leaks/FakeLocationController.java
@@ -26,6 +26,7 @@
implements LocationController {
private final List<LocationChangeCallback> mCallbacks = new ArrayList<>();
+ private boolean mLocationEnabled = false;
public FakeLocationController(LeakCheck test) {
super(test, "location");
@@ -38,13 +39,14 @@
@Override
public boolean isLocationEnabled() {
- return false;
+ return mLocationEnabled;
}
@Override
public boolean setLocationEnabled(boolean enabled) {
+ mLocationEnabled = enabled;
mCallbacks.forEach(callback -> callback.onLocationSettingsChanged(enabled));
- return false;
+ return true;
}
@Override
diff --git a/ravenwood/framework-minus-apex-ravenwood-policies.txt b/ravenwood/framework-minus-apex-ravenwood-policies.txt
index 6a6ae38..c9069e5 100644
--- a/ravenwood/framework-minus-apex-ravenwood-policies.txt
+++ b/ravenwood/framework-minus-apex-ravenwood-policies.txt
@@ -74,6 +74,7 @@
class android.util.proto.WireTypeMismatchException stubclass
# Misc
+class android.util.BackupUtils stubclass
class android.util.Dumpable stubclass
class android.util.DebugUtils stubclass
class android.util.MathUtils stubclass
@@ -81,15 +82,11 @@
class android.util.UtilConfig stubclass
# Internals
-class com.android.internal.util.FastMath stubclass
-class com.android.internal.util.FastPrintWriter stubclass
-class com.android.internal.util.GrowingArrayUtils stubclass
-class com.android.internal.util.LineBreakBufferedWriter stubclass
-class com.android.internal.util.Parcelling stubclass
+class com.android.internal.util.FileRotator stubclass
+class com.android.internal.util.HexDump stubclass
+class com.android.internal.util.MessageUtils stubclass
class com.android.internal.util.Preconditions stubclass
-class com.android.internal.util.StringPool stubclass
-
-class com.android.internal.os.SomeArgs stubclass
+class com.android.internal.util.TokenBucket stubclass
# Parcel
class android.os.ParcelFormatException stubclass
diff --git a/ravenwood/junit-src/android/platform/test/annotations/IgnoreUnderRavenwood.java b/ravenwood/junit-src/android/platform/test/annotations/IgnoreUnderRavenwood.java
index edb0442..916dd59 100644
--- a/ravenwood/junit-src/android/platform/test/annotations/IgnoreUnderRavenwood.java
+++ b/ravenwood/junit-src/android/platform/test/annotations/IgnoreUnderRavenwood.java
@@ -36,7 +36,7 @@
*
* @hide
*/
-@Target(ElementType.METHOD)
+@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreUnderRavenwood {
/**
diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java
index 9db5b98..d175713 100644
--- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java
+++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java
@@ -93,7 +93,7 @@
/**
* Return if the current process is running under a Ravenwood test environment.
*/
- public boolean isUnderRavenwood() {
+ public static boolean isUnderRavenwood() {
return IS_UNDER_RAVENWOOD;
}
@@ -102,6 +102,9 @@
return new Statement() {
@Override
public void evaluate() throws Throwable {
+ if (description.getTestClass().getAnnotation(IgnoreUnderRavenwood.class) != null) {
+ Assume.assumeFalse(IS_UNDER_RAVENWOOD);
+ }
if (description.getAnnotation(IgnoreUnderRavenwood.class) != null) {
Assume.assumeFalse(IS_UNDER_RAVENWOOD);
}
diff --git a/ravenwood/ravenwood-annotation-allowed-classes.txt b/ravenwood/ravenwood-annotation-allowed-classes.txt
index 468b7c9..831fce1 100644
--- a/ravenwood/ravenwood-annotation-allowed-classes.txt
+++ b/ravenwood/ravenwood-annotation-allowed-classes.txt
@@ -4,11 +4,21 @@
android.util.AtomicFile
android.util.DataUnit
+android.util.DayOfMonthCursor
+android.util.DumpableContainer
android.util.EventLog
android.util.IntArray
+android.util.KeyValueListParser
android.util.LongArray
+android.util.LongArrayQueue
+android.util.LongSparseLongArray
android.util.LruCache
+android.util.MonthDisplayHelper
+android.util.RecurrenceRule
+android.util.RotationUtils
android.util.Slog
+android.util.SparseDoubleArray
+android.util.SparseSetArray
android.util.TimeUtils
android.util.Xml
@@ -79,3 +89,30 @@
android.graphics.RectF
com.android.server.LocalServices
+
+com.android.internal.os.SomeArgs
+
+com.android.internal.util.BitUtils
+com.android.internal.util.BitwiseInputStream
+com.android.internal.util.BitwiseOutputStream
+com.android.internal.util.CallbackRegistry
+com.android.internal.util.DumpableContainer
+com.android.internal.util.dump.DumpableContainerImpl
+com.android.internal.util.DumpUtils
+com.android.internal.util.FastMath
+com.android.internal.util.FastPrintWriter
+com.android.internal.util.FileRotator
+com.android.internal.util.GrowingArrayUtils
+com.android.internal.util.HeavyHitterSketch
+com.android.internal.util.LineBreakBufferedWriter
+com.android.internal.util.ObjectUtils
+com.android.internal.util.Parcelling
+com.android.internal.util.ParseUtils
+com.android.internal.util.ProcFileReader
+com.android.internal.util.QuickSelect
+com.android.internal.util.RingBuffer
+com.android.internal.util.StringPool
+
+com.google.android.collect.Lists
+com.google.android.collect.Maps
+com.google.android.collect.Sets
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 5bffe80..440e996 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -4406,6 +4406,28 @@
}
@Override
+ public boolean isAccessibilityServiceWarningRequired(AccessibilityServiceInfo info) {
+ mSecurityPolicy.enforceCallingOrSelfPermission(Manifest.permission.MANAGE_ACCESSIBILITY);
+
+ // Warning is not required if the service is already enabled.
+ synchronized (mLock) {
+ final AccessibilityUserState userState = getCurrentUserStateLocked();
+ if (userState.getEnabledServicesLocked().contains(info.getComponentName())) {
+ return false;
+ }
+ }
+ // Warning is not required if the service is already assigned to a shortcut.
+ for (int shortcutType : AccessibilityManager.SHORTCUT_TYPES) {
+ if (getAccessibilityShortcutTargets(shortcutType).contains(
+ info.getComponentName().flattenToString())) {
+ return false;
+ }
+ }
+ // Warning is required by default.
+ return true;
+ }
+
+ @Override
public void dump(FileDescriptor fd, final PrintWriter pw, String[] args) {
if (!DumpUtils.checkDumpPermission(mContext, LOG_TAG, pw)) return;
synchronized (mLock) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 2d687de..3e533a6 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -1710,19 +1710,23 @@
private static final int INDEX_NATIVE_PSS = 0;
private static final int INDEX_NATIVE_SWAP_PSS = 1;
private static final int INDEX_NATIVE_RSS = 2;
- private static final int INDEX_DALVIK_PSS = 3;
- private static final int INDEX_DALVIK_SWAP_PSS = 4;
- private static final int INDEX_DALVIK_RSS = 5;
- private static final int INDEX_OTHER_PSS = 6;
- private static final int INDEX_OTHER_SWAP_PSS = 7;
- private static final int INDEX_OTHER_RSS = 8;
- private static final int INDEX_TOTAL_PSS = 9;
- private static final int INDEX_TOTAL_SWAP_PSS = 10;
- private static final int INDEX_TOTAL_RSS = 11;
- private static final int INDEX_TOTAL_NATIVE_PSS = 12;
- private static final int INDEX_TOTAL_MEMTRACK_GRAPHICS = 13;
- private static final int INDEX_TOTAL_MEMTRACK_GL = 14;
- private static final int INDEX_LAST = 15;
+ private static final int INDEX_NATIVE_PRIVATE_DIRTY = 3;
+ private static final int INDEX_DALVIK_PSS = 4;
+ private static final int INDEX_DALVIK_SWAP_PSS = 5;
+ private static final int INDEX_DALVIK_RSS = 6;
+ private static final int INDEX_DALVIK_PRIVATE_DIRTY = 7;
+ private static final int INDEX_OTHER_PSS = 8;
+ private static final int INDEX_OTHER_SWAP_PSS = 9;
+ private static final int INDEX_OTHER_RSS = 10;
+ private static final int INDEX_OTHER_PRIVATE_DIRTY = 11;
+ private static final int INDEX_TOTAL_PSS = 12;
+ private static final int INDEX_TOTAL_SWAP_PSS = 13;
+ private static final int INDEX_TOTAL_RSS = 14;
+ private static final int INDEX_TOTAL_PRIVATE_DIRTY = 15;
+ private static final int INDEX_TOTAL_NATIVE_PSS = 16;
+ private static final int INDEX_TOTAL_MEMTRACK_GRAPHICS = 17;
+ private static final int INDEX_TOTAL_MEMTRACK_GL = 18;
+ private static final int INDEX_LAST = 19;
/**
* Used to notify activity lifecycle events.
@@ -11712,13 +11716,14 @@
final long pss;
final long swapPss;
final long mRss;
+ final long mPrivateDirty;
final int id; // pid
final int userId;
final boolean hasActivities;
ArrayList<MemItem> subitems;
- MemItem(String label, String shortLabel, long pss, long swapPss, long rss, int id,
- @UserIdInt int userId,
+ MemItem(String label, String shortLabel, long pss, long swapPss, long rss,
+ long privateDirty, int id, @UserIdInt int userId,
boolean hasActivities) {
this.isProc = true;
this.label = label;
@@ -11726,18 +11731,21 @@
this.pss = pss;
this.swapPss = swapPss;
this.mRss = rss;
+ this.mPrivateDirty = privateDirty;
this.id = id;
this.userId = userId;
this.hasActivities = hasActivities;
}
- MemItem(String label, String shortLabel, long pss, long swapPss, long rss, int id) {
+ MemItem(String label, String shortLabel, long pss, long swapPss, long rss,
+ long privateDirty, int id) {
this.isProc = false;
this.label = label;
this.shortLabel = shortLabel;
this.pss = pss;
this.swapPss = swapPss;
this.mRss = rss;
+ this.mPrivateDirty = privateDirty;
this.id = id;
this.userId = UserHandle.USER_SYSTEM;
this.hasActivities = false;
@@ -11762,7 +11770,7 @@
static final void dumpMemItems(PrintWriter pw, String prefix, String tag,
ArrayList<MemItem> items, boolean sort, boolean isCompact, boolean dumpPss,
- boolean dumpSwapPss) {
+ boolean dumpSwapPss, boolean dumpPrivateDirty) {
if (sort && !isCompact) {
sortMemItems(items, dumpPss);
}
@@ -11770,14 +11778,18 @@
for (int i=0; i<items.size(); i++) {
MemItem mi = items.get(i);
if (!isCompact) {
- if (dumpPss && dumpSwapPss) {
- pw.printf("%s%s: %-60s (%s in swap)\n", prefix, stringifyKBSize(mi.pss),
- mi.label, stringifyKBSize(mi.swapPss));
- } else {
- pw.printf("%s%s: %s%s\n", prefix, stringifyKBSize(dumpPss ? mi.pss : mi.mRss),
+ pw.printf("%s%s: %s%s\n", prefix, stringifyKBSize(dumpPss ? mi.pss : mi.mRss),
mi.label,
mi.userId != UserHandle.USER_SYSTEM ? " (user " + mi.userId + ")" : "");
+ if (dumpPss && dumpSwapPss) {
+ pw.printf("(%s in swap%s", stringifyKBSize(mi.swapPss),
+ dumpPrivateDirty ? ", " : ")");
}
+ if (dumpPrivateDirty) {
+ pw.printf("%s%s private dirty)", dumpSwapPss ? "" : "(",
+ stringifyKBSize(mi.mPrivateDirty));
+ }
+ pw.printf("\n");
} else if (mi.isProc) {
pw.print("proc,"); pw.print(tag); pw.print(","); pw.print(mi.shortLabel);
pw.print(","); pw.print(mi.id); pw.print(",");
@@ -11791,7 +11803,7 @@
}
if (mi.subitems != null) {
dumpMemItems(pw, prefix + " ", mi.shortLabel, mi.subitems,
- true, isCompact, dumpPss, dumpSwapPss);
+ true, isCompact, dumpPss, dumpSwapPss, dumpPrivateDirty);
}
}
}
@@ -11959,6 +11971,7 @@
boolean isCheckinRequest;
boolean dumpSwapPss;
boolean dumpProto;
+ boolean mDumpPrivateDirty;
}
@NeverCompile // Avoid size overhead of debugging code.
@@ -11977,6 +11990,7 @@
opts.isCheckinRequest = false;
opts.dumpSwapPss = false;
opts.dumpProto = asProto;
+ opts.mDumpPrivateDirty = false;
int opti = 0;
while (opti < args.length) {
@@ -11999,6 +12013,8 @@
opts.dumpSummaryOnly = true;
} else if ("-S".equals(opt)) {
opts.dumpSwapPss = true;
+ } else if ("-p".equals(opt)) {
+ opts.mDumpPrivateDirty = true;
} else if ("--unreachable".equals(opt)) {
opts.dumpUnreachable = true;
} else if ("--oom".equals(opt)) {
@@ -12019,6 +12035,7 @@
pw.println(" -c: dump in a compact machine-parseable representation.");
pw.println(" -s: dump only summary of application memory usage.");
pw.println(" -S: dump also SwapPss.");
+ pw.println(" -p: dump also private dirty memory usage.");
pw.println(" --oom: only show processes organized by oom adj.");
pw.println(" --local: only collect details locally, don't call process.");
pw.println(" --package: interpret process arg as package, dumping all");
@@ -12137,14 +12154,18 @@
EmptyArray.LONG;
long[] dalvikSubitemRss = opts.dumpDalvik ? new long[Debug.MemoryInfo.NUM_DVK_STATS] :
EmptyArray.LONG;
+ long[] dalvikSubitemPrivateDirty = opts.dumpDalvik
+ ? new long[Debug.MemoryInfo.NUM_DVK_STATS] : EmptyArray.LONG;
long[] miscPss = new long[Debug.MemoryInfo.NUM_OTHER_STATS];
long[] miscSwapPss = new long[Debug.MemoryInfo.NUM_OTHER_STATS];
long[] miscRss = new long[Debug.MemoryInfo.NUM_OTHER_STATS];
+ long[] miscPrivateDirty = new long[Debug.MemoryInfo.NUM_OTHER_STATS];
long[] memtrackTmp = new long[4];
long oomPss[] = new long[DUMP_MEM_OOM_LABEL.length];
long oomSwapPss[] = new long[DUMP_MEM_OOM_LABEL.length];
long[] oomRss = new long[DUMP_MEM_OOM_LABEL.length];
+ long[] oomPrivateDirty = new long[DUMP_MEM_OOM_LABEL.length];
ArrayList<MemItem>[] oomProcs = (ArrayList<MemItem>[])
new ArrayList[DUMP_MEM_OOM_LABEL.length];
@@ -12240,6 +12261,7 @@
final long myTotalUss = mi.getTotalUss();
final long myTotalRss = mi.getTotalRss();
final long myTotalSwapPss = mi.getTotalSwappedOutPss();
+ final long myTotalPrivateDirty = mi.getTotalPrivateDirty();
synchronized (mProcLock) {
if (r.getThread() != null && oomAdj == r.mState.getSetAdjWithServices()) {
@@ -12253,29 +12275,36 @@
ss[INDEX_TOTAL_PSS] += myTotalPss;
ss[INDEX_TOTAL_SWAP_PSS] += myTotalSwapPss;
ss[INDEX_TOTAL_RSS] += myTotalRss;
+ ss[INDEX_TOTAL_PRIVATE_DIRTY] += myTotalPrivateDirty;
ss[INDEX_TOTAL_MEMTRACK_GRAPHICS] += memtrackGraphics;
ss[INDEX_TOTAL_MEMTRACK_GL] += memtrackGl;
MemItem pssItem = new MemItem(r.processName + " (pid " + pid +
(hasActivities ? " / activities)" : ")"), r.processName, myTotalPss,
- myTotalSwapPss, myTotalRss, pid, r.userId, hasActivities);
+ myTotalSwapPss, myTotalRss, myTotalPrivateDirty,
+ pid, r.userId, hasActivities);
procMems.add(pssItem);
procMemsMap.put(pid, pssItem);
ss[INDEX_NATIVE_PSS] += mi.nativePss;
ss[INDEX_NATIVE_SWAP_PSS] += mi.nativeSwappedOutPss;
ss[INDEX_NATIVE_RSS] += mi.nativeRss;
+ ss[INDEX_NATIVE_PRIVATE_DIRTY] += mi.nativePrivateDirty;
ss[INDEX_DALVIK_PSS] += mi.dalvikPss;
ss[INDEX_DALVIK_SWAP_PSS] += mi.dalvikSwappedOutPss;
ss[INDEX_DALVIK_RSS] += mi.dalvikRss;
+ ss[INDEX_DALVIK_PRIVATE_DIRTY] += mi.dalvikPrivateDirty;
for (int j=0; j<dalvikSubitemPss.length; j++) {
dalvikSubitemPss[j] += mi.getOtherPss(Debug.MemoryInfo.NUM_OTHER_STATS + j);
dalvikSubitemSwapPss[j] +=
mi.getOtherSwappedOutPss(Debug.MemoryInfo.NUM_OTHER_STATS + j);
+ dalvikSubitemPrivateDirty[j] +=
+ mi.getOtherPrivateDirty(Debug.MemoryInfo.NUM_OTHER_STATS + j);
dalvikSubitemRss[j] += mi.getOtherRss(Debug.MemoryInfo.NUM_OTHER_STATS + j);
}
ss[INDEX_OTHER_PSS] += mi.otherPss;
ss[INDEX_OTHER_RSS] += mi.otherRss;
ss[INDEX_OTHER_SWAP_PSS] += mi.otherSwappedOutPss;
+ ss[INDEX_OTHER_PRIVATE_DIRTY] += mi.otherPrivateDirty;
for (int j=0; j<Debug.MemoryInfo.NUM_OTHER_STATS; j++) {
long mem = mi.getOtherPss(j);
miscPss[j] += mem;
@@ -12283,6 +12312,9 @@
mem = mi.getOtherSwappedOutPss(j);
miscSwapPss[j] += mem;
ss[INDEX_OTHER_SWAP_PSS] -= mem;
+ mem = mi.getOtherPrivateDirty(j);
+ miscPrivateDirty[j] += mem;
+ ss[INDEX_OTHER_PRIVATE_DIRTY] -= mem;
mem = mi.getOtherRss(j);
miscRss[j] += mem;
ss[INDEX_OTHER_RSS] -= mem;
@@ -12299,6 +12331,7 @@
&& oomAdj < DUMP_MEM_OOM_ADJ[oomIndex + 1])) {
oomPss[oomIndex] += myTotalPss;
oomSwapPss[oomIndex] += myTotalSwapPss;
+ oomPrivateDirty[oomIndex] += myTotalPrivateDirty;
if (oomProcs[oomIndex] == null) {
oomProcs[oomIndex] = new ArrayList<MemItem>();
}
@@ -12345,6 +12378,7 @@
final long myTotalPss = info.getTotalPss();
final long myTotalSwapPss = info.getTotalSwappedOutPss();
final long myTotalRss = info.getTotalRss();
+ final long myTotalPrivateDirty = info.getTotalPrivateDirty();
ss[INDEX_TOTAL_PSS] += myTotalPss;
ss[INDEX_TOTAL_SWAP_PSS] += myTotalSwapPss;
ss[INDEX_TOTAL_RSS] += myTotalRss;
@@ -12354,15 +12388,17 @@
MemItem pssItem = new MemItem(st.name + " (pid " + st.pid + ")",
st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss,
- st.pid, UserHandle.getUserId(st.uid), false);
+ myTotalPrivateDirty, st.pid, UserHandle.getUserId(st.uid), false);
procMems.add(pssItem);
ss[INDEX_NATIVE_PSS] += info.nativePss;
ss[INDEX_NATIVE_SWAP_PSS] += info.nativeSwappedOutPss;
ss[INDEX_NATIVE_RSS] += info.nativeRss;
+ ss[INDEX_NATIVE_PRIVATE_DIRTY] += info.nativePrivateDirty;
ss[INDEX_DALVIK_PSS] += info.dalvikPss;
ss[INDEX_DALVIK_SWAP_PSS] += info.dalvikSwappedOutPss;
ss[INDEX_DALVIK_RSS] += info.dalvikRss;
+ ss[INDEX_DALVIK_PRIVATE_DIRTY] += info.dalvikPrivateDirty;
for (int j = 0; j < dalvikSubitemPss.length; j++) {
dalvikSubitemPss[j] += info.getOtherPss(
Debug.MemoryInfo.NUM_OTHER_STATS + j);
@@ -12370,10 +12406,13 @@
info.getOtherSwappedOutPss(Debug.MemoryInfo.NUM_OTHER_STATS + j);
dalvikSubitemRss[j] += info.getOtherRss(Debug.MemoryInfo.NUM_OTHER_STATS
+ j);
+ dalvikSubitemPrivateDirty[j] +=
+ info.getOtherPrivateDirty(Debug.MemoryInfo.NUM_OTHER_STATS + j);
}
ss[INDEX_OTHER_PSS] += info.otherPss;
ss[INDEX_OTHER_SWAP_PSS] += info.otherSwappedOutPss;
ss[INDEX_OTHER_RSS] += info.otherRss;
+ ss[INDEX_OTHER_PRIVATE_DIRTY] += info.otherPrivateDirty;
for (int j = 0; j < Debug.MemoryInfo.NUM_OTHER_STATS; j++) {
long mem = info.getOtherPss(j);
miscPss[j] += mem;
@@ -12384,6 +12423,9 @@
mem = info.getOtherRss(j);
miscRss[j] += mem;
ss[INDEX_OTHER_RSS] -= mem;
+ mem = info.getOtherPrivateDirty(j);
+ miscPrivateDirty[j] += mem;
+ ss[INDEX_OTHER_PRIVATE_DIRTY] -= mem;
}
oomPss[0] += myTotalPss;
oomSwapPss[0] += myTotalSwapPss;
@@ -12392,21 +12434,26 @@
}
oomProcs[0].add(pssItem);
oomRss[0] += myTotalRss;
+ oomPrivateDirty[0] += myTotalPrivateDirty;
}
});
ArrayList<MemItem> catMems = new ArrayList<MemItem>();
catMems.add(new MemItem("Native", "Native",
- ss[INDEX_NATIVE_PSS], ss[INDEX_NATIVE_SWAP_PSS], ss[INDEX_NATIVE_RSS], -1));
+ ss[INDEX_NATIVE_PSS], ss[INDEX_NATIVE_SWAP_PSS],
+ ss[INDEX_NATIVE_RSS], ss[INDEX_NATIVE_PRIVATE_DIRTY], -1));
final int dalvikId = -2;
catMems.add(new MemItem("Dalvik", "Dalvik", ss[INDEX_DALVIK_PSS],
- ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS], dalvikId));
+ ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS],
+ ss[INDEX_DALVIK_PRIVATE_DIRTY], dalvikId));
catMems.add(new MemItem("Unknown", "Unknown", ss[INDEX_OTHER_PSS],
- ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS], -3));
+ ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS],
+ ss[INDEX_OTHER_PRIVATE_DIRTY], -3));
for (int j=0; j<Debug.MemoryInfo.NUM_OTHER_STATS; j++) {
String label = Debug.MemoryInfo.getOtherLabel(j);
- catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j], miscRss[j], j));
+ catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j], miscRss[j],
+ miscPrivateDirty[j], j));
}
if (dalvikSubitemPss.length > 0) {
// Add dalvik subitems.
@@ -12432,7 +12479,8 @@
final String name = Debug.MemoryInfo.getOtherLabel(
Debug.MemoryInfo.NUM_OTHER_STATS + j);
memItem.subitems.add(new MemItem(name, name, dalvikSubitemPss[j],
- dalvikSubitemSwapPss[j], dalvikSubitemRss[j], j));
+ dalvikSubitemSwapPss[j], dalvikSubitemRss[j],
+ dalvikSubitemPrivateDirty[j], j));
}
}
}
@@ -12443,7 +12491,7 @@
String label = opts.isCompact ? DUMP_MEM_OOM_COMPACT_LABEL[j]
: DUMP_MEM_OOM_LABEL[j];
MemItem item = new MemItem(label, label, oomPss[j], oomSwapPss[j], oomRss[j],
- DUMP_MEM_OOM_ADJ[j]);
+ oomPrivateDirty[j], DUMP_MEM_OOM_ADJ[j]);
item.subitems = oomProcs[j];
oomMems.add(item);
}
@@ -12454,33 +12502,34 @@
if (!brief && !opts.oomOnly && !opts.isCompact) {
pw.println();
pw.println("Total RSS by process:");
- dumpMemItems(pw, " ", "proc", procMems, true, opts.isCompact, false, false);
+ dumpMemItems(pw, " ", "proc", procMems, true, opts.isCompact, false, false, false);
pw.println();
}
if (!opts.isCompact) {
pw.println("Total RSS by OOM adjustment:");
}
- dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, false, false);
+ dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, false, false, false);
if (!brief && !opts.oomOnly) {
PrintWriter out = categoryPw != null ? categoryPw : pw;
if (!opts.isCompact) {
out.println();
out.println("Total RSS by category:");
}
- dumpMemItems(out, " ", "cat", catMems, true, opts.isCompact, false, false);
+ dumpMemItems(out, " ", "cat", catMems, true, opts.isCompact, false, false, false);
}
opts.dumpSwapPss = opts.dumpSwapPss && hasSwapPss && ss[INDEX_TOTAL_SWAP_PSS] != 0;
if (!brief && !opts.oomOnly && !opts.isCompact) {
pw.println();
pw.println("Total PSS by process:");
dumpMemItems(pw, " ", "proc", procMems, true, opts.isCompact, true,
- opts.dumpSwapPss);
+ opts.dumpSwapPss, opts.mDumpPrivateDirty);
pw.println();
}
if (!opts.isCompact) {
pw.println("Total PSS by OOM adjustment:");
}
- dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, true, opts.dumpSwapPss);
+ dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, true, opts.dumpSwapPss,
+ opts.mDumpPrivateDirty);
if (!brief && !opts.oomOnly) {
PrintWriter out = categoryPw != null ? categoryPw : pw;
if (!opts.isCompact) {
@@ -12488,7 +12537,7 @@
out.println("Total PSS by category:");
}
dumpMemItems(out, " ", "cat", catMems, true, opts.isCompact, true,
- opts.dumpSwapPss);
+ opts.dumpSwapPss, opts.mDumpPrivateDirty);
}
if (!opts.isCompact) {
pw.println();
@@ -12890,7 +12939,7 @@
ss[INDEX_TOTAL_RSS] += myTotalRss;
MemItem pssItem = new MemItem(r.processName + " (pid " + pid +
(hasActivities ? " / activities)" : ")"), r.processName, myTotalPss,
- myTotalSwapPss, myTotalRss, pid, r.userId, hasActivities);
+ myTotalSwapPss, myTotalRss, 0, pid, r.userId, hasActivities);
procMems.add(pssItem);
procMemsMap.put(pid, pssItem);
@@ -12977,7 +13026,7 @@
ss[INDEX_TOTAL_NATIVE_PSS] += myTotalPss;
MemItem pssItem = new MemItem(st.name + " (pid " + st.pid + ")",
- st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss,
+ st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss, 0,
st.pid, UserHandle.getUserId(st.uid), false);
procMems.add(pssItem);
@@ -13022,15 +13071,16 @@
ArrayList<MemItem> catMems = new ArrayList<MemItem>();
catMems.add(new MemItem("Native", "Native", ss[INDEX_NATIVE_PSS],
- ss[INDEX_NATIVE_SWAP_PSS], ss[INDEX_NATIVE_RSS], -1));
+ ss[INDEX_NATIVE_SWAP_PSS], ss[INDEX_NATIVE_RSS], 0, -1));
final int dalvikId = -2;
catMems.add(new MemItem("Dalvik", "Dalvik", ss[INDEX_DALVIK_PSS],
- ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS], dalvikId));
+ ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS], 0, dalvikId));
catMems.add(new MemItem("Unknown", "Unknown", ss[INDEX_OTHER_PSS],
- ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS], -3));
+ ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS], 0, -3));
for (int j=0; j<Debug.MemoryInfo.NUM_OTHER_STATS; j++) {
String label = Debug.MemoryInfo.getOtherLabel(j);
- catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j], miscRss[j], j));
+ catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j],
+ miscRss[j], 0, j));
}
if (dalvikSubitemPss.length > 0) {
// Add dalvik subitems.
@@ -13056,7 +13106,7 @@
final String name = Debug.MemoryInfo.getOtherLabel(
Debug.MemoryInfo.NUM_OTHER_STATS + j);
memItem.subitems.add(new MemItem(name, name, dalvikSubitemPss[j],
- dalvikSubitemSwapPss[j], dalvikSubitemRss[j], j));
+ dalvikSubitemSwapPss[j], dalvikSubitemRss[j], 0, j));
}
}
}
@@ -13066,7 +13116,7 @@
if (oomPss[j] != 0) {
String label = opts.isCompact ? DUMP_MEM_OOM_COMPACT_LABEL[j]
: DUMP_MEM_OOM_LABEL[j];
- MemItem item = new MemItem(label, label, oomPss[j], oomSwapPss[j], oomRss[j],
+ MemItem item = new MemItem(label, label, oomPss[j], oomSwapPss[j], oomRss[j], 0,
DUMP_MEM_OOM_ADJ[j]);
item.subitems = oomProcs[j];
oomMems.add(item);
diff --git a/services/core/java/com/android/server/audio/AdiDeviceState.java b/services/core/java/com/android/server/audio/AdiDeviceState.java
index b91e633..ffdab7d 100644
--- a/services/core/java/com/android/server/audio/AdiDeviceState.java
+++ b/services/core/java/com/android/server/audio/AdiDeviceState.java
@@ -21,6 +21,8 @@
import static android.media.AudioSystem.isBluetoothDevice;
import static android.media.audio.Flags.automaticBtDeviceType;
+import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.media.AudioDeviceAttributes;
@@ -31,13 +33,16 @@
import android.util.Log;
import android.util.Pair;
+import com.android.internal.annotations.VisibleForTesting;
+
import java.util.Objects;
/**
* Class representing all devices that were previously or are currently connected. Data is
* persisted in {@link android.provider.Settings.Secure}
*/
-/*package*/ final class AdiDeviceState {
+@VisibleForTesting(visibility = PACKAGE)
+public final class AdiDeviceState {
private static final String TAG = "AS.AdiDeviceState";
private static final String SETTING_FIELD_SEPARATOR = ",";
diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
index 98b210f..e54bf64 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
@@ -31,6 +31,8 @@
import static android.media.audio.Flags.automaticBtDeviceType;
+import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.bluetooth.BluetoothAdapter;
@@ -347,7 +349,8 @@
* @return the found {@link AdiDeviceState} or {@code null} otherwise.
*/
@Nullable
- AdiDeviceState findBtDeviceStateForAddress(String address, int deviceType) {
+ @VisibleForTesting(visibility = PACKAGE)
+ public AdiDeviceState findBtDeviceStateForAddress(String address, int deviceType) {
Set<Integer> deviceSet;
if (isBluetoothA2dpOutDevice(deviceType)) {
deviceSet = DEVICE_OUT_ALL_A2DP_SET;
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 8cec24d..f7b7aaa 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -39,6 +39,7 @@
import static android.provider.Settings.Secure.VOLUME_HUSH_OFF;
import static android.provider.Settings.Secure.VOLUME_HUSH_VIBRATE;
+import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
import static com.android.media.audio.Flags.alarmMinVolumeZero;
import static com.android.media.audio.Flags.bluetoothMacAddressAnonymization;
import static com.android.media.audio.Flags.disablePrescaleAbsoluteVolume;
@@ -6785,7 +6786,8 @@
return mContentResolver;
}
- /*package*/ SettingsAdapter getSettings() {
+ @VisibleForTesting(visibility = PACKAGE)
+ public SettingsAdapter getSettings() {
return mSettings;
}
@@ -11250,7 +11252,9 @@
return mDeviceBroker.isBluetoothAudioDeviceCategoryFixed(address);
}
- /*package*/void onUpdatedAdiDeviceState(AdiDeviceState deviceState) {
+ /** Update the sound dose and spatializer state based on the new AdiDeviceState. */
+ @VisibleForTesting(visibility = PACKAGE)
+ public void onUpdatedAdiDeviceState(AdiDeviceState deviceState) {
if (deviceState == null) {
return;
}
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
index 952af69..64abb81 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
@@ -566,7 +566,9 @@
HdmiDeviceInfo cecDeviceInfo = mService.getHdmiCecNetwork().getCecDeviceInfo(address);
// If no non-default display name is available for the device, request the devices OSD name.
- if (cecDeviceInfo != null && cecDeviceInfo.getDisplayName().equals(
+ // On TV devices, the OSD name is queried in NewDeviceAction instead.
+ if (!mService.isTvDevice() && cecDeviceInfo != null
+ && cecDeviceInfo.getDisplayName().equals(
HdmiUtils.getDefaultDeviceName(address))) {
mService.sendCecCommand(
HdmiCecMessageBuilder.buildGiveOsdNameCommand(
diff --git a/services/core/java/com/android/server/hdmi/RequestActiveSourceAction.java b/services/core/java/com/android/server/hdmi/RequestActiveSourceAction.java
index 017c86d..d250416 100644
--- a/services/core/java/com/android/server/hdmi/RequestActiveSourceAction.java
+++ b/services/core/java/com/android/server/hdmi/RequestActiveSourceAction.java
@@ -29,6 +29,12 @@
// State to wait for the <Active Source> message.
private static final int STATE_WAIT_FOR_ACTIVE_SOURCE = 1;
+ // Number of retries <Request Active Source> is sent if no device answers this message.
+ private static final int MAX_SEND_RETRY_COUNT = 1;
+
+ private int mSendRetryCount = 0;
+
+
RequestActiveSourceAction(HdmiCecLocalDevice source, IHdmiControlCallback callback) {
super(source, callback);
}
@@ -60,7 +66,12 @@
return;
}
if (mState == STATE_WAIT_FOR_ACTIVE_SOURCE) {
- finishWithCallback(HdmiControlManager.RESULT_TIMEOUT);
+ if (mSendRetryCount++ < MAX_SEND_RETRY_COUNT) {
+ sendCommand(HdmiCecMessageBuilder.buildRequestActiveSource(getSourceAddress()));
+ addTimer(mState, HdmiConfig.TIMEOUT_MS);
+ } else {
+ finishWithCallback(HdmiControlManager.RESULT_TIMEOUT);
+ }
}
}
}
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
index 14daf62..ffd714b 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
@@ -159,9 +159,12 @@
/**
* Updates the IME visibility, back disposition and show IME picker status for SystemUI.
* TODO(b/189923292): Making SystemUI to be true IME icon controller vs. presenter that
- * controlled by IMMS.
+ * controlled by IMMS.
+ *
+ * @param disableImeIcon indicates whether IME icon should be enabled or not
+ * @param displayId the display for which to update the IME window status
*/
- public abstract void updateImeWindowStatus(boolean disableImeIcon);
+ public abstract void updateImeWindowStatus(boolean disableImeIcon, int displayId);
/**
* Finish stylus handwriting by calling {@link InputMethodService#finishStylusHandwriting()} if
@@ -269,7 +272,7 @@
}
@Override
- public void updateImeWindowStatus(boolean disableImeIcon) {
+ public void updateImeWindowStatus(boolean disableImeIcon, int displayId) {
}
@Override
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index b700785..b1a362d 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -5674,7 +5674,7 @@
}
@Override
- public void updateImeWindowStatus(boolean disableImeIcon) {
+ public void updateImeWindowStatus(boolean disableImeIcon, int displayId) {
mHandler.obtainMessage(MSG_UPDATE_IME_WINDOW_STATUS, disableImeIcon ? 1 : 0, 0)
.sendToTarget();
}
diff --git a/services/core/java/com/android/server/inputmethod/OWNERS b/services/core/java/com/android/server/inputmethod/OWNERS
index 6e5eb56..aa638aa 100644
--- a/services/core/java/com/android/server/inputmethod/OWNERS
+++ b/services/core/java/com/android/server/inputmethod/OWNERS
@@ -3,6 +3,8 @@
roosa@google.com
yukawa@google.com
tarandeep@google.com
+fstern@google.com
+cosminbaies@google.com
ogunwale@google.com #{LAST_RESORT_SUGGESTION}
jjaggi@google.com #{LAST_RESORT_SUGGESTION}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index c0c98de..968ea66 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1379,9 +1379,9 @@
final InstallSourceInfo installSourceInfo = snapshot.getInstallSourceInfo(packageName,
userId);
- final String initiatingPackageName = installSourceInfo.getInitiatingPackageName();
final String installerPackageName;
if (installSourceInfo != null) {
+ final String initiatingPackageName = installSourceInfo.getInitiatingPackageName();
if (!isInstalledByAdb(initiatingPackageName)) {
installerPackageName = initiatingPackageName;
} else {
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 30bce2f4..4e5dc1d 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -17,11 +17,13 @@
package com.android.server.policy;
import static android.Manifest.permission.INTERNAL_SYSTEM_WINDOW;
+import static android.Manifest.permission.OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW;
import static android.Manifest.permission.SYSTEM_ALERT_WINDOW;
import static android.Manifest.permission.SYSTEM_APPLICATION_OVERLAY;
import static android.app.AppOpsManager.OP_CREATE_ACCESSIBILITY_OVERLAY;
import static android.app.AppOpsManager.OP_SYSTEM_ALERT_WINDOW;
import static android.app.AppOpsManager.OP_TOAST_WINDOW;
+import static android.content.PermissionChecker.PID_UNKNOWN;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
@@ -117,6 +119,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.PermissionChecker;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
@@ -690,6 +693,8 @@
private final com.android.internal.policy.LogDecelerateInterpolator mLogDecelerateInterpolator
= new LogDecelerateInterpolator(100, 0);
+ private final DeferredKeyActionExecutor mDeferredKeyActionExecutor =
+ new DeferredKeyActionExecutor();
private volatile int mTopFocusedDisplayId = INVALID_DISPLAY;
@@ -698,6 +703,7 @@
private KeyCombinationManager mKeyCombinationManager;
private SingleKeyGestureDetector mSingleKeyGestureDetector;
private GestureLauncherService mGestureLauncherService;
+ private ButtonOverridePermissionChecker mButtonOverridePermissionChecker;
private boolean mLockNowPending = false;
@@ -725,6 +731,7 @@
private static final int MSG_RINGER_TOGGLE_CHORD = 24;
private static final int MSG_SWITCH_KEYBOARD_LAYOUT = 25;
private static final int MSG_LOG_KEYBOARD_SYSTEM_EVENT = 26;
+ private static final int MSG_SET_DEFERRED_KEY_ACTIONS_EXECUTABLE = 27;
private class PolicyHandler extends Handler {
@@ -792,7 +799,9 @@
mAutofillManagerInternal.onBackKeyPressed();
break;
case MSG_SYSTEM_KEY_PRESS:
- sendSystemKeyToStatusBar((KeyEvent) msg.obj);
+ KeyEvent event = (KeyEvent) msg.obj;
+ sendSystemKeyToStatusBar(event);
+ event.recycle();
break;
case MSG_HANDLE_ALL_APPS:
launchAllAppsAction();
@@ -809,6 +818,11 @@
case MSG_LOG_KEYBOARD_SYSTEM_EVENT:
handleKeyboardSystemEvent(KeyboardLogEvent.from(msg.arg1), (KeyEvent) msg.obj);
break;
+ case MSG_SET_DEFERRED_KEY_ACTIONS_EXECUTABLE:
+ final int keyCode = msg.arg1;
+ final long downTime = (Long) msg.obj;
+ mDeferredKeyActionExecutor.setActionsExecutable(keyCode, downTime);
+ break;
}
}
}
@@ -2234,6 +2248,10 @@
IActivityManager getActivityManagerService() {
return ActivityManager.getService();
}
+
+ ButtonOverridePermissionChecker getButtonOverridePermissionChecker() {
+ return new ButtonOverridePermissionChecker();
+ }
}
/** {@inheritDoc} */
@@ -2499,6 +2517,7 @@
mKeyguardDelegate = injector.getKeyguardServiceDelegate();
initKeyCombinationRules();
initSingleKeyGestureRules(injector.getLooper());
+ mButtonOverridePermissionChecker = injector.getButtonOverridePermissionChecker();
mSideFpsEventHandler = new SideFpsEventHandler(mContext, mHandler, mPowerManager);
}
@@ -2768,17 +2787,33 @@
if (mShouldEarlyShortPressOnStemPrimary) {
return;
}
- stemPrimaryPress(1 /*count*/);
+ // Short-press should be triggered only if app doesn't handle it.
+ mDeferredKeyActionExecutor.queueKeyAction(
+ KeyEvent.KEYCODE_STEM_PRIMARY, downTime, () -> stemPrimaryPress(1 /*count*/));
}
@Override
void onLongPress(long eventTime) {
- stemPrimaryLongPress(eventTime);
+ // Long-press should be triggered only if app doesn't handle it.
+ mDeferredKeyActionExecutor.queueKeyAction(
+ KeyEvent.KEYCODE_STEM_PRIMARY,
+ eventTime,
+ () -> stemPrimaryLongPress(eventTime));
}
@Override
void onMultiPress(long downTime, int count, int unusedDisplayId) {
- stemPrimaryPress(count);
+ // Triple-press stem to toggle accessibility gesture should always be triggered
+ // regardless of if app handles it.
+ if (count == 3
+ && mTriplePressOnStemPrimaryBehavior
+ == TRIPLE_PRESS_PRIMARY_TOGGLE_ACCESSIBILITY) {
+ stemPrimaryPress(count);
+ } else {
+ // Other multi-press gestures should be triggered only if app doesn't handle it.
+ mDeferredKeyActionExecutor.queueKeyAction(
+ KeyEvent.KEYCODE_STEM_PRIMARY, downTime, () -> stemPrimaryPress(count));
+ }
}
@Override
@@ -2792,7 +2827,9 @@
mBackgroundRecentTaskInfoOnStemPrimarySingleKeyUp =
mActivityTaskManagerInternal.getMostRecentTaskFromBackground();
if (mShouldEarlyShortPressOnStemPrimary) {
- stemPrimaryPress(1 /*pressCount*/);
+ // Key-up gesture should be triggered only if app doesn't handle it.
+ mDeferredKeyActionExecutor.queueKeyAction(
+ KeyEvent.KEYCODE_STEM_PRIMARY, eventTime, () -> stemPrimaryPress(1));
}
}
}
@@ -3750,6 +3787,15 @@
return true;
}
break;
+ case KeyEvent.KEYCODE_STEM_PRIMARY:
+ if (prepareToSendSystemKeyToApplication(focusedToken, event)) {
+ // Send to app.
+ return false;
+ } else {
+ // Intercepted.
+ sendSystemKeyToStatusBarAsync(event);
+ return true;
+ }
}
if (isValidGlobalKey(keyCode)
&& mGlobalKeyManager.handleGlobalKey(mContext, keyCode, event)) {
@@ -3760,6 +3806,60 @@
return (metaState & KeyEvent.META_META_ON) != 0;
}
+ /**
+ * In this function, we check whether a system key should be sent to the application. We also
+ * detect the key gesture on this key, even if the key will be sent to the app. The gesture
+ * action, if any, will not be executed immediately. It will be queued and execute only after
+ * the application tells us that it didn't handle this key.
+ *
+ * @return true if this key should be sent to the application. This also means that the target
+ * application has the necessary permissions to receive this key. Return false otherwise.
+ */
+ private boolean prepareToSendSystemKeyToApplication(IBinder focusedToken, KeyEvent event) {
+ final int keyCode = event.getKeyCode();
+ if (!event.isSystem()) {
+ Log.wtf(
+ TAG,
+ "Illegal keycode provided to prepareToSendSystemKeyToApplication: "
+ + KeyEvent.keyCodeToString(keyCode));
+ return false;
+ }
+ final boolean isDown = event.getAction() == KeyEvent.ACTION_DOWN;
+ if (isDown && event.getRepeatCount() == 0) {
+ // This happens at the initial DOWN event. Check focused window permission now.
+ final KeyInterceptionInfo info =
+ mWindowManagerInternal.getKeyInterceptionInfoFromToken(focusedToken);
+ if (info != null
+ && mButtonOverridePermissionChecker.canAppOverrideSystemKey(
+ mContext, info.windowOwnerUid)) {
+ // Focused window has the permission. Pass the event to it.
+ return true;
+ } else {
+ // Focused window doesn't have the permission. Intercept the event.
+ // If the initial DOWN event is intercepted, follow-up events will be intercepted
+ // too. So we know the gesture won't be handled by app, and can handle the gesture
+ // in system.
+ setDeferredKeyActionsExecutableAsync(keyCode, event.getDownTime());
+ return false;
+ }
+ } else {
+ // This happens after the initial DOWN event. We will just reuse the initial decision.
+ // I.e., if the initial DOWN event was dispatched, follow-up events should be
+ // dispatched. Otherwise, follow-up events should be consumed.
+ final Set<Integer> consumedKeys = mConsumedKeysForDevice.get(event.getDeviceId());
+ final boolean wasConsumed = consumedKeys != null && consumedKeys.contains(keyCode);
+ return !wasConsumed;
+ }
+ }
+
+ private void setDeferredKeyActionsExecutableAsync(int keyCode, long downTime) {
+ Message msg = Message.obtain(mHandler, MSG_SET_DEFERRED_KEY_ACTIONS_EXECUTABLE);
+ msg.arg1 = keyCode;
+ msg.obj = downTime;
+ msg.setAsynchronous(true);
+ msg.sendToTarget();
+ }
+
@SuppressLint("MissingPermission")
private void injectBackGesture(long downtime) {
// Create and inject down event
@@ -3977,11 +4077,34 @@
mContext.closeSystemDialogs();
}
return true;
+ case KeyEvent.KEYCODE_STEM_PRIMARY:
+ handleUnhandledSystemKey(event);
+ sendSystemKeyToStatusBarAsync(event);
+ return true;
}
return false;
}
+ /**
+ * Called when a system key was sent to application and was unhandled. We will execute any
+ * queued actions associated with this key code at this point.
+ */
+ private void handleUnhandledSystemKey(KeyEvent event) {
+ if (!event.isSystem()) {
+ Log.wtf(
+ TAG,
+ "Illegal keycode provided to handleUnhandledSystemKey: "
+ + KeyEvent.keyCodeToString(event.getKeyCode()));
+ return;
+ }
+ if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
+ // If the initial DOWN event is unhandled by app, follow-up events will also be
+ // unhandled by app. So we can handle the key event in system.
+ setDeferredKeyActionsExecutableAsync(event.getKeyCode(), event.getDownTime());
+ }
+ }
+
private void sendSwitchKeyboardLayout(@NonNull KeyEvent event, int direction) {
mHandler.obtainMessage(MSG_SWITCH_KEYBOARD_LAYOUT, event.getDeviceId(),
direction).sendToTarget();
@@ -4904,9 +5027,6 @@
case KeyEvent.KEYCODE_MACRO_4:
result &= ~ACTION_PASS_TO_USER;
break;
- case KeyEvent.KEYCODE_STEM_PRIMARY:
- sendSystemKeyToStatusBarAsync(event);
- break;
}
if (useHapticFeedback) {
@@ -5016,7 +5136,8 @@
* Notify the StatusBar that a system key was pressed without blocking the current thread.
*/
private void sendSystemKeyToStatusBarAsync(KeyEvent keyEvent) {
- Message message = mHandler.obtainMessage(MSG_SYSTEM_KEY_PRESS, keyEvent);
+ // Make a copy because the event may be recycled.
+ Message message = mHandler.obtainMessage(MSG_SYSTEM_KEY_PRESS, KeyEvent.obtain(keyEvent));
message.setAsynchronous(true);
mHandler.sendMessage(message);
}
@@ -6468,6 +6589,7 @@
mGlobalKeyManager.dump(prefix, pw);
mKeyCombinationManager.dump(prefix, pw);
mSingleKeyGestureDetector.dump(prefix, pw);
+ mDeferredKeyActionExecutor.dump(prefix, pw);
if (mWakeGestureListener != null) {
mWakeGestureListener.dump(pw, prefix);
@@ -6793,4 +6915,19 @@
+ " name.");
}
}
+
+ /** A helper class to check button override permission. */
+ static class ButtonOverridePermissionChecker {
+ boolean canAppOverrideSystemKey(Context context, int uid) {
+ return PermissionChecker.checkPermissionForDataDelivery(
+ context,
+ OVERRIDE_SYSTEM_KEY_BEHAVIOR_IN_FOCUSED_WINDOW,
+ PID_UNKNOWN,
+ uid,
+ null,
+ null,
+ null)
+ == PERMISSION_GRANTED;
+ }
+ }
}
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index 14912d0..bf30af3 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -461,7 +461,7 @@
// in animating before the next app window focused, or IME icon
// persists on the bottom when swiping the task to recents.
InputMethodManagerInternal.get().updateImeWindowStatus(
- true /* disableImeIcon */);
+ true /* disableImeIcon */, mDisplayContent.getDisplayId());
}
}
return;
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index ccaa3b0..cbc7b83 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -240,7 +240,8 @@
// state when evaluating visibilities.
updateKeyguardSleepToken();
mRootWindowContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
- InputMethodManagerInternal.get().updateImeWindowStatus(false /* disableImeIcon */);
+ InputMethodManagerInternal.get().updateImeWindowStatus(false /* disableImeIcon */,
+ displayId);
setWakeTransitionReady();
if (aodChanged) {
// Ensure the new state takes effect.
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index ef25726..dd538de 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -967,7 +967,8 @@
// Restore IME icon only when moving the original app task to front from recents, in case
// IME icon may missing if the moving task has already been the current focused task.
if (reorderMode == REORDER_MOVE_TO_ORIGINAL_POSITION && !mIsAddingTaskToTargets) {
- InputMethodManagerInternal.get().updateImeWindowStatus(false /* disableImeIcon */);
+ InputMethodManagerInternal.get().updateImeWindowStatus(
+ false /* disableImeIcon */, mDisplayId);
}
// Update the input windows after the animation is complete
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 4243948..76c4a0e 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -1390,7 +1390,7 @@
// recents, in case IME icon may missing if the moving task has already been
// the current focused task.
InputMethodManagerInternal.get().updateImeWindowStatus(
- false /* disableImeIcon */);
+ false /* disableImeIcon */, dc.getDisplayId());
}
// An uncommitted transient launch can leave incomplete lifecycles if visibilities
// didn't change (eg. re-ordering with translucent tasks will leave launcher
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index e1f1f66..b890a9e 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -5622,9 +5622,10 @@
if (mKeyInterceptionInfo == null
|| mKeyInterceptionInfo.layoutParamsPrivateFlags != getAttrs().privateFlags
|| mKeyInterceptionInfo.layoutParamsType != getAttrs().type
- || mKeyInterceptionInfo.windowTitle != getWindowTag()) {
+ || mKeyInterceptionInfo.windowTitle != getWindowTag()
+ || mKeyInterceptionInfo.windowOwnerUid != getOwningUid()) {
mKeyInterceptionInfo = new KeyInterceptionInfo(getAttrs().type, getAttrs().privateFlags,
- getWindowTag().toString());
+ getWindowTag().toString(), getOwningUid());
}
return mKeyInterceptionInfo;
}
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index 81a5472..a8e6f68 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -910,7 +910,7 @@
constants().readLogsDisabledMarkerName),
0777, idFromMetadata(metadata), {})) {
//{.metadata = {metadata.data(), (IncFsSize)metadata.size()}})) {
- LOG(ERROR) << "Failed to make marker file for storageId: " << storageId;
+ LOG(ERROR) << "Failed to make marker file for storageId: " << storageId << " err: " << -err;
return;
}
diff --git a/services/permission/java/com/android/server/permission/access/permission/DevicePermissionPolicy.kt b/services/permission/java/com/android/server/permission/access/permission/DevicePermissionPolicy.kt
index bb68bc5..44609ac 100644
--- a/services/permission/java/com/android/server/permission/access/permission/DevicePermissionPolicy.kt
+++ b/services/permission/java/com/android/server/permission/access/permission/DevicePermissionPolicy.kt
@@ -61,6 +61,38 @@
}
}
+ fun MutateStateScope.removeInactiveDevicesPermission(activePersistentDeviceIds: Set<String>) {
+ newState.userStates.forEachIndexed { _, userId, userState ->
+ userState.appIdDevicePermissionFlags.forEachReversedIndexed { _, appId, _ ->
+ val appIdDevicePermissionFlags =
+ newState.mutateUserState(userId)!!.mutateAppIdDevicePermissionFlags()
+ val devicePermissionFlags =
+ appIdDevicePermissionFlags.mutate(appId) ?: return@forEachReversedIndexed
+
+ val removePersistentDeviceIds = mutableSetOf<String>()
+ devicePermissionFlags.forEachIndexed { _, deviceId, _ ->
+ if (!activePersistentDeviceIds.contains(deviceId)) {
+ removePersistentDeviceIds.add(deviceId)
+ }
+ }
+
+ removePersistentDeviceIds.forEach { deviceId -> devicePermissionFlags -= deviceId }
+ }
+ }
+ }
+
+ fun MutateStateScope.onDeviceIdRemoved(deviceId: String) {
+ newState.userStates.forEachIndexed { _, userId, userState ->
+ userState.appIdDevicePermissionFlags.forEachReversedIndexed { _, appId, _ ->
+ val appIdDevicePermissionFlags =
+ newState.mutateUserState(userId)!!.mutateAppIdDevicePermissionFlags()
+ val devicePermissionFlags =
+ appIdDevicePermissionFlags.mutate(appId) ?: return@forEachReversedIndexed
+ devicePermissionFlags -= deviceId
+ }
+ }
+ }
+
override fun MutateStateScope.onStorageVolumeMounted(
volumeUuid: String?,
packageNames: List<String>,
diff --git a/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt b/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt
index 7c53950..a7d3249 100644
--- a/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt
+++ b/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt
@@ -2314,6 +2314,18 @@
service.onSystemReady()
virtualDeviceManagerInternal =
LocalServices.getService(VirtualDeviceManagerInternal::class.java)
+
+ virtualDeviceManagerInternal?.allPersistentDeviceIds?.let { persistentDeviceIds ->
+ service.mutateState {
+ with(devicePolicy) { removeInactiveDevicesPermission(persistentDeviceIds) }
+ }
+ }
+
+ // trim permission states for the external devices, when they are removed.
+ virtualDeviceManagerInternal?.registerPersistentDeviceIdRemovedListener { persistentDeviceId
+ ->
+ service.mutateState { with(devicePolicy) { onDeviceIdRemoved(persistentDeviceId) } }
+ }
permissionControllerManager =
PermissionControllerManager(context, PermissionThread.getHandler())
}
@@ -2681,8 +2693,8 @@
permissionName in NOTIFICATIONS_PERMISSIONS &&
runtimePermissionRevokedUids.get(uid, true)
}
- runtimePermissionChangedUidDevices
- .getOrPut(uid) { mutableSetOf() } += persistentDeviceId
+ runtimePermissionChangedUidDevices.getOrPut(uid) { mutableSetOf() } +=
+ persistentDeviceId
}
if (permission.hasGids && !wasPermissionGranted && isPermissionGranted) {
@@ -2799,8 +2811,7 @@
fun onPermissionsChanged(uid: Int, persistentDeviceId: String) {
if (listeners.registeredCallbackCount > 0) {
- obtainMessage(MSG_ON_PERMISSIONS_CHANGED, uid, 0, persistentDeviceId)
- .sendToTarget()
+ obtainMessage(MSG_ON_PERMISSIONS_CHANGED, uid, 0, persistentDeviceId).sendToTarget()
}
}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java
index 800350a..57c3a1d 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java
@@ -21,6 +21,7 @@
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
+import static android.view.accessibility.Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG;
import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
@@ -852,6 +853,53 @@
assertThat(lockState.get()).containsExactly(false);
}
+ @Test
+ @RequiresFlagsEnabled(FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+ public void testIsAccessibilityServiceWarningRequired_requiredByDefault() {
+ mockManageAccessibilityGranted(mTestableContext);
+ final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
+ info.setComponentName(COMPONENT_NAME);
+
+ assertThat(mA11yms.isAccessibilityServiceWarningRequired(info)).isTrue();
+ }
+
+ @Test
+ @RequiresFlagsEnabled(FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+ public void testIsAccessibilityServiceWarningRequired_notRequiredIfAlreadyEnabled() {
+ mockManageAccessibilityGranted(mTestableContext);
+ final AccessibilityServiceInfo info_a = new AccessibilityServiceInfo();
+ info_a.setComponentName(COMPONENT_NAME);
+ final AccessibilityServiceInfo info_b = new AccessibilityServiceInfo();
+ info_b.setComponentName(new ComponentName("package_b", "class_b"));
+ final AccessibilityUserState userState = mA11yms.getCurrentUserState();
+ userState.mEnabledServices.clear();
+ userState.mEnabledServices.add(info_b.getComponentName());
+
+ assertThat(mA11yms.isAccessibilityServiceWarningRequired(info_a)).isTrue();
+ assertThat(mA11yms.isAccessibilityServiceWarningRequired(info_b)).isFalse();
+ }
+
+ @Test
+ @RequiresFlagsEnabled(FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+ public void testIsAccessibilityServiceWarningRequired_notRequiredIfExistingShortcut() {
+ mockManageAccessibilityGranted(mTestableContext);
+ final AccessibilityServiceInfo info_a = new AccessibilityServiceInfo();
+ info_a.setComponentName(new ComponentName("package_a", "class_a"));
+ final AccessibilityServiceInfo info_b = new AccessibilityServiceInfo();
+ info_b.setComponentName(new ComponentName("package_b", "class_b"));
+ final AccessibilityServiceInfo info_c = new AccessibilityServiceInfo();
+ info_c.setComponentName(new ComponentName("package_c", "class_c"));
+ final AccessibilityUserState userState = mA11yms.getCurrentUserState();
+ userState.mAccessibilityButtonTargets.clear();
+ userState.mAccessibilityButtonTargets.add(info_b.getComponentName().flattenToString());
+ userState.mAccessibilityShortcutKeyTargets.clear();
+ userState.mAccessibilityShortcutKeyTargets.add(info_c.getComponentName().flattenToString());
+
+ assertThat(mA11yms.isAccessibilityServiceWarningRequired(info_a)).isTrue();
+ assertThat(mA11yms.isAccessibilityServiceWarningRequired(info_b)).isFalse();
+ assertThat(mA11yms.isAccessibilityServiceWarningRequired(info_c)).isFalse();
+ }
+
// Single package intents can trigger multiple PackageMonitor callbacks.
// Collect the state of the lock in a set, since tests only care if calls
// were all locked or all unlocked.
diff --git a/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java b/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java
index 0d58542..cc3c880 100644
--- a/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java
+++ b/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java
@@ -15,14 +15,28 @@
*/
package com.android.server.audio;
+import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_DEFAULT;
+import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_HEADSET;
+import static android.media.audio.Flags.automaticBtDeviceType;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.Manifest;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
@@ -40,10 +54,10 @@
import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.After;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
import org.mockito.Spy;
@@ -70,6 +84,9 @@
Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
mMockAudioService = mock(AudioService.class);
+ SettingsAdapter mockAdapter = mock(SettingsAdapter.class);
+ when(mMockAudioService.getSettings()).thenReturn(mockAdapter);
+ when(mockAdapter.getSecureStringForUser(any(), any(), anyInt())).thenReturn("");
when(mMockAudioService.getBluetoothContextualVolumeStream())
.thenReturn(AudioSystem.STREAM_MUSIC);
@@ -82,7 +99,6 @@
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
mFakeBtDevice = adapter.getRemoteDevice("00:01:02:03:04:05");
- Assert.assertNotNull("invalid null BT device", mFakeBtDevice);
}
@After
@@ -100,15 +116,14 @@
@Test
public void testPostA2dpDeviceConnectionChange() throws Exception {
Log.i(TAG, "starting testPostA2dpDeviceConnectionChange");
- Assert.assertNotNull("invalid null BT device", mFakeBtDevice);
+ assertNotNull("invalid null BT device", mFakeBtDevice);
mAudioDeviceBroker.queueOnBluetoothActiveDeviceChanged(
new AudioDeviceBroker.BtDeviceChangedData(mFakeBtDevice, null,
BluetoothProfileConnectionInfo.createA2dpInfo(true, 1), "testSource"));
Thread.sleep(2 * MAX_MESSAGE_HANDLING_DELAY_MS);
verify(mSpyDevInventory, times(1)).setBluetoothActiveDevice(
- any(AudioDeviceBroker.BtDeviceInfo.class)
- );
+ any(AudioDeviceBroker.BtDeviceInfo.class));
// verify the connection was reported to AudioSystem
checkSingleSystemConnection(mFakeBtDevice);
@@ -212,7 +227,7 @@
AudioManager.DEVICE_OUT_SPEAKER, null);
new AdiDeviceState(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
AudioManager.DEVICE_OUT_BLUETOOTH_A2DP, null);
- Assert.fail();
+ fail();
} catch (NullPointerException e) { }
}
@@ -228,11 +243,114 @@
final AdiDeviceState result = AdiDeviceState.fromPersistedString(persistString);
Log.i(TAG, "original:" + devState);
Log.i(TAG, "result :" + result);
- Assert.assertEquals(devState, result);
+ assertEquals(devState, result);
+ }
+
+ @Test
+ public void testIsBluetoothAudioDeviceCategoryFixed() throws Exception {
+ Log.i(TAG, "starting testIsBluetoothAudioDeviceCategoryFixed");
+
+ if (!automaticBtDeviceType()) {
+ Log.i(TAG, "Enable automaticBtDeviceType flag to run the test "
+ + "testIsBluetoothAudioDeviceCategoryFixed");
+ return;
+ }
+ assertNotNull("invalid null BT device", mFakeBtDevice);
+
+ final AdiDeviceState devState = new AdiDeviceState(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
+ AudioManager.DEVICE_OUT_BLUETOOTH_A2DP, mFakeBtDevice.getAddress());
+ doReturn(devState).when(mSpyDevInventory).findBtDeviceStateForAddress(
+ mFakeBtDevice.getAddress(), AudioManager.DEVICE_OUT_BLUETOOTH_A2DP);
+ try {
+ InstrumentationRegistry.getInstrumentation().getUiAutomation()
+ .adoptShellPermissionIdentity(Manifest.permission.BLUETOOTH_PRIVILEGED);
+
+ // no metadata set
+ assertTrue(mFakeBtDevice.setMetadata(BluetoothDevice.METADATA_DEVICE_TYPE,
+ DEVICE_TYPE_DEFAULT.getBytes()));
+ assertFalse(
+ mAudioDeviceBroker.isBluetoothAudioDeviceCategoryFixed(
+ mFakeBtDevice.getAddress()));
+
+ // metadata set
+ assertTrue(mFakeBtDevice.setMetadata(BluetoothDevice.METADATA_DEVICE_TYPE,
+ DEVICE_TYPE_HEADSET.getBytes()));
+ assertTrue(mAudioDeviceBroker.isBluetoothAudioDeviceCategoryFixed(
+ mFakeBtDevice.getAddress()));
+ } finally {
+ InstrumentationRegistry.getInstrumentation().getUiAutomation()
+ .dropShellPermissionIdentity();
+ }
+ }
+
+ @Test
+ public void testGetAndUpdateBtAdiDeviceStateCategoryForAddress() throws Exception {
+ Log.i(TAG, "starting testGetAndUpdateBtAdiDeviceStateCategoryForAddress");
+
+ if (!automaticBtDeviceType()) {
+ Log.i(TAG, "Enable automaticBtDeviceType flag to run the test "
+ + "testGetAndUpdateBtAdiDeviceStateCategoryForAddress");
+ return;
+ }
+ assertNotNull("invalid null BT device", mFakeBtDevice);
+
+ final AdiDeviceState devState = new AdiDeviceState(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
+ AudioManager.DEVICE_OUT_BLUETOOTH_A2DP, mFakeBtDevice.getAddress());
+ devState.setAudioDeviceCategory(AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER);
+ doReturn(devState).when(mSpyDevInventory).findBtDeviceStateForAddress(
+ eq(mFakeBtDevice.getAddress()), anyInt());
+ try {
+ InstrumentationRegistry.getInstrumentation().getUiAutomation()
+ .adoptShellPermissionIdentity(Manifest.permission.BLUETOOTH_PRIVILEGED);
+
+ // no metadata set
+ assertTrue(mFakeBtDevice.setMetadata(BluetoothDevice.METADATA_DEVICE_TYPE,
+ DEVICE_TYPE_DEFAULT.getBytes()));
+ assertEquals(AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER,
+ mAudioDeviceBroker.getAndUpdateBtAdiDeviceStateCategoryForAddress(
+ mFakeBtDevice.getAddress()));
+ verify(mMockAudioService,
+ timeout(MAX_MESSAGE_HANDLING_DELAY_MS).times(0)).onUpdatedAdiDeviceState(
+ eq(devState));
+
+ // metadata set
+ assertTrue(mFakeBtDevice.setMetadata(BluetoothDevice.METADATA_DEVICE_TYPE,
+ DEVICE_TYPE_HEADSET.getBytes()));
+ assertEquals(AudioManager.AUDIO_DEVICE_CATEGORY_HEADPHONES,
+ mAudioDeviceBroker.getAndUpdateBtAdiDeviceStateCategoryForAddress(
+ mFakeBtDevice.getAddress()));
+ verify(mMockAudioService,
+ timeout(MAX_MESSAGE_HANDLING_DELAY_MS)).onUpdatedAdiDeviceState(
+ any());
+ } finally {
+ InstrumentationRegistry.getInstrumentation().getUiAutomation()
+ .dropShellPermissionIdentity();
+ }
+ }
+
+ @Test
+ public void testAddAudioDeviceWithCategoryInInventoryIfNeeded() throws Exception {
+ Log.i(TAG, "starting testAddAudioDeviceWithCategoryInInventoryIfNeeded");
+
+ if (!automaticBtDeviceType()) {
+ Log.i(TAG, "Enable automaticBtDeviceType flag to run the test "
+ + "testAddAudioDeviceWithCategoryInInventoryIfNeeded");
+ return;
+ }
+ assertNotNull("invalid null BT device", mFakeBtDevice);
+
+ mAudioDeviceBroker.addAudioDeviceWithCategoryInInventoryIfNeeded(
+ mFakeBtDevice.getAddress(), AudioManager.AUDIO_DEVICE_CATEGORY_OTHER);
+
+ verify(mMockAudioService,
+ timeout(MAX_MESSAGE_HANDLING_DELAY_MS).atLeast(1)).onUpdatedAdiDeviceState(
+ ArgumentMatchers.argThat(devState -> devState.getAudioDeviceCategory()
+ == AudioManager.AUDIO_DEVICE_CATEGORY_OTHER));
}
private void doTestConnectionDisconnectionReconnection(int delayAfterDisconnection,
boolean mockMediaPlayback, boolean guaranteeSingleConnection) throws Exception {
+ assertNotNull("invalid null BT device", mFakeBtDevice);
when(mMockAudioService.getDeviceForStream(AudioManager.STREAM_MUSIC))
.thenReturn(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP);
when(mMockAudioService.isInCommunication()).thenReturn(false);
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java
index 9e5bea7..a2a8424 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java
@@ -27,6 +27,8 @@
import static com.google.common.truth.Truth.assertThat;
+import static junit.framework.Assert.assertEquals;
+
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
@@ -1720,7 +1722,31 @@
mNativeWrapper.clearResultMessages();
mTestLooper.moveTimeForward(HdmiConfig.TIMEOUT_MS);
mTestLooper.dispatchAll();
+ assertThat(mNativeWrapper.getResultMessages()).doesNotContain(activeSourceFromTv);
+ // Skip the retry.
+ mTestLooper.moveTimeForward(HdmiConfig.TIMEOUT_MS);
+ mTestLooper.dispatchAll();
assertThat(mNativeWrapper.getResultMessages()).contains(activeSourceFromTv);
}
+
+ @Test
+ public void newDeviceConnectedIfOnlyOneGiveOsdNameSent() {
+ mHdmiControlService.getHdmiCecNetwork().clearDeviceList();
+ assertThat(mHdmiControlService.getHdmiCecNetwork().getDeviceInfoList(false))
+ .isEmpty();
+ HdmiCecMessage reportPhysicalAddress =
+ HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(
+ ADDR_PLAYBACK_2, 0x1000, HdmiDeviceInfo.DEVICE_PLAYBACK);
+ HdmiCecMessage giveOsdName = HdmiCecMessageBuilder.buildGiveOsdNameCommand(
+ ADDR_TV, ADDR_PLAYBACK_2);
+ mNativeWrapper.onCecMessage(reportPhysicalAddress);
+ mTestLooper.dispatchAll();
+
+ // Wait until HdmiCecNetwork or NewDeviceAction is in progress
+ mTestLooper.moveTimeForward(HdmiConfig.TIMEOUT_MS);
+
+ // TV should only send <Give Osd Name> once
+ assertEquals(1, Collections.frequency(mNativeWrapper.getResultMessages(), giveOsdName));
+ }
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java b/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
index ab35da6..9cdec25 100644
--- a/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
+++ b/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
@@ -64,6 +64,7 @@
@Rule public FakeSettingsProviderRule mSettingsProviderRule = FakeSettingsProvider.rule();
TestPhoneWindowManager mPhoneWindowManager;
+ DispatchedKeyHandler mDispatchedKeyHandler = event -> false;
final Context mContext = spy(getInstrumentation().getTargetContext());
/** Modifier key to meta state */
@@ -102,6 +103,10 @@
mPhoneWindowManager = new TestPhoneWindowManager(mContext, supportSettingsUpdate);
}
+ protected final void setDispatchedKeyHandler(DispatchedKeyHandler keyHandler) {
+ mDispatchedKeyHandler = keyHandler;
+ }
+
@After
public void tearDown() {
if (mPhoneWindowManager != null) {
@@ -174,9 +179,20 @@
int actions = mPhoneWindowManager.interceptKeyBeforeQueueing(keyEvent);
if ((actions & ACTION_PASS_TO_USER) != 0) {
if (0 == mPhoneWindowManager.interceptKeyBeforeDispatching(keyEvent)) {
- mPhoneWindowManager.dispatchUnhandledKey(keyEvent);
+ if (!mDispatchedKeyHandler.onKeyDispatched(keyEvent)) {
+ mPhoneWindowManager.dispatchUnhandledKey(keyEvent);
+ }
}
}
mPhoneWindowManager.dispatchAllPendingEvents();
}
+
+ interface DispatchedKeyHandler {
+ /**
+ * Called when a key event is dispatched to app.
+ *
+ * @return true if the event is consumed by app.
+ */
+ boolean onKeyDispatched(KeyEvent event);
+ }
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/StemKeyGestureTests.java b/services/tests/wmtests/src/com/android/server/policy/StemKeyGestureTests.java
index 912e1d3d..f7ad2a8 100644
--- a/services/tests/wmtests/src/com/android/server/policy/StemKeyGestureTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/StemKeyGestureTests.java
@@ -97,6 +97,35 @@
}
@Test
+ public void stemSingleKey_appHasOverridePermission_consumedByApp_notOpenAllApp() {
+ overrideBehavior(STEM_PRIMARY_BUTTON_SHORT_PRESS, SHORT_PRESS_PRIMARY_LAUNCH_ALL_APPS);
+ setUpPhoneWindowManager(/* supportSettingsUpdate= */ true);
+ mPhoneWindowManager.overrideStartActivity();
+ mPhoneWindowManager.setKeyguardServiceDelegateIsShowing(false);
+ mPhoneWindowManager.overrideIsUserSetupComplete(true);
+ mPhoneWindowManager.overrideFocusedWindowButtonOverridePermission(true);
+ setDispatchedKeyHandler(keyEvent -> true);
+
+ sendKey(KEYCODE_STEM_PRIMARY);
+
+ mPhoneWindowManager.assertNotOpenAllAppView();
+ }
+
+ @Test
+ public void stemSingleKey_appHasOverridePermission_notConsumedByApp_openAllApp() {
+ overrideBehavior(STEM_PRIMARY_BUTTON_SHORT_PRESS, SHORT_PRESS_PRIMARY_LAUNCH_ALL_APPS);
+ setUpPhoneWindowManager(/* supportSettingsUpdate= */ true);
+ mPhoneWindowManager.overrideStartActivity();
+ mPhoneWindowManager.setKeyguardServiceDelegateIsShowing(false);
+ mPhoneWindowManager.overrideIsUserSetupComplete(true);
+ mPhoneWindowManager.overrideFocusedWindowButtonOverridePermission(true);
+
+ sendKey(KEYCODE_STEM_PRIMARY);
+
+ mPhoneWindowManager.assertOpenAllAppView();
+ }
+
+ @Test
public void stemLongKey_triggerSearchServiceToLaunchAssist() {
overrideBehavior(
STEM_PRIMARY_BUTTON_LONG_PRESS,
@@ -165,6 +194,30 @@
mPhoneWindowManager.assertSwitchToRecent(referenceId);
}
+ @Test
+ public void stemDoubleKey_earlyShortPress_firstPressConsumedByApp_switchToMostRecent()
+ throws RemoteException {
+ overrideBehavior(STEM_PRIMARY_BUTTON_DOUBLE_PRESS, SHORT_PRESS_PRIMARY_LAUNCH_ALL_APPS);
+ setUpPhoneWindowManager(/* supportSettingsUpdate= */ true);
+ mPhoneWindowManager.overrideShouldEarlyShortPressOnStemPrimary(true);
+ mPhoneWindowManager.setKeyguardServiceDelegateIsShowing(false);
+ mPhoneWindowManager.overrideIsUserSetupComplete(true);
+ mPhoneWindowManager.overrideFocusedWindowButtonOverridePermission(true);
+ RecentTaskInfo recentTaskInfo = new RecentTaskInfo();
+ int referenceId = 666;
+ recentTaskInfo.persistentId = referenceId;
+ doReturn(recentTaskInfo).when(
+ mPhoneWindowManager.mActivityTaskManagerInternal).getMostRecentTaskFromBackground();
+
+ setDispatchedKeyHandler(keyEvent -> true);
+ sendKey(KEYCODE_STEM_PRIMARY);
+ setDispatchedKeyHandler(keyEvent -> false);
+ sendKey(KEYCODE_STEM_PRIMARY);
+
+ mPhoneWindowManager.assertNotOpenAllAppView();
+ mPhoneWindowManager.assertSwitchToRecent(referenceId);
+ }
+
private void overrideBehavior(String key, int expectedBehavior) {
Settings.Global.putLong(mContext.getContentResolver(), key, expectedBehavior);
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
index 43c4745..d057226 100644
--- a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
+++ b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
@@ -90,6 +90,7 @@
import com.android.dx.mockito.inline.extended.StaticMockitoSession;
import com.android.internal.accessibility.AccessibilityShortcutController;
+import com.android.internal.policy.KeyInterceptionInfo;
import com.android.internal.util.FrameworkStatsLog;
import com.android.server.GestureLauncherService;
import com.android.server.LocalServices;
@@ -162,6 +163,9 @@
@Mock private KeyguardServiceDelegate mKeyguardServiceDelegate;
+ @Mock
+ private PhoneWindowManager.ButtonOverridePermissionChecker mButtonOverridePermissionChecker;
+
private StaticMockitoSession mMockitoSession;
private OffsettableClock mClock = new OffsettableClock();
private TestLooper mTestLooper = new TestLooper(() -> mClock.now());
@@ -189,6 +193,10 @@
IActivityManager getActivityManagerService() {
return mActivityManagerService;
}
+
+ PhoneWindowManager.ButtonOverridePermissionChecker getButtonOverridePermissionChecker() {
+ return mButtonOverridePermissionChecker;
+ }
}
TestPhoneWindowManager(Context context, boolean supportSettingsUpdate) {
@@ -304,6 +312,11 @@
doReturn(false).when(mPhoneWindowManager).keyguardOn();
doNothing().when(mContext).startActivityAsUser(any(), any());
doNothing().when(mContext).startActivityAsUser(any(), any(), any());
+
+ KeyInterceptionInfo interceptionInfo = new KeyInterceptionInfo(0, 0, null, 0);
+ doReturn(interceptionInfo)
+ .when(mWindowManagerInternal).getKeyInterceptionInfoFromToken(any());
+
Mockito.reset(mContext);
}
@@ -525,6 +538,11 @@
mPhoneWindowManager.mPrimaryShortPressTargetActivity = component;
}
+ void overrideFocusedWindowButtonOverridePermission(boolean granted) {
+ doReturn(granted)
+ .when(mButtonOverridePermissionChecker).canAppOverrideSystemKey(any(), anyInt());
+ }
+
/**
* Below functions will check the policy behavior could be invoked.
*/
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index 7239ba9..b214591 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -18,6 +18,7 @@
import android.Manifest;
import android.annotation.CallbackExecutor;
+import android.annotation.EnforcePermission;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
@@ -1567,16 +1568,19 @@
}
@Override
- public boolean setSandboxedDetectionTrainingDataOp(int opMode) {
- synchronized (this) {
- enforceIsCallerPreinstalledAssistant();
+ @EnforcePermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION)
+ public void setIsReceiveSandboxedTrainingDataAllowed(boolean allowed) {
+ super.setIsReceiveSandboxedTrainingDataAllowed_enforcePermission();
+ synchronized (this) {
if (mImpl == null) {
- Slog.w(TAG, "setSandboxedDetectionTrainingDataop without running"
- + " voice interaction service");
- return false;
+ throw new IllegalStateException(
+ "setIsReceiveSandboxedTrainingDataAllowed without running voice "
+ + "interaction service");
}
+ enforceIsCallerPreinstalledAssistant();
+
int callingUid = Binder.getCallingUid();
final long caller = Binder.clearCallingIdentity();
try {
@@ -1584,12 +1588,11 @@
mContext.getSystemService(Context.APP_OPS_SERVICE);
appOpsManager.setUidMode(
AppOpsManager.OP_RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA,
- callingUid, opMode);
+ callingUid, allowed ? AppOpsManager.MODE_ALLOWED :
+ AppOpsManager.MODE_ERRORED);
} finally {
Binder.restoreCallingIdentity(caller);
}
-
- return true;
}
}
diff --git a/tests/FlickerTests/ActivityEmbedding/Android.bp b/tests/FlickerTests/ActivityEmbedding/Android.bp
index 9eeec7c..2cdf542 100644
--- a/tests/FlickerTests/ActivityEmbedding/Android.bp
+++ b/tests/FlickerTests/ActivityEmbedding/Android.bp
@@ -29,6 +29,8 @@
manifest: "AndroidManifest.xml",
package_name: "com.android.server.wm.flicker",
instrumentation_target_package: "com.android.server.wm.flicker",
+ test_config_template: "AndroidTestTemplate.xml",
srcs: ["src/**/*"],
static_libs: ["FlickerTestsBase"],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml b/tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml
index f867ffb..6f8f008 100644
--- a/tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml
+++ b/tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml
@@ -17,7 +17,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
- package="com.android.server.wm.flick">
+ package="com.android.server.wm.flicker">
<uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/>
<!-- Read and write traces from external storage -->
diff --git a/tests/FlickerTests/ActivityEmbedding/trace_config/trace_config.textproto b/tests/FlickerTests/ActivityEmbedding/trace_config/trace_config.textproto
index c9a35ac..c4edc1a 100644
--- a/tests/FlickerTests/ActivityEmbedding/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/ActivityEmbedding/trace_config/trace_config.textproto
@@ -62,12 +62,6 @@
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
- atrace_apps: "com.android.server.wm.flicker.close"
- atrace_apps: "com.android.server.wm.flicker.ime"
- atrace_apps: "com.android.server.wm.flicker.launch"
- atrace_apps: "com.android.server.wm.flicker.quickswitch"
- atrace_apps: "com.android.server.wm.flicker.rotation"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
atrace_apps: "com.google.android.apps.nexuslauncher"
diff --git a/tests/FlickerTests/Android.bp b/tests/FlickerTests/Android.bp
index 514f895..1d71f95 100644
--- a/tests/FlickerTests/Android.bp
+++ b/tests/FlickerTests/Android.bp
@@ -23,13 +23,6 @@
default_applicable_licenses: ["frameworks_base_license"],
}
-filegroup {
- name: "FlickerServiceTests-src",
- srcs: [
- "src/**/*",
- ],
-}
-
java_defaults {
name: "FlickerTestsDefault",
platform_apis: true,
@@ -49,10 +42,7 @@
"wm-flicker-common-app-helpers",
"wm-shell-flicker-utils",
],
- data: [
- ":FlickerTestApp",
- "trace_config/*",
- ],
+ data: [":FlickerTestApp"],
}
java_library {
diff --git a/tests/FlickerTests/AppClose/Android.bp b/tests/FlickerTests/AppClose/Android.bp
index 151d12f..93fdd65 100644
--- a/tests/FlickerTests/AppClose/Android.bp
+++ b/tests/FlickerTests/AppClose/Android.bp
@@ -30,4 +30,5 @@
test_config_template: "AndroidTestTemplate.xml",
srcs: ["src/**/*"],
static_libs: ["FlickerTestsBase"],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/AppClose/trace_config/trace_config.textproto b/tests/FlickerTests/AppClose/trace_config/trace_config.textproto
index c9a35ac..6a0afc6 100644
--- a/tests/FlickerTests/AppClose/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/AppClose/trace_config/trace_config.textproto
@@ -61,13 +61,7 @@
atrace_categories: "input"
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
- atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
atrace_apps: "com.android.server.wm.flicker.close"
- atrace_apps: "com.android.server.wm.flicker.ime"
- atrace_apps: "com.android.server.wm.flicker.launch"
- atrace_apps: "com.android.server.wm.flicker.quickswitch"
- atrace_apps: "com.android.server.wm.flicker.rotation"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
atrace_apps: "com.google.android.apps.nexuslauncher"
diff --git a/tests/FlickerTests/AppLaunch/Android.bp b/tests/FlickerTests/AppLaunch/Android.bp
index f33384d..f5e9621 100644
--- a/tests/FlickerTests/AppLaunch/Android.bp
+++ b/tests/FlickerTests/AppLaunch/Android.bp
@@ -50,6 +50,7 @@
"FlickerTestsBase",
"FlickerTestsAppLaunchCommon",
],
+ data: ["trace_config/*"],
}
android_test {
@@ -66,4 +67,5 @@
"FlickerTestsBase",
"FlickerTestsAppLaunchCommon",
],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto b/tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto
index c9a35ac..f27177f 100644
--- a/tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto
@@ -61,13 +61,7 @@
atrace_categories: "input"
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
- atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
- atrace_apps: "com.android.server.wm.flicker.close"
- atrace_apps: "com.android.server.wm.flicker.ime"
atrace_apps: "com.android.server.wm.flicker.launch"
- atrace_apps: "com.android.server.wm.flicker.quickswitch"
- atrace_apps: "com.android.server.wm.flicker.rotation"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
atrace_apps: "com.google.android.apps.nexuslauncher"
diff --git a/tests/FlickerTests/FlickerService/Android.bp b/tests/FlickerTests/FlickerService/Android.bp
index 1a38115..ef74e94 100644
--- a/tests/FlickerTests/FlickerService/Android.bp
+++ b/tests/FlickerTests/FlickerService/Android.bp
@@ -30,4 +30,5 @@
test_config_template: "AndroidTestTemplate.xml",
srcs: ["src/**/*"],
static_libs: ["FlickerTestsBase"],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/FlickerService/trace_config/trace_config.textproto b/tests/FlickerTests/FlickerService/trace_config/trace_config.textproto
index c9a35ac..a4f3ecf 100644
--- a/tests/FlickerTests/FlickerService/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/FlickerService/trace_config/trace_config.textproto
@@ -61,13 +61,7 @@
atrace_categories: "input"
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
- atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
- atrace_apps: "com.android.server.wm.flicker.close"
- atrace_apps: "com.android.server.wm.flicker.ime"
- atrace_apps: "com.android.server.wm.flicker.launch"
- atrace_apps: "com.android.server.wm.flicker.quickswitch"
- atrace_apps: "com.android.server.wm.flicker.rotation"
+ atrace_apps: "com.android.server.wm.flicker.service"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
atrace_apps: "com.google.android.apps.nexuslauncher"
diff --git a/tests/FlickerTests/IME/Android.bp b/tests/FlickerTests/IME/Android.bp
index 057d9fc..1141e5f 100644
--- a/tests/FlickerTests/IME/Android.bp
+++ b/tests/FlickerTests/IME/Android.bp
@@ -40,6 +40,7 @@
test_config_template: "AndroidTestTemplate.xml",
srcs: ["src/**/*"],
static_libs: ["FlickerTestsBase"],
+ data: ["trace_config/*"],
}
java_library {
@@ -59,6 +60,7 @@
"FlickerTestsBase",
"FlickerTestsImeCommon",
],
+ data: ["trace_config/*"],
}
android_test {
@@ -75,4 +77,5 @@
"FlickerTestsBase",
"FlickerTestsImeCommon",
],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/IME/trace_config/trace_config.textproto b/tests/FlickerTests/IME/trace_config/trace_config.textproto
index c9a35ac..b722fe5 100644
--- a/tests/FlickerTests/IME/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/IME/trace_config/trace_config.textproto
@@ -61,13 +61,7 @@
atrace_categories: "input"
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
- atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
- atrace_apps: "com.android.server.wm.flicker.close"
atrace_apps: "com.android.server.wm.flicker.ime"
- atrace_apps: "com.android.server.wm.flicker.launch"
- atrace_apps: "com.android.server.wm.flicker.quickswitch"
- atrace_apps: "com.android.server.wm.flicker.rotation"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
atrace_apps: "com.google.android.apps.nexuslauncher"
diff --git a/tests/FlickerTests/Notification/Android.bp b/tests/FlickerTests/Notification/Android.bp
index 5bed568..4648383 100644
--- a/tests/FlickerTests/Notification/Android.bp
+++ b/tests/FlickerTests/Notification/Android.bp
@@ -30,4 +30,5 @@
test_config_template: "AndroidTestTemplate.xml",
srcs: ["src/**/*"],
static_libs: ["FlickerTestsBase"],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/Notification/trace_config/trace_config.textproto b/tests/FlickerTests/Notification/trace_config/trace_config.textproto
index c9a35ac..dc8c88c 100644
--- a/tests/FlickerTests/Notification/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/Notification/trace_config/trace_config.textproto
@@ -61,13 +61,7 @@
atrace_categories: "input"
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
- atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
- atrace_apps: "com.android.server.wm.flicker.close"
- atrace_apps: "com.android.server.wm.flicker.ime"
- atrace_apps: "com.android.server.wm.flicker.launch"
- atrace_apps: "com.android.server.wm.flicker.quickswitch"
- atrace_apps: "com.android.server.wm.flicker.rotation"
+ atrace_apps: "com.android.server.wm.flicker.notification"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
atrace_apps: "com.google.android.apps.nexuslauncher"
diff --git a/tests/FlickerTests/QuickSwitch/Android.bp b/tests/FlickerTests/QuickSwitch/Android.bp
index 64f7183..8755d0e 100644
--- a/tests/FlickerTests/QuickSwitch/Android.bp
+++ b/tests/FlickerTests/QuickSwitch/Android.bp
@@ -30,4 +30,5 @@
test_config_template: "AndroidTestTemplate.xml",
srcs: ["src/**/*"],
static_libs: ["FlickerTestsBase"],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto b/tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto
index c9a35ac..cd70ad5 100644
--- a/tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto
@@ -61,13 +61,7 @@
atrace_categories: "input"
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
- atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
- atrace_apps: "com.android.server.wm.flicker.close"
- atrace_apps: "com.android.server.wm.flicker.ime"
- atrace_apps: "com.android.server.wm.flicker.launch"
atrace_apps: "com.android.server.wm.flicker.quickswitch"
- atrace_apps: "com.android.server.wm.flicker.rotation"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
atrace_apps: "com.google.android.apps.nexuslauncher"
diff --git a/tests/FlickerTests/Rotation/Android.bp b/tests/FlickerTests/Rotation/Android.bp
index 8e93b5b..233a276 100644
--- a/tests/FlickerTests/Rotation/Android.bp
+++ b/tests/FlickerTests/Rotation/Android.bp
@@ -30,4 +30,5 @@
test_config_template: "AndroidTestTemplate.xml",
srcs: ["src/**/*"],
static_libs: ["FlickerTestsBase"],
+ data: ["trace_config/*"],
}
diff --git a/tests/FlickerTests/Rotation/trace_config/trace_config.textproto b/tests/FlickerTests/Rotation/trace_config/trace_config.textproto
index c9a35ac..eeb542f 100644
--- a/tests/FlickerTests/Rotation/trace_config/trace_config.textproto
+++ b/tests/FlickerTests/Rotation/trace_config/trace_config.textproto
@@ -61,12 +61,6 @@
atrace_categories: "input"
atrace_categories: "binder_driver"
atrace_categories: "sched_process_exit"
- atrace_apps: "com.android.server.wm.flicker"
- atrace_apps: "com.android.server.wm.flicker.other"
- atrace_apps: "com.android.server.wm.flicker.close"
- atrace_apps: "com.android.server.wm.flicker.ime"
- atrace_apps: "com.android.server.wm.flicker.launch"
- atrace_apps: "com.android.server.wm.flicker.quickswitch"
atrace_apps: "com.android.server.wm.flicker.rotation"
atrace_apps: "com.android.server.wm.flicker.testapp"
atrace_apps: "com.android.systemui"
diff --git a/tests/HwAccelerationTest/OWNERS b/tests/HwAccelerationTest/OWNERS
deleted file mode 100644
index c88a9f8..0000000
--- a/tests/HwAccelerationTest/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-include /libs/hwui/OWNERS
diff --git a/tests/SilkFX/OWNERS b/tests/SilkFX/OWNERS
deleted file mode 100644
index c88a9f8..0000000
--- a/tests/SilkFX/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-include /libs/hwui/OWNERS
diff --git a/tests/HwAccelerationTest/.classpath b/tests/graphics/HwAccelerationTest/.classpath
similarity index 100%
rename from tests/HwAccelerationTest/.classpath
rename to tests/graphics/HwAccelerationTest/.classpath
diff --git a/tests/HwAccelerationTest/.gitignore b/tests/graphics/HwAccelerationTest/.gitignore
similarity index 100%
rename from tests/HwAccelerationTest/.gitignore
rename to tests/graphics/HwAccelerationTest/.gitignore
diff --git a/tests/HwAccelerationTest/Android.bp b/tests/graphics/HwAccelerationTest/Android.bp
similarity index 100%
rename from tests/HwAccelerationTest/Android.bp
rename to tests/graphics/HwAccelerationTest/Android.bp
diff --git a/tests/HwAccelerationTest/AndroidManifest.xml b/tests/graphics/HwAccelerationTest/AndroidManifest.xml
similarity index 100%
rename from tests/HwAccelerationTest/AndroidManifest.xml
rename to tests/graphics/HwAccelerationTest/AndroidManifest.xml
diff --git a/tests/HwAccelerationTest/default.properties b/tests/graphics/HwAccelerationTest/default.properties
similarity index 100%
rename from tests/HwAccelerationTest/default.properties
rename to tests/graphics/HwAccelerationTest/default.properties
diff --git a/tests/HwAccelerationTest/jni/Android.bp b/tests/graphics/HwAccelerationTest/jni/Android.bp
similarity index 100%
rename from tests/HwAccelerationTest/jni/Android.bp
rename to tests/graphics/HwAccelerationTest/jni/Android.bp
diff --git a/tests/HwAccelerationTest/jni/native-lib.cpp b/tests/graphics/HwAccelerationTest/jni/native-lib.cpp
similarity index 100%
rename from tests/HwAccelerationTest/jni/native-lib.cpp
rename to tests/graphics/HwAccelerationTest/jni/native-lib.cpp
diff --git a/tests/HwAccelerationTest/res/anim/accelerate_interpolator_2.xml b/tests/graphics/HwAccelerationTest/res/anim/accelerate_interpolator_2.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/anim/accelerate_interpolator_2.xml
rename to tests/graphics/HwAccelerationTest/res/anim/accelerate_interpolator_2.xml
diff --git a/tests/HwAccelerationTest/res/anim/fade_in.xml b/tests/graphics/HwAccelerationTest/res/anim/fade_in.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/anim/fade_in.xml
rename to tests/graphics/HwAccelerationTest/res/anim/fade_in.xml
diff --git a/tests/HwAccelerationTest/res/anim/fade_out.xml b/tests/graphics/HwAccelerationTest/res/anim/fade_out.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/anim/fade_out.xml
rename to tests/graphics/HwAccelerationTest/res/anim/fade_out.xml
diff --git a/tests/HwAccelerationTest/res/anim/slide_off_left.xml b/tests/graphics/HwAccelerationTest/res/anim/slide_off_left.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/anim/slide_off_left.xml
rename to tests/graphics/HwAccelerationTest/res/anim/slide_off_left.xml
diff --git a/tests/HwAccelerationTest/res/drawable-hdpi/appwidget_background.xml b/tests/graphics/HwAccelerationTest/res/drawable-hdpi/appwidget_background.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-hdpi/appwidget_background.xml
rename to tests/graphics/HwAccelerationTest/res/drawable-hdpi/appwidget_background.xml
diff --git a/tests/HwAccelerationTest/res/drawable-hdpi/icon.png b/tests/graphics/HwAccelerationTest/res/drawable-hdpi/icon.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-hdpi/icon.png
rename to tests/graphics/HwAccelerationTest/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-hdpi/sunset1.jpg b/tests/graphics/HwAccelerationTest/res/drawable-hdpi/sunset1.jpg
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-hdpi/sunset1.jpg
rename to tests/graphics/HwAccelerationTest/res/drawable-hdpi/sunset1.jpg
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-hdpi/sunset2.png b/tests/graphics/HwAccelerationTest/res/drawable-hdpi/sunset2.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-hdpi/sunset2.png
rename to tests/graphics/HwAccelerationTest/res/drawable-hdpi/sunset2.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-hdpi/sunset3.png b/tests/graphics/HwAccelerationTest/res/drawable-hdpi/sunset3.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-hdpi/sunset3.png
rename to tests/graphics/HwAccelerationTest/res/drawable-hdpi/sunset3.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-hdpi/widget_header.png b/tests/graphics/HwAccelerationTest/res/drawable-hdpi/widget_header.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-hdpi/widget_header.png
rename to tests/graphics/HwAccelerationTest/res/drawable-hdpi/widget_header.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-mdpi/expander_ic_maximized.9.png b/tests/graphics/HwAccelerationTest/res/drawable-mdpi/expander_ic_maximized.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-mdpi/expander_ic_maximized.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-mdpi/expander_ic_maximized.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-mdpi/expander_ic_minimized.9.png b/tests/graphics/HwAccelerationTest/res/drawable-mdpi/expander_ic_minimized.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-mdpi/expander_ic_minimized.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-mdpi/expander_ic_minimized.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/appwidget_bg.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/appwidget_bg.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/appwidget_bg.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/appwidget_bg.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_focus.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_focus.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_focus.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_focus.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_press.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_press.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_press.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/appwidget_bg_press.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/green_gradient.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/green_gradient.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/green_gradient.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/green_gradient.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/large_photo.jpg b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/large_photo.jpg
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/large_photo.jpg
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/large_photo.jpg
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/patch.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/patch.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/patch.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/patch.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/patch2.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/patch2.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/patch2.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/patch2.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/progress_vertical_bg_holo_dark.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/progress_vertical_bg_holo_dark.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/progress_vertical_bg_holo_dark.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/progress_vertical_bg_holo_dark.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/progress_vertical_primary_holo_dark.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/progress_vertical_primary_holo_dark.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/progress_vertical_primary_holo_dark.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/progress_vertical_primary_holo_dark.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/progress_vertical_secondary_holo_dark.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/progress_vertical_secondary_holo_dark.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/progress_vertical_secondary_holo_dark.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/progress_vertical_secondary_holo_dark.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/scratches.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/scratches.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/scratches.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/scratches.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_primary_holo.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_primary_holo.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_primary_holo.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_primary_holo.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_secondary_holo.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_secondary_holo.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_secondary_holo.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_secondary_holo.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_dark.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_dark.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_dark.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_dark.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_light.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_light.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_light.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/scrubber_vertical_track_holo_light.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/spot_mask.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/spot_mask.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/spot_mask.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/spot_mask.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/very_large_photo.jpg b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/very_large_photo.jpg
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/very_large_photo.jpg
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/very_large_photo.jpg
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/weather_2.jpg b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/weather_2.jpg
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/weather_2.jpg
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/weather_2.jpg
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable-nodpi/widget_title_bg.9.png b/tests/graphics/HwAccelerationTest/res/drawable-nodpi/widget_title_bg.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable-nodpi/widget_title_bg.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable-nodpi/widget_title_bg.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/appwidget_background.xml b/tests/graphics/HwAccelerationTest/res/drawable/appwidget_background.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/appwidget_background.xml
rename to tests/graphics/HwAccelerationTest/res/drawable/appwidget_background.xml
diff --git a/tests/HwAccelerationTest/res/drawable/appwidget_bg.9.png b/tests/graphics/HwAccelerationTest/res/drawable/appwidget_bg.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/appwidget_bg.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable/appwidget_bg.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/appwidget_bg_focus.9.png b/tests/graphics/HwAccelerationTest/res/drawable/appwidget_bg_focus.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/appwidget_bg_focus.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable/appwidget_bg_focus.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/appwidget_bg_press.9.png b/tests/graphics/HwAccelerationTest/res/drawable/appwidget_bg_press.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/appwidget_bg_press.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable/appwidget_bg_press.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/btn_toggle_off.9.png b/tests/graphics/HwAccelerationTest/res/drawable/btn_toggle_off.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/btn_toggle_off.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable/btn_toggle_off.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/btn_toggle_on.9.png b/tests/graphics/HwAccelerationTest/res/drawable/btn_toggle_on.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/btn_toggle_on.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable/btn_toggle_on.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/default_wallpaper.png b/tests/graphics/HwAccelerationTest/res/drawable/default_wallpaper.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/default_wallpaper.png
rename to tests/graphics/HwAccelerationTest/res/drawable/default_wallpaper.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/gradient.xml b/tests/graphics/HwAccelerationTest/res/drawable/gradient.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/gradient.xml
rename to tests/graphics/HwAccelerationTest/res/drawable/gradient.xml
diff --git a/tests/HwAccelerationTest/res/drawable/green_gradient.9.png b/tests/graphics/HwAccelerationTest/res/drawable/green_gradient.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/green_gradient.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable/green_gradient.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/icon.png b/tests/graphics/HwAccelerationTest/res/drawable/icon.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/icon.png
rename to tests/graphics/HwAccelerationTest/res/drawable/icon.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/progress_vertical_holo_dark.xml b/tests/graphics/HwAccelerationTest/res/drawable/progress_vertical_holo_dark.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/progress_vertical_holo_dark.xml
rename to tests/graphics/HwAccelerationTest/res/drawable/progress_vertical_holo_dark.xml
diff --git a/tests/HwAccelerationTest/res/drawable/robot.png b/tests/graphics/HwAccelerationTest/res/drawable/robot.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/robot.png
rename to tests/graphics/HwAccelerationTest/res/drawable/robot.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/robot_repeated.xml b/tests/graphics/HwAccelerationTest/res/drawable/robot_repeated.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/robot_repeated.xml
rename to tests/graphics/HwAccelerationTest/res/drawable/robot_repeated.xml
diff --git a/tests/HwAccelerationTest/res/drawable/round_rect_background.xml b/tests/graphics/HwAccelerationTest/res/drawable/round_rect_background.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/round_rect_background.xml
rename to tests/graphics/HwAccelerationTest/res/drawable/round_rect_background.xml
diff --git a/tests/HwAccelerationTest/res/drawable/scrubber_progress_vertical_holo_dark.xml b/tests/graphics/HwAccelerationTest/res/drawable/scrubber_progress_vertical_holo_dark.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/scrubber_progress_vertical_holo_dark.xml
rename to tests/graphics/HwAccelerationTest/res/drawable/scrubber_progress_vertical_holo_dark.xml
diff --git a/tests/HwAccelerationTest/res/drawable/sunset1.jpg b/tests/graphics/HwAccelerationTest/res/drawable/sunset1.jpg
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/sunset1.jpg
rename to tests/graphics/HwAccelerationTest/res/drawable/sunset1.jpg
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/sunset2.png b/tests/graphics/HwAccelerationTest/res/drawable/sunset2.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/sunset2.png
rename to tests/graphics/HwAccelerationTest/res/drawable/sunset2.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/sunset3.png b/tests/graphics/HwAccelerationTest/res/drawable/sunset3.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/sunset3.png
rename to tests/graphics/HwAccelerationTest/res/drawable/sunset3.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/widget_header.png b/tests/graphics/HwAccelerationTest/res/drawable/widget_header.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/widget_header.png
rename to tests/graphics/HwAccelerationTest/res/drawable/widget_header.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/drawable/widget_title_bg.9.png b/tests/graphics/HwAccelerationTest/res/drawable/widget_title_bg.9.png
similarity index 100%
rename from tests/HwAccelerationTest/res/drawable/widget_title_bg.9.png
rename to tests/graphics/HwAccelerationTest/res/drawable/widget_title_bg.9.png
Binary files differ
diff --git a/tests/HwAccelerationTest/res/layout/_advanced_blend.xml b/tests/graphics/HwAccelerationTest/res/layout/_advanced_blend.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/_advanced_blend.xml
rename to tests/graphics/HwAccelerationTest/res/layout/_advanced_blend.xml
diff --git a/tests/HwAccelerationTest/res/layout/_advanced_gradient.xml b/tests/graphics/HwAccelerationTest/res/layout/_advanced_gradient.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/_advanced_gradient.xml
rename to tests/graphics/HwAccelerationTest/res/layout/_advanced_gradient.xml
diff --git a/tests/HwAccelerationTest/res/layout/_layers.xml b/tests/graphics/HwAccelerationTest/res/layout/_layers.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/_layers.xml
rename to tests/graphics/HwAccelerationTest/res/layout/_layers.xml
diff --git a/tests/HwAccelerationTest/res/layout/_lines.xml b/tests/graphics/HwAccelerationTest/res/layout/_lines.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/_lines.xml
rename to tests/graphics/HwAccelerationTest/res/layout/_lines.xml
diff --git a/tests/HwAccelerationTest/res/layout/_newlayers.xml b/tests/graphics/HwAccelerationTest/res/layout/_newlayers.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/_newlayers.xml
rename to tests/graphics/HwAccelerationTest/res/layout/_newlayers.xml
diff --git a/tests/HwAccelerationTest/res/layout/_paths.xml b/tests/graphics/HwAccelerationTest/res/layout/_paths.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/_paths.xml
rename to tests/graphics/HwAccelerationTest/res/layout/_paths.xml
diff --git a/tests/HwAccelerationTest/res/layout/_shaders.xml b/tests/graphics/HwAccelerationTest/res/layout/_shaders.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/_shaders.xml
rename to tests/graphics/HwAccelerationTest/res/layout/_shaders.xml
diff --git a/tests/HwAccelerationTest/res/layout/colored_shadows_activity.xml b/tests/graphics/HwAccelerationTest/res/layout/colored_shadows_activity.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/colored_shadows_activity.xml
rename to tests/graphics/HwAccelerationTest/res/layout/colored_shadows_activity.xml
diff --git a/tests/HwAccelerationTest/res/layout/colored_shadows_row.xml b/tests/graphics/HwAccelerationTest/res/layout/colored_shadows_row.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/colored_shadows_row.xml
rename to tests/graphics/HwAccelerationTest/res/layout/colored_shadows_row.xml
diff --git a/tests/HwAccelerationTest/res/layout/date_picker.xml b/tests/graphics/HwAccelerationTest/res/layout/date_picker.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/date_picker.xml
rename to tests/graphics/HwAccelerationTest/res/layout/date_picker.xml
diff --git a/tests/HwAccelerationTest/res/layout/flipper_item.xml b/tests/graphics/HwAccelerationTest/res/layout/flipper_item.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/flipper_item.xml
rename to tests/graphics/HwAccelerationTest/res/layout/flipper_item.xml
diff --git a/tests/HwAccelerationTest/res/layout/form.xml b/tests/graphics/HwAccelerationTest/res/layout/form.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/form.xml
rename to tests/graphics/HwAccelerationTest/res/layout/form.xml
diff --git a/tests/HwAccelerationTest/res/layout/image_filter_activity.xml b/tests/graphics/HwAccelerationTest/res/layout/image_filter_activity.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/image_filter_activity.xml
rename to tests/graphics/HwAccelerationTest/res/layout/image_filter_activity.xml
diff --git a/tests/HwAccelerationTest/res/layout/labels.xml b/tests/graphics/HwAccelerationTest/res/layout/labels.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/labels.xml
rename to tests/graphics/HwAccelerationTest/res/layout/labels.xml
diff --git a/tests/HwAccelerationTest/res/layout/list_activity.xml b/tests/graphics/HwAccelerationTest/res/layout/list_activity.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/list_activity.xml
rename to tests/graphics/HwAccelerationTest/res/layout/list_activity.xml
diff --git a/tests/HwAccelerationTest/res/layout/pen_stylus.xml b/tests/graphics/HwAccelerationTest/res/layout/pen_stylus.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/pen_stylus.xml
rename to tests/graphics/HwAccelerationTest/res/layout/pen_stylus.xml
diff --git a/tests/HwAccelerationTest/res/layout/projection.xml b/tests/graphics/HwAccelerationTest/res/layout/projection.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/projection.xml
rename to tests/graphics/HwAccelerationTest/res/layout/projection.xml
diff --git a/tests/HwAccelerationTest/res/layout/projection_clipping.xml b/tests/graphics/HwAccelerationTest/res/layout/projection_clipping.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/projection_clipping.xml
rename to tests/graphics/HwAccelerationTest/res/layout/projection_clipping.xml
diff --git a/tests/HwAccelerationTest/res/layout/scrolling_stretch_surfaceview.xml b/tests/graphics/HwAccelerationTest/res/layout/scrolling_stretch_surfaceview.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/scrolling_stretch_surfaceview.xml
rename to tests/graphics/HwAccelerationTest/res/layout/scrolling_stretch_surfaceview.xml
diff --git a/tests/HwAccelerationTest/res/layout/stack.xml b/tests/graphics/HwAccelerationTest/res/layout/stack.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/stack.xml
rename to tests/graphics/HwAccelerationTest/res/layout/stack.xml
diff --git a/tests/HwAccelerationTest/res/layout/stack_item.xml b/tests/graphics/HwAccelerationTest/res/layout/stack_item.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/stack_item.xml
rename to tests/graphics/HwAccelerationTest/res/layout/stack_item.xml
diff --git a/tests/HwAccelerationTest/res/layout/stretch_layout.xml b/tests/graphics/HwAccelerationTest/res/layout/stretch_layout.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/stretch_layout.xml
rename to tests/graphics/HwAccelerationTest/res/layout/stretch_layout.xml
diff --git a/tests/HwAccelerationTest/res/layout/text_fade.xml b/tests/graphics/HwAccelerationTest/res/layout/text_fade.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/text_fade.xml
rename to tests/graphics/HwAccelerationTest/res/layout/text_fade.xml
diff --git a/tests/HwAccelerationTest/res/layout/text_large.xml b/tests/graphics/HwAccelerationTest/res/layout/text_large.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/text_large.xml
rename to tests/graphics/HwAccelerationTest/res/layout/text_large.xml
diff --git a/tests/HwAccelerationTest/res/layout/text_medium.xml b/tests/graphics/HwAccelerationTest/res/layout/text_medium.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/text_medium.xml
rename to tests/graphics/HwAccelerationTest/res/layout/text_medium.xml
diff --git a/tests/HwAccelerationTest/res/layout/text_small.xml b/tests/graphics/HwAccelerationTest/res/layout/text_small.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/text_small.xml
rename to tests/graphics/HwAccelerationTest/res/layout/text_small.xml
diff --git a/tests/HwAccelerationTest/res/layout/transforms_and_animations.xml b/tests/graphics/HwAccelerationTest/res/layout/transforms_and_animations.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/transforms_and_animations.xml
rename to tests/graphics/HwAccelerationTest/res/layout/transforms_and_animations.xml
diff --git a/tests/HwAccelerationTest/res/layout/view_layer_invalidation.xml b/tests/graphics/HwAccelerationTest/res/layout/view_layer_invalidation.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/view_layer_invalidation.xml
rename to tests/graphics/HwAccelerationTest/res/layout/view_layer_invalidation.xml
diff --git a/tests/HwAccelerationTest/res/layout/view_layers.xml b/tests/graphics/HwAccelerationTest/res/layout/view_layers.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/view_layers.xml
rename to tests/graphics/HwAccelerationTest/res/layout/view_layers.xml
diff --git a/tests/HwAccelerationTest/res/layout/view_layers_3.xml b/tests/graphics/HwAccelerationTest/res/layout/view_layers_3.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/view_layers_3.xml
rename to tests/graphics/HwAccelerationTest/res/layout/view_layers_3.xml
diff --git a/tests/HwAccelerationTest/res/layout/view_layers_4.xml b/tests/graphics/HwAccelerationTest/res/layout/view_layers_4.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/view_layers_4.xml
rename to tests/graphics/HwAccelerationTest/res/layout/view_layers_4.xml
diff --git a/tests/HwAccelerationTest/res/layout/view_layers_5.xml b/tests/graphics/HwAccelerationTest/res/layout/view_layers_5.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/view_layers_5.xml
rename to tests/graphics/HwAccelerationTest/res/layout/view_layers_5.xml
diff --git a/tests/HwAccelerationTest/res/layout/view_properties.xml b/tests/graphics/HwAccelerationTest/res/layout/view_properties.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/view_properties.xml
rename to tests/graphics/HwAccelerationTest/res/layout/view_properties.xml
diff --git a/tests/HwAccelerationTest/res/layout/view_runtime_shader.xml b/tests/graphics/HwAccelerationTest/res/layout/view_runtime_shader.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/view_runtime_shader.xml
rename to tests/graphics/HwAccelerationTest/res/layout/view_runtime_shader.xml
diff --git a/tests/HwAccelerationTest/res/layout/widget.xml b/tests/graphics/HwAccelerationTest/res/layout/widget.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/widget.xml
rename to tests/graphics/HwAccelerationTest/res/layout/widget.xml
diff --git a/tests/HwAccelerationTest/res/layout/z_ordering.xml b/tests/graphics/HwAccelerationTest/res/layout/z_ordering.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/layout/z_ordering.xml
rename to tests/graphics/HwAccelerationTest/res/layout/z_ordering.xml
diff --git a/tests/HwAccelerationTest/res/raw/colorgrid_video.mp4 b/tests/graphics/HwAccelerationTest/res/raw/colorgrid_video.mp4
similarity index 100%
rename from tests/HwAccelerationTest/res/raw/colorgrid_video.mp4
rename to tests/graphics/HwAccelerationTest/res/raw/colorgrid_video.mp4
Binary files differ
diff --git a/tests/HwAccelerationTest/res/values/strings.xml b/tests/graphics/HwAccelerationTest/res/values/strings.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/values/strings.xml
rename to tests/graphics/HwAccelerationTest/res/values/strings.xml
diff --git a/tests/HwAccelerationTest/res/values/styles.xml b/tests/graphics/HwAccelerationTest/res/values/styles.xml
similarity index 100%
rename from tests/HwAccelerationTest/res/values/styles.xml
rename to tests/graphics/HwAccelerationTest/res/values/styles.xml
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/Alpha8BitmapActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Alpha8BitmapActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/Alpha8BitmapActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Alpha8BitmapActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/AlphaLayersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AlphaLayersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/AlphaLayersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AlphaLayersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/Animated3dActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Animated3dActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/Animated3dActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Animated3dActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/AssetsAtlasActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AssetsAtlasActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/AssetsAtlasActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/AssetsAtlasActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BackdropBlurActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BackdropBlurActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BackdropBlurActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BackdropBlurActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BigGradientActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BigGradientActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BigGradientActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BigGradientActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshLayerActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshLayerActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshLayerActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshLayerActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMutateActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapMutateActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMutateActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapMutateActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapTransitionView.kt b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapTransitionView.kt
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapTransitionView.kt
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapTransitionView.kt
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/Bitmaps3dActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Bitmaps3dActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/Bitmaps3dActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Bitmaps3dActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsAlphaActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsAlphaActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsAlphaActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsAlphaActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsRectActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsRectActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsRectActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsRectActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsSkewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsSkewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BitmapsSkewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BitmapsSkewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BlurActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BlurActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/BlurActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/BlurActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ClearActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClearActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ClearActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClearActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ClipRegion2Activity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipRegion2Activity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ClipRegion2Activity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipRegion2Activity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ClipRegion3Activity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipRegion3Activity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ClipRegion3Activity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipRegion3Activity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ClipRegionActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipRegionActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ClipRegionActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ClipRegionActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ColorBitmapActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColorBitmapActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ColorBitmapActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColorBitmapActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersMutateActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersMutateActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersMutateActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColorFiltersMutateActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ColoredRectsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColoredRectsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ColoredRectsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColoredRectsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ColoredShadowsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColoredShadowsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ColoredShadowsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ColoredShadowsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/CustomRenderer.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/CustomRenderer.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/CustomRenderer.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/CustomRenderer.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/DatePicker.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DatePicker.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/DatePicker.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DatePicker.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/DatePickerActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DatePickerActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/DatePickerActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DatePickerActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/DisplayListLayersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DisplayListLayersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/DisplayListLayersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DisplayListLayersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/EdgeEffectStretchActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/EdgeEffectStretchActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/EdgeEffectStretchActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/EdgeEffectStretchActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/FramebufferBlendActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/FramebufferBlendActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/FramebufferBlendActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/FramebufferBlendActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/FrontBufferedLayer.kt b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/FrontBufferedLayer.kt
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/FrontBufferedLayer.kt
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/FrontBufferedLayer.kt
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GLDepthTestActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GLDepthTestActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/GLDepthTestActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GLDepthTestActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GLTextureViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GLTextureViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/GLTextureViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GLTextureViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GetBitmapActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GetBitmapActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/GetBitmapActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GetBitmapActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GetBitmapSurfaceViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GetBitmapSurfaceViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/GetBitmapSurfaceViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GetBitmapSurfaceViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GradientStopsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GradientStopsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/GradientStopsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GradientStopsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/HardwareBufferRendererActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HardwareBufferRendererActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/HardwareBufferRendererActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HardwareBufferRendererActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasSurfaceViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasSurfaceViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasSurfaceViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasSurfaceViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasTextureViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasTextureViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasTextureViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HardwareCanvasTextureViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/HwTests.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HwTests.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/HwTests.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/HwTests.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/LabelsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LabelsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/LabelsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LabelsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/LayersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LayersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/LayersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LayersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/Lines2Activity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Lines2Activity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/Lines2Activity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Lines2Activity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/LinesActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LinesActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/LinesActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LinesActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ListActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ListActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ListActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ListActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/LooperAcceleration.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LooperAcceleration.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/LooperAcceleration.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/LooperAcceleration.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MarqueeActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MarqueeActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MarqueeActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MarqueeActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MatrixActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MatrixActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MatrixActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MatrixActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MaxBitmapSizeActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MaxBitmapSizeActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MaxBitmapSizeActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MaxBitmapSizeActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MeshActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MeshActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MeshActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MeshActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MeshLargeActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MeshLargeActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MeshLargeActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MeshLargeActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MipMapActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MipMapActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MipMapActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MipMapActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MoreNinePatchesActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MoreNinePatchesActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MoreNinePatchesActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MoreNinePatchesActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MoreShadersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MoreShadersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MoreShadersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MoreShadersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MovingSurfaceViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MovingSurfaceViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MovingSurfaceViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MovingSurfaceViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MultiLayersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MultiLayersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MultiLayersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MultiLayersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MultiProducerActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MultiProducerActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MultiProducerActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MultiProducerActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/MyLittleTextureView.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MyLittleTextureView.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/MyLittleTextureView.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/MyLittleTextureView.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/NewLayersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/NewLayersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/NewLayersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/NewLayersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/NinePatchesActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/NinePatchesActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/NinePatchesActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/NinePatchesActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/NoAATextActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/NoAATextActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/NoAATextActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/NoAATextActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/OpaqueActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/OpaqueActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/OpaqueActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/OpaqueActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PaintDrawFilterActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PaintDrawFilterActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PaintDrawFilterActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PaintDrawFilterActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PathDestructionActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathDestructionActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PathDestructionActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathDestructionActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PathOffsetActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathOffsetActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PathOffsetActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathOffsetActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PathOpsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathOpsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PathOpsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathOpsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PathsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PathsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PathsCacheActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathsCacheActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PathsCacheActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PathsCacheActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PenStylusActivity.kt b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PenStylusActivity.kt
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PenStylusActivity.kt
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PenStylusActivity.kt
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PictureCaptureDemo.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PictureCaptureDemo.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PictureCaptureDemo.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PictureCaptureDemo.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PixelCopyWindow.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PixelCopyWindow.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PixelCopyWindow.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PixelCopyWindow.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PointsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PointsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PointsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PointsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PosTextActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PosTextActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PosTextActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PosTextActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/PositionListenerActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PositionListenerActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/PositionListenerActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/PositionListenerActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ProjectionActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ProjectionActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ProjectionActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ProjectionActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ProjectionClippingActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ProjectionClippingActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ProjectionClippingActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ProjectionClippingActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/QuickRejectActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/QuickRejectActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/QuickRejectActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/QuickRejectActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/RenderEffectShaderActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RenderEffectShaderActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/RenderEffectShaderActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RenderEffectShaderActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/RenderEffectViewActivity.kt b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RenderEffectViewActivity.kt
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/RenderEffectViewActivity.kt
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RenderEffectViewActivity.kt
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ResizeActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ResizeActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ResizeActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ResizeActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/RevealActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RevealActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/RevealActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RevealActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/Rotate3dTextActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Rotate3dTextActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/Rotate3dTextActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Rotate3dTextActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/RotationActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RotationActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/RotationActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/RotationActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ScaledPathsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ScaledPathsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ScaledPathsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ScaledPathsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ScaledTextActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ScaledTextActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ScaledTextActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ScaledTextActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ScrollingStretchSurfaceViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ScrollingStretchSurfaceViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ScrollingStretchSurfaceViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ScrollingStretchSurfaceViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ShadersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ShadersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ShadersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ShadersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ShapesActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/SimplePatchActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SimplePatchActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/SimplePatchActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SimplePatchActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/SimplePathsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SimplePathsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/SimplePathsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SimplePathsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/SingleFrameTextureViewTestActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SingleFrameTextureViewTestActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/SingleFrameTextureViewTestActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SingleFrameTextureViewTestActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/SmallCircleActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SmallCircleActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/SmallCircleActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SmallCircleActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/StackActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/StackActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/StackActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/StackActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/StretchShaderActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/StretchShaderActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/StretchShaderActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/StretchShaderActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/StretchySurfaceViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/StretchySurfaceViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/StretchySurfaceViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/StretchySurfaceViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/SurfaceViewAlphaActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SurfaceViewAlphaActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/SurfaceViewAlphaActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/SurfaceViewAlphaActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TJunctionActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TJunctionActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TJunctionActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TJunctionActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextFadeActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextFadeActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TextFadeActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextFadeActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextOnPathActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextOnPathActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TextOnPathActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextOnPathActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextPathActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextPathActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TextPathActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextPathActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ThinPatchesActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ThinPatchesActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ThinPatchesActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ThinPatchesActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TimeDialogActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TimeDialogActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TimeDialogActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TimeDialogActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/Transform3dActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Transform3dActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/Transform3dActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/Transform3dActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TransformsAndAnimationsActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TransformsAndAnimationsActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TransformsAndAnimationsActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TransformsAndAnimationsActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TransparentListActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TransparentListActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/TransparentListActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/TransparentListActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/VideoViewCaptureActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/VideoViewCaptureActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/VideoViewCaptureActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/VideoViewCaptureActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewFlipperActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewFlipperActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewFlipperActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewFlipperActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayerInvalidationActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayerInvalidationActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayerInvalidationActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayerInvalidationActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity2.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity2.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity2.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity2.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity3.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity3.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity3.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity3.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity4.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity4.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity4.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity4.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewPropertyAlphaActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewPropertyAlphaActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ViewPropertyAlphaActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ViewPropertyAlphaActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/XfermodeActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/XfermodeActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/XfermodeActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/XfermodeActivity.java
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ZOrderingActivity.java b/tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ZOrderingActivity.java
similarity index 100%
rename from tests/HwAccelerationTest/src/com/android/test/hwui/ZOrderingActivity.java
rename to tests/graphics/HwAccelerationTest/src/com/android/test/hwui/ZOrderingActivity.java
diff --git a/tests/graphics/OWNERS b/tests/graphics/OWNERS
new file mode 100644
index 0000000..fb7fc14
--- /dev/null
+++ b/tests/graphics/OWNERS
@@ -0,0 +1,3 @@
+# Bug component: 1075130
+
+include /libs/hwui/OWNERS
diff --git a/tests/RenderThreadTest/Android.bp b/tests/graphics/RenderThreadTest/Android.bp
similarity index 100%
rename from tests/RenderThreadTest/Android.bp
rename to tests/graphics/RenderThreadTest/Android.bp
diff --git a/tests/RenderThreadTest/AndroidManifest.xml b/tests/graphics/RenderThreadTest/AndroidManifest.xml
similarity index 100%
rename from tests/RenderThreadTest/AndroidManifest.xml
rename to tests/graphics/RenderThreadTest/AndroidManifest.xml
diff --git a/tests/RenderThreadTest/res/drawable-hdpi/ic_launcher.png b/tests/graphics/RenderThreadTest/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from tests/RenderThreadTest/res/drawable-hdpi/ic_launcher.png
rename to tests/graphics/RenderThreadTest/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/tests/RenderThreadTest/res/drawable-mdpi/ic_launcher.png b/tests/graphics/RenderThreadTest/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from tests/RenderThreadTest/res/drawable-mdpi/ic_launcher.png
rename to tests/graphics/RenderThreadTest/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/tests/RenderThreadTest/res/drawable-xhdpi/ic_launcher.png b/tests/graphics/RenderThreadTest/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from tests/RenderThreadTest/res/drawable-xhdpi/ic_launcher.png
rename to tests/graphics/RenderThreadTest/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/tests/RenderThreadTest/res/drawable-xhdpi/starry_night_bg.jpg b/tests/graphics/RenderThreadTest/res/drawable-xhdpi/starry_night_bg.jpg
similarity index 100%
rename from tests/RenderThreadTest/res/drawable-xhdpi/starry_night_bg.jpg
rename to tests/graphics/RenderThreadTest/res/drawable-xhdpi/starry_night_bg.jpg
Binary files differ
diff --git a/tests/RenderThreadTest/res/layout/activity_main.xml b/tests/graphics/RenderThreadTest/res/layout/activity_main.xml
similarity index 100%
rename from tests/RenderThreadTest/res/layout/activity_main.xml
rename to tests/graphics/RenderThreadTest/res/layout/activity_main.xml
diff --git a/tests/RenderThreadTest/res/layout/activity_sub.xml b/tests/graphics/RenderThreadTest/res/layout/activity_sub.xml
similarity index 100%
rename from tests/RenderThreadTest/res/layout/activity_sub.xml
rename to tests/graphics/RenderThreadTest/res/layout/activity_sub.xml
diff --git a/tests/RenderThreadTest/res/layout/item_layout.xml b/tests/graphics/RenderThreadTest/res/layout/item_layout.xml
similarity index 100%
rename from tests/RenderThreadTest/res/layout/item_layout.xml
rename to tests/graphics/RenderThreadTest/res/layout/item_layout.xml
diff --git a/tests/RenderThreadTest/res/values/strings.xml b/tests/graphics/RenderThreadTest/res/values/strings.xml
similarity index 100%
rename from tests/RenderThreadTest/res/values/strings.xml
rename to tests/graphics/RenderThreadTest/res/values/strings.xml
diff --git a/tests/RenderThreadTest/res/values/styles.xml b/tests/graphics/RenderThreadTest/res/values/styles.xml
similarity index 100%
rename from tests/RenderThreadTest/res/values/styles.xml
rename to tests/graphics/RenderThreadTest/res/values/styles.xml
diff --git a/tests/RenderThreadTest/src/com/example/renderthread/MainActivity.java b/tests/graphics/RenderThreadTest/src/com/example/renderthread/MainActivity.java
similarity index 100%
rename from tests/RenderThreadTest/src/com/example/renderthread/MainActivity.java
rename to tests/graphics/RenderThreadTest/src/com/example/renderthread/MainActivity.java
diff --git a/tests/RenderThreadTest/src/com/example/renderthread/SubActivity.java b/tests/graphics/RenderThreadTest/src/com/example/renderthread/SubActivity.java
similarity index 100%
rename from tests/RenderThreadTest/src/com/example/renderthread/SubActivity.java
rename to tests/graphics/RenderThreadTest/src/com/example/renderthread/SubActivity.java
diff --git a/tests/SilkFX/Android.bp b/tests/graphics/SilkFX/Android.bp
similarity index 100%
rename from tests/SilkFX/Android.bp
rename to tests/graphics/SilkFX/Android.bp
diff --git a/tests/SilkFX/AndroidManifest.xml b/tests/graphics/SilkFX/AndroidManifest.xml
similarity index 100%
rename from tests/SilkFX/AndroidManifest.xml
rename to tests/graphics/SilkFX/AndroidManifest.xml
diff --git a/tests/SilkFX/assets/gainmaps/city_night.jpg b/tests/graphics/SilkFX/assets/gainmaps/city_night.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/city_night.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/city_night.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/desert_palms.jpg b/tests/graphics/SilkFX/assets/gainmaps/desert_palms.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/desert_palms.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/desert_palms.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/desert_sunset.jpg b/tests/graphics/SilkFX/assets/gainmaps/desert_sunset.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/desert_sunset.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/desert_sunset.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/desert_wanda.jpg b/tests/graphics/SilkFX/assets/gainmaps/desert_wanda.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/desert_wanda.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/desert_wanda.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/fountain_night.jpg b/tests/graphics/SilkFX/assets/gainmaps/fountain_night.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/fountain_night.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/fountain_night.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/grand_canyon.jpg b/tests/graphics/SilkFX/assets/gainmaps/grand_canyon.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/grand_canyon.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/grand_canyon.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/lamps.jpg b/tests/graphics/SilkFX/assets/gainmaps/lamps.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/lamps.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/lamps.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/mountain_lake.jpg b/tests/graphics/SilkFX/assets/gainmaps/mountain_lake.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/mountain_lake.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/mountain_lake.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/mountains.jpg b/tests/graphics/SilkFX/assets/gainmaps/mountains.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/mountains.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/mountains.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/sunflower.jpg b/tests/graphics/SilkFX/assets/gainmaps/sunflower.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/sunflower.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/sunflower.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/train_station_night.jpg b/tests/graphics/SilkFX/assets/gainmaps/train_station_night.jpg
similarity index 100%
rename from tests/SilkFX/assets/gainmaps/train_station_night.jpg
rename to tests/graphics/SilkFX/assets/gainmaps/train_station_night.jpg
Binary files differ
diff --git a/tests/SilkFX/res/drawable-hdpi/background1.jpeg b/tests/graphics/SilkFX/res/drawable-hdpi/background1.jpeg
similarity index 100%
rename from tests/SilkFX/res/drawable-hdpi/background1.jpeg
rename to tests/graphics/SilkFX/res/drawable-hdpi/background1.jpeg
Binary files differ
diff --git a/tests/SilkFX/res/drawable-hdpi/background2.jpeg b/tests/graphics/SilkFX/res/drawable-hdpi/background2.jpeg
similarity index 100%
rename from tests/SilkFX/res/drawable-hdpi/background2.jpeg
rename to tests/graphics/SilkFX/res/drawable-hdpi/background2.jpeg
Binary files differ
diff --git a/tests/SilkFX/res/drawable-hdpi/background3.jpeg b/tests/graphics/SilkFX/res/drawable-hdpi/background3.jpeg
similarity index 100%
rename from tests/SilkFX/res/drawable-hdpi/background3.jpeg
rename to tests/graphics/SilkFX/res/drawable-hdpi/background3.jpeg
Binary files differ
diff --git a/tests/SilkFX/res/drawable-hdpi/noise.png b/tests/graphics/SilkFX/res/drawable-hdpi/noise.png
similarity index 100%
rename from tests/SilkFX/res/drawable-hdpi/noise.png
rename to tests/graphics/SilkFX/res/drawable-hdpi/noise.png
Binary files differ
diff --git a/tests/SilkFX/res/drawable-nodpi/blue_sweep_gradient.xml b/tests/graphics/SilkFX/res/drawable-nodpi/blue_sweep_gradient.xml
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/blue_sweep_gradient.xml
rename to tests/graphics/SilkFX/res/drawable-nodpi/blue_sweep_gradient.xml
diff --git a/tests/SilkFX/res/drawable-nodpi/dark_gradient.xml b/tests/graphics/SilkFX/res/drawable-nodpi/dark_gradient.xml
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/dark_gradient.xml
rename to tests/graphics/SilkFX/res/drawable-nodpi/dark_gradient.xml
diff --git a/tests/SilkFX/res/drawable-nodpi/dark_notification.png b/tests/graphics/SilkFX/res/drawable-nodpi/dark_notification.png
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/dark_notification.png
rename to tests/graphics/SilkFX/res/drawable-nodpi/dark_notification.png
Binary files differ
diff --git a/tests/SilkFX/res/drawable-nodpi/green_sweep_gradient.xml b/tests/graphics/SilkFX/res/drawable-nodpi/green_sweep_gradient.xml
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/green_sweep_gradient.xml
rename to tests/graphics/SilkFX/res/drawable-nodpi/green_sweep_gradient.xml
diff --git a/tests/SilkFX/res/drawable-nodpi/grey_sweep_gradient.xml b/tests/graphics/SilkFX/res/drawable-nodpi/grey_sweep_gradient.xml
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/grey_sweep_gradient.xml
rename to tests/graphics/SilkFX/res/drawable-nodpi/grey_sweep_gradient.xml
diff --git a/tests/SilkFX/res/drawable-nodpi/light_gradient.xml b/tests/graphics/SilkFX/res/drawable-nodpi/light_gradient.xml
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/light_gradient.xml
rename to tests/graphics/SilkFX/res/drawable-nodpi/light_gradient.xml
diff --git a/tests/SilkFX/res/drawable-nodpi/light_notification.png b/tests/graphics/SilkFX/res/drawable-nodpi/light_notification.png
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/light_notification.png
rename to tests/graphics/SilkFX/res/drawable-nodpi/light_notification.png
Binary files differ
diff --git a/tests/SilkFX/res/drawable-nodpi/red_sweep_gradient.xml b/tests/graphics/SilkFX/res/drawable-nodpi/red_sweep_gradient.xml
similarity index 100%
rename from tests/SilkFX/res/drawable-nodpi/red_sweep_gradient.xml
rename to tests/graphics/SilkFX/res/drawable-nodpi/red_sweep_gradient.xml
diff --git a/tests/SilkFX/res/drawable/background_blur_drawable.xml b/tests/graphics/SilkFX/res/drawable/background_blur_drawable.xml
similarity index 100%
rename from tests/SilkFX/res/drawable/background_blur_drawable.xml
rename to tests/graphics/SilkFX/res/drawable/background_blur_drawable.xml
diff --git a/tests/SilkFX/res/drawable/blur_activity_background_drawable_white.xml b/tests/graphics/SilkFX/res/drawable/blur_activity_background_drawable_white.xml
similarity index 100%
rename from tests/SilkFX/res/drawable/blur_activity_background_drawable_white.xml
rename to tests/graphics/SilkFX/res/drawable/blur_activity_background_drawable_white.xml
diff --git a/tests/SilkFX/res/layout-television/activity_glass.xml b/tests/graphics/SilkFX/res/layout-television/activity_glass.xml
similarity index 100%
rename from tests/SilkFX/res/layout-television/activity_glass.xml
rename to tests/graphics/SilkFX/res/layout-television/activity_glass.xml
diff --git a/tests/SilkFX/res/layout/activity_background_blur.xml b/tests/graphics/SilkFX/res/layout/activity_background_blur.xml
similarity index 100%
rename from tests/SilkFX/res/layout/activity_background_blur.xml
rename to tests/graphics/SilkFX/res/layout/activity_background_blur.xml
diff --git a/tests/SilkFX/res/layout/activity_glass.xml b/tests/graphics/SilkFX/res/layout/activity_glass.xml
similarity index 100%
rename from tests/SilkFX/res/layout/activity_glass.xml
rename to tests/graphics/SilkFX/res/layout/activity_glass.xml
diff --git a/tests/SilkFX/res/layout/bling_notifications.xml b/tests/graphics/SilkFX/res/layout/bling_notifications.xml
similarity index 100%
rename from tests/SilkFX/res/layout/bling_notifications.xml
rename to tests/graphics/SilkFX/res/layout/bling_notifications.xml
diff --git a/tests/SilkFX/res/layout/color_grid.xml b/tests/graphics/SilkFX/res/layout/color_grid.xml
similarity index 100%
rename from tests/SilkFX/res/layout/color_grid.xml
rename to tests/graphics/SilkFX/res/layout/color_grid.xml
diff --git a/tests/SilkFX/res/layout/color_mode_controls.xml b/tests/graphics/SilkFX/res/layout/color_mode_controls.xml
similarity index 100%
rename from tests/SilkFX/res/layout/color_mode_controls.xml
rename to tests/graphics/SilkFX/res/layout/color_mode_controls.xml
diff --git a/tests/SilkFX/res/layout/common_base.xml b/tests/graphics/SilkFX/res/layout/common_base.xml
similarity index 100%
rename from tests/SilkFX/res/layout/common_base.xml
rename to tests/graphics/SilkFX/res/layout/common_base.xml
diff --git a/tests/SilkFX/res/layout/gainmap_decode_test.xml b/tests/graphics/SilkFX/res/layout/gainmap_decode_test.xml
similarity index 100%
rename from tests/SilkFX/res/layout/gainmap_decode_test.xml
rename to tests/graphics/SilkFX/res/layout/gainmap_decode_test.xml
diff --git a/tests/SilkFX/res/layout/gainmap_image.xml b/tests/graphics/SilkFX/res/layout/gainmap_image.xml
similarity index 100%
rename from tests/SilkFX/res/layout/gainmap_image.xml
rename to tests/graphics/SilkFX/res/layout/gainmap_image.xml
diff --git a/tests/SilkFX/res/layout/gainmap_metadata.xml b/tests/graphics/SilkFX/res/layout/gainmap_metadata.xml
similarity index 100%
rename from tests/SilkFX/res/layout/gainmap_metadata.xml
rename to tests/graphics/SilkFX/res/layout/gainmap_metadata.xml
diff --git a/tests/SilkFX/res/layout/gainmap_transform_test.xml b/tests/graphics/SilkFX/res/layout/gainmap_transform_test.xml
similarity index 100%
rename from tests/SilkFX/res/layout/gainmap_transform_test.xml
rename to tests/graphics/SilkFX/res/layout/gainmap_transform_test.xml
diff --git a/tests/SilkFX/res/layout/gradient_sweep.xml b/tests/graphics/SilkFX/res/layout/gradient_sweep.xml
similarity index 100%
rename from tests/SilkFX/res/layout/gradient_sweep.xml
rename to tests/graphics/SilkFX/res/layout/gradient_sweep.xml
diff --git a/tests/SilkFX/res/layout/hdr_glows.xml b/tests/graphics/SilkFX/res/layout/hdr_glows.xml
similarity index 100%
rename from tests/SilkFX/res/layout/hdr_glows.xml
rename to tests/graphics/SilkFX/res/layout/hdr_glows.xml
diff --git a/tests/SilkFX/res/layout/hdr_image_viewer.xml b/tests/graphics/SilkFX/res/layout/hdr_image_viewer.xml
similarity index 100%
rename from tests/SilkFX/res/layout/hdr_image_viewer.xml
rename to tests/graphics/SilkFX/res/layout/hdr_image_viewer.xml
diff --git a/tests/SilkFX/res/values/style.xml b/tests/graphics/SilkFX/res/values/style.xml
similarity index 100%
rename from tests/SilkFX/res/values/style.xml
rename to tests/graphics/SilkFX/res/values/style.xml
diff --git a/tests/SilkFX/src/com/android/test/silkfx/Main.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/Main.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/Main.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/Main.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/app/BaseDemoActivity.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/app/BaseDemoActivity.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/app/BaseDemoActivity.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/app/BaseDemoActivity.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/app/CommonDemoActivity.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/app/CommonDemoActivity.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/app/CommonDemoActivity.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/app/CommonDemoActivity.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/app/HdrImageViewer.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/app/HdrImageViewer.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/app/HdrImageViewer.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/app/HdrImageViewer.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/app/WindowObserver.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/app/WindowObserver.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/app/WindowObserver.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/app/WindowObserver.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/common/BaseDrawingView.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/common/BaseDrawingView.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/common/BaseDrawingView.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/common/BaseDrawingView.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/common/ColorModeControls.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/common/ColorModeControls.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/common/ColorModeControls.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/common/ColorModeControls.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/common/HDRIndicator.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/common/HDRIndicator.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/common/HDRIndicator.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/common/HDRIndicator.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/BlingyNotification.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/BlingyNotification.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/BlingyNotification.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/BlingyNotification.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/ColorGrid.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/ColorGrid.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/ColorGrid.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/ColorGrid.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapDecodeTest.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapDecodeTest.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapDecodeTest.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapDecodeTest.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapImage.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapImage.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapImage.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapImage.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapMetadataEditor.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapMetadataEditor.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapMetadataEditor.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapMetadataEditor.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapTransformsTest.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapTransformsTest.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/GainmapTransformsTest.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GainmapTransformsTest.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/GlowActivity.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GlowActivity.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/GlowActivity.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GlowActivity.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/GlowingCard.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GlowingCard.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/GlowingCard.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/GlowingCard.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/hdr/RadialGlow.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/RadialGlow.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/hdr/RadialGlow.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/hdr/RadialGlow.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/materials/BackgroundBlurActivity.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/materials/BackgroundBlurActivity.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/materials/BackgroundBlurActivity.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/materials/BackgroundBlurActivity.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt
diff --git a/tests/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt b/tests/graphics/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt
similarity index 100%
rename from tests/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt
rename to tests/graphics/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt
diff --git a/tests/VectorDrawableTest/Android.bp b/tests/graphics/VectorDrawableTest/Android.bp
similarity index 100%
rename from tests/VectorDrawableTest/Android.bp
rename to tests/graphics/VectorDrawableTest/Android.bp
diff --git a/tests/VectorDrawableTest/AndroidManifest.xml b/tests/graphics/VectorDrawableTest/AndroidManifest.xml
similarity index 100%
rename from tests/VectorDrawableTest/AndroidManifest.xml
rename to tests/graphics/VectorDrawableTest/AndroidManifest.xml
diff --git a/tests/VectorDrawableTest/OWNERS b/tests/graphics/VectorDrawableTest/OWNERS
similarity index 100%
rename from tests/VectorDrawableTest/OWNERS
rename to tests/graphics/VectorDrawableTest/OWNERS
diff --git a/tests/VectorDrawableTest/res/anim/alpha_animation_progress_bar.xml b/tests/graphics/VectorDrawableTest/res/anim/alpha_animation_progress_bar.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/alpha_animation_progress_bar.xml
rename to tests/graphics/VectorDrawableTest/res/anim/alpha_animation_progress_bar.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_favorite.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_favorite.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_favorite.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_favorite.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_favorite02.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_favorite02.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_favorite02.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_favorite02.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_grouping_1_01.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_grouping_1_01.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_grouping_1_01.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_grouping_1_01.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_grouping_1_02.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_grouping_1_02.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_grouping_1_02.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_grouping_1_02.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_scale.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_scale.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_scale.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_scale.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_translate.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_translate.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_translate.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect1_translate.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_scale.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_scale.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_scale.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_scale.xml
diff --git a/tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_translate.xml b/tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_translate.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_translate.xml
rename to tests/graphics/VectorDrawableTest/res/anim/animation_linear_progress_bar_rect2_translate.xml
diff --git a/tests/VectorDrawableTest/res/anim/blink.xml b/tests/graphics/VectorDrawableTest/res/anim/blink.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/blink.xml
rename to tests/graphics/VectorDrawableTest/res/anim/blink.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_hourglass_animation_fill_outlines.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_hourglass_animation_fill_outlines.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_hourglass_animation_fill_outlines.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_hourglass_animation_fill_outlines.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_hourglass_animation_hourglass_frame.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_hourglass_animation_hourglass_frame.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_hourglass_animation_hourglass_frame.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_hourglass_animation_hourglass_frame.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_hourglass_animation_mask_1.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_hourglass_animation_mask_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_hourglass_animation_mask_1.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_hourglass_animation_mask_1.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_arrows_1.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_arrows_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_arrows_1.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_arrows_1.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_1.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_1.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_1.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_2.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_2.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_2.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_rotate_2_portrait_v2_animation_device_2.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_cross_1.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_cross_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_cross_1.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_cross_1.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_ic_signal_airplane.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_ic_signal_airplane.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_ic_signal_airplane.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_ic_signal_airplane.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_mask_2.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_mask_2.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_mask_2.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_mask_2.xml
diff --git a/tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_path_1_1.xml b/tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_path_1_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_path_1_1.xml
rename to tests/graphics/VectorDrawableTest/res/anim/ic_signal_airplane_v2_animation_path_1_1.xml
diff --git a/tests/VectorDrawableTest/res/anim/trim_path_animation01.xml b/tests/graphics/VectorDrawableTest/res/anim/trim_path_animation01.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/trim_path_animation01.xml
rename to tests/graphics/VectorDrawableTest/res/anim/trim_path_animation01.xml
diff --git a/tests/VectorDrawableTest/res/anim/trim_path_animation02.xml b/tests/graphics/VectorDrawableTest/res/anim/trim_path_animation02.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/trim_path_animation02.xml
rename to tests/graphics/VectorDrawableTest/res/anim/trim_path_animation02.xml
diff --git a/tests/VectorDrawableTest/res/anim/trim_path_animation03.xml b/tests/graphics/VectorDrawableTest/res/anim/trim_path_animation03.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/trim_path_animation03.xml
rename to tests/graphics/VectorDrawableTest/res/anim/trim_path_animation03.xml
diff --git a/tests/VectorDrawableTest/res/anim/trim_path_animation04.xml b/tests/graphics/VectorDrawableTest/res/anim/trim_path_animation04.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/trim_path_animation04.xml
rename to tests/graphics/VectorDrawableTest/res/anim/trim_path_animation04.xml
diff --git a/tests/VectorDrawableTest/res/anim/trim_path_animation05.xml b/tests/graphics/VectorDrawableTest/res/anim/trim_path_animation05.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/trim_path_animation05.xml
rename to tests/graphics/VectorDrawableTest/res/anim/trim_path_animation05.xml
diff --git a/tests/VectorDrawableTest/res/anim/trim_path_animation06.xml b/tests/graphics/VectorDrawableTest/res/anim/trim_path_animation06.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/trim_path_animation06.xml
rename to tests/graphics/VectorDrawableTest/res/anim/trim_path_animation06.xml
diff --git a/tests/VectorDrawableTest/res/anim/trim_path_animation_progress_bar.xml b/tests/graphics/VectorDrawableTest/res/anim/trim_path_animation_progress_bar.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/anim/trim_path_animation_progress_bar.xml
rename to tests/graphics/VectorDrawableTest/res/anim/trim_path_animation_progress_bar.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_linear.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_linear.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_linear_clamp.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_clamp.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_linear_clamp.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_clamp.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_linear_item.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_linear_item.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap_mirror.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap_mirror.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap_mirror.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item_overlap_mirror.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_linear_item_repeat.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item_repeat.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_linear_item_repeat.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_linear_item_repeat.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_radial.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_radial.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_radial_clamp.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_clamp.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_radial_clamp.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_clamp.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_radial_item.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_radial_item.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_radial_item_repeat.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item_repeat.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_radial_item_repeat.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item_repeat.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_radial_item_short.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item_short.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_radial_item_short.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item_short.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_radial_item_short_mirror.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item_short_mirror.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_radial_item_short_mirror.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_radial_item_short_mirror.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_sweep.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_sweep.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_sweep_clamp.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_clamp.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_sweep_clamp.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_clamp.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_sweep_item.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_sweep_item.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_sweep_item_long.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item_long.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_sweep_item_long.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item_long.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_sweep_item_long_mirror.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item_long_mirror.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_sweep_item_long_mirror.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item_long_mirror.xml
diff --git a/tests/VectorDrawableTest/res/color/fill_gradient_sweep_item_repeat.xml b/tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item_repeat.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/fill_gradient_sweep_item_repeat.xml
rename to tests/graphics/VectorDrawableTest/res/color/fill_gradient_sweep_item_repeat.xml
diff --git a/tests/VectorDrawableTest/res/color/stroke_gradient.xml b/tests/graphics/VectorDrawableTest/res/color/stroke_gradient.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/stroke_gradient.xml
rename to tests/graphics/VectorDrawableTest/res/color/stroke_gradient.xml
diff --git a/tests/VectorDrawableTest/res/color/stroke_gradient_clamp.xml b/tests/graphics/VectorDrawableTest/res/color/stroke_gradient_clamp.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/stroke_gradient_clamp.xml
rename to tests/graphics/VectorDrawableTest/res/color/stroke_gradient_clamp.xml
diff --git a/tests/VectorDrawableTest/res/color/stroke_gradient_item.xml b/tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/stroke_gradient_item.xml
rename to tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item.xml
diff --git a/tests/VectorDrawableTest/res/color/stroke_gradient_item_alpha.xml b/tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item_alpha.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/stroke_gradient_item_alpha.xml
rename to tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item_alpha.xml
diff --git a/tests/VectorDrawableTest/res/color/stroke_gradient_item_alpha_mirror.xml b/tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item_alpha_mirror.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/stroke_gradient_item_alpha_mirror.xml
rename to tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item_alpha_mirror.xml
diff --git a/tests/VectorDrawableTest/res/color/stroke_gradient_item_repeat.xml b/tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item_repeat.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/stroke_gradient_item_repeat.xml
rename to tests/graphics/VectorDrawableTest/res/color/stroke_gradient_item_repeat.xml
diff --git a/tests/VectorDrawableTest/res/color/vector_icon_fill_state_list.xml b/tests/graphics/VectorDrawableTest/res/color/vector_icon_fill_state_list.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/vector_icon_fill_state_list.xml
rename to tests/graphics/VectorDrawableTest/res/color/vector_icon_fill_state_list.xml
diff --git a/tests/VectorDrawableTest/res/color/vector_icon_fill_state_list_simple.xml b/tests/graphics/VectorDrawableTest/res/color/vector_icon_fill_state_list_simple.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/vector_icon_fill_state_list_simple.xml
rename to tests/graphics/VectorDrawableTest/res/color/vector_icon_fill_state_list_simple.xml
diff --git a/tests/VectorDrawableTest/res/color/vector_icon_stroke_state_list.xml b/tests/graphics/VectorDrawableTest/res/color/vector_icon_stroke_state_list.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/vector_icon_stroke_state_list.xml
rename to tests/graphics/VectorDrawableTest/res/color/vector_icon_stroke_state_list.xml
diff --git a/tests/VectorDrawableTest/res/color/vector_icon_stroke_state_list_simple.xml b/tests/graphics/VectorDrawableTest/res/color/vector_icon_stroke_state_list_simple.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/color/vector_icon_stroke_state_list_simple.xml
rename to tests/graphics/VectorDrawableTest/res/color/vector_icon_stroke_state_list_simple.xml
diff --git a/tests/VectorDrawableTest/res/drawable-hdpi/icon.png b/tests/graphics/VectorDrawableTest/res/drawable-hdpi/icon.png
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable-hdpi/icon.png
rename to tests/graphics/VectorDrawableTest/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg b/tests/graphics/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg
rename to tests/graphics/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg
Binary files differ
diff --git a/tests/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon.xml b/tests/graphics/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon.xml
diff --git a/tests/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon_animated.xml b/tests/graphics/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon_animated.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon_animated.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animated_vector_drawable_attr_icon_animated.xml
diff --git a/tests/VectorDrawableTest/res/drawable/animation_drawable_vector.xml b/tests/graphics/VectorDrawableTest/res/drawable/animation_drawable_vector.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animation_drawable_vector.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animation_drawable_vector.xml
diff --git a/tests/VectorDrawableTest/res/drawable/animation_vector_drawable01.xml b/tests/graphics/VectorDrawableTest/res/drawable/animation_vector_drawable01.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animation_vector_drawable01.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animation_vector_drawable01.xml
diff --git a/tests/VectorDrawableTest/res/drawable/animation_vector_drawable_favorite.xml b/tests/graphics/VectorDrawableTest/res/drawable/animation_vector_drawable_favorite.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animation_vector_drawable_favorite.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animation_vector_drawable_favorite.xml
diff --git a/tests/VectorDrawableTest/res/drawable/animation_vector_drawable_grouping_1.xml b/tests/graphics/VectorDrawableTest/res/drawable/animation_vector_drawable_grouping_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animation_vector_drawable_grouping_1.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animation_vector_drawable_grouping_1.xml
diff --git a/tests/VectorDrawableTest/res/drawable/animation_vector_linear_progress_bar.xml b/tests/graphics/VectorDrawableTest/res/drawable/animation_vector_linear_progress_bar.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animation_vector_linear_progress_bar.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animation_vector_linear_progress_bar.xml
diff --git a/tests/VectorDrawableTest/res/drawable/animation_vector_progress_bar.xml b/tests/graphics/VectorDrawableTest/res/drawable/animation_vector_progress_bar.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/animation_vector_progress_bar.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/animation_vector_progress_bar.xml
diff --git a/tests/VectorDrawableTest/res/drawable/btn_radio_on_to_off_bundle.xml b/tests/graphics/VectorDrawableTest/res/drawable/btn_radio_on_to_off_bundle.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/btn_radio_on_to_off_bundle.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/btn_radio_on_to_off_bundle.xml
diff --git a/tests/VectorDrawableTest/res/drawable/ic_hourglass.xml b/tests/graphics/VectorDrawableTest/res/drawable/ic_hourglass.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/ic_hourglass.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/ic_hourglass.xml
diff --git a/tests/VectorDrawableTest/res/drawable/ic_hourglass_animation.xml b/tests/graphics/VectorDrawableTest/res/drawable/ic_hourglass_animation.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/ic_hourglass_animation.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/ic_hourglass_animation.xml
diff --git a/tests/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2.xml b/tests/graphics/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2.xml
diff --git a/tests/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2_animation.xml b/tests/graphics/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2_animation.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2_animation.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/ic_rotate_2_portrait_v2_animation.xml
diff --git a/tests/VectorDrawableTest/res/drawable/ic_signal_airplane_v2.xml b/tests/graphics/VectorDrawableTest/res/drawable/ic_signal_airplane_v2.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/ic_signal_airplane_v2.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/ic_signal_airplane_v2.xml
diff --git a/tests/VectorDrawableTest/res/drawable/ic_signal_airplane_v2_animation.xml b/tests/graphics/VectorDrawableTest/res/drawable/ic_signal_airplane_v2_animation.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/ic_signal_airplane_v2_animation.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/ic_signal_airplane_v2_animation.xml
diff --git a/tests/VectorDrawableTest/res/drawable/icon.png b/tests/graphics/VectorDrawableTest/res/drawable/icon.png
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/icon.png
rename to tests/graphics/VectorDrawableTest/res/drawable/icon.png
Binary files differ
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_drawable04.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_drawable04.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_drawable04.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_drawable04.xml
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_drawable04_false.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_drawable04_false.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_drawable04_false.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_drawable04_false.xml
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable01.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable01.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable01.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable01.xml
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable01_false.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable01_false.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable01_false.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable01_false.xml
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable02.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable02.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable02.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable02.xml
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable02_false.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable02_false.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable02_false.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable02_false.xml
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable03.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable03.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable03.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable03.xml
diff --git a/tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable03_false.xml b/tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable03_false.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/state_animation_vector_drawable03_false.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/state_animation_vector_drawable03_false.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable01.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable01.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable01.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable01.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable02.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable02.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable02.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable02.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable03.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable03.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable03.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable03.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable04.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable04.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable04.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable04.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable05.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable05.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable05.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable05.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable06.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable06.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable06.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable06.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable07.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable07.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable07.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable07.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable08.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable08.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable08.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable08.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable09.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable09.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable09.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable09.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable10.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable10.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable10.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable10.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable11.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable11.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable11.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable11.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable12.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable12.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable12.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable12.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable13.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable13.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable13.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable13.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable14.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable14.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable14.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable14.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable15.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable15.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable15.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable15.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable16.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable16.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable16.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable16.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable17.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable17.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable17.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable17.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable18.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable18.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable18.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable18.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable19.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable19.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable19.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable19.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable20.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable20.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable20.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable20.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable21.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable21.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable21.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable21.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable22.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable22.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable22.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable22.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable23.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable23.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable23.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable23.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable24.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable24.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable24.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable24.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable25.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable25.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable25.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable25.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable26.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable26.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable26.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable26.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable27.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable27.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable27.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable27.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable28.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable28.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable28.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable28.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable29.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable29.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable29.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable29.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable30.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable30.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable30.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable30.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_favorite.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_favorite.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_favorite.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_favorite.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_group_clip.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_group_clip.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_group_clip.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_group_clip.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_grouping_1.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_grouping_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_grouping_1.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_grouping_1.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_linear_progress_bar.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_linear_progress_bar.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_linear_progress_bar.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_linear_progress_bar.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_progress_bar.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_progress_bar.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_progress_bar.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_progress_bar.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_scale0.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale0.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_scale0.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale0.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_scale1.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_scale1.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale1.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_scale2.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale2.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_scale2.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale2.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable_scale3.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale3.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_drawable_scale3.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_drawable_scale3.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_create.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_create.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_create.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_create.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_delete.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_delete.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_delete.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_delete.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_filltype_evenodd.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_filltype_evenodd.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_filltype_evenodd.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_filltype_evenodd.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_filltype_nonzero.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_filltype_nonzero.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_filltype_nonzero.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_filltype_nonzero.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_gradient_1.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_1.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_gradient_1.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_1.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_gradient_1_clamp.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_1_clamp.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_gradient_1_clamp.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_1_clamp.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_gradient_2.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_2.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_gradient_2.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_2.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_gradient_2_repeat.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_2_repeat.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_gradient_2_repeat.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_2_repeat.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_gradient_3.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_3.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_gradient_3.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_3.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_gradient_3_mirror.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_3_mirror.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_gradient_3_mirror.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_gradient_3_mirror.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_heart.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_heart.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_heart.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_heart.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_schedule.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_schedule.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_schedule.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_schedule.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_settings.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_settings.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_settings.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_settings.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_state_list_simple.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_state_list_simple.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_state_list_simple.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_state_list_simple.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_state_list_theme.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_icon_state_list_theme.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_icon_state_list_theme.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_icon_state_list_theme.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_test01.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_test01.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_test01.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_test01.xml
diff --git a/tests/VectorDrawableTest/res/drawable/vector_test02.xml b/tests/graphics/VectorDrawableTest/res/drawable/vector_test02.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/drawable/vector_test02.xml
rename to tests/graphics/VectorDrawableTest/res/drawable/vector_test02.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/btn_radio_to_off_mtrl_animation_interpolator_0.xml b/tests/graphics/VectorDrawableTest/res/interpolator/btn_radio_to_off_mtrl_animation_interpolator_0.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/btn_radio_to_off_mtrl_animation_interpolator_0.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/btn_radio_to_off_mtrl_animation_interpolator_0.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/custom_path_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/custom_path_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/custom_path_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/custom_path_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/custom_path_interpolator_favorite.xml b/tests/graphics/VectorDrawableTest/res/interpolator/custom_path_interpolator_favorite.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/custom_path_interpolator_favorite.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/custom_path_interpolator_favorite.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/custom_path_interpolator_grouping_1_01.xml b/tests/graphics/VectorDrawableTest/res/interpolator/custom_path_interpolator_grouping_1_01.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/custom_path_interpolator_grouping_1_01.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/custom_path_interpolator_grouping_1_01.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_rotation_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_rotation_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_rotation_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_rotation_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_scalex_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_scalex_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_scalex_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_arrows_1_scalex_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_1_rotation_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_1_rotation_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_1_rotation_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_1_rotation_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_2_pathdata_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_2_pathdata_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_2_pathdata_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/ic_rotate_2_portrait_v2_device_2_pathdata_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/ic_signal_airplane_v2_path_1_1_pathdata_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/ic_signal_airplane_v2_path_1_1_pathdata_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/ic_signal_airplane_v2_path_1_1_pathdata_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/ic_signal_airplane_v2_path_1_1_pathdata_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/trim_end_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/trim_end_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/trim_end_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/trim_end_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/interpolator/trim_start_interpolator.xml b/tests/graphics/VectorDrawableTest/res/interpolator/trim_start_interpolator.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/interpolator/trim_start_interpolator.xml
rename to tests/graphics/VectorDrawableTest/res/interpolator/trim_start_interpolator.xml
diff --git a/tests/VectorDrawableTest/res/layout/activity_animated_vector_drawable_attr.xml b/tests/graphics/VectorDrawableTest/res/layout/activity_animated_vector_drawable_attr.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/layout/activity_animated_vector_drawable_attr.xml
rename to tests/graphics/VectorDrawableTest/res/layout/activity_animated_vector_drawable_attr.xml
diff --git a/tests/VectorDrawableTest/res/values/attrs.xml b/tests/graphics/VectorDrawableTest/res/values/attrs.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/values/attrs.xml
rename to tests/graphics/VectorDrawableTest/res/values/attrs.xml
diff --git a/tests/VectorDrawableTest/res/values/colors.xml b/tests/graphics/VectorDrawableTest/res/values/colors.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/values/colors.xml
rename to tests/graphics/VectorDrawableTest/res/values/colors.xml
diff --git a/tests/VectorDrawableTest/res/values/strings.xml b/tests/graphics/VectorDrawableTest/res/values/strings.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/values/strings.xml
rename to tests/graphics/VectorDrawableTest/res/values/strings.xml
diff --git a/tests/VectorDrawableTest/res/values/styles.xml b/tests/graphics/VectorDrawableTest/res/values/styles.xml
similarity index 100%
rename from tests/VectorDrawableTest/res/values/styles.xml
rename to tests/graphics/VectorDrawableTest/res/values/styles.xml
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedStateVectorDrawableTest.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedStateVectorDrawableTest.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedStateVectorDrawableTest.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedStateVectorDrawableTest.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableAttr.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableAttr.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableAttr.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableAttr.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableDupPerf.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableDupPerf.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableDupPerf.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableDupPerf.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableTest.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableTest.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableTest.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/AnimatedVectorDrawableTest.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/BoundsCheckTest.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/BoundsCheckTest.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/BoundsCheckTest.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/BoundsCheckTest.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/ScaleDrawableTests.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/ScaleDrawableTests.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/ScaleDrawableTests.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/ScaleDrawableTests.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorCheckbox.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorCheckbox.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorCheckbox.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorCheckbox.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawable01.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawable01.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawable01.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawable01.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableAnimation.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableAnimation.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableAnimation.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableAnimation.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableDupPerf.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableDupPerf.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableDupPerf.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableDupPerf.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableStaticPerf.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableStaticPerf.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableStaticPerf.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableStaticPerf.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableTest.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableTest.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableTest.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableTest.java
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorPathChecking.java b/tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorPathChecking.java
similarity index 100%
rename from tests/VectorDrawableTest/src/com/android/test/dynamic/VectorPathChecking.java
rename to tests/graphics/VectorDrawableTest/src/com/android/test/dynamic/VectorPathChecking.java
diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp
index 9ca546f..45dd02c 100644
--- a/tools/aapt2/cmd/Link.cpp
+++ b/tools/aapt2/cmd/Link.cpp
@@ -389,7 +389,7 @@
// Build up the rules for degrading newer attributes to older ones.
// NOTE(adamlesinski): These rules are hardcoded right now, but they should be
// generated from the attribute definitions themselves (b/62028956).
- if (const SymbolTable::Symbol* s = symm->FindById(R::attr::paddingHorizontal)) {
+ if (symm->FindById(R::attr::paddingHorizontal)) {
std::vector<ReplacementAttr> replacements{
{"paddingLeft", R::attr::paddingLeft, Attribute(android::ResTable_map::TYPE_DIMENSION)},
{"paddingRight", R::attr::paddingRight, Attribute(android::ResTable_map::TYPE_DIMENSION)},
@@ -398,7 +398,7 @@
util::make_unique<DegradeToManyRule>(std::move(replacements));
}
- if (const SymbolTable::Symbol* s = symm->FindById(R::attr::paddingVertical)) {
+ if (symm->FindById(R::attr::paddingVertical)) {
std::vector<ReplacementAttr> replacements{
{"paddingTop", R::attr::paddingTop, Attribute(android::ResTable_map::TYPE_DIMENSION)},
{"paddingBottom", R::attr::paddingBottom, Attribute(android::ResTable_map::TYPE_DIMENSION)},
@@ -407,7 +407,7 @@
util::make_unique<DegradeToManyRule>(std::move(replacements));
}
- if (const SymbolTable::Symbol* s = symm->FindById(R::attr::layout_marginHorizontal)) {
+ if (symm->FindById(R::attr::layout_marginHorizontal)) {
std::vector<ReplacementAttr> replacements{
{"layout_marginLeft", R::attr::layout_marginLeft,
Attribute(android::ResTable_map::TYPE_DIMENSION)},
@@ -418,7 +418,7 @@
util::make_unique<DegradeToManyRule>(std::move(replacements));
}
- if (const SymbolTable::Symbol* s = symm->FindById(R::attr::layout_marginVertical)) {
+ if (symm->FindById(R::attr::layout_marginVertical)) {
std::vector<ReplacementAttr> replacements{
{"layout_marginTop", R::attr::layout_marginTop,
Attribute(android::ResTable_map::TYPE_DIMENSION)},
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index c4f6e70..0b16e2c 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -338,7 +338,7 @@
}
bool has_gl_es_version = false;
- if (xml::Attribute* attr = el->FindAttribute(xml::kSchemaAndroid, "glEsVersion")) {
+ if (el->FindAttribute(xml::kSchemaAndroid, "glEsVersion")) {
if (has_name) {
diag->Error(android::DiagMessage(el->line_number)
<< "cannot define both android:name and android:glEsVersion in <uses-feature>");
diff --git a/tools/hoststubgen/hoststubgen/helper-framework-runtime-src/libcore-fake/libcore/util/HexEncoding.java b/tools/hoststubgen/hoststubgen/helper-framework-runtime-src/libcore-fake/libcore/util/HexEncoding.java
new file mode 100644
index 0000000..cc2fb7b
--- /dev/null
+++ b/tools/hoststubgen/hoststubgen/helper-framework-runtime-src/libcore-fake/libcore/util/HexEncoding.java
@@ -0,0 +1,240 @@
+/*
+ * 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 libcore.util;
+
+/**
+ * Hexadecimal encoding where each byte is represented by two hexadecimal digits.
+ * @hide
+ */
+public class HexEncoding {
+
+ private static final char[] LOWER_CASE_DIGITS = {
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
+ };
+
+ private static final char[] UPPER_CASE_DIGITS = {
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
+ };
+
+ /** Hidden constructor to prevent instantiation. */
+ private HexEncoding() {}
+
+ /**
+ * Encodes the provided byte as a two-digit hexadecimal String value.
+ *
+ * @param b byte to encode
+ * @param upperCase {@code true} to use uppercase letters, {@code false}
+ * for lowercase
+ * @return the encoded string
+ *
+ * @hide
+ */
+ public static String encodeToString(byte b, boolean upperCase) {
+ char[] digits = upperCase ? UPPER_CASE_DIGITS : LOWER_CASE_DIGITS;
+ char[] buf = new char[2]; // We always want two digits.
+ buf[0] = digits[(b >> 4) & 0xf];
+ buf[1] = digits[b & 0xf];
+ return new String(buf, 0, 2);
+ }
+
+ /**
+ * Encodes the provided data as a sequence of hexadecimal characters.
+ *
+ * @param data byte array to encode
+ * @return the encoded data, using uppercase letters
+ *
+ * @hide
+ */
+ public static char[] encode(byte[] data) {
+ return encode(data, 0, data.length, true /* upperCase */);
+ }
+
+ /**
+ * Encodes the provided data as a sequence of hexadecimal characters.
+ *
+ * @param data byte array to encode
+ * @param upperCase {@code true} to use uppercase letters, {@code false}
+ * for lowercase
+ * @return the encoded data
+ *
+ * @hide
+ */
+ public static char[] encode(byte[] data, boolean upperCase) {
+ return encode(data, 0, data.length, upperCase);
+ }
+
+ /**
+ * Encodes the provided data as a sequence of hexadecimal characters.
+ *
+ * @param data byte array containing the data to encode
+ * @param offset offset of the data to encode in the {@code data} array
+ * @param len length of the data to encode in the {@code data} array
+ * @return the encoded data, using uppercase letters
+ *
+ * @hide
+ */
+ public static char[] encode(byte[] data, int offset, int len) {
+ return encode(data, offset, len, true /* upperCase */);
+ }
+
+ /**
+ * Encodes the provided data as a sequence of hexadecimal characters.
+ */
+ private static char[] encode(byte[] data, int offset, int len, boolean upperCase) {
+ char[] digits = upperCase ? UPPER_CASE_DIGITS : LOWER_CASE_DIGITS;
+ char[] result = new char[len * 2];
+ for (int i = 0; i < len; i++) {
+ byte b = data[offset + i];
+ int resultIndex = 2 * i;
+ result[resultIndex] = (digits[(b >> 4) & 0x0f]);
+ result[resultIndex + 1] = (digits[b & 0x0f]);
+ }
+
+ return result;
+ }
+
+ /**
+ * Encodes the provided data as a sequence of hexadecimal characters.
+ *
+ * @param data byte array to encode
+ * @return the encoded data, using uppercase letters
+ *
+ * @hide
+ */
+ public static String encodeToString(byte[] data) {
+ return encodeToString(data, true /* upperCase */);
+ }
+
+ /**
+ * Encodes the provided data as a sequence of hexadecimal characters.
+ *
+ * @param data byte array to encode.
+ * @param upperCase {@code true} to use uppercase letters, {@code false}
+ * for lowercase
+ * @return the encoded data
+ *
+ * @hide
+ */
+ public static String encodeToString(byte[] data, boolean upperCase) {
+ return new String(encode(data, upperCase));
+ }
+
+ /**
+ * Decodes the provided hexadecimal sequence. Odd-length inputs are not
+ * allowed.
+ *
+ * @param encoded string of hexadecimal characters to decode. Letters
+ * can be either uppercase or lowercase.
+ * @return the decoded data
+ * @throws IllegalArgumentException if the input is malformed
+ *
+ * @hide
+ */
+ public static byte[] decode(String encoded) throws IllegalArgumentException {
+ return decode(encoded.toCharArray());
+ }
+
+ /**
+ * Decodes the provided hexadecimal sequence.
+ *
+ * @param encoded string of hexadecimal characters to decode. Letters
+ * can be either uppercase or lowercase.
+ * @param allowSingleChar If {@code true} odd-length inputs are allowed and
+ * the first character is interpreted as the lower bits of the first
+ * result byte. If {@code false} odd-length inputs are not allowed.
+ * @return the decoded data
+ * @throws IllegalArgumentException if the input is malformed
+ *
+ * @hide
+ */
+ public static byte[] decode(String encoded, boolean allowSingleChar)
+ throws IllegalArgumentException {
+ return decode(encoded.toCharArray(), allowSingleChar);
+ }
+
+ /**
+ * Decodes the provided hexadecimal sequence. Odd-length inputs are not
+ * allowed.
+ *
+ * @param encoded char array of hexadecimal characters to decode. Letters
+ * can be either uppercase or lowercase.
+ * @return the decoded data
+ * @throws IllegalArgumentException if the input is malformed
+ *
+ * @hide
+ */
+ public static byte[] decode(char[] encoded) throws IllegalArgumentException {
+ return decode(encoded, false);
+ }
+
+ /**
+ * Decodes the provided hexadecimal sequence.
+ *
+ * @param encoded char array of hexadecimal characters to decode. Letters
+ * can be either uppercase or lowercase.
+ * @param allowSingleChar If {@code true} odd-length inputs are allowed and
+ * the first character is interpreted as the lower bits of the first
+ * result byte. If {@code false} odd-length inputs are not allowed.
+ * @return the decoded data
+ * @throws IllegalArgumentException if the input is malformed
+ *
+ * @hide
+ */
+ public static byte[] decode(char[] encoded, boolean allowSingleChar)
+ throws IllegalArgumentException {
+ int encodedLength = encoded.length;
+ int resultLengthBytes = (encodedLength + 1) / 2;
+ byte[] result = new byte[resultLengthBytes];
+
+ int resultOffset = 0;
+ int i = 0;
+ if (allowSingleChar) {
+ if ((encodedLength % 2) != 0) {
+ // Odd number of digits -- the first digit is the lower 4 bits of the first result
+ // byte.
+ result[resultOffset++] = (byte) toDigit(encoded, i);
+ i++;
+ }
+ } else {
+ if ((encodedLength % 2) != 0) {
+ throw new IllegalArgumentException("Invalid input length: " + encodedLength);
+ }
+ }
+
+ for (; i < encodedLength; i += 2) {
+ result[resultOffset++] = (byte) ((toDigit(encoded, i) << 4) | toDigit(encoded, i + 1));
+ }
+
+ return result;
+ }
+
+ private static int toDigit(char[] str, int offset) throws IllegalArgumentException {
+ // NOTE: that this isn't really a code point in the traditional sense, since we're
+ // just rejecting surrogate pairs outright.
+ int pseudoCodePoint = str[offset];
+
+ if ('0' <= pseudoCodePoint && pseudoCodePoint <= '9') {
+ return pseudoCodePoint - '0';
+ } else if ('a' <= pseudoCodePoint && pseudoCodePoint <= 'f') {
+ return 10 + (pseudoCodePoint - 'a');
+ } else if ('A' <= pseudoCodePoint && pseudoCodePoint <= 'F') {
+ return 10 + (pseudoCodePoint - 'A');
+ }
+
+ throw new IllegalArgumentException("Illegal char: " + str[offset] + " at offset " + offset);
+ }
+}