*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback {
/**
diff --git a/core/java/android/text/CharSequenceCharacterIterator.java b/core/java/android/text/CharSequenceCharacterIterator.java
index 9b07d29bd9dd5f0247595ff3477f9326c1b0b9bd..1599be8237d447df183e5f3bfb069503e74a8da4 100644
--- a/core/java/android/text/CharSequenceCharacterIterator.java
+++ b/core/java/android/text/CharSequenceCharacterIterator.java
@@ -24,6 +24,7 @@ import java.text.CharacterIterator;
* An implementation of {@link java.text.CharacterIterator} that iterates over a given CharSequence.
* {@hide}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class CharSequenceCharacterIterator implements CharacterIterator {
private final int mBeginIndex, mEndIndex;
private int mIndex;
diff --git a/core/java/android/text/ClipboardManager.java b/core/java/android/text/ClipboardManager.java
index d0309100b0f2eb8a9ab2117cc214827edb77a020..41990f0fc8dd344947d6988421a3d26bd90e98bc 100644
--- a/core/java/android/text/ClipboardManager.java
+++ b/core/java/android/text/ClipboardManager.java
@@ -21,6 +21,7 @@ package android.text;
* {@link android.content.ClipboardManager} for the modern API.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class ClipboardManager {
/**
* Returns the text on the clipboard. It will eventually be possible
diff --git a/core/java/android/text/DynamicLayout.java b/core/java/android/text/DynamicLayout.java
index 6b1aef710e504cb5ba49e2d0ed620f39500dc434..3b66ce0167c49eb52878dd1f811e33c0264eaa78 100644
--- a/core/java/android/text/DynamicLayout.java
+++ b/core/java/android/text/DynamicLayout.java
@@ -53,6 +53,7 @@ import java.lang.ref.WeakReference;
* {@link android.graphics.Canvas#drawText(java.lang.CharSequence, int, int, float, float, android.graphics.Paint)
* Canvas.drawText()} directly.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DynamicLayout extends Layout {
private static final int PRIORITY = 128;
private static final int BLOCK_MINIMUM_CHARACTER_LENGTH = 400;
diff --git a/core/java/android/text/Editable.java b/core/java/android/text/Editable.java
index a942f6ce287933e44a39dc6984ef0f296f95c7fc..53d819f52a5c8c7467cc8a7adf35839cfb932f76 100644
--- a/core/java/android/text/Editable.java
+++ b/core/java/android/text/Editable.java
@@ -22,6 +22,7 @@ package android.text;
* to immutable text like Strings). If you make a {@link DynamicLayout}
* of an Editable, the layout will be reflowed as the text is changed.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface Editable
extends CharSequence, GetChars, Spannable, Appendable
{
diff --git a/core/java/android/text/Emoji.java b/core/java/android/text/Emoji.java
index cf0e3c26daac2fa7b8b68d1d49bc3db6aedc35cb..28c37c00d66e84de373070dc0a1a8706a3487e13 100644
--- a/core/java/android/text/Emoji.java
+++ b/core/java/android/text/Emoji.java
@@ -23,6 +23,7 @@ import android.icu.lang.UProperty;
* An utility class for Emoji.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Emoji {
public static int COMBINING_ENCLOSING_KEYCAP = 0x20E3;
diff --git a/core/java/android/text/EmojiConsistency.java b/core/java/android/text/EmojiConsistency.java
index dfaa217c0cca7420230a8cb970ef9dfb429dcb4e..9823305ec72a21b6f7bd42ca4801105df245b663 100644
--- a/core/java/android/text/EmojiConsistency.java
+++ b/core/java/android/text/EmojiConsistency.java
@@ -48,6 +48,7 @@ import java.util.Set;
*
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class EmojiConsistency {
/* Cannot construct */
private EmojiConsistency() { }
diff --git a/core/java/android/text/FontConfig.java b/core/java/android/text/FontConfig.java
index 783f3b7aa64bf24bb5711be66b6dc1e578fb32bb..5a4d3a867032776f6229dd21d3e8e54b8c60f3a1 100644
--- a/core/java/android/text/FontConfig.java
+++ b/core/java/android/text/FontConfig.java
@@ -55,6 +55,7 @@ import java.util.Objects;
*/
@SystemApi
@TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class FontConfig implements Parcelable {
private final @NonNull List mFamilies;
private final @NonNull List mAliases;
diff --git a/core/java/android/text/GetChars.java b/core/java/android/text/GetChars.java
index 348a911a442ffd00e360732f36968fd01ed6e030..229f5437e76bd3bcfb86f755459b0a2f1d44ebab 100644
--- a/core/java/android/text/GetChars.java
+++ b/core/java/android/text/GetChars.java
@@ -21,6 +21,7 @@ package android.text;
* getChars() method like the one in String that is faster than
* calling charAt() multiple times.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface GetChars
extends CharSequence
{
diff --git a/core/java/android/text/GraphemeClusterSegmentFinder.java b/core/java/android/text/GraphemeClusterSegmentFinder.java
index 0f6fdaf23c65667b7f58bbf1565fa53bc26f3ea6..996223dd1a84f16d21384058935e3911fa942c14 100644
--- a/core/java/android/text/GraphemeClusterSegmentFinder.java
+++ b/core/java/android/text/GraphemeClusterSegmentFinder.java
@@ -31,6 +31,7 @@ import android.graphics.text.GraphemeBreak;
* @see Unicode Text
* Segmentation - Grapheme Cluster Boundaries
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class GraphemeClusterSegmentFinder extends SegmentFinder {
private static AutoGrowArray.FloatArray sTempAdvances = null;
private final boolean[] mIsGraphemeBreak;
diff --git a/core/java/android/text/GraphicsOperations.java b/core/java/android/text/GraphicsOperations.java
index 6c1544644eab0ee126324f3b9e128d1bbea7f8d0..f7fe805e53a4eedb4a70f9b3e22ff932090984d9 100644
--- a/core/java/android/text/GraphicsOperations.java
+++ b/core/java/android/text/GraphicsOperations.java
@@ -26,6 +26,7 @@ import android.graphics.Paint;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface GraphicsOperations extends CharSequence {
/**
* Just like {@link Canvas#drawText}.
diff --git a/core/java/android/text/Highlights.java b/core/java/android/text/Highlights.java
index 693dbcf84e84e931e4ec501c9c75ed3aaab7512b..217a38b6edd5a4c883e19d3877e2b5426fd9d143 100644
--- a/core/java/android/text/Highlights.java
+++ b/core/java/android/text/Highlights.java
@@ -30,6 +30,7 @@ import java.util.Objects;
/**
* A class that represents of the highlight of the text.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Highlights {
private final List> mHighlights;
diff --git a/core/java/android/text/Html.java b/core/java/android/text/Html.java
index a42eece57eec99c164876a4080962e38ccdda952..d412071bf3b93d09fe83787220b3df05eb247a35 100644
--- a/core/java/android/text/Html.java
+++ b/core/java/android/text/Html.java
@@ -17,13 +17,13 @@
package android.text;
import android.app.ActivityThread;
-import android.app.Application;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Build;
+import android.ravenwood.annotation.RavenwoodReplace;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.AlignmentSpan;
import android.text.style.BackgroundColorSpan;
@@ -65,6 +65,7 @@ import java.util.regex.Pattern;
* This class processes HTML strings into displayable styled text.
* Not all HTML tags are supported.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Html {
/**
* Retrieves images for HTML <img> tags.
@@ -506,6 +507,15 @@ public class Html {
out.append("\n");
}
+ @RavenwoodReplace(blockedBy = ActivityThread.class)
+ private static float getDisplayMetricsDensity() {
+ return ActivityThread.currentApplication().getResources().getDisplayMetrics().density;
+ }
+
+ private static float getDisplayMetricsDensity$ravenwood() {
+ return Resources.getSystem().getDisplayMetrics().density;
+ }
+
private static void withinParagraph(StringBuilder out, Spanned text, int start, int end) {
int next;
for (int i = start; i < end; i = next) {
@@ -559,8 +569,7 @@ public class Html {
AbsoluteSizeSpan s = ((AbsoluteSizeSpan) style[j]);
float sizeDip = s.getSize();
if (!s.getDip()) {
- Application application = ActivityThread.currentApplication();
- sizeDip /= application.getResources().getDisplayMetrics().density;
+ sizeDip /= getDisplayMetricsDensity();
}
// px in CSS is the equivalance of dip in Android
@@ -669,6 +678,7 @@ public class Html {
}
}
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
class HtmlToSpannedConverter implements ContentHandler {
private static final float[] HEADING_SIZES = {
@@ -843,6 +853,16 @@ class HtmlToSpannedConverter implements ContentHandler {
}
}
+ @RavenwoodReplace(blockedBy = ActivityThread.class)
+ private static int getFontWeightAdjustment() {
+ return ActivityThread.currentApplication().getResources()
+ .getConfiguration().fontWeightAdjustment;
+ }
+
+ private static int getFontWeightAdjustment$ravenwood() {
+ return Resources.getSystem().getConfiguration().fontWeightAdjustment;
+ }
+
private void handleEndTag(String tag) {
if (tag.equalsIgnoreCase("br")) {
handleBr(mSpannableStringBuilder);
@@ -858,17 +878,11 @@ class HtmlToSpannedConverter implements ContentHandler {
} else if (tag.equalsIgnoreCase("span")) {
endCssStyle(mSpannableStringBuilder);
} else if (tag.equalsIgnoreCase("strong")) {
- Application application = ActivityThread.currentApplication();
- int fontWeightAdjustment =
- application.getResources().getConfiguration().fontWeightAdjustment;
end(mSpannableStringBuilder, Bold.class, new StyleSpan(Typeface.BOLD,
- fontWeightAdjustment));
+ getFontWeightAdjustment()));
} else if (tag.equalsIgnoreCase("b")) {
- Application application = ActivityThread.currentApplication();
- int fontWeightAdjustment =
- application.getResources().getConfiguration().fontWeightAdjustment;
end(mSpannableStringBuilder, Bold.class, new StyleSpan(Typeface.BOLD,
- fontWeightAdjustment));
+ getFontWeightAdjustment()));
} else if (tag.equalsIgnoreCase("em")) {
end(mSpannableStringBuilder, Italic.class, new StyleSpan(Typeface.ITALIC));
} else if (tag.equalsIgnoreCase("cite")) {
@@ -1036,11 +1050,8 @@ class HtmlToSpannedConverter implements ContentHandler {
// Their ranges should not include the newlines at the end
Heading h = getLast(text, Heading.class);
if (h != null) {
- Application application = ActivityThread.currentApplication();
- int fontWeightAdjustment =
- application.getResources().getConfiguration().fontWeightAdjustment;
setSpanFromMark(text, h, new RelativeSizeSpan(HEADING_SIZES[h.mLevel]),
- new StyleSpan(Typeface.BOLD, fontWeightAdjustment));
+ new StyleSpan(Typeface.BOLD, getFontWeightAdjustment()));
}
endBlockElement(text);
diff --git a/core/java/android/text/Hyphenator.java b/core/java/android/text/Hyphenator.java
index 6f0628ad38e6c35aead1ea39ea865c6d6b93317a..7f9a8a1c08067c1302ec0014d1086532006d6de9 100644
--- a/core/java/android/text/Hyphenator.java
+++ b/core/java/android/text/Hyphenator.java
@@ -21,6 +21,7 @@ package android.text;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Hyphenator {
private Hyphenator() {}
diff --git a/core/java/android/text/InputFilter.java b/core/java/android/text/InputFilter.java
index 96e7bd0fef4cbf64cba0c2ace578ac9f894e3933..ed5de03e5528e80281b621045b94b6ecb57a44a3 100644
--- a/core/java/android/text/InputFilter.java
+++ b/core/java/android/text/InputFilter.java
@@ -27,6 +27,7 @@ import java.util.Locale;
* InputFilters can be attached to {@link Editable}s to constrain the
* changes that can be made to them.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface InputFilter
{
/**
diff --git a/core/java/android/text/InputType.java b/core/java/android/text/InputType.java
index 4ebecb7494fa235016b610f42a57c9f71c84b2a0..03c9c023d9ce84c845d11c15c095ad00962d9c06 100644
--- a/core/java/android/text/InputType.java
+++ b/core/java/android/text/InputType.java
@@ -44,6 +44,7 @@ import java.util.List;
* TYPE_DATETIME_VARIATION_TIME
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface InputType {
/**
* Mask of bits that determine the overall class
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index b273a7f7c2718262d06f79fb29108d3fdc624fae..44c3f9a8244e4b62edf57fee760430284bb7a2c5 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -69,6 +69,7 @@ import java.util.Locale;
* which will be updated as the text changes.
* For text that will not change, use a {@link StaticLayout}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class Layout {
// These should match the constants in framework/base/libs/hwui/hwui/DrawTextFunctor.h
diff --git a/core/java/android/text/LoginFilter.java b/core/java/android/text/LoginFilter.java
index 0e4eec4488ee6573d27d81e75aa24ac12ec9d325..94f196f7ef6bd57ae27a128987b5fd9ce7444153 100644
--- a/core/java/android/text/LoginFilter.java
+++ b/core/java/android/text/LoginFilter.java
@@ -23,6 +23,7 @@ package android.text;
* handle non-BMP characters.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class LoginFilter implements InputFilter {
private boolean mAppendInvalid; // whether to append or ignore invalid characters
/**
diff --git a/core/java/android/text/MeasuredParagraph.java b/core/java/android/text/MeasuredParagraph.java
index 31a226341907f67ec82c3355aadd2a2a23b3c20c..b2e44598a5486c744f6b0c27f44d96659dda0f6f 100644
--- a/core/java/android/text/MeasuredParagraph.java
+++ b/core/java/android/text/MeasuredParagraph.java
@@ -68,6 +68,7 @@ import java.util.Arrays;
* @hide
*/
@TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MeasuredParagraph {
private static final char OBJECT_REPLACEMENT_CHARACTER = '\uFFFC';
diff --git a/core/java/android/text/NoCopySpan.java b/core/java/android/text/NoCopySpan.java
index e754d765e14c09b9c7ab650fdca60d0b4661ab05..4cd3d04dc4e642ff228e2339bc53f265061e09ef 100644
--- a/core/java/android/text/NoCopySpan.java
+++ b/core/java/android/text/NoCopySpan.java
@@ -21,6 +21,7 @@ package android.text;
* into a new Spanned when performing a slice or copy operation on the original
* Spanned it was placed in.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface NoCopySpan {
/**
* Convenience equivalent for when you would just want a new Object() for
diff --git a/core/java/android/text/PackedIntVector.java b/core/java/android/text/PackedIntVector.java
index 3e5bf567785390cd16fc9a35f9ec235e4eb03696..11dd0c38182b49f3b3ad345d5787b2f08fdc547c 100644
--- a/core/java/android/text/PackedIntVector.java
+++ b/core/java/android/text/PackedIntVector.java
@@ -29,6 +29,7 @@ import com.android.internal.util.GrowingArrayUtils;
* @hide
*/
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PackedIntVector {
private final int mColumns;
private int mRows;
diff --git a/core/java/android/text/PackedObjectVector.java b/core/java/android/text/PackedObjectVector.java
index b777e16a153d37fb27f888c16c4fac8a0fc28d50..beb5ea4ee28cc97033bd0e8c7e13d6e317c865c9 100644
--- a/core/java/android/text/PackedObjectVector.java
+++ b/core/java/android/text/PackedObjectVector.java
@@ -21,6 +21,7 @@ import com.android.internal.util.GrowingArrayUtils;
import libcore.util.EmptyArray;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
class PackedObjectVector
{
private int mColumns;
diff --git a/core/java/android/text/ParcelableSpan.java b/core/java/android/text/ParcelableSpan.java
index d7c1a4bc26e8d9b6b2daf09dbc0d8774f58daf5e..a9a4893d369281fa93364066a1c99b1607803016 100644
--- a/core/java/android/text/ParcelableSpan.java
+++ b/core/java/android/text/ParcelableSpan.java
@@ -24,6 +24,7 @@ import android.os.Parcelable;
* This can only be used by code in the framework; it is not intended for
* applications to implement their own Parcelable spans.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface ParcelableSpan extends Parcelable {
/**
* Return a special type identifier for this span class.
diff --git a/core/java/android/text/PrecomputedText.java b/core/java/android/text/PrecomputedText.java
index 5f6a9bd068c9c8c5d8f1e5024c113df2e28e9a55..71cacd9b199a1330caebaf5f2686cb2e7cdac652 100644
--- a/core/java/android/text/PrecomputedText.java
+++ b/core/java/android/text/PrecomputedText.java
@@ -75,6 +75,7 @@ import java.util.Objects;
* Note that any {@link android.text.NoCopySpan} attached to the original text won't be passed to
* PrecomputedText.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PrecomputedText implements Spannable {
private static final char LINE_FEED = '\n';
diff --git a/core/java/android/text/SegmentFinder.java b/core/java/android/text/SegmentFinder.java
index 047d07a2e3e0143fc2d3d597aff63f89e1873390..b7ab0e62753a410e8a15d7088dff81b5925fc5f5 100644
--- a/core/java/android/text/SegmentFinder.java
+++ b/core/java/android/text/SegmentFinder.java
@@ -39,6 +39,7 @@ import java.util.Objects;
*
* @see Layout#getRangeForRect(RectF, SegmentFinder, Layout.TextInclusionStrategy)
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class SegmentFinder {
/**
* Return value of previousStartBoundary(int), previousEndBoundary(int), nextStartBoundary(int),
diff --git a/core/java/android/text/Selection.java b/core/java/android/text/Selection.java
index 711578c1482f74845b0368e8873a2753ecb250fb..674b473724829849ad434c2ad6b91c3c613bb5b8 100644
--- a/core/java/android/text/Selection.java
+++ b/core/java/android/text/Selection.java
@@ -27,6 +27,7 @@ import java.text.BreakIterator;
* Utility class for manipulating cursors and selections in CharSequences.
* A cursor is a selection where the start and end are at the same offset.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Selection {
private Selection() { /* cannot be instantiated */ }
diff --git a/core/java/android/text/SpanColors.java b/core/java/android/text/SpanColors.java
index fcd242b627008ed94dd010073fd310853c362e69..3b6a0418dcb02230c2d1da4b92e16460e4858833 100644
--- a/core/java/android/text/SpanColors.java
+++ b/core/java/android/text/SpanColors.java
@@ -27,6 +27,7 @@ import android.text.style.CharacterStyle;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SpanColors {
public static final @ColorInt int NO_COLOR_FOUND = Color.TRANSPARENT;
diff --git a/core/java/android/text/SpanSet.java b/core/java/android/text/SpanSet.java
index d464278c714ccbd01ec01a110971b88075c84f9d..4ad8106eb459af6cc75bbfd7454eb938aa5cf453 100644
--- a/core/java/android/text/SpanSet.java
+++ b/core/java/android/text/SpanSet.java
@@ -31,6 +31,7 @@ import java.util.Arrays;
* Note that empty spans are ignored by this class.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SpanSet {
private final Class extends E> classType;
diff --git a/core/java/android/text/SpanWatcher.java b/core/java/android/text/SpanWatcher.java
index 01e82c815ac82e42984182c5cbf046350488a8ff..31d63206a144b8a7a59ba3462a826588a67d6fb1 100644
--- a/core/java/android/text/SpanWatcher.java
+++ b/core/java/android/text/SpanWatcher.java
@@ -21,6 +21,7 @@ package android.text;
* will be called to notify it that other markup objects have been
* added, changed, or removed.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface SpanWatcher extends NoCopySpan {
/**
* This method is called to notify you that the specified object
diff --git a/core/java/android/text/Spannable.java b/core/java/android/text/Spannable.java
index 8315b2aa52c657e9e10a5c404143c837f700fb2f..fac5131c035a2def04fba03b45a89636d8ba2609 100644
--- a/core/java/android/text/Spannable.java
+++ b/core/java/android/text/Spannable.java
@@ -21,6 +21,7 @@ package android.text;
* attached and detached. Not all Spannable classes have mutable text;
* see {@link Editable} for that.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface Spannable
extends Spanned
{
diff --git a/core/java/android/text/SpannableString.java b/core/java/android/text/SpannableString.java
index afb5df809bc032633248c57a3a7673a8574748a1..ee04a86a808f64d98fad6056b19cc1939829dbfc 100644
--- a/core/java/android/text/SpannableString.java
+++ b/core/java/android/text/SpannableString.java
@@ -21,6 +21,7 @@ package android.text;
* markup objects can be attached and detached.
* For mutable text, see {@link SpannableStringBuilder}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SpannableString
extends SpannableStringInternal
implements CharSequence, GetChars, Spannable
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java
index 0e61eff86c2ba65f140297c8ae299046e5650cf9..f8d7283a94b3ca687e9c476026f6a237a822e3bf 100644
--- a/core/java/android/text/SpannableStringBuilder.java
+++ b/core/java/android/text/SpannableStringBuilder.java
@@ -35,6 +35,7 @@ import java.util.IdentityHashMap;
/**
* This is the class for text whose content and markup can both be changed.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SpannableStringBuilder implements CharSequence, GetChars, Spannable, Editable,
Appendable, GraphicsOperations {
private final static String TAG = "SpannableStringBuilder";
diff --git a/core/java/android/text/SpannableStringInternal.java b/core/java/android/text/SpannableStringInternal.java
index f2ab1bb31fbc54d841e236ad47a3f8b8c1930529..90d83d59eb6560a9226af7088268a601e276f7cd 100644
--- a/core/java/android/text/SpannableStringInternal.java
+++ b/core/java/android/text/SpannableStringInternal.java
@@ -27,6 +27,7 @@ import libcore.util.EmptyArray;
import java.lang.reflect.Array;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
/* package */ abstract class SpannableStringInternal
{
/* package */ SpannableStringInternal(CharSequence source,
diff --git a/core/java/android/text/Spanned.java b/core/java/android/text/Spanned.java
index a0d54c26c6d9de6a897f6bc41e6e4dda94e1e4c7..6706ffd245c14218113d9aaf280da0cf1bd725ef 100644
--- a/core/java/android/text/Spanned.java
+++ b/core/java/android/text/Spanned.java
@@ -22,6 +22,7 @@ package android.text;
* see {@link Spannable} for mutable markup and {@link Editable} for
* mutable text.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface Spanned
extends CharSequence
{
diff --git a/core/java/android/text/SpannedString.java b/core/java/android/text/SpannedString.java
index acee3c5f1a41a02b39edc7fa274c3eee4e16a6be..a3f1ee2e3f209fc888e7c325a275a84c3721bf1e 100644
--- a/core/java/android/text/SpannedString.java
+++ b/core/java/android/text/SpannedString.java
@@ -22,6 +22,7 @@ package android.text;
* For mutable markup, see {@link SpannableString}; for mutable text,
* see {@link SpannableStringBuilder}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class SpannedString
extends SpannableStringInternal
implements CharSequence, GetChars, Spanned
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index a5d52957c40e196eb865b9a2ce2fdb7fb7a3c428..8193cd2beb80b129062eaec3caf4345da5eccf58 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -55,6 +55,7 @@ import java.util.Arrays;
* float, float, android.graphics.Paint)
* Canvas.drawText()} directly.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class StaticLayout extends Layout {
/*
* The break iteration is done in native code. The protocol for using the native code is as
diff --git a/core/java/android/text/TextDirectionHeuristic.java b/core/java/android/text/TextDirectionHeuristic.java
index 8a4ba42bcc9174db7fd96f5d0691275a2581ce35..66cea853cda9c54389a591ca4189660935b8296b 100644
--- a/core/java/android/text/TextDirectionHeuristic.java
+++ b/core/java/android/text/TextDirectionHeuristic.java
@@ -19,6 +19,7 @@ package android.text;
/**
* Interface for objects that use a heuristic for guessing at the paragraph direction by examining text.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface TextDirectionHeuristic {
/**
* Guess if a chars array is in the RTL direction or not.
diff --git a/core/java/android/text/TextDirectionHeuristics.java b/core/java/android/text/TextDirectionHeuristics.java
index 85260f4af2c887701c31ffa9b910e55ab015b8a8..3af8fb7f489dfcaab9a2207774f2697bce2f422b 100644
--- a/core/java/android/text/TextDirectionHeuristics.java
+++ b/core/java/android/text/TextDirectionHeuristics.java
@@ -32,6 +32,7 @@ import java.nio.CharBuffer;
* class.
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TextDirectionHeuristics {
/**
diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java
index 3015791ee0a9c3145b74ec98f4d578bc3267835f..091eb60270020d3e4342a530b1ddcef0e65474a6 100644
--- a/core/java/android/text/TextLine.java
+++ b/core/java/android/text/TextLine.java
@@ -53,6 +53,7 @@ import java.util.ArrayList;
* @hide
*/
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TextLine {
private static final boolean DEBUG = false;
diff --git a/core/java/android/text/TextPaint.java b/core/java/android/text/TextPaint.java
index 73825b13cb6be5a5296025d8c81a95b426915a12..ff063f2ac2f498e828b0879d2fc70430044a3a92 100644
--- a/core/java/android/text/TextPaint.java
+++ b/core/java/android/text/TextPaint.java
@@ -25,6 +25,7 @@ import android.graphics.Paint;
* TextPaint is an extension of Paint that leaves room for some extra
* data used during text measuring and drawing.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TextPaint extends Paint {
// Special value 0 means no background paint
diff --git a/core/java/android/text/TextShaper.java b/core/java/android/text/TextShaper.java
index 6da0b63dbc1f3124721eb73990111eadbf109ab7..6d1740184763894bc75dd8d6fb2177675084b71e 100644
--- a/core/java/android/text/TextShaper.java
+++ b/core/java/android/text/TextShaper.java
@@ -169,6 +169,7 @@ import android.graphics.text.TextRunShaper;
* @see TextShaper#shapeText(CharSequence, int, int, TextDirectionHeuristic, TextPaint,
* GlyphsConsumer)
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TextShaper {
private TextShaper() {}
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index 6dc82c40ddc51b25d0cf12fc64f9102fe9c384ca..042966b81b9af0138492c95034256c199351b02a 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -34,6 +34,7 @@ import android.icu.text.Edits;
import android.icu.util.ULocale;
import android.os.Parcel;
import android.os.Parcelable;
+import android.ravenwood.annotation.RavenwoodKeepWholeClass;
import android.sysprop.DisplayProperties;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.AccessibilityClickableSpan;
@@ -85,8 +86,7 @@ import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;
-@android.ravenwood.annotation.RavenwoodKeepStaticInitializer
-@android.ravenwood.annotation.RavenwoodKeepPartialClass
+@RavenwoodKeepWholeClass
public class TextUtils {
private static final String TAG = "TextUtils";
@@ -147,7 +147,6 @@ public class TextUtils {
private TextUtils() { /* cannot be instantiated */ }
- @android.ravenwood.annotation.RavenwoodKeep
public static void getChars(CharSequence s, int start, int end,
char[] dest, int destoff) {
Class extends CharSequence> c = s.getClass();
@@ -166,12 +165,10 @@ public class TextUtils {
}
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int indexOf(CharSequence s, char ch) {
return indexOf(s, ch, 0);
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int indexOf(CharSequence s, char ch, int start) {
Class extends CharSequence> c = s.getClass();
@@ -181,7 +178,6 @@ public class TextUtils {
return indexOf(s, ch, start, s.length());
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int indexOf(CharSequence s, char ch, int start, int end) {
Class extends CharSequence> c = s.getClass();
@@ -219,12 +215,10 @@ public class TextUtils {
return -1;
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int lastIndexOf(CharSequence s, char ch) {
return lastIndexOf(s, ch, s.length() - 1);
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int lastIndexOf(CharSequence s, char ch, int last) {
Class extends CharSequence> c = s.getClass();
@@ -234,7 +228,6 @@ public class TextUtils {
return lastIndexOf(s, ch, 0, last);
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int lastIndexOf(CharSequence s, char ch,
int start, int last) {
if (last < 0)
@@ -280,17 +273,14 @@ public class TextUtils {
return -1;
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int indexOf(CharSequence s, CharSequence needle) {
return indexOf(s, needle, 0, s.length());
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int indexOf(CharSequence s, CharSequence needle, int start) {
return indexOf(s, needle, start, s.length());
}
- @android.ravenwood.annotation.RavenwoodKeep
public static int indexOf(CharSequence s, CharSequence needle,
int start, int end) {
int nlen = needle.length();
@@ -318,7 +308,6 @@ public class TextUtils {
return -1;
}
- @android.ravenwood.annotation.RavenwoodKeep
public static boolean regionMatches(CharSequence one, int toffset,
CharSequence two, int ooffset,
int len) {
@@ -351,7 +340,6 @@ public class TextUtils {
* in that it does not preserve any style runs in the source sequence,
* allowing a more efficient implementation.
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static String substring(CharSequence source, int start, int end) {
if (source instanceof String)
return ((String) source).substring(start, end);
@@ -424,7 +412,6 @@ public class TextUtils {
* calling object.toString(). If tokens is null, a NullPointerException will be thrown. If
* tokens is an empty array, an empty string will be returned.
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static String join(@NonNull CharSequence delimiter, @NonNull Object[] tokens) {
final int length = tokens.length;
if (length == 0) {
@@ -448,7 +435,6 @@ public class TextUtils {
* calling object.toString(). If tokens is null, a NullPointerException will be thrown. If
* tokens is empty, an empty string will be returned.
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static String join(@NonNull CharSequence delimiter, @NonNull Iterable tokens) {
final Iterator> it = tokens.iterator();
if (!it.hasNext()) {
@@ -481,7 +467,6 @@ public class TextUtils {
*
* @throws NullPointerException if expression or text is null
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static String[] split(String text, String expression) {
if (text.length() == 0) {
return EmptyArray.STRING;
@@ -507,7 +492,6 @@ public class TextUtils {
*
* @throws NullPointerException if expression or text is null
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static String[] split(String text, Pattern pattern) {
if (text.length() == 0) {
return EmptyArray.STRING;
@@ -545,7 +529,6 @@ public class TextUtils {
* be returned for the empty string after that delimeter. That is, splitting "a,b," on
* comma will return "a", "b", not "a", "b", "".
*/
- @android.ravenwood.annotation.RavenwoodKeepWholeClass
public static class SimpleStringSplitter implements StringSplitter, Iterator {
private String mString;
private char mDelimiter;
@@ -609,31 +592,26 @@ public class TextUtils {
* @param str the string to be examined
* @return true if str is null or zero length
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static boolean isEmpty(@Nullable CharSequence str) {
return str == null || str.length() == 0;
}
/** {@hide} */
- @android.ravenwood.annotation.RavenwoodKeep
public static String nullIfEmpty(@Nullable String str) {
return isEmpty(str) ? null : str;
}
/** {@hide} */
- @android.ravenwood.annotation.RavenwoodKeep
public static String emptyIfNull(@Nullable String str) {
return str == null ? "" : str;
}
/** {@hide} */
- @android.ravenwood.annotation.RavenwoodKeep
public static String firstNotEmpty(@Nullable String a, @NonNull String b) {
return !isEmpty(a) ? a : Preconditions.checkStringNotEmpty(b);
}
/** {@hide} */
- @android.ravenwood.annotation.RavenwoodKeep
public static int length(@Nullable String s) {
return s != null ? s.length() : 0;
}
@@ -642,7 +620,6 @@ public class TextUtils {
* @return interned string if it's null.
* @hide
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static String safeIntern(String s) {
return (s != null) ? s.intern() : null;
}
@@ -652,7 +629,6 @@ public class TextUtils {
* spaces and ASCII control characters were trimmed from the start and end,
* as by {@link String#trim}.
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static int getTrimmedLength(CharSequence s) {
int len = s.length();
@@ -677,7 +653,6 @@ public class TextUtils {
* @param b second CharSequence to check
* @return true if a and b are equal
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static boolean equals(@Nullable CharSequence a, @Nullable CharSequence b) {
if (a == b) return true;
int length;
@@ -1713,7 +1688,6 @@ public class TextUtils {
return true;
}
- @android.ravenwood.annotation.RavenwoodKeep
/* package */ static char[] obtain(int len) {
char[] buf;
@@ -1728,7 +1702,6 @@ public class TextUtils {
return buf;
}
- @android.ravenwood.annotation.RavenwoodKeep
/* package */ static void recycle(char[] temp) {
if (temp.length > 1000)
return;
@@ -1743,7 +1716,6 @@ public class TextUtils {
* @param s the string to be encoded
* @return the encoded string
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static String htmlEncode(String s) {
StringBuilder sb = new StringBuilder();
char c;
@@ -1830,7 +1802,6 @@ public class TextUtils {
/**
* Returns whether the given CharSequence contains any printable characters.
*/
- @android.ravenwood.annotation.RavenwoodKeep
public static boolean isGraphic(CharSequence str) {
final int len = str.length();
for (int cp, i=0; is,
diff --git a/core/java/android/text/WordSegmentFinder.java b/core/java/android/text/WordSegmentFinder.java
index b0a70eae902a322ee26c4a844243108e6e91eac8..b8702d72f29c9bfd9bf45999146a0b141170a8be 100644
--- a/core/java/android/text/WordSegmentFinder.java
+++ b/core/java/android/text/WordSegmentFinder.java
@@ -33,6 +33,7 @@ import android.text.method.WordIterator;
* @see Unicode Text Segmentation - Word
* Boundaries
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class WordSegmentFinder extends SegmentFinder {
private final CharSequence mText;
private final WordIterator mWordIterator;
diff --git a/core/java/android/text/format/DateFormat.java b/core/java/android/text/format/DateFormat.java
index e6dad27d595b9852211c843bb6cb3557de58d478..ef60d3058c5c6bc24dd525f87ea270a1c6ac645f 100644
--- a/core/java/android/text/format/DateFormat.java
+++ b/core/java/android/text/format/DateFormat.java
@@ -63,6 +63,7 @@ import java.util.TimeZone;
* Note that the non-{@code format} methods in this class are implemented by
* {@code SimpleDateFormat}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DateFormat {
/**
* @deprecated Use a literal {@code '} instead.
diff --git a/core/java/android/text/format/DateIntervalFormat.java b/core/java/android/text/format/DateIntervalFormat.java
index 8dea3228eb0c0bc899aaa47002a4b08f2942d396..5ec9561b231577ecf633fc1d2f636442debe9426 100644
--- a/core/java/android/text/format/DateIntervalFormat.java
+++ b/core/java/android/text/format/DateIntervalFormat.java
@@ -37,6 +37,7 @@ import java.util.TimeZone;
* @hide
*/
@VisibleForTesting(visibility = PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class DateIntervalFormat {
private static final LruCache CACHED_FORMATTERS =
diff --git a/core/java/android/text/format/DateTimeFormat.java b/core/java/android/text/format/DateTimeFormat.java
index 064d7172c44f8b625977352a4a01d18871d1aaee..c8dd61d0d75cbf0bb77c0f8699cd432e0dcd887d 100644
--- a/core/java/android/text/format/DateTimeFormat.java
+++ b/core/java/android/text/format/DateTimeFormat.java
@@ -29,6 +29,7 @@ import android.util.LruCache;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
class DateTimeFormat {
private static final FormatterCache CACHED_FORMATTERS = new FormatterCache();
diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java
index 518a5498d6edbb984c79f459c7e93ed8d3cd889a..12ad7645487052aa04e0fc598d892ed1b3c472a9 100644
--- a/core/java/android/text/format/DateUtils.java
+++ b/core/java/android/text/format/DateUtils.java
@@ -44,6 +44,7 @@ import java.util.TimeZone;
* This class contains various date-related utilities for creating text for things like
* elapsed time and date ranges, strings for days of the week and months, and AM/PM text etc.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DateUtils
{
private static final Object sLock = new Object();
diff --git a/core/java/android/text/format/DateUtilsBridge.java b/core/java/android/text/format/DateUtilsBridge.java
index 92ec9cf6d7362722ff94555816d426acb9eec07d..752a8c0ef40ac8586d664fe0fdb764b3b2fc5d6e 100644
--- a/core/java/android/text/format/DateUtilsBridge.java
+++ b/core/java/android/text/format/DateUtilsBridge.java
@@ -46,6 +46,7 @@ import com.android.internal.annotations.VisibleForTesting;
* @hide
*/
@VisibleForTesting(visibility = PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class DateUtilsBridge {
/**
diff --git a/core/java/android/text/format/Formatter.java b/core/java/android/text/format/Formatter.java
index 7653bdb7b2d818dc8be2e2a921d9d761c3f9323d..e7783dcb2630d04c964d83014d56f9ebf54ade13 100644
--- a/core/java/android/text/format/Formatter.java
+++ b/core/java/android/text/format/Formatter.java
@@ -41,6 +41,7 @@ import java.util.Locale;
* Utility class to aid in formatting common values that are not covered
* by the {@link java.util.Formatter} class in {@link java.util}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Formatter {
/** {@hide} */
diff --git a/core/java/android/text/format/RelativeDateTimeFormatter.java b/core/java/android/text/format/RelativeDateTimeFormatter.java
index 9096469699c1b4669290a32522525655cebcd926..6b940f8cb380e780b10d8b98a873914442f20c2d 100644
--- a/core/java/android/text/format/RelativeDateTimeFormatter.java
+++ b/core/java/android/text/format/RelativeDateTimeFormatter.java
@@ -42,6 +42,7 @@ import java.util.Locale;
* @hide
*/
@VisibleForTesting(visibility = PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class RelativeDateTimeFormatter {
public static final long SECOND_IN_MILLIS = 1000;
diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java
index bac7c6cf87d3514b609421114839de4c2511b9b2..1beb57389ef5bd76295ab12c7e2ef5666bb42bad 100644
--- a/core/java/android/text/format/Time.java
+++ b/core/java/android/text/format/Time.java
@@ -53,6 +53,7 @@ import java.util.TimeZone;
* @deprecated Use {@link java.util.GregorianCalendar} instead.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Time {
private static final String Y_M_D_T_H_M_S_000 = "%Y-%m-%dT%H:%M:%S.000";
private static final String Y_M_D_T_H_M_S_000_Z = "%Y-%m-%dT%H:%M:%S.000Z";
diff --git a/core/java/android/text/format/TimeFormatter.java b/core/java/android/text/format/TimeFormatter.java
index e42ad63346491976a8451e79bbe505848632aa44..dd703d85624f57cbcc1ed0baa20762f80d57d0bf 100644
--- a/core/java/android/text/format/TimeFormatter.java
+++ b/core/java/android/text/format/TimeFormatter.java
@@ -40,6 +40,7 @@ import java.util.TimeZone;
*
*
This class is not thread safe.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
class TimeFormatter {
// An arbitrary value outside the range representable by a char.
private static final int FORCE_LOWER_CASE = -1;
diff --git a/core/java/android/text/format/TimeMigrationUtils.java b/core/java/android/text/format/TimeMigrationUtils.java
index 17bac8d67b266a7b2076424a1cb10c2c03f3c6c7..b2f5024c73b74ce3f28afec96400814bd4419d38 100644
--- a/core/java/android/text/format/TimeMigrationUtils.java
+++ b/core/java/android/text/format/TimeMigrationUtils.java
@@ -22,6 +22,7 @@ package android.text.format;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TimeMigrationUtils {
private TimeMigrationUtils() {}
diff --git a/core/java/android/text/method/AllCapsTransformationMethod.java b/core/java/android/text/method/AllCapsTransformationMethod.java
index 305b056aee7283dd5f39653656ca1c7273bdd680..70dcc52691cdf3219d73b7d8d7442631d660bcb1 100644
--- a/core/java/android/text/method/AllCapsTransformationMethod.java
+++ b/core/java/android/text/method/AllCapsTransformationMethod.java
@@ -33,6 +33,7 @@ import java.util.Locale;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class AllCapsTransformationMethod implements TransformationMethod2 {
private static final String TAG = "AllCapsTransformationMethod";
diff --git a/core/java/android/text/method/ArrowKeyMovementMethod.java b/core/java/android/text/method/ArrowKeyMovementMethod.java
index 37474e5645b05e5739d7cfb889748f043708405a..609922073f53e5c2ed90aa515c2dc44680e792e4 100644
--- a/core/java/android/text/method/ArrowKeyMovementMethod.java
+++ b/core/java/android/text/method/ArrowKeyMovementMethod.java
@@ -30,6 +30,7 @@ import android.widget.TextView;
* A movement method that provides cursor movement and selection.
* Supports displaying the context menu on DPad Center.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ArrowKeyMovementMethod extends BaseMovementMethod implements MovementMethod {
private static boolean isSelecting(Spannable buffer) {
return ((MetaKeyKeyListener.getMetaState(buffer, MetaKeyKeyListener.META_SHIFT_ON) == 1) ||
diff --git a/core/java/android/text/method/BaseKeyListener.java b/core/java/android/text/method/BaseKeyListener.java
index e427908541e54da513ee508927fa3a66cfefa52b..5ebfd99c6f6ebde57254a5eb91676927303c4e97 100644
--- a/core/java/android/text/method/BaseKeyListener.java
+++ b/core/java/android/text/method/BaseKeyListener.java
@@ -47,6 +47,7 @@ import java.text.BreakIterator;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class BaseKeyListener extends MetaKeyKeyListener
implements KeyListener {
/* package */ static final Object OLD_SEL_START = new NoCopySpan.Concrete();
diff --git a/core/java/android/text/method/BaseMovementMethod.java b/core/java/android/text/method/BaseMovementMethod.java
index 7a4b3a095ae9827af1616b50207336f991440333..0c2e52e04c1f29b19cd975d4dfc5e4c40935acc7 100644
--- a/core/java/android/text/method/BaseMovementMethod.java
+++ b/core/java/android/text/method/BaseMovementMethod.java
@@ -27,6 +27,7 @@ import android.widget.TextView;
/**
* Base classes for movement methods.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BaseMovementMethod implements MovementMethod {
@Override
public boolean canSelectArbitrarily() {
diff --git a/core/java/android/text/method/CharacterPickerDialog.java b/core/java/android/text/method/CharacterPickerDialog.java
index 7d838e06cd6833ca5f6d24dbe1dbb732497e5500..f084d03cf6dd83fea8c61ed31675ff459314e3c5 100644
--- a/core/java/android/text/method/CharacterPickerDialog.java
+++ b/core/java/android/text/method/CharacterPickerDialog.java
@@ -38,6 +38,7 @@ import com.android.internal.R;
/**
* Dialog for choosing accented characters related to a base character.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class CharacterPickerDialog extends Dialog
implements OnItemClickListener, OnClickListener {
private View mView;
diff --git a/core/java/android/text/method/DateKeyListener.java b/core/java/android/text/method/DateKeyListener.java
index 0accbf6c74e5df3809820249ef4fb18b527a263a..acf182263272ea2dba85ec830f11dd58bae017fa 100644
--- a/core/java/android/text/method/DateKeyListener.java
+++ b/core/java/android/text/method/DateKeyListener.java
@@ -35,6 +35,7 @@ import java.util.Locale;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DateKeyListener extends NumberKeyListener
{
public int getInputType() {
diff --git a/core/java/android/text/method/DateTimeKeyListener.java b/core/java/android/text/method/DateTimeKeyListener.java
index 1593db5de6419ac6fa774cd36d7a1dc88796fc4a..a46ae45433b98318bc7f08dc1de98b8a24d9f712 100644
--- a/core/java/android/text/method/DateTimeKeyListener.java
+++ b/core/java/android/text/method/DateTimeKeyListener.java
@@ -35,6 +35,7 @@ import java.util.Locale;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DateTimeKeyListener extends NumberKeyListener
{
public int getInputType() {
diff --git a/core/java/android/text/method/DialerKeyListener.java b/core/java/android/text/method/DialerKeyListener.java
index 17abed6c363a7504f370d0f29333fc8555bb6a4c..9eea51a07593c5f22c9c110bc060667cfaf37945 100644
--- a/core/java/android/text/method/DialerKeyListener.java
+++ b/core/java/android/text/method/DialerKeyListener.java
@@ -28,6 +28,7 @@ import android.view.KeyEvent;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DialerKeyListener extends NumberKeyListener
{
@Override
diff --git a/core/java/android/text/method/DigitsKeyListener.java b/core/java/android/text/method/DigitsKeyListener.java
index d9f2dcf2e8967086a836bdc83fbf152b9604e799..c97d4afef4fa52889c70ac30cbf7185f90bd6914 100644
--- a/core/java/android/text/method/DigitsKeyListener.java
+++ b/core/java/android/text/method/DigitsKeyListener.java
@@ -40,6 +40,7 @@ import java.util.Locale;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DigitsKeyListener extends NumberKeyListener
{
private char[] mAccepted;
diff --git a/core/java/android/text/method/HideReturnsTransformationMethod.java b/core/java/android/text/method/HideReturnsTransformationMethod.java
index 40ce8714cf3835b527fc82c8396ed054f6b5a2e2..8b93b3558f86e65e11ed63b41a1690245a253302 100644
--- a/core/java/android/text/method/HideReturnsTransformationMethod.java
+++ b/core/java/android/text/method/HideReturnsTransformationMethod.java
@@ -24,6 +24,7 @@ import android.os.Build;
* to be hidden by displaying them as zero-width non-breaking space
* characters (\uFEFF).
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class HideReturnsTransformationMethod
extends ReplacementTransformationMethod {
private static char[] ORIGINAL = new char[] { '\r' };
diff --git a/core/java/android/text/method/InsertModeTransformationMethod.java b/core/java/android/text/method/InsertModeTransformationMethod.java
index 6c6576f8888ef723a1a5df3b7c8f52ceb63b96af..ace2d256f5b0e65c103f9a07e3f1a4bfe96ca397 100644
--- a/core/java/android/text/method/InsertModeTransformationMethod.java
+++ b/core/java/android/text/method/InsertModeTransformationMethod.java
@@ -58,6 +58,7 @@ import java.lang.reflect.Array;
* the new transformed text: "hello abc\n\n world", and the highlight range will be [5, 11).
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class InsertModeTransformationMethod implements TransformationMethod, TextWatcher {
/** The start offset of the highlight range in the original text, inclusive. */
private int mStart;
diff --git a/core/java/android/text/method/KeyListener.java b/core/java/android/text/method/KeyListener.java
index ce7054c40d01bf69b3c0d9a4d91529a940a618cb..447c4d9432edcaecf1ce030039c299ef02c94e7f 100644
--- a/core/java/android/text/method/KeyListener.java
+++ b/core/java/android/text/method/KeyListener.java
@@ -34,6 +34,7 @@ import android.view.View;
* targetting Jelly Bean or later, and will only deliver it for some
* key presses to applications targetting Ice Cream Sandwich or earlier.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface KeyListener {
/**
* Return the type of text that this key listener is manipulating,
diff --git a/core/java/android/text/method/LinkMovementMethod.java b/core/java/android/text/method/LinkMovementMethod.java
index 9f4a0aea72078c0af18148e480cbb62162b7433b..484bc1ae1a8542bd1cf6cb6052b9f94d257822f2 100644
--- a/core/java/android/text/method/LinkMovementMethod.java
+++ b/core/java/android/text/method/LinkMovementMethod.java
@@ -33,6 +33,7 @@ import android.widget.TextView;
* A movement method that traverses links in the text buffer and scrolls if necessary.
* Supports clicking on links with DPad Center or Enter.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LinkMovementMethod extends ScrollingMovementMethod {
private static final int CLICK = 1;
private static final int UP = 2;
diff --git a/core/java/android/text/method/MetaKeyKeyListener.java b/core/java/android/text/method/MetaKeyKeyListener.java
index d1d7c968411fe044c145c2c05870b5123997d132..7c9c2f1327931c802f7a8ca3e75b3d7d310463b3 100644
--- a/core/java/android/text/method/MetaKeyKeyListener.java
+++ b/core/java/android/text/method/MetaKeyKeyListener.java
@@ -71,6 +71,7 @@ import android.view.View;
* }
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class MetaKeyKeyListener {
/**
* Flag that indicates that the SHIFT key is on.
diff --git a/core/java/android/text/method/MovementMethod.java b/core/java/android/text/method/MovementMethod.java
index f6fe575a926503d141d5353230bc723b42ab74aa..5ea439d5056150a2f56ce41d9a18a065a1eeed11 100644
--- a/core/java/android/text/method/MovementMethod.java
+++ b/core/java/android/text/method/MovementMethod.java
@@ -32,6 +32,7 @@ import android.widget.TextView;
* directly by applications.
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface MovementMethod {
public void initialize(TextView widget, Spannable text);
public boolean onKeyDown(TextView widget, Spannable text, int keyCode, KeyEvent event);
diff --git a/core/java/android/text/method/MultiTapKeyListener.java b/core/java/android/text/method/MultiTapKeyListener.java
index 5770482b3feb0dfe62c95f966283c17388e2c66c..022853abf4504ccdcc554a6170b550eddf7c5aa8 100644
--- a/core/java/android/text/method/MultiTapKeyListener.java
+++ b/core/java/android/text/method/MultiTapKeyListener.java
@@ -36,6 +36,7 @@ import android.view.View;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MultiTapKeyListener extends BaseKeyListener
implements SpanWatcher {
private static MultiTapKeyListener[] sInstance =
diff --git a/core/java/android/text/method/NumberKeyListener.java b/core/java/android/text/method/NumberKeyListener.java
index 2b038dd1134898d648052a48817cb1c1c2d1e3cc..e32ccd48c7e3514aa500cfa28a35d7bcdba5018f 100644
--- a/core/java/android/text/method/NumberKeyListener.java
+++ b/core/java/android/text/method/NumberKeyListener.java
@@ -39,6 +39,7 @@ import java.util.Locale;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class NumberKeyListener extends BaseKeyListener
implements InputFilter
{
diff --git a/core/java/android/text/method/OffsetMapping.java b/core/java/android/text/method/OffsetMapping.java
index fcf3de6784fbedb2f1eddbed2412581e3e276365..99613d3ae3004bbb281e8d39b9901d7e269a6b2c 100644
--- a/core/java/android/text/method/OffsetMapping.java
+++ b/core/java/android/text/method/OffsetMapping.java
@@ -27,6 +27,7 @@ import java.lang.annotation.RetentionPolicy;
* {@link TransformationMethod} that alters the text length.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface OffsetMapping {
/**
* The mapping strategy for a character offset.
diff --git a/core/java/android/text/method/PasswordTransformationMethod.java b/core/java/android/text/method/PasswordTransformationMethod.java
index 53553be6e5a8b10fbbd946e14a4af93c2561c5f4..4a61d9aa1bd06c381cc4c388f546e2b371092510 100644
--- a/core/java/android/text/method/PasswordTransformationMethod.java
+++ b/core/java/android/text/method/PasswordTransformationMethod.java
@@ -33,6 +33,7 @@ import android.view.View;
import java.lang.ref.WeakReference;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PasswordTransformationMethod
implements TransformationMethod, TextWatcher
{
diff --git a/core/java/android/text/method/QwertyKeyListener.java b/core/java/android/text/method/QwertyKeyListener.java
index c43864d0f215ea706d710b9c0b138f58132a3a0d..27c58ea3a56e3aa9c969dc6c63cf4c6f67e33be9 100644
--- a/core/java/android/text/method/QwertyKeyListener.java
+++ b/core/java/android/text/method/QwertyKeyListener.java
@@ -37,6 +37,7 @@ import android.view.View;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class QwertyKeyListener extends BaseKeyListener {
private static QwertyKeyListener[] sInstance =
new QwertyKeyListener[Capitalize.values().length * 2];
diff --git a/core/java/android/text/method/ReplacementTransformationMethod.java b/core/java/android/text/method/ReplacementTransformationMethod.java
index d6f879aa43538e8109588ff435617f7de7d66f80..05899d79b02e101ebda7946301f6b1e16ff3f818 100644
--- a/core/java/android/text/method/ReplacementTransformationMethod.java
+++ b/core/java/android/text/method/ReplacementTransformationMethod.java
@@ -30,6 +30,7 @@ import android.view.View;
* array to be replaced by the corresponding characters in the
* {@link #getReplacement} array.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class ReplacementTransformationMethod
implements TransformationMethod
{
diff --git a/core/java/android/text/method/ScrollingMovementMethod.java b/core/java/android/text/method/ScrollingMovementMethod.java
index 4f422cbf51cb28040ba2b547a7ba46a5c735717c..2e0eda96b7f6047deebc65f9b2c809bb72ac6f2c 100644
--- a/core/java/android/text/method/ScrollingMovementMethod.java
+++ b/core/java/android/text/method/ScrollingMovementMethod.java
@@ -25,6 +25,7 @@ import android.widget.TextView;
/**
* A movement method that interprets movement keys by scrolling the text buffer.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ScrollingMovementMethod extends BaseMovementMethod implements MovementMethod {
@Override
protected boolean left(TextView widget, Spannable buffer) {
diff --git a/core/java/android/text/method/SingleLineTransformationMethod.java b/core/java/android/text/method/SingleLineTransformationMethod.java
index 818526a7d795f389399b9a81b64160aa6a56e4fd..d6eff86920f878c8913c1264ffe430afc7a2db86 100644
--- a/core/java/android/text/method/SingleLineTransformationMethod.java
+++ b/core/java/android/text/method/SingleLineTransformationMethod.java
@@ -21,6 +21,7 @@ package android.text.method;
* displayed as spaces instead of causing line breaks, and causes
* carriage return characters (\r) to have no appearance.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SingleLineTransformationMethod
extends ReplacementTransformationMethod {
private static char[] ORIGINAL = new char[] { '\n', '\r' };
diff --git a/core/java/android/text/method/TextKeyListener.java b/core/java/android/text/method/TextKeyListener.java
index 2eb917b6fd574d19202b8fac484bb621ab2c5a22..1b0ae61c62a4f41385a84b1e59129f963be3a6c4 100644
--- a/core/java/android/text/method/TextKeyListener.java
+++ b/core/java/android/text/method/TextKeyListener.java
@@ -43,6 +43,7 @@ import java.lang.ref.WeakReference;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TextKeyListener extends BaseKeyListener implements SpanWatcher {
private static TextKeyListener[] sInstance =
new TextKeyListener[Capitalize.values().length * 2];
diff --git a/core/java/android/text/method/TimeKeyListener.java b/core/java/android/text/method/TimeKeyListener.java
index f11f40099d9c209983a767ea9d6034741d1487cb..337611c79e3e878cf38e7a383ae38877c14bf60e 100644
--- a/core/java/android/text/method/TimeKeyListener.java
+++ b/core/java/android/text/method/TimeKeyListener.java
@@ -35,6 +35,7 @@ import java.util.Locale;
* with hardware keyboards. Software input methods have no obligation to trigger
* the methods in this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TimeKeyListener extends NumberKeyListener
{
public int getInputType() {
diff --git a/core/java/android/text/method/Touch.java b/core/java/android/text/method/Touch.java
index 44811cb3ef8b99d9b0c4b417c2a6d8a58b00e856..85aadba5da2bc71fc06505c88c5832d7764b6071 100644
--- a/core/java/android/text/method/Touch.java
+++ b/core/java/android/text/method/Touch.java
@@ -25,6 +25,7 @@ import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.widget.TextView;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Touch {
private Touch() { }
diff --git a/core/java/android/text/method/TransformationMethod.java b/core/java/android/text/method/TransformationMethod.java
index 8f3b334abbbdad039d08255a38eca1e48ead51e5..5246baa39d14c59fa8580deac48da72bb5b40960 100644
--- a/core/java/android/text/method/TransformationMethod.java
+++ b/core/java/android/text/method/TransformationMethod.java
@@ -24,6 +24,7 @@ import android.view.View;
* characters of passwords with dots, or keeping the newline characters
* from causing line breaks in single-line text fields.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface TransformationMethod
{
/**
diff --git a/core/java/android/text/method/TransformationMethod2.java b/core/java/android/text/method/TransformationMethod2.java
index 8d5ec246640e02dcaea088fa8c6742198e71d207..6e0feb419f008d28423680d022cc31acd91c73de 100644
--- a/core/java/android/text/method/TransformationMethod2.java
+++ b/core/java/android/text/method/TransformationMethod2.java
@@ -23,6 +23,7 @@ import android.compat.annotation.UnsupportedAppUsage;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface TransformationMethod2 extends TransformationMethod {
/**
* Relax the contract of TransformationMethod to allow length changes,
diff --git a/core/java/android/text/method/TranslationTransformationMethod.java b/core/java/android/text/method/TranslationTransformationMethod.java
index 43d186ee9d21820dd7ca9e283ac428a3178e872a..8f43d3dd1f6f5f96dc0e6074477e204324191f8d 100644
--- a/core/java/android/text/method/TranslationTransformationMethod.java
+++ b/core/java/android/text/method/TranslationTransformationMethod.java
@@ -33,6 +33,7 @@ import java.util.regex.Pattern;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TranslationTransformationMethod implements TransformationMethod2 {
private static final String TAG = "TranslationTransformationMethod";
diff --git a/core/java/android/text/method/WordIterator.java b/core/java/android/text/method/WordIterator.java
index 2956f8461388092a56533b4eca7fa8223136721c..d57fa9b55312cf2ac3cd6f1473927f06d8fadd74 100644
--- a/core/java/android/text/method/WordIterator.java
+++ b/core/java/android/text/method/WordIterator.java
@@ -37,6 +37,7 @@ import java.util.Locale;
* Also provides methods to determine word boundaries.
* {@hide}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class WordIterator implements Selection.PositionIterator {
// Size of the window for the word iterator, should be greater than the longest word's length
private static final int WINDOW_WIDTH = 50;
diff --git a/core/java/android/text/style/AbsoluteSizeSpan.java b/core/java/android/text/style/AbsoluteSizeSpan.java
index 6d4f05a84a0373b4f1d2a861e75d74e278bbfdd1..1bc5d71fcd372cc7260e5b3b6cada7485f4997ef 100644
--- a/core/java/android/text/style/AbsoluteSizeSpan.java
+++ b/core/java/android/text/style/AbsoluteSizeSpan.java
@@ -32,6 +32,7 @@ import android.text.TextUtils;
*
* Text with text size updated.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class AbsoluteSizeSpan extends MetricAffectingSpan implements ParcelableSpan {
private final int mSize;
diff --git a/core/java/android/text/style/AccessibilityClickableSpan.java b/core/java/android/text/style/AccessibilityClickableSpan.java
index ee8d156f9aac05d41c0ec6a3d82d2873c0a408dd..5741f2ae2864da17d4c2ee73fa3115d91936ebf9 100644
--- a/core/java/android/text/style/AccessibilityClickableSpan.java
+++ b/core/java/android/text/style/AccessibilityClickableSpan.java
@@ -43,6 +43,7 @@ import com.android.internal.R;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class AccessibilityClickableSpan extends ClickableSpan
implements ParcelableSpan {
// The id of the span this one replaces
diff --git a/core/java/android/text/style/AccessibilityReplacementSpan.java b/core/java/android/text/style/AccessibilityReplacementSpan.java
index e4fc14790b534633e7a91e8549aa85dfa246af32..af3a324668d0296aa1f80a7dbada734014e88b22 100644
--- a/core/java/android/text/style/AccessibilityReplacementSpan.java
+++ b/core/java/android/text/style/AccessibilityReplacementSpan.java
@@ -31,6 +31,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class AccessibilityReplacementSpan extends ReplacementSpan
implements ParcelableSpan {
diff --git a/core/java/android/text/style/AccessibilityURLSpan.java b/core/java/android/text/style/AccessibilityURLSpan.java
index e280bdf8b33981405e2313336836049d9308aec0..1fb76e776b56f6da7073eefbc12092f3f949905e 100644
--- a/core/java/android/text/style/AccessibilityURLSpan.java
+++ b/core/java/android/text/style/AccessibilityURLSpan.java
@@ -27,6 +27,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
* @hide
*/
@SuppressWarnings("ParcelableCreator")
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class AccessibilityURLSpan extends URLSpan implements Parcelable {
final AccessibilityClickableSpan mAccessibilityClickableSpan;
diff --git a/core/java/android/text/style/AlignmentSpan.java b/core/java/android/text/style/AlignmentSpan.java
index 31db78a51c75b5da7c3d3069c65debf53498aa76..53cbd63a32c72c2cea5c2b52d163802771a6552b 100644
--- a/core/java/android/text/style/AlignmentSpan.java
+++ b/core/java/android/text/style/AlignmentSpan.java
@@ -25,6 +25,7 @@ import android.text.TextUtils;
/**
* Span that allows defining the alignment of text at the paragraph level.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface AlignmentSpan extends ParagraphStyle {
/**
diff --git a/core/java/android/text/style/BackgroundColorSpan.java b/core/java/android/text/style/BackgroundColorSpan.java
index 13647d92a89759ae282f72436d138e7daa50276d..bb04d0ff6178e71b23ab4475b2f6ede1579f16bb 100644
--- a/core/java/android/text/style/BackgroundColorSpan.java
+++ b/core/java/android/text/style/BackgroundColorSpan.java
@@ -34,6 +34,7 @@ import android.text.TextUtils;
*
* Set a background color for the text.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BackgroundColorSpan extends CharacterStyle
implements UpdateAppearance, ParcelableSpan {
diff --git a/core/java/android/text/style/BulletSpan.java b/core/java/android/text/style/BulletSpan.java
index f70e6c56b5c9e3c80e44c87f42eb41dca14f3e5a..24ae6e25fa59d6d5fd5417bc019c200efd97196f 100644
--- a/core/java/android/text/style/BulletSpan.java
+++ b/core/java/android/text/style/BulletSpan.java
@@ -63,6 +63,7 @@ import android.text.TextUtils;
*
* Customized BulletSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BulletSpan implements LeadingMarginSpan, ParcelableSpan {
// Bullet is slightly bigger to avoid aliasing artifacts on mdpi devices.
private static final int STANDARD_BULLET_RADIUS = 4;
diff --git a/core/java/android/text/style/CharacterStyle.java b/core/java/android/text/style/CharacterStyle.java
index 5b95f1a7816a3d8c6efbf28274e552013d896a6e..2ea05e6ecde0387a54e5cf0012edd851a367fbb2 100644
--- a/core/java/android/text/style/CharacterStyle.java
+++ b/core/java/android/text/style/CharacterStyle.java
@@ -23,6 +23,7 @@ import android.text.TextPaint;
* class. Most extend its subclass {@link MetricAffectingSpan}, but simple
* ones may just implement {@link UpdateAppearance}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class CharacterStyle {
public abstract void updateDrawState(TextPaint tp);
diff --git a/core/java/android/text/style/ClickableSpan.java b/core/java/android/text/style/ClickableSpan.java
index 238da55526b0a9146ac5c32e265155ab1e17e8ed..9e35d75c88335019d395802d027eb701c21ce94e 100644
--- a/core/java/android/text/style/ClickableSpan.java
+++ b/core/java/android/text/style/ClickableSpan.java
@@ -36,6 +36,7 @@ import android.view.View;
*
* Text with ClickableSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class ClickableSpan extends CharacterStyle implements UpdateAppearance {
private static int sIdCounter = 0;
diff --git a/core/java/android/text/style/ForegroundColorSpan.java b/core/java/android/text/style/ForegroundColorSpan.java
index 5c9742622549f67e73f297c12bd42d7610d04783..337c49fddf1698cd348a1ebb77aabc4eb54fdd47 100644
--- a/core/java/android/text/style/ForegroundColorSpan.java
+++ b/core/java/android/text/style/ForegroundColorSpan.java
@@ -34,6 +34,7 @@ import android.text.TextUtils;
*
* Set a text color.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ForegroundColorSpan extends CharacterStyle
implements UpdateAppearance, ParcelableSpan {
diff --git a/core/java/android/text/style/IconMarginSpan.java b/core/java/android/text/style/IconMarginSpan.java
index a6c513971ffb96311ed21969bdbbe15e6431094e..cc946e98ece9208eeed86eb0ef330f8221f6dc87 100644
--- a/core/java/android/text/style/IconMarginSpan.java
+++ b/core/java/android/text/style/IconMarginSpan.java
@@ -44,6 +44,7 @@ import android.text.Spanned;
* @see DrawableMarginSpan for working with a {@link android.graphics.drawable.Drawable} instead of
* a {@link Bitmap}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class IconMarginSpan implements LeadingMarginSpan, LineHeightSpan {
@NonNull
diff --git a/core/java/android/text/style/LeadingMarginSpan.java b/core/java/android/text/style/LeadingMarginSpan.java
index 5bd2d60bb34f7c22d878c010cd1348c2c0311f34..60c45784f6804d209e6d517f7aeb7b008d0004b7 100644
--- a/core/java/android/text/style/LeadingMarginSpan.java
+++ b/core/java/android/text/style/LeadingMarginSpan.java
@@ -32,6 +32,7 @@ import android.text.TextUtils;
* LeadingMarginSpans should be attached from the first character to the last
* character of a single paragraph.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface LeadingMarginSpan
extends ParagraphStyle
{
diff --git a/core/java/android/text/style/LineBackgroundSpan.java b/core/java/android/text/style/LineBackgroundSpan.java
index 7cb91477738e6b015b4f440bccddee04d1f13bd5..c2d38ce92290a68af1e1e2aefe8ab0bf1e8a39a5 100644
--- a/core/java/android/text/style/LineBackgroundSpan.java
+++ b/core/java/android/text/style/LineBackgroundSpan.java
@@ -28,6 +28,7 @@ import android.text.TextUtils;
/**
* Used to change the background of lines where the span is attached to.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface LineBackgroundSpan extends ParagraphStyle
{
/**
diff --git a/core/java/android/text/style/LineBreakConfigSpan.java b/core/java/android/text/style/LineBreakConfigSpan.java
index eeb6383892715edc68c4659eda2cb940ffc21060..1af1eed86e1fc428a37fcd74a717db75e3181430 100644
--- a/core/java/android/text/style/LineBreakConfigSpan.java
+++ b/core/java/android/text/style/LineBreakConfigSpan.java
@@ -31,6 +31,7 @@ import java.util.Objects;
* LineBreakSpan for changing line break style of the specific region of the text.
*/
@FlaggedApi(FLAG_NO_BREAK_NO_HYPHENATION_SPAN)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class LineBreakConfigSpan implements ParcelableSpan {
private final LineBreakConfig mLineBreakConfig;
diff --git a/core/java/android/text/style/LineHeightSpan.java b/core/java/android/text/style/LineHeightSpan.java
index ae565d1c3317a55e8ac464175cda8301e09dedf4..71e8932c4abae0e327c6c332b5f03439d841e891 100644
--- a/core/java/android/text/style/LineHeightSpan.java
+++ b/core/java/android/text/style/LineHeightSpan.java
@@ -30,6 +30,7 @@ import com.android.internal.util.Preconditions;
/**
* The classes that affect the line height of paragraph should implement this interface.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface LineHeightSpan extends ParagraphStyle, WrapTogetherSpan {
/**
* Classes that implement this should define how the height is being calculated.
diff --git a/core/java/android/text/style/LocaleSpan.java b/core/java/android/text/style/LocaleSpan.java
index 489ceeaa55429359d9775e7fc1a15ee801337d8f..be5525a2f41a66ba3ac5243f51580830808bc780 100644
--- a/core/java/android/text/style/LocaleSpan.java
+++ b/core/java/android/text/style/LocaleSpan.java
@@ -32,6 +32,7 @@ import java.util.Locale;
/**
* Changes the {@link Locale} of the text to which the span is attached.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LocaleSpan extends MetricAffectingSpan implements ParcelableSpan {
@NonNull
private final LocaleList mLocales;
diff --git a/core/java/android/text/style/MaskFilterSpan.java b/core/java/android/text/style/MaskFilterSpan.java
index 587d1b4497dc0605199c34321012f1c4bc7d9081..44db012953b3a80242a7a4efbc00176074f49a8c 100644
--- a/core/java/android/text/style/MaskFilterSpan.java
+++ b/core/java/android/text/style/MaskFilterSpan.java
@@ -30,6 +30,7 @@ import android.text.TextPaint;
*
* Text blurred with the MaskFilterSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MaskFilterSpan extends CharacterStyle implements UpdateAppearance {
private MaskFilter mFilter;
diff --git a/core/java/android/text/style/MetricAffectingSpan.java b/core/java/android/text/style/MetricAffectingSpan.java
index 61b7947af6389d0d70dc900b140fc19ab6e90310..f30fdc15ae39e8ce610eecab5a96cf835e178b98 100644
--- a/core/java/android/text/style/MetricAffectingSpan.java
+++ b/core/java/android/text/style/MetricAffectingSpan.java
@@ -23,6 +23,7 @@ import android.text.TextPaint;
* The classes that affect character-level text formatting in a way that
* changes the width or height of characters extend this class.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class MetricAffectingSpan
extends CharacterStyle
implements UpdateLayout {
diff --git a/core/java/android/text/style/NoWritingToolsSpan.java b/core/java/android/text/style/NoWritingToolsSpan.java
index 90f85aa69faa5df31c6f00d5121c918384c34b48..c7dfcfa6dc0b96d55f7b1a034994f51c7562cc6d 100644
--- a/core/java/android/text/style/NoWritingToolsSpan.java
+++ b/core/java/android/text/style/NoWritingToolsSpan.java
@@ -32,6 +32,7 @@ import android.text.TextUtils;
* tools should only rewrite the user input text, and not modify the quoted text.
*/
@FlaggedApi(FLAG_WRITING_TOOLS)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class NoWritingToolsSpan implements ParcelableSpan {
/**
diff --git a/core/java/android/text/style/ParagraphStyle.java b/core/java/android/text/style/ParagraphStyle.java
index 423156eca3de311cde6a18176543ab884e1cdffd..27c1e261b116b7466f5d33b7461a239cc81d2a53 100644
--- a/core/java/android/text/style/ParagraphStyle.java
+++ b/core/java/android/text/style/ParagraphStyle.java
@@ -20,6 +20,7 @@ package android.text.style;
* The classes that affect paragraph-level text formatting implement
* this interface.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface ParagraphStyle
{
diff --git a/core/java/android/text/style/QuoteSpan.java b/core/java/android/text/style/QuoteSpan.java
index 393ede653cb1a461a5b51145894c3f653833f953..99c95749205a12521c8f31bb8420dd0f98d4904a 100644
--- a/core/java/android/text/style/QuoteSpan.java
+++ b/core/java/android/text/style/QuoteSpan.java
@@ -57,6 +57,7 @@ import android.text.TextUtils;
*
* Customized QuoteSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class QuoteSpan implements LeadingMarginSpan, ParcelableSpan {
/**
* Default stripe width in pixels.
diff --git a/core/java/android/text/style/RasterizerSpan.java b/core/java/android/text/style/RasterizerSpan.java
index f0be50ab065cde4df38e0bdcf848f28dbeb94a91..cf8599c4f1b1bfa19945a1acc67cecbe8f466154 100644
--- a/core/java/android/text/style/RasterizerSpan.java
+++ b/core/java/android/text/style/RasterizerSpan.java
@@ -22,6 +22,7 @@ import android.text.TextPaint;
/**
* @removed Rasterizer is not supported for hw-accerlerated and PDF rendering
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RasterizerSpan extends CharacterStyle implements UpdateAppearance {
private Rasterizer mRasterizer;
diff --git a/core/java/android/text/style/RelativeSizeSpan.java b/core/java/android/text/style/RelativeSizeSpan.java
index 5c91b201d28c3bf01b9f0f40789a5e0c9a5603fa..38d5d38ae704d7e78b7f8c7a3d154e3d2a03122a 100644
--- a/core/java/android/text/style/RelativeSizeSpan.java
+++ b/core/java/android/text/style/RelativeSizeSpan.java
@@ -34,6 +34,7 @@ import android.text.TextUtils;
*
* Text increased by 50% with RelativeSizeSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RelativeSizeSpan extends MetricAffectingSpan implements ParcelableSpan {
private final float mProportion;
diff --git a/core/java/android/text/style/ReplacementSpan.java b/core/java/android/text/style/ReplacementSpan.java
index 9430fd3a26c0e656f71c011d11fbececeb8c93fd..a6fe1fe729371851ac943ca778c891c2016091fa 100644
--- a/core/java/android/text/style/ReplacementSpan.java
+++ b/core/java/android/text/style/ReplacementSpan.java
@@ -23,6 +23,7 @@ import android.graphics.Canvas;
import android.graphics.Paint;
import android.text.TextPaint;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class ReplacementSpan extends MetricAffectingSpan {
private CharSequence mContentDescription = null;
diff --git a/core/java/android/text/style/ScaleXSpan.java b/core/java/android/text/style/ScaleXSpan.java
index d022b071b4d7ae93a0948cbb00a54a020d320021..009973ee5306c01f601ace4a417c78991f0b1499 100644
--- a/core/java/android/text/style/ScaleXSpan.java
+++ b/core/java/android/text/style/ScaleXSpan.java
@@ -36,6 +36,7 @@ import android.text.TextUtils;
*
* Text scaled by 100% with ScaleXSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ScaleXSpan extends MetricAffectingSpan implements ParcelableSpan {
private final float mProportion;
diff --git a/core/java/android/text/style/SpanUtils.java b/core/java/android/text/style/SpanUtils.java
index 6b4bd1a76358322b914052da4e83addaa1921daa..21a96cdfe3b1bc576fc3d5bb56fc1f386c712419 100644
--- a/core/java/android/text/style/SpanUtils.java
+++ b/core/java/android/text/style/SpanUtils.java
@@ -30,6 +30,7 @@ import java.util.List;
/**
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SpanUtils {
private SpanUtils() {} // Do not instantiate
diff --git a/core/java/android/text/style/SpellCheckSpan.java b/core/java/android/text/style/SpellCheckSpan.java
index e8ec3c6fb55c69c8976afb451e12568c92694dfd..39cd279d3d18c9a9829363356abc2e9984575a9f 100644
--- a/core/java/android/text/style/SpellCheckSpan.java
+++ b/core/java/android/text/style/SpellCheckSpan.java
@@ -28,6 +28,7 @@ import android.text.TextUtils;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SpellCheckSpan implements ParcelableSpan {
private boolean mSpellCheckInProgress;
diff --git a/core/java/android/text/style/StrikethroughSpan.java b/core/java/android/text/style/StrikethroughSpan.java
index 65ee34717232c97de2c2d09bb914aad2942712a8..3654870ee08897b4a4b9183d6c2f4a0f73d89066 100644
--- a/core/java/android/text/style/StrikethroughSpan.java
+++ b/core/java/android/text/style/StrikethroughSpan.java
@@ -32,6 +32,7 @@ import android.text.TextUtils;
*
* Strikethrough text.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class StrikethroughSpan extends CharacterStyle
implements UpdateAppearance, ParcelableSpan {
diff --git a/core/java/android/text/style/StyleSpan.java b/core/java/android/text/style/StyleSpan.java
index 378682b9c8909e7fe445355a974e194a7c49c0d0..c01e13443ad1d8f9268d1ab38c9c7b4bd5516373 100644
--- a/core/java/android/text/style/StyleSpan.java
+++ b/core/java/android/text/style/StyleSpan.java
@@ -44,6 +44,7 @@ import android.text.TextUtils;
*
* Text styled bold and italic with the StyleSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class StyleSpan extends MetricAffectingSpan implements ParcelableSpan {
private final int mStyle;
diff --git a/core/java/android/text/style/SubscriptSpan.java b/core/java/android/text/style/SubscriptSpan.java
index 729a9ad73e754714b006b52f6426b52ecfec7b07..54c765d902a4df99d26b52013c09afee4228ee18 100644
--- a/core/java/android/text/style/SubscriptSpan.java
+++ b/core/java/android/text/style/SubscriptSpan.java
@@ -37,6 +37,7 @@ import android.text.TextUtils;
* Note: Since the span affects the position of the text, if the text is on the last line of a
* TextView, it may appear cut.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SubscriptSpan extends MetricAffectingSpan implements ParcelableSpan {
/**
diff --git a/core/java/android/text/style/SuggestionRangeSpan.java b/core/java/android/text/style/SuggestionRangeSpan.java
index 1eee99aaac62e6bd8018caa9ee6e11a4a41e10e3..640fae4d1a3ac31901e68cf981c886cddc14b9e5 100644
--- a/core/java/android/text/style/SuggestionRangeSpan.java
+++ b/core/java/android/text/style/SuggestionRangeSpan.java
@@ -27,6 +27,7 @@ import android.text.TextUtils;
* A SuggestionRangeSpan is used to show which part of an EditText is affected by a suggestion
* popup window.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class SuggestionRangeSpan extends CharacterStyle implements ParcelableSpan {
private int mBackgroundColor;
diff --git a/core/java/android/text/style/SuggestionSpan.java b/core/java/android/text/style/SuggestionSpan.java
index 0cf96f617f4a84f5de55bf22ca5bfbee70b82c7d..d819062428f9c438a0e8ed12755e2a05d2fb9e3b 100644
--- a/core/java/android/text/style/SuggestionSpan.java
+++ b/core/java/android/text/style/SuggestionSpan.java
@@ -48,6 +48,7 @@ import java.util.Locale;
*
* @see TextView#isSuggestionsEnabled()
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SuggestionSpan extends CharacterStyle implements ParcelableSpan {
private static final String TAG = "SuggestionSpan";
diff --git a/core/java/android/text/style/SuperscriptSpan.java b/core/java/android/text/style/SuperscriptSpan.java
index 561022352ffd7aff3b46ee0bb3ddd02f4f7d5937..d3b339c02e92b482eaddf80f56789c34df3d3e86 100644
--- a/core/java/android/text/style/SuperscriptSpan.java
+++ b/core/java/android/text/style/SuperscriptSpan.java
@@ -35,6 +35,7 @@ import android.text.TextUtils;
* TextView, it may appear cut. This can be avoided by decreasing the text size with an {@link
* AbsoluteSizeSpan}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SuperscriptSpan extends MetricAffectingSpan implements ParcelableSpan {
/**
* Creates a {@link SuperscriptSpan}.
diff --git a/core/java/android/text/style/TabStopSpan.java b/core/java/android/text/style/TabStopSpan.java
index 812847594ad8905ebb26a5d553f8c8aac8bde24c..e6733a2aac916917ad44608b2597bda1755e03af 100644
--- a/core/java/android/text/style/TabStopSpan.java
+++ b/core/java/android/text/style/TabStopSpan.java
@@ -24,6 +24,7 @@ import android.annotation.Px;
* the leading margin of the line. TabStopSpan will only affect the first tab
* encountered on the first line of the text.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface TabStopSpan extends ParagraphStyle {
/**
diff --git a/core/java/android/text/style/TextAppearanceSpan.java b/core/java/android/text/style/TextAppearanceSpan.java
index 245a9dbc9f6c4b3e53cd39f38f520c09717479ee..7ede3499dc4d99c923959aa7ac3252b6148253d7 100644
--- a/core/java/android/text/style/TextAppearanceSpan.java
+++ b/core/java/android/text/style/TextAppearanceSpan.java
@@ -58,6 +58,7 @@ import android.text.TextUtils;
* @attr ref android.R.styleable#TextAppearance_fontVariationSettings
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TextAppearanceSpan extends MetricAffectingSpan implements ParcelableSpan {
private final String mFamilyName;
private final int mStyle;
diff --git a/core/java/android/text/style/TtsSpan.java b/core/java/android/text/style/TtsSpan.java
index e0d4ec1ca8268ba4da0b6527c59a7d6048f1a356..6d776d14fb002439e5839414e44e52e2d530b0b5 100644
--- a/core/java/android/text/style/TtsSpan.java
+++ b/core/java/android/text/style/TtsSpan.java
@@ -42,6 +42,7 @@ import java.util.Locale;
* The inner classes are there for convenience and provide builders for each
* TtsSpan type.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TtsSpan implements ParcelableSpan {
private final String mType;
private final PersistableBundle mArgs;
diff --git a/core/java/android/text/style/TypefaceSpan.java b/core/java/android/text/style/TypefaceSpan.java
index bdfc772c03281420bf525a8032d80129bb0e69ce..86f7f763862900b5647a1b5bfdeb12caf500bd2f 100644
--- a/core/java/android/text/style/TypefaceSpan.java
+++ b/core/java/android/text/style/TypefaceSpan.java
@@ -50,6 +50,7 @@ import android.text.TextUtils;
* Text with TypefaceSpans constructed based on a font from resource and
* from a font family.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TypefaceSpan extends MetricAffectingSpan implements ParcelableSpan {
@Nullable
diff --git a/core/java/android/text/style/URLSpan.java b/core/java/android/text/style/URLSpan.java
index 9969d29a857d52c82d875ecc24b99dfd19cd9c87..f06627d0cbe1259632a9f7bc14279646c0e38c9f 100644
--- a/core/java/android/text/style/URLSpan.java
+++ b/core/java/android/text/style/URLSpan.java
@@ -41,6 +41,7 @@ import android.view.View;
*
* Text with URLSpan.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class URLSpan extends ClickableSpan implements ParcelableSpan {
private final String mURL;
diff --git a/core/java/android/text/style/UnderlineSpan.java b/core/java/android/text/style/UnderlineSpan.java
index 075e70b7fbf5abb439f5d8199d5a313e996f072d..b3bb142d1dc894576d4bbecd57ad2185c03cded7 100644
--- a/core/java/android/text/style/UnderlineSpan.java
+++ b/core/java/android/text/style/UnderlineSpan.java
@@ -32,6 +32,7 @@ import android.text.TextUtils;
*
* Underlined text.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class UnderlineSpan extends CharacterStyle
implements UpdateAppearance, ParcelableSpan {
diff --git a/core/java/android/text/style/UpdateAppearance.java b/core/java/android/text/style/UpdateAppearance.java
index 7112347fcfbf4d1a0574ca1965fdf9fc48fe1aa8..7b0a6d372122edade01fa50b7ab9af811b810fb4 100644
--- a/core/java/android/text/style/UpdateAppearance.java
+++ b/core/java/android/text/style/UpdateAppearance.java
@@ -22,5 +22,6 @@ package android.text.style;
* that if the class also impacts size or other metrics, it should instead
* implement {@link UpdateLayout}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface UpdateAppearance {
}
diff --git a/core/java/android/text/style/UpdateLayout.java b/core/java/android/text/style/UpdateLayout.java
index 591075ecb97263e4e5e24ffa58316a51d4fb6453..5af4141cc8c2a896db58910fa6777c0c109af34b 100644
--- a/core/java/android/text/style/UpdateLayout.java
+++ b/core/java/android/text/style/UpdateLayout.java
@@ -22,4 +22,5 @@ package android.text.style;
* this interface. This interface also includes {@link UpdateAppearance}
* since such a change implicitly also impacts the appearance.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface UpdateLayout extends UpdateAppearance { }
diff --git a/core/java/android/text/style/WrapTogetherSpan.java b/core/java/android/text/style/WrapTogetherSpan.java
index 11721a8c32534ef82365c9b55276d2f120c1afe4..cf74c1bae3b77fc361274b2e01b62bbc5f78f477 100644
--- a/core/java/android/text/style/WrapTogetherSpan.java
+++ b/core/java/android/text/style/WrapTogetherSpan.java
@@ -16,6 +16,7 @@
package android.text.style;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface WrapTogetherSpan
extends ParagraphStyle
{
diff --git a/core/java/android/text/util/Rfc822Token.java b/core/java/android/text/util/Rfc822Token.java
index 2f207db9d494edee14f5389dd281285ae63a66f1..d6e987b2952ec8220e5b92fa292f091da42f8700 100644
--- a/core/java/android/text/util/Rfc822Token.java
+++ b/core/java/android/text/util/Rfc822Token.java
@@ -22,6 +22,7 @@ import android.annotation.Nullable;
* This class stores an RFC 822-like name, address, and comment,
* and provides methods to convert them to quoted strings.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Rfc822Token {
@Nullable
private String mName, mAddress, mComment;
diff --git a/core/java/android/text/util/Rfc822Tokenizer.java b/core/java/android/text/util/Rfc822Tokenizer.java
index 68334e4d927c615a5bd6a9cb89376b45de2a8e67..8a9252ac9506e2240a5094458160f35f486f3165 100644
--- a/core/java/android/text/util/Rfc822Tokenizer.java
+++ b/core/java/android/text/util/Rfc822Tokenizer.java
@@ -27,6 +27,7 @@ import java.util.Collection;
* a string of addresses (such as might be typed into such a field)
* into a series of Rfc822Tokens.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Rfc822Tokenizer implements MultiAutoCompleteTextView.Tokenizer {
/**
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index 0903d2293d67ea336f1e45c4c9be3ec4d5762e70..c4347f05f4a31cd745dee68cbdbd9fc91e8a6ad9 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -3080,6 +3080,21 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * Changes the default ApplyToken.
+ *
+ * ApplyToken is used to determine the order in which Transactions are applied.
+ * Transactions applied with the same ApplyToken will be applied in the order
+ * they were queued in SurfaceFlinger. Transactions are sent via binder so the
+ * caller should be aware of the order in which binder calls are executed in
+ * SurfaceFlinger. This along with the ApplyToken will determine the order
+ * in which Transactions are applied. Transactions with different apply tokens
+ * will be applied in arbitrary order regardless of when they were queued in
+ * SurfaceFlinger.
+ *
+ * Caller must keep track of the previous ApplyToken if they want to restore it.
+ *
+ * Note each buffer producer should have its own ApplyToken in order to ensure
+ * that Transactions are not delayed by Transactions from other buffer producers.
*
* @hide
*/
@@ -3088,6 +3103,7 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * Returns the default ApplyToken.
*
* @hide
*/
@@ -3096,8 +3112,10 @@ public final class SurfaceControl implements Parcelable {
}
/**
- * Apply the transaction, clearing it's state, and making it usable
+ * Apply the transaction, clearing its state, and making it usable
* as a new transaction.
+ *
+ * This method will also increment the transaction ID for debugging purposes.
*/
public void apply() {
apply(/*sync*/ false);
@@ -3116,7 +3134,7 @@ public final class SurfaceControl implements Parcelable {
/**
- * Clear the transaction object, without applying it.
+ * Clear the transaction object, without applying it. The transction ID is preserved.
*
* @hide
*/
@@ -3375,6 +3393,9 @@ public final class SurfaceControl implements Parcelable {
* If two siblings share the same Z order the ordering is undefined. Surfaces
* with a negative Z will be placed below the parent surface.
*
+ * Calling setLayer after setRelativeLayer will reset the relative layer
+ * in the same transaction.
+ *
* @param sc The SurfaceControl to set the Z order on
* @param z The Z-order
* @return This Transaction.
@@ -3392,6 +3413,22 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * Set the Z-order for a given SurfaceControl, relative to the specified SurfaceControl.
+ * The SurfaceControl with a negative z will be placed below the relativeTo
+ * SurfaceControl and the SurfaceControl with a positive z will be placed above the
+ * relativeTo SurfaceControl.
+ *
+ * Calling setLayer will reset the relative layer. Calling setRelativeLayer after setLayer
+ * will override the setLayer call.
+ *
+ * If a layer is set to be relative to a layer that is destroyed, the layer will be
+ * offscreen until setLayer is called or setRelativeLayer is called with a valid
+ * SurfaceControl.
+ *
+ * @param sc The SurfaceControl to set the Z order on
+ * @param relativeTo The SurfaceControl to set the Z order relative to
+ * @param z The Z-order
+ * @return This Transaction.
* @hide
*/
public Transaction setRelativeLayer(SurfaceControl sc, SurfaceControl relativeTo, int z) {
@@ -3405,6 +3442,9 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * The hint from the buffer producer as to what portion of the layer is
+ * transparent.
+ *
* @hide
*/
public Transaction setTransparentRegionHint(SurfaceControl sc, Region transparentRegion) {
@@ -3438,6 +3478,10 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * Sets the input channel for a given SurfaceControl. The position and order of the
+ * SurfaceControl in conjunction with the touchable region in the InputWindowHandle
+ * determines the hit region.
+ *
* @hide
*/
public Transaction setInputWindowInfo(SurfaceControl sc, InputWindowHandle handle) {
@@ -3549,6 +3593,8 @@ public final class SurfaceControl implements Parcelable {
* surface. If no crop is specified and the surface has no buffer, the surface bounds is
* only constrained by the size of its parent bounds.
*
+ * To unset the crop, pass in an invalid Rect (0, 0, -1, -1)
+ *
* @param sc SurfaceControl to set crop of.
* @param crop Bounds of the crop to apply.
* @hide
@@ -3578,6 +3624,8 @@ public final class SurfaceControl implements Parcelable {
* surface. If no crop is specified and the surface has no buffer, the surface bounds is
* only constrained by the size of its parent bounds.
*
+ * To unset the crop, pass in an invalid Rect (0, 0, -1, -1)
+ *
* @param sc SurfaceControl to set crop of.
* @param crop Bounds of the crop to apply.
* @return this This transaction for chaining
@@ -3625,6 +3673,8 @@ public final class SurfaceControl implements Parcelable {
* surface. If no crop is specified and the surface has no buffer, the surface bounds is
* only constrained by the size of its parent bounds.
*
+ * To unset the crop, pass in an invalid Rect (0, 0, -1, -1)
+ *
* @param sc SurfaceControl to set crop of.
* @param crop Bounds of the crop to apply.
* @return this This transaction for chaining
@@ -3643,7 +3693,12 @@ public final class SurfaceControl implements Parcelable {
}
/**
- * Sets the corner radius of a {@link SurfaceControl}.
+ * Sets the corner radius of a {@link SurfaceControl}. This corner radius is applied to the
+ * SurfaceControl and its children. The API expects a crop to be set on the SurfaceControl
+ * to ensure that the corner radius is applied to the correct region. If the crop does not
+ * intersect with the SurfaceControl's visible content, the corner radius will not be
+ * applied.
+ *
* @param sc SurfaceControl
* @param cornerRadius Corner radius in pixels.
* @return Itself.
@@ -3753,6 +3808,9 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * Associates a layer with a display. The layer will be drawn on the display with the
+ * specified layer stack. If the layer is not a root layer, this call has no effect.
+ *
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.O)
@@ -3791,6 +3849,7 @@ public final class SurfaceControl implements Parcelable {
/**
* Fills the surface with the specified color.
+ *
* @param color A float array with three values to represent r, g, b in range [0..1]. An
* invalid color will remove the color fill.
* @hide
@@ -3809,8 +3868,9 @@ public final class SurfaceControl implements Parcelable {
/**
* Removes color fill.
- * @hide
- */
+ *
+ * @hide
+ */
public Transaction unsetColor(SurfaceControl sc) {
checkPreconditions(sc);
if (SurfaceControlRegistry.sCallStackDebuggingEnabled) {
@@ -3898,6 +3958,8 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * Sets the surface to render contents of the display to.
+ *
* @hide
*/
public Transaction setDisplaySurface(IBinder displayToken, Surface surface) {
@@ -3916,6 +3978,9 @@ public final class SurfaceControl implements Parcelable {
}
/**
+ * Sets the layer stack of the display.
+ *
+ * All layers with the same layer stack will be drawn on this display.
* @hide
*/
public Transaction setDisplayLayerStack(IBinder displayToken, int layerStack) {
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index dd32947c69e470abbe2eb2145836380228966103..b98f4db5dce606d8d179e0fa05d80d0f4ceddab6 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -16,6 +16,7 @@
package android.view;
+import static android.view.flags.Flags.FLAG_DEPRECATE_SURFACE_VIEW_Z_ORDER_APIS;
import static android.view.flags.Flags.FLAG_SURFACE_VIEW_GET_SURFACE_PACKAGE;
import static android.view.flags.Flags.FLAG_SURFACE_VIEW_SET_COMPOSITION_ORDER;
import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
@@ -812,7 +813,12 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
* window is attached to the window manager.
*
*
Calling this overrides any previous call to {@link #setZOrderOnTop}.
+ *
+ * @deprecated Use {@link #setCompositionOrder(int)} instead. It provides more
+ * control over the Z ordering behavior.
*/
+ @Deprecated
+ @FlaggedApi(FLAG_DEPRECATE_SURFACE_VIEW_Z_ORDER_APIS)
public void setZOrderMediaOverlay(boolean isMediaOverlay) {
mRequestedSubLayer = isMediaOverlay
? APPLICATION_MEDIA_OVERLAY_SUBLAYER : APPLICATION_MEDIA_SUBLAYER;
@@ -834,7 +840,12 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
*
Calling this overrides any previous call to {@link #setZOrderMediaOverlay}.
*
* @param onTop Whether to show the surface on top of this view's window.
+ *
+ * @deprecated Use {@link #setCompositionOrder(int)} instead. It provides more
+ * control over the Z ordering behavior.
*/
+ @Deprecated
+ @FlaggedApi(FLAG_DEPRECATE_SURFACE_VIEW_Z_ORDER_APIS)
public void setZOrderOnTop(boolean onTop) {
// In R and above we allow dynamic layer changes.
final boolean allowDynamicChange = getContext().getApplicationInfo().targetSdkVersion
@@ -866,7 +877,11 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
* @return Whether the Z ordering changed.
*
* @hide
+ *
+ * @deprecated Use {@link #setCompositionOrder(int)} instead. It provides more control
+ * over the Z ordering behavior.
*/
+ @Deprecated
public boolean setZOrderedOnTop(boolean onTop, boolean allowDynamicChange) {
final int subLayer;
if (onTop) {
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 93eed370004b68b94e56c3e62662adfcae43ec96..24647f459ab5e379c03bfc3c0edc48918939d9e5 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -1198,6 +1198,43 @@ public interface WindowManager extends ViewManager {
String PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE =
"android.window.PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE";
+ /**
+ * Application-level [PackageManager][android.content.pm.PackageManager.Property] tag that (when
+ * set to false) informs the system the app has opted out of the camera compatibility treatment
+ * for fixed-orientation apps, which simulates running on a portrait device, in the orientation
+ * requested by the app.
+ *
+ *
This treatment aims to mitigate camera issues on large screens, like stretched or sideways
+ * previews. It simulates running on a portrait device by:
+ *
+ *
Letterboxing the app window,
+ *
Cropping the camera buffer to match the app's requested orientation,
+ *
Setting the camera sensor orientation to portrait.
+ *
Setting the display rotation to match the app's requested orientation, given portrait
+ * natural orientation,
+ *
Refreshes the activity to trigger new camera setup, with sandboxed values.
+ *
+ *
+ *
To opt out of the camera compatibility treatment, add this property to your app manifest
+ * and set the value to {@code false}.
+ *
+ *
Not setting this property at all, or setting this property to {@code true} has no effect.
+ *
+ *
+ *
+ * @hide
+ */
+ //TODO(b/394590412): Make this property public.
+ String PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION =
+ "android.window.PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION";
+
/**
* Application level {@link android.content.pm.PackageManager.Property PackageManager.Property}
* for an app to inform the system that the app should be excluded from the compatibility
diff --git a/core/java/android/view/flags/view_flags.aconfig b/core/java/android/view/flags/view_flags.aconfig
index f6fdec94c33252d986be7615baa31e4d8a956e3b..d06f885638b60ca2cf8ab7989850fea126dd146c 100644
--- a/core/java/android/view/flags/view_flags.aconfig
+++ b/core/java/android/view/flags/view_flags.aconfig
@@ -128,6 +128,14 @@ flag {
is_exported: true
}
+flag {
+ name: "deprecate_surface_view_z_order_apis"
+ namespace: "window_surfaces"
+ description: "Deprecate SurfaceView z order control APIs."
+ bug: "341021569"
+ is_fixed_read_only: true
+}
+
flag {
name: "use_refactored_round_scrollbar"
namespace: "wear_frameworks"
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 421001f385d411ace765a2ace39cac42ccf8938c..0b34600f4104e2af8f60d5647c1c4dd58bb17400 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -532,6 +532,7 @@ public final class InputMethodManager {
final H mH;
// Our generic input connection if the current target does not have its own.
+ @NonNull
private final RemoteInputConnectionImpl mFallbackInputConnection;
private final int mDisplayId;
diff --git a/core/java/android/view/textclassifier/intent/OWNERS b/core/java/android/view/textclassifier/intent/OWNERS
index 3465fe62784f11a6de675091e4cc9847030955b8..dc18514ce949cb36089b768becff13f3c43742ee 100644
--- a/core/java/android/view/textclassifier/intent/OWNERS
+++ b/core/java/android/view/textclassifier/intent/OWNERS
@@ -1,6 +1,5 @@
# Bug component: 709498
-mns@google.com
toki@google.com
svetoslavganov@android.com
svetoslavganov@google.com
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 0a5c14e3a08b9ffab4d721d70af0bc60b989fef9..222a7b38c966a69bb19cde3c12938ae63ae20380 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -9216,6 +9216,7 @@ public class RemoteViews implements Parcelable, Filter {
public static RemoteResponse fromFillInIntent(@NonNull Intent fillIntent) {
RemoteResponse response = new RemoteResponse();
response.mFillIntent = fillIntent;
+ fillIntent.collectExtraIntentKeys();
return response;
}
@@ -9224,6 +9225,7 @@ public class RemoteViews implements Parcelable, Filter {
RemoteResponse response = new RemoteResponse();
response.mPendingIntent = pendingIntent;
response.mFillIntent = intent;
+ intent.collectExtraIntentKeys();
return response;
}
diff --git a/core/java/android/window/DesktopModeFlags.java b/core/java/android/window/DesktopModeFlags.java
index 50b7bb8ce9da91b88f89ddf518908758f5f59f9c..4aeedbb729037ab824ef9315d1e66e64a6eacbf1 100644
--- a/core/java/android/window/DesktopModeFlags.java
+++ b/core/java/android/window/DesktopModeFlags.java
@@ -104,9 +104,12 @@ public enum DesktopModeFlags {
ENABLE_MODALS_FULLSCREEN_WITH_PERMISSIONS(Flags::enableModalsFullscreenWithPermission, false),
ENABLE_OPAQUE_BACKGROUND_FOR_TRANSPARENT_WINDOWS(
Flags::enableOpaqueBackgroundForTransparentWindows, false),
+ ENABLE_QUICKSWITCH_DESKTOP_SPLIT_BUGFIX(Flags::enableQuickswitchDesktopSplitBugfix, true),
ENABLE_RESIZING_METRICS(Flags::enableResizingMetrics, true),
ENABLE_RESTORE_TO_PREVIOUS_SIZE_FROM_DESKTOP_IMMERSIVE(
Flags::enableRestoreToPreviousSizeFromDesktopImmersive, true),
+ ENABLE_START_LAUNCH_TRANSITION_FROM_TASKBAR_BUGFIX(
+ Flags::enableStartLaunchTransitionFromTaskbarBugfix, true),
ENABLE_TASKBAR_OVERFLOW(Flags::enableTaskbarOverflow, false),
ENABLE_TASK_RESIZING_KEYBOARD_SHORTCUTS(Flags::enableTaskResizingKeyboardShortcuts, true),
ENABLE_TASK_STACK_OBSERVER_IN_SHELL(Flags::enableTaskStackObserverInShell, true),
@@ -120,6 +123,8 @@ public enum DesktopModeFlags {
ENABLE_WINDOWING_TRANSITION_HANDLERS_OBSERVERS(
Flags::enableWindowingTransitionHandlersObservers, false),
EXCLUDE_CAPTION_FROM_APP_BOUNDS(Flags::excludeCaptionFromAppBounds, false),
+ IGNORE_ASPECT_RATIO_RESTRICTIONS_FOR_RESIZEABLE_FREEFORM_ACTIVITIES(
+ Flags::ignoreAspectRatioRestrictionsForResizeableFreeformActivities, true),
INCLUDE_TOP_TRANSPARENT_FULLSCREEN_TASK_IN_DESKTOP_HEURISTIC(
Flags::includeTopTransparentFullscreenTaskInDesktopHeuristic, true)
// go/keep-sorted end
diff --git a/core/java/android/window/TransitionFilter.java b/core/java/android/window/TransitionFilter.java
index 61fc6226f822e00a82319818422362c62a5630d1..d8d20119a6023433d647d3d9e19d66bd0c8aa01b 100644
--- a/core/java/android/window/TransitionFilter.java
+++ b/core/java/android/window/TransitionFilter.java
@@ -31,8 +31,6 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.view.WindowManager;
-import com.android.window.flags.Flags;
-
/**
* A parcelable filter that can be used for rerouting transitions to a remote. This is a local
* representation so that the transition system doesn't need to make blocking queries over
@@ -261,9 +259,7 @@ public final class TransitionFilter implements Parcelable {
// only applies to activity/task
&& (change.getTaskInfo() != null
|| change.getActivityComponent() != null)) {
- final TransitionInfo.AnimationOptions opts =
- Flags.moveAnimationOptionsToChange() ? change.getAnimationOptions()
- : info.getAnimationOptions();
+ final TransitionInfo.AnimationOptions opts = change.getAnimationOptions();
if (opts != null) {
boolean canActuallyOverride = change.getTaskInfo() == null
|| opts.getOverrideTaskTransition();
diff --git a/core/java/android/window/TransitionInfo.java b/core/java/android/window/TransitionInfo.java
index 4f34aa36a2043e7a555e11847a1fa81137da2809..32175f122d6114df0da200d222f178399b9c6b33 100644
--- a/core/java/android/window/TransitionInfo.java
+++ b/core/java/android/window/TransitionInfo.java
@@ -57,8 +57,6 @@ import android.view.Surface;
import android.view.SurfaceControl;
import android.view.WindowManager;
-import com.android.window.flags.Flags;
-
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -220,10 +218,6 @@ public final class TransitionInfo implements Parcelable {
private final ArrayList mChanges = new ArrayList<>();
private final ArrayList mRoots = new ArrayList<>();
- // TODO(b/327332488): Clean-up usages after the flag is fully enabled.
- @Deprecated
- private AnimationOptions mOptions;
-
/** This is only a BEST-EFFORT id used for log correlation. DO NOT USE for any real work! */
private int mDebugId = -1;
@@ -238,7 +232,6 @@ public final class TransitionInfo implements Parcelable {
mFlags = in.readInt();
in.readTypedList(mChanges, Change.CREATOR);
in.readTypedList(mRoots, Root.CREATOR);
- mOptions = in.readTypedObject(AnimationOptions.CREATOR);
mDebugId = in.readInt();
mTrack = in.readInt();
}
@@ -250,7 +243,6 @@ public final class TransitionInfo implements Parcelable {
dest.writeInt(mFlags);
dest.writeTypedList(mChanges);
dest.writeTypedList(mRoots, flags);
- dest.writeTypedObject(mOptions, flags);
dest.writeInt(mDebugId);
dest.writeInt(mTrack);
}
@@ -286,18 +278,6 @@ public final class TransitionInfo implements Parcelable {
mRoots.add(other);
}
- /**
- * @deprecated Set {@link AnimationOptions} to change. This method is only used if
- * {@link Flags#FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE} is disabled.
- */
- @Deprecated
- public void setAnimationOptions(@Nullable AnimationOptions options) {
- if (Flags.moveAnimationOptionsToChange()) {
- return;
- }
- mOptions = options;
- }
-
public @TransitionType int getType() {
return mType;
}
@@ -359,16 +339,6 @@ public final class TransitionInfo implements Parcelable {
return mRoots.get(0).mLeash;
}
- /**
- * @deprecated Use {@link Change#getAnimationOptions()} instead. This method is called only
- * if {@link Flags#FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE} is disabled.
- */
- @Deprecated
- @Nullable
- public AnimationOptions getAnimationOptions() {
- return mOptions;
- }
-
/**
* @return the list of {@link Change}s in this transition. The list is sorted top-to-bottom
* in Z (meaning index 0 is the top-most container).
@@ -455,9 +425,6 @@ public final class TransitionInfo implements Parcelable {
StringBuilder sb = new StringBuilder();
sb.append("{id=").append(mDebugId).append(" t=").append(transitTypeToString(mType))
.append(" f=0x").append(Integer.toHexString(mFlags)).append(" trk=").append(mTrack);
- if (mOptions != null) {
- sb.append(" opt=").append(mOptions);
- }
sb.append(" r=[");
for (int i = 0; i < mRoots.size(); ++i) {
if (i > 0) {
@@ -656,8 +623,6 @@ public final class TransitionInfo implements Parcelable {
for (int i = 0; i < mRoots.size(); ++i) {
out.mRoots.add(mRoots.get(i).localRemoteCopy());
}
- // Doesn't have any native stuff, so no need for actual copy
- out.mOptions = mOptions;
return out;
}
@@ -860,9 +825,6 @@ public final class TransitionInfo implements Parcelable {
* Sets {@link AnimationOptions} to override animation.
*/
public void setAnimationOptions(@Nullable AnimationOptions options) {
- if (!Flags.moveAnimationOptionsToChange()) {
- return;
- }
mAnimationOptions = options;
}
diff --git a/core/java/android/window/flags/lse_desktop_experience.aconfig b/core/java/android/window/flags/lse_desktop_experience.aconfig
index f6ed50e866fdd2b5878aa878dc7ac73e5f18b8b4..2e36e9a205bfe08e9b53faf2475451b992fd5402 100644
--- a/core/java/android/window/flags/lse_desktop_experience.aconfig
+++ b/core/java/android/window/flags/lse_desktop_experience.aconfig
@@ -205,6 +205,13 @@ flag {
}
}
+flag {
+ name: "enable_camera_compat_for_desktop_windowing_opt_out_api"
+ namespace: "lse_desktop_experience"
+ description: "Introduces a developer API to opt-out of Camera Compat treatment for fixed-orientation apps in desktop windowing mode"
+ bug: "397165621"
+}
+
flag {
name: "enable_task_stack_observer_in_shell"
namespace: "lse_desktop_experience"
@@ -788,3 +795,20 @@ flag {
description: "Show recent apps in the taskbar overflow."
bug: "368119679"
}
+
+flag {
+ name: "enable_projected_display_desktop_mode"
+ namespace: "lse_desktop_experience"
+ description: "Enable Desktop Mode on Projected Mode devices but constrained to the external display."
+ bug: "384568161"
+}
+
+flag {
+ name: "enable_persisting_density_scale_for_connected_displays"
+ namespace: "lse_desktop_experience"
+ description: "Enables persisting density scale on resolution change for connected displays."
+ bug: "392855657"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
\ No newline at end of file
diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig
index 54d0eeffc9bbcfbd73c83e2ae8358e0871fac6ca..6e45d3dc659fccaaa0a5b57c1e61f3a354ad68c9 100644
--- a/core/java/android/window/flags/windowing_sdk.aconfig
+++ b/core/java/android/window/flags/windowing_sdk.aconfig
@@ -60,16 +60,6 @@ flag {
bug: "293658614"
}
-flag {
- namespace: "windowing_sdk"
- name: "move_animation_options_to_change"
- description: "Move AnimationOptions from TransitionInfo to each Change"
- bug: "327332488"
- metadata {
- purpose: PURPOSE_BUGFIX
- }
-}
-
flag {
namespace: "windowing_sdk"
name: "rear_display_disable_force_desktop_system_decorations"
diff --git a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
index a27eeb8fdd6340d2a387fb1f7464c11b713aa53b..1281a78d4fa235d93f52bfbfd7417fd0198525a7 100644
--- a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
+++ b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
@@ -97,6 +97,8 @@ public class AccessibilityShortcutController {
new ComponentName("com.android.server.accessibility", "ReduceBrightColors");
public static final ComponentName FONT_SIZE_COMPONENT_NAME =
new ComponentName("com.android.server.accessibility", "FontSize");
+ public static final ComponentName AUTOCLICK_COMPONENT_NAME =
+ new ComponentName("com.android.server.accessibility", "Autoclick");
// The component name for the sub setting of Accessibility button in Accessibility settings
public static final ComponentName ACCESSIBILITY_BUTTON_COMPONENT_NAME =
@@ -163,7 +165,7 @@ public class AccessibilityShortcutController {
getFrameworkShortcutFeaturesMap() {
if (sFrameworkShortcutFeaturesMap == null) {
- Map featuresMap = new ArrayMap<>(4);
+ Map featuresMap = new ArrayMap<>(8);
featuresMap.put(COLOR_INVERSION_COMPONENT_NAME,
new ToggleableFrameworkFeatureInfo(
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED,
@@ -174,6 +176,11 @@ public class AccessibilityShortcutController {
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
"1" /* Value to enable */, "0" /* Value to disable */,
R.string.color_correction_feature_name));
+ featuresMap.put(AUTOCLICK_COMPONENT_NAME,
+ new ToggleableFrameworkFeatureInfo(
+ Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED,
+ "1" /* Value to enable */, "0" /* Value to disable */,
+ R.string.autoclick_feature_name));
if (SUPPORT_ONE_HANDED_MODE) {
featuresMap.put(ONE_HANDED_COMPONENT_NAME,
new ToggleableFrameworkFeatureInfo(
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
index b187eb42366f563493bf9199c9edb6c30ac20ea9..6498c53a63e23a2f0ab4a32c838bca149ec73f93 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
@@ -17,6 +17,7 @@
package com.android.internal.accessibility.dialog;
import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.AUTOCLICK_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
@@ -214,6 +215,19 @@ public final class AccessibilityTargetHelper {
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
targets.add(colorInversion);
+ // TODO(b/394683600): Update Icon with the autoclick asset.
+ final ToggleAllowListingFeatureTarget autoclick =
+ new ToggleAllowListingFeatureTarget(context,
+ shortcutType,
+ isShortcutContained(context, shortcutType,
+ AUTOCLICK_COMPONENT_NAME.flattenToString()),
+ AUTOCLICK_COMPONENT_NAME.flattenToString(),
+ uid,
+ context.getString(R.string.autoclick_feature_name),
+ context.getDrawable(R.drawable.ic_accessibility_generic),
+ Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED);
+ targets.add(autoclick);
+
if (SUPPORT_ONE_HANDED_MODE) {
final ToggleAllowListingFeatureTarget oneHandedMode =
new ToggleAllowListingFeatureTarget(context,
diff --git a/core/java/com/android/internal/content/om/OverlayManagerImpl.java b/core/java/com/android/internal/content/om/OverlayManagerImpl.java
index 5d4e6a083af43bed53eed3e4e5151104c1af6b7f..4b3365221bf52d8b50552759a9115ef91981cd07 100644
--- a/core/java/com/android/internal/content/om/OverlayManagerImpl.java
+++ b/core/java/com/android/internal/content/om/OverlayManagerImpl.java
@@ -21,7 +21,6 @@ import static android.content.om.OverlayManagerTransaction.Request.BUNDLE_FABRIC
import static android.content.om.OverlayManagerTransaction.Request.TYPE_REGISTER_FABRICATED;
import static android.content.om.OverlayManagerTransaction.Request.TYPE_UNREGISTER_FABRICATED;
-import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE;
import static com.android.internal.content.om.OverlayConfig.DEFAULT_PRIORITY;
@@ -85,7 +84,6 @@ public class OverlayManagerImpl {
*
* @param context the context to create overlay environment
*/
- @VisibleForTesting(visibility = PACKAGE)
public OverlayManagerImpl(@NonNull Context context) {
mContext = Objects.requireNonNull(context);
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index f1c73dca8574a3afd67af531ca0401165ced85fc..92a841f9c2906b8c14eafbb3abcdca22a74f0f19 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -489,6 +489,7 @@ cc_library_shared_for_libandroid_runtime {
"libsqlite",
"libgui_window_info_static",
"libbinder",
+ "libbinder_ndk",
"libhidlbase", // libhwbinder is in here
],
version_script: "platform/linux/libandroid_runtime_export.txt",
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
index b2649a471b8a03f9f60a95955ec8f83a25901910..a73ff421acf7c60d814c7fb25e540ed0a8a2d944 100644
--- a/core/jni/android_util_AssetManager.cpp
+++ b/core/jni/android_util_AssetManager.cpp
@@ -424,6 +424,15 @@ static void NativeSetConfiguration(JNIEnv* env, jclass /*clazz*/, jlong ptr, jin
assetmanager->SetDefaultLocale(default_locale_int);
}
+static void NativeSetOverlayConstraints(JNIEnv* /*env*/, jclass /*clazz*/, jlong ptr,
+ jint displayId, jint deviceId) {
+ ATRACE_NAME("AssetManager::SetDisplayIdAndDeviceId");
+
+ auto assetmanager = LockAndStartAssetManager(ptr);
+ assetmanager->SetOverlayConstraints(static_cast(displayId),
+ static_cast(deviceId));
+}
+
static jobject NativeGetAssignedPackageIdentifiers(JNIEnv* env, jclass /*clazz*/, jlong ptr,
jboolean includeOverlays,
jboolean includeLoaders) {
@@ -1554,6 +1563,7 @@ static const JNINativeMethod gAssetManagerMethods[] = {
{"nativeSetApkAssets", "(J[Landroid/content/res/ApkAssets;ZZ)V", (void*)NativeSetApkAssets},
{"nativeSetConfiguration", "(JIILjava/lang/String;[Ljava/lang/String;IIIIIIIIIIIIIIIIZ)V",
(void*)NativeSetConfiguration},
+ {"nativeSetOverlayConstraints", "(JII)V", (void*)NativeSetOverlayConstraints},
{"nativeGetAssignedPackageIdentifiers", "(JZZ)Landroid/util/SparseArray;",
(void*)NativeGetAssignedPackageIdentifiers},
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 78526ad4a06b0175b78d535a6c316fda2e90148c..ee6899cf866b495577d2fb0fd2c0c9868225e3ee 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -7759,7 +7759,17 @@
@FlaggedApi("com.android.server.telecom.flags.telecom_resolve_hidden_dependencies")
@hide -->
+ android:protectionLevel="signature"
+ android:featureFlag="!android.permission.flags.grant_read_blocked_numbers_to_system_ui_intelligence" />
+
+
+
+
+
+
+
diff --git a/core/res/res/color-night/surface_effect_3_color.xml b/core/res/res/color-night/surface_effect_3_color.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a7a7f8d895499894300a0f1794fac3b827da115b
--- /dev/null
+++ b/core/res/res/color-night/surface_effect_3_color.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/core/res/res/color/surface_effect_2_color.xml b/core/res/res/color/surface_effect_2_color.xml
new file mode 100644
index 0000000000000000000000000000000000000000..91c84095ec1288fb76a33301b8b93929d4cdf823
--- /dev/null
+++ b/core/res/res/color/surface_effect_2_color.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/core/res/res/color/surface_effect_3_color.xml b/core/res/res/color/surface_effect_3_color.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d766a32aff8b8bf23445ce2a7531cce907d7e1c3
--- /dev/null
+++ b/core/res/res/color/surface_effect_3_color.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/core/res/res/layout/notification_2025_template_header.xml b/core/res/res/layout/notification_2025_template_header.xml
index 5aae67802af9bfda0dc8ba33638c9d28519be21d..72b3798e07806b68ba10fc74677068ee7abb6d0d 100644
--- a/core/res/res/layout/notification_2025_template_header.xml
+++ b/core/res/res/layout/notification_2025_template_header.xml
@@ -59,7 +59,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
- android:layout_toStartOf="@id/expand_button_container"
+ android:layout_toStartOf="@id/expand_button"
android:layout_alignWithParentIfMissing="true"
android:layout_marginVertical="@dimen/notification_2025_margin"
android:clipChildren="false"
@@ -81,30 +81,12 @@
android:focusable="false"
/>
-
-
-
-
-
+ android:layout_gravity="top|end"
+ android:layout_alignParentEnd="true" />
-
-
-
+ android:layout_centerVertical="true"
+ android:layout_alignParentEnd="true" />
-
- "toegang te verkry tot sensordata oor jou lewenstekens""Kennisgewings""wys kennisgewings"
-
-
-
-
-
-
-
-
+ "UR-nasporingdata"
+ "toegang tot UR-data oor jou en die omgewing rondom jou te verkry"
+ "sensitiewe UR-nasporingdata"
+ "toegang tot sensitiewe nasporingdata, soos oogblik, te verkry""Venster-inhoud ophaal""Die inhoud ondersoek van \'n venster waarmee jy interaksie het.""Verken-met-raak aanskakel"
@@ -656,38 +652,22 @@
"Laat die app toe om jou fotoversameling te wysig.""lees liggings in jou mediaversameling""Laat die app toe om liggings in jou mediaversameling te lees."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "jou benaderde oogblik na te spoor"
+ "Laat die app toe om jou benaderde oogblik na te spoor."
+ "waar jy kyk na te spoor"
+ "Gee die app toegang tot presiese oogblikdata."
+ "jou gesig na te spoor"
+ "Gee die app toegang tot gesignasporingdata."
+ "jou hande na te spoor"
+ "Gee die app toegang tot handbewegingnasporingdata."
+ "jou kop na te spoor"
+ "Gee die app toegang tot kopsporingdata."
+ "jou onmiddellike omgewing te verstaan"
+ "Gee die app toegang tot nasporingdata oor die omgewing direk rondom jou."
+ "jou onmiddellike omgewing in fyn detail te verstaan"
+ "Gee die app toegang tot hoogs gedetailleerde spoordata oor die omgewing direk rondom jou."
+ "toegang tot UR-data te verkry terwyl dit nie op die voorgrond is nie"
+ "Gee die app toegang tot UR-data terwyl dit nie in die voorgrond is nie.""Gebruik biometrie""Gebruik biometrie of skermslot""Verifieer dat dit jy is"
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index ca145e58b22da79e0b619e7245f8a0226dd6b20b..f4dabdbe5d87f0676c8b52f54dc3ef54e889fe1d 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -353,14 +353,10 @@
"ስለአስፈላጊ ምልክቶችዎ ያሉ የዳሳሽ ውሂብ ይድረሱ""ማሳወቂያዎች""ማሳወቂያዎች አሳይ"
-
-
-
-
-
-
-
-
+ "XR የመከታተያ ውሂብ"
+ "ስለ እርስዎ እና በዙሪያዎ ስላለው አካባቢ XR ውሂብ ይድረሱ"
+ "ልዩ ጥንቃቄ የሚያስፈልገው XR የመከታተያ ውሂብ"
+ "እንደ የዓይን ትኩረት ያለ ልዩ ጥንቃቄ የሚያስፈልገው የመከታተያ ውሂብ ይድረሱ""የመስኮት ይዘት ሰርስረው ያውጡ""መስተጋበር የሚፈጥሩት የመስኮት ይዘት ይመርምሩ።""በመንካት ያስሱን ያብሩ"
@@ -656,38 +652,22 @@
"መተግበሪያው የፎቶ ስብስብዎን እንዲቀይረው ያስችለዋል።""አካባቢዎችን ከሚዲያ ስብስብዎ ማንበብ""መተግበሪያው አካባቢዎችን ከሚዲያ ስብስብዎ እንዲያነብብ ያስችለዋል።"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "የእርዎን ግምታዊ የዓይን ትኩረት ይከታተሉ"
+ "መተግበሪያው የእርስዎን ግምታዊ የዓይን ትኩረት እንዲከታተል ይፈቅዳል።"
+ "የሚመልከቱበትን ቦታ ይከታተሉ"
+ "መተግበሪያው ትክክለኛ የዓይን ትኩረት ውሂብን እንዲከታተል ይፈቅዳል።"
+ "መልክዎን ይከታተሉ"
+ "መተግበሪያው የመልክ መከታተያ ውሂብን እንዲደርስ ይፈቅዳል።"
+ "እጆችዎን ይከታተሉ"
+ "መተግበሪያው የእጅ ክትትል ውሂብን እንዲደርስ ይፈቅዳል።"
+ "ጭንቅላትዎን ይከታተሉ"
+ "መተግበሪያው የጭንቅላት መከታተያ ውሂብን እንዲደርስ ይፈቅዳል።"
+ "የእርስዎን ቅርብ አካባቢ ይረዱ"
+ "መተግበሪያው በቀጥታ በዙሪያዎ ስላለው አካባቢ ውሂብ መከታተልን እንዲደርስ ይፈቅዳል።"
+ "የእርስዎን ቅርብ አካባቢ በከፍተኛ ዝርዝር ይረዱ"
+ "መተግበሪያው በቀጥታ በዙሪያዎ ስላለው አካባቢ በከፍተኛ ዝርዝር የመከታተያ ውሂብ እንዲደርስ ይፈቅዳል።"
+ "የፊት ገፅ ውስጥ ሳይሆን ሳለ XR ውሂብ ይድረሱ"
+ "መተግበሪያው የፊት ገፅ ውስጥ ሳይሆን XR ውሂብ እንዲደርስ ይፈቅዳል።""ባዮሜትሪኮችን ይጠቀሙ""ባዮሜትሪክስ ወይም ማያ ገፅ መቆለፊያን ይጠቀሙ""እርስዎን መሆንዎን ያረጋግጡ"
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 397afe20abb262c6a38de8f6a6f463aa236143ac..2b9a20a818045809202dcbb6caa6ab7c92f72b91 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -353,14 +353,10 @@
"আপোনাৰ দেহৰ গুৰুত্বপূৰ্ণ অংগসমূহৰ অৱস্থাৰ বিষয়ে ছেন্সৰৰ ডেটা লাভ কৰিব পাৰে""জাননী""জাননী দেখুৱাওক"
-
-
-
-
-
-
-
-
+ "XR ট্ৰেকিং ডেটা"
+ "আপোনাৰ আৰু আপোনাৰ চৌপাশৰ পৰিৱেশ সম্পৰ্কীয় XR ডেটা এক্সেছ কৰা"
+ "সংবেদনশীল XR ট্ৰেকিং ডেটা"
+ "চকুৰ দৃষ্টিৰ দৰে সংবেদনশীল ট্ৰেকিং ডেটা এক্সেছ কৰা""ৱিণ্ড’ সমল বিচাৰি উলিওৱাৰ""আপুনি চাই থকা ৱিণ্ড’খনৰ সমল পৰীক্ষা কৰাৰ।""স্পৰ্শৰ দ্বাৰা অন্বেষণ কৰাৰ সুবিধা অন কৰাৰ"
@@ -656,38 +652,22 @@
"এপক আপোনাৰ ফট’ সংগ্ৰহ সালসলনি কৰিবলৈ দিয়ে।""আপোনাৰ মিডিয়া সংগ্ৰহৰ অৱস্থান পঢ়িবলৈ""এপক আপোনাৰ মিডিয়া সংগ্ৰহৰ অৱস্থান পঢ়িবলৈ দিয়ে।"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "আপোনাৰ আনুমানিক চকুৰ দৃষ্টি ট্ৰেক কৰা"
+ "এপ্টোক আপোনাৰ চকুৰ আনুমানিক দৃষ্টি ট্ৰেক কৰিবলৈ দিয়ে।"
+ "আপুনি কোনফালে চাই আছে সেয়া ট্ৰেক কৰা"
+ "এপ্টোক আপোনাৰ চকুৰ সঠিক দৃষ্টি সম্পৰ্কীয় ডেটা এক্সেছ কৰিবলৈ দিয়ে।"
+ "আপোনাৰ মুখাৱয়ব ট্ৰেক কৰা"
+ "এপ্টোক মুখাৱয়ব ট্ৰেক কৰাৰ ডেটা এক্সেছ কৰিবলৈ দিয়ে।"
+ "আপোনাৰ হাত ট্ৰেক কৰা"
+ "এপ্টোক হাতৰ ট্ৰেকিং সম্পৰ্কীয় ডেটা এক্সেছ কৰিবলৈ দিয়ে।"
+ "আপোনাৰ মূৰ ট্ৰেক কৰা"
+ "এপ্টোক হে’ড ট্ৰেকিং সম্পৰ্কীয় ডেটা এক্সেছ কৰিবলৈ দিয়ে।"
+ "আপোনাৰ একেবাৰেই আশ-পাশৰ পৰিৱেশ বুজা"
+ "এপ্টোক আপোনাৰ একেবাৰেই আশা-পাশৰ পৰিৱেশ সম্পৰ্কীয় ট্ৰেকিং ডেটা এক্সেছ কৰিবলৈ দিয়ে।"
+ "বিস্তৃত সবিশেষৰ সৈতে আপোনাৰ একেবাৰেই আশ-পাশৰ পৰিৱেশ বুজা"
+ "এপ্টোক বিতং সবিশেষৰ সৈতে আপোনাৰ একেবাৰেই আশা-পাশৰ পৰিৱেশ সম্পৰ্কীয় ট্ৰেকিং ডেটা এক্সেছ কৰিবলৈ দিয়ে।"
+ "অগ্ৰভূমিত নথকাৰ সময়ত XR ডেটা এক্সেছ কৰা"
+ "অগ্ৰভূমিত নথকাৰ সময়ত এপ্টোক XR ডেটা এক্সেছ কৰিবলৈ দিয়ে।""বায়\'মেট্ৰিক ব্যৱহাৰ কৰক""বায়\'মেট্ৰিক অথবা স্ক্ৰীন লক ব্যৱহাৰ কৰক""এইয়া আপুনিয়েই বুলি সত্যাপন কৰক"
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 96c77e4ee030db6baa7d2d4941aa73fde9e3fc9d..e5bfb29bdffb2ed830be3fc504b292ec7bea9896 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -353,14 +353,10 @@
"Həyati əlamətlər haqqında sensor dataya daxil olun""Bildirişlər""bildirişləri göstərmək"
-
-
-
-
-
-
-
-
+ "XR izləmə datası"
+ "siz və ətrafınızdakı mühit haqqında XR datasına giriş"
+ "həssas XR izləmə datası"
+ "baxış kimi həssas izləmə datasına giriş""Pəncərənin məzmununu əldə edin""Əlaqədə olduğunuz pəncərənin məzmununu nəzərdən keçirin.""Toxunuşla öyrənmə funksiyasını aktiv edin"
@@ -656,38 +652,22 @@
"Tətbiqin foto kolleksiyanıza düzəliş etməsinə icazə verir.""media kolleksiyanızdan məkanları oxuyun""Tətbiqin media kolleksiyanızdan məkanları oxumasına icazə verin."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "təxmini baxışınızı izləmək"
+ "Tətbiqə təxmini baxışınızı izləmək icazəsi verir."
+ "baxdığınız yeri izləmək"
+ "Tətbiqə dəqiq baxış datasına daxil olmaq icazəsi verir."
+ "üzünüzü izləmək"
+ "Tətbiqə üz izləmə datasına daxil olmaq icazəsi verir."
+ "əllərinizi izləmək"
+ "Tətbiqə əl izləmə datasına daxil olmaq icazəsi verir."
+ "başınızı izləmək"
+ "Tətbiqə baş izləmə datasına daxil olmaq icazəsi verir."
+ "yaxın ətrafınızı anlamaq"
+ "Tətbiqə ətrafınızdakı mühit haqqında izləmə datasına daxil olmaq icazəsi verir."
+ "yaxın ətrafınızı yüksək detallarla anlamaq"
+ "Tətbiqə çox yüksək detallar ilə ətrafınızdakı mühit haqqında izləmə datasına daxil olmaq icazəsi verir."
+ "ön planda olmadıqda XR datasına giriş"
+ "Tətbiqə ön planda olmadıqda XR datasına daxil olmaq icazəsi verir.""Biometrik məlumatlardan istifadə edin""Biometrik məlumatlardan və ya ekran kilidindən istifadə edin""Kimliyinizi doğrulayın"
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 6a68f8d76e30ad476ad60d1bb6ffdd8e0b08cb9d..3e67233da28261d920890672d56dde111998f043 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -354,14 +354,10 @@
"pristupa podacima senzora o vitalnim funkcijama""Obaveštenja""prikazivanje obaveštenja"
-
-
-
-
-
-
-
-
+ "podaci o praćenju proširene stvarnosti"
+ "pristupa podacima proširene stvarnosti o vama i okruženju oko vas"
+ "osetljivi podaci o XR praćenju"
+ "pristupa osetljivim podacima o praćenju, na primer podacima o pogledu""da preuzima sadržaj prozora""Proverava sadržaj prozora sa kojim ostvarujete interakciju.""da uključi Istraživanja dodirom"
@@ -657,38 +653,22 @@
"Dozvoljava aplikaciji da menja kolekciju slika.""čitanje lokacija iz medijske kolekcije""Dozvoljava aplikaciji da čita lokacije iz medijske kolekcije."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "praćenje približnih podataka o pogledu"
+ "Dozvoljava aplikaciji da prati približne podatke o pogledu."
+ "praćenje pogleda"
+ "Dozvoljava aplikaciji da pristupa preciznim podacima o pogledu."
+ "praćenje lica"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju lica."
+ "praćenje ruku"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju ruku."
+ "praćenje glave"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju glave."
+ "razumevanje neposrednog okruženja"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju vašeg neposrednog okruženja."
+ "razumevanje neposrednog okruženja sa mnoštvom detalja"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju vašeg neposrednog okruženja koji sadrže mnoštvo detalja."
+ "pristup podacima proširene stvarnosti kada nije u prvom planu"
+ "Dozvoljava aplikaciji da pristupa podacima proširene stvarnosti kada nije u prvom planu.""Koristite biometriju""Koristite biometriju ili otključavanje ekrana""Potvrdite identitet"
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 69271ba47c0a9a773e74deebc48713f2763a6ec8..d01af94644024d3eab85cdd98c2852ea0bd15c71 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -355,14 +355,10 @@
"атрымліваць з датчыка даныя асноўных фізіялагічных паказчыкаў""Апавяшчэнні""паказваць апавяшчэнні"
-
-
-
-
-
-
-
-
+ "даныя XR адсочвання"
+ "атрымліваць доступ да даных XR пра вас і ваша блізкае асяроддзе"
+ "канфідэнцыяльныя даныя XR адсочвання"
+ "атрымліваць доступ да канфідэнцыяльных даных адсочвання, напрыклад позірку""Атрымліваць змесціва вакна""Аналізаваць змесціва актыўнага вакна.""Уключаць Азнаямленне дотыкам"
@@ -658,38 +654,22 @@
"Праграма зможа змяняць фотакалекцыю.""паказваць месцазнаходжанне ў калекцыі мультымедыя""Праграма зможа паказваць месцазнаходжанне ў калекцыі мультымедыя."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "адсочваць прыблізны напрамак позірку"
+ "Дазваляе праграме адсочваць прыблізны напрамак позірку."
+ "адсочваць, куды вы гледзіце"
+ "Дазваляе праграме атрымліваць доступ да дакладных даных позірку."
+ "адсочваць рухі твару"
+ "Дазваляе праграме атрымліваць доступ да даных адсочвання рухаў твару."
+ "адсочваць рухі рук"
+ "Дазваляе праграме атрымліваць доступ да даных адсочвання рухаў рук."
+ "адсочваць рухі галавы"
+ "Дазваляе праграме атрымліваць доступ да даных адсочвання рухаў галавы."
+ "счытваць ваша блізкае асяроддзе"
+ "Дазваляе праграме атрымліваць доступ да даных адсочвання вашага блізкага асяроддзя."
+ "счытваць ваша блізкае асяроддзе з высокай дэталізацыяй"
+ "Дазваляе праграме атрымліваць доступ да даных адсочвання вашага блізкага асяроддзя з вялікай дэталізацыяй."
+ "атрымліваць доступ да даных XR, калі праграма не ў актыўным рэжыме"
+ "Дазваляе праграме атрымліваць доступ да даных XR, калі яна працуе не ў актыўным рэжыме.""Выкарыстоўваць біяметрыю""Выкарыстоўваць біяметрыю ці блакіроўку экрана""Спраўдзіце, што гэта вы"
@@ -1846,7 +1826,7 @@
"Пераключыцца""Налады""Бягучы карыстальнік %1$s."
- "Пераход у рэжым \"%1$s\"..."
+ "Пераключэнне на карыстальніка \"%1$s\"…""%1$s выходзіць з сістэмы…""Уладальнік""Госць"
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 1581ab8a55457edcbe8fafcd0bee1a98b10003d6..0083ddea18f3397c1aff138543f7ad1cae575cfd 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -353,14 +353,10 @@
"достъп до сензорните данни за жизнените ви показатели""Известия""показване на известията"
-
-
-
-
-
-
-
-
+ "Данни за XR за проследяване"
+ "достъп до данните за XR за вас и заобикалящата ви среда"
+ "поверителни данни за XR за проследяване"
+ "достъп до поверителните данни за проследяване, като например погледа""Извлича съдържанието от прозореца""Инспектира съдържанието на прозорец, с който взаимодействате.""Включи изследването чрез докосване"
@@ -656,38 +652,22 @@
"Разрешава на приложението да променя колекцията ви от снимки.""да чете местоположенията от мултимедийната ви колекция""Разрешава на приложението да чете местоположенията от мултимедийната ви колекция."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "проследяване на погледа ви с ниска точност"
+ "Разрешава на приложението да проследява погледа ви с ниска точност."
+ "проследяване на погледа ви"
+ "Разрешава на приложението да осъществява достъп до данните за погледа ви с висока точност."
+ "проследяване на лицето ви"
+ "Разрешава на приложението да осъществява достъп до данните за проследяване на лицето."
+ "проследяване на ръцете ви"
+ "Разрешава на приложението да осъществява достъп до данните за проследяване на ръцете."
+ "проследяване на движенията на главата ви"
+ "Разрешава на приложението да осъществява достъп до данните за проследяване на движенията на главата."
+ "разбиране на заобикалящата ви среда"
+ "Разрешава на приложението да осъществява достъп до данните за проследяване на заобикалящата ви среда."
+ "разпознаване на заобикалящата ви среда с висока детайлност"
+ "Разрешава на приложението да осъществява достъп до данните за проследяване на заобикалящата ви среда с много висока детайлност."
+ "достъп до данните за XR, когато не е на преден план"
+ "Разрешава на приложението да осъществява достъп до данните за XR, когато не е на преден план.""Използване на биометр. данни""Използване на биометрични данни или опцията за заключване на екрана""Потвърдете, че сте вие"
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index c05ea6dcbf00d5a887a897c075ac84ab7c44f9a3..298be5147ccd3e6c51cb1cbc496d4b312ada6df0 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -353,14 +353,10 @@
"আপনার অত্যাবশ্যক লক্ষণগুলির সম্পর্কে সেন্সর ডেটা অ্যাক্সেস করে""বিজ্ঞপ্তি""বিজ্ঞপ্তি দেখুন"
-
-
-
-
-
-
-
-
+ "XR ট্র্যাকিং ডেটা"
+ "আপনার এবং আপনার চারপাশের পরিবেশ সম্পর্কে XR ডেটা অ্যাক্সেস করুন"
+ "সংবেদনশীল XR ট্র্যাকিং ডেটা"
+ "সংবেদনশীল ট্র্যাকিং ডেটা অ্যাক্সেস করুন, যেমন চোখের দৃষ্টি""উইন্ডোর কন্টেন্ট ফিরিয়ে আনুন""ব্যবহার করছেন এমন একটি উইন্ডোর কন্টেন্ট পরীক্ষা করে৷""স্পর্শের মাধ্যমে অন্বেষণ করা চালু করুন"
@@ -656,38 +652,22 @@
"অ্যাপকে আপনার ফটো সংগ্রহ পরিবর্তন করার অনুমতি দিন।""ডিয়া সংগ্রহ থেকে লোকেশন দেখতে দিন""আপনার মিডিয়া সংগ্রহ থেকে লোকেশন দেখতে অ্যাপকে অনুমতি দিন।"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "আপনার আনুমানিক চোখের দৃষ্টি ট্র্যাক করুন"
+ "অ্যাপটিকে আপনার আনুমানিক চোখের দৃষ্টি ট্র্যাক করার অনুমতি দেয়।"
+ "কোনদিকে দেখছেন তা ট্র্যাক করুন"
+ "অ্যাপটিকে আপনার চোখের দৃষ্টি সম্পর্কিত নির্দিষ্ট ডেটা অ্যাক্সেস করার অনুমতি দেয়।"
+ "নিজের ফেস ট্র্যাক করুন"
+ "অ্যাপটিকে ফেস ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"
+ "হাত ট্র্যাক করুন"
+ "অ্যাপটিকে হ্যান্ড ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"
+ "আপনার মাথা ট্র্যাক করুন"
+ "অ্যাপটিকে হেড ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"
+ "আপনার চারপাশের পরিবেশ সম্পর্কে বুঝুন"
+ "অ্যাপটিকে সরাসরি আপনার চারপাশের পরিবেশ সম্পর্কে ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"
+ "সূক্ষ্ম বিশদ বিবরণ সহ আপনার চারপাশের পরিবেশ সম্পর্কে বুঝুন"
+ "অ্যাপটিকে সরাসরি আপনার চারপাশের পরিবেশ সম্পর্কে সূক্ষ্ম বিবরণ সহ ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"
+ "ফোরগ্রাউন্ডে না থাকাকালীন XR ডেটা অ্যাক্সেস করুন"
+ "অ্যাপটিকে ফোরগ্রাউন্ডে না থাকাকালীন XR ডেটা অ্যাক্সেস করার অনুমতি দেয়।""বায়োমেট্রিক্স ব্যবহার করুন""বায়োমেট্রিক্স অথবা স্ক্রিন লক ব্যবহার করুন""আপনার পরিচয় যাচাই করুন"
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index ebef234f02bcb7792420eaeb3f7837f69b4f1f61..6a54f651aaa63985a5ea1a22ac011ab6117ea643 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -354,14 +354,10 @@
"pristupa podacima senzora o vašim vitalnim funkcijama""Obavještenja""prikaz obavještenja"
-
-
-
-
-
-
-
-
+ "podaci o XR praćenju"
+ "pristup XR podacima o vama i vašoj okolini"
+ "osjetljivi podaci o XR praćenju"
+ "pristup osjetljivim podacima o praćenju, npr. praćenju pogleda""preuzimati sadržaj prozora""Pregleda sadržaj prozora koji trenutno koristite.""uključiti Istraživanje dodirom"
@@ -657,38 +653,22 @@
"Omogućava aplikaciji da mijenja vašu kolekciju fotografija.""čitanje lokacija iz kolekcije medija""Omogućava aplikaciji da čita lokacije iz vaše kolekcije medija."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "približno praćenje vašeg pogleda"
+ "Dozvoljava aplikaciji da približno prati vaš pogled."
+ "praćenje u šta gledate"
+ "Dozvoljava aplikaciji da pristupa preciznim podacima o pogledu."
+ "praćenje vašeg lica"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju lica."
+ "praćenje vaših ruku"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju ruku."
+ "praćenje položaja vaše glave"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju položaja glave."
+ "utvrđivanje vaše neposredne okoline"
+ "Dozvoljava aplikaciji da pristupa podacima o praćenju vaše neposredne okoline."
+ "veoma detaljno utvrđivanje vaše neposredne okoline"
+ "Dozvoljava aplikaciji da pristupa podacima o veoma detaljnom praćenju vaše neposredne okoline."
+ "pristup XR podacima dok aplikacija nije u prvom planu"
+ "Dozvoljava aplikaciji da pristupa XR podacima dok nije u prvom planu.""Koristi biometriju""Koristi biometriju ili zaključavanje ekrana""Potvrdite identitet"
@@ -2187,7 +2167,7 @@
"Odmah se evakuirajte iz priobalnih područja i područja oko rijeka na sigurnije mjesto kao što su viši predjeli.""Ostanite smireni i potražite sklonište u blizini.""Test poruka za hitne slučajeve"
- "Odgovori"
+ "Odgovorite""SIM kartica nije dozvoljena za govor""SIM kartica nije dodijeljena za govor"
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 6ddfeaf18d00e448e64793ad04ea05ef0bcfec2c..63fbb072625acdb8477b0e6d0d9bc8a54fa06cab 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -354,14 +354,10 @@
"accedir a les dades del sensor sobre les constants vitals""Notificacions""mostra notificacions"
-
-
-
-
-
-
-
-
+ "dades de seguiment d\'XR"
+ "accedir a les dades d\'XR sobre tu i l\'entorn que t\'envolta"
+ "dades de seguiment d\'XR sensibles"
+ "accedir a les dades de seguiment sensibles, com ara la mirada""Recuperar el contingut de la finestra""Inspeccionar el contingut d\'una finestra amb què estàs interaccionant.""Activar Exploració tàctil"
@@ -657,38 +653,22 @@
"Permet que l\'aplicació modifiqui la teva col·lecció de fotos.""llegir les ubicacions de les teves col·leccions multimèdia""Permet que l\'aplicació llegeixi les ubicacions de les teves col·leccions multimèdia."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "seguir la teva mirada aproximada"
+ "Permet que l\'aplicació segueixi la teva mirada aproximada."
+ "seguir on estàs mirant"
+ "Permet que l\'aplicació accedeixi a les dades precises de la mirada."
+ "seguir la teva cara"
+ "Permet que l\'aplicació accedeixi a les dades de seguiment de la cara."
+ "seguir les teves mans"
+ "Permet que l\'aplicació accedeixi a les dades de seguiment de mans."
+ "seguir el teu cap"
+ "Permet que l\'aplicació accedeixi a les dades de seguiment del cap."
+ "entendre l\'entorn que t\'envolta directament"
+ "Permet que l\'aplicació accedeixi a les dades de seguiment de l\'entorn que t\'envolta directament."
+ "entendre l\'entorn que t\'envolta directament amb molt de detall"
+ "Permet que l\'aplicació accedeixi a les dades de seguiment de l\'entorn que t\'envolta directament amb molt de detall."
+ "accedir a les dades d\'XR quan no s\'utilitzi en primer pla"
+ "Permet que l\'aplicació accedeixi a les dades d\'XR quan no s\'utilitzi en primer pla.""Utilitza la biometria""Fes servir la biometria o el bloqueig de pantalla""Verifica la teva identitat"
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 5e596fc0d4c5c4756107a4a9890459fd5c18f0b4..5d0edf308b3381e13aecf4e3e1eebdd18b98ee39 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -355,14 +355,10 @@
"přístup k datům ze senzorů vašich životních funkcí""Oznámení""zobrazovat oznámení"
-
-
-
-
-
-
-
-
+ "data pro rozšířenou realitu"
+ "přístup k datům o vás a okolním prostředí pro rozšířenou realitu"
+ "citlivá data pro rozšířenou realitu"
+ "přístup k citlivým datům o sledování, jako je například směr pohledu""Načítat obsah oken""Může prozkoumávat obsah oken, se kterými pracujete.""Zapnout funkci Prozkoumání dotykem"
@@ -658,38 +654,22 @@
"Umožňuje aplikaci upravit vaši sbírku fotek.""čtení míst ze sbírky médií""Umožňuje aplikaci číst místa z vaší sbírky médií."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "sledování přibližného směru pohledu"
+ "Umožňuje aplikaci sledovat, kam se přibližně díváte."
+ "sledování, kam se díváte"
+ "Umožňuje aplikaci přistupovat k přesným údajům o tom, kam se díváte."
+ "sledování obličeje"
+ "Umožňuje aplikaci přistupovat k datům o sledování obličeje."
+ "sledování rukou"
+ "Umožňuje aplikaci přistupovat k datům o sledování rukou."
+ "sledování hlavy"
+ "Umožňuje aplikaci přistupovat k datům o sledování hlavy."
+ "porozumění bezprostřednímu okolí"
+ "Umožňuje aplikaci přistupovat k datům o prostředí kolem vás."
+ "detailní porozumění bezprostřednímu okolí"
+ "Umožňuje aplikaci přistupovat k velmi detailním datům o prostředí kolem vás."
+ "přístup k datům pro rozšířenou realitu na pozadí"
+ "Umožňuje aplikaci přistupovat k datům pro rozšířenou reality, když není v popředí.""Použít biometrii""Použít biometrii nebo zámek obrazovky""Potvrďte, že jste to vy"
@@ -2144,7 +2124,7 @@
"Filmy a video""Fotky a obrázky""Sociální sítě a komunikace"
- "Zprávy a časopisy"
+ "Noviny a časopisy""Mapy a navigace""Produktivita""Přístupnost"
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 8cc1cfe2a277cea0a799ddf3c5a755337860882e..a8530764cd61a8096eb321817c37e68beaa830f4 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -353,14 +353,10 @@
"få adgang til sensordata om dine vitale værdier""Notifikationer""vise notifikationer"
-
-
-
-
-
-
-
-
+ "XR-sporingsdata"
+ "tilgå XR-data om dig og dine nærmeste omgivelser"
+ "følsomme XR-sporingsdata"
+ "tilgå følsomme sporingsdata, f.eks. øjenbevægelser""Hente indholdet i vinduet""Undersøge indholdet i et vindue, du interagerer med.""Aktivere Udforsk ved berøring"
@@ -656,38 +652,22 @@
"Tillader, at appen kan ændre din billedsamling.""læse lokationer fra din mediesamling""Tillader, at appen kan læse lokationer fra din mediesamling."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "registrer dine omtrentlige øjenbevægelser"
+ "Tillader, at appen registrerer dine omtrentlige øjenbevægelser."
+ "registrer, hvor du kigger hen"
+ "Tillader, at appen kan få adgang til præcise data om øjenbevægelser."
+ "registrer dit ansigt"
+ "Tillader, at appen kan få adgang til data om ansigtssporing."
+ "registrer dine hænder"
+ "Tillader, at appen kan få adgang til data om registrering af håndbevægelser."
+ "registrer dit hoved"
+ "Tillader, at appen kan få adgang til data om registrering af hovedbevægelser."
+ "forstå dine nærmeste omgivelser"
+ "Tillader, at appen kan få adgang til sporingsdata om omgivelser i nærheden."
+ "forstå dine nærmeste omgivelser i detaljer"
+ "Tillader, at appen kan få adgang til sporingsdata om omgivelser i nærheden med meget detaljerede oplysninger."
+ "tilgå XR-data, når appen ikke kører i forgrunden"
+ "Tillader, at appen kan få adgang til XR-data, når den ikke kører i forgrunden.""Brug biometri""Brug biometri eller skærmlås""Verificer, at det er dig"
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 7d5672b6fb165465cdb3d7d009a29bd06088c966..81a331d2fd31c9ad09e6eff72cde8d697836f681 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -353,14 +353,10 @@
"auf Sensordaten zu deinen Vitaldaten zugreifen""Benachrichtigungen""Benachrichtigungen anzeigen"
-
-
-
-
-
-
-
-
+ "XR-Trackingdaten"
+ "auf XR-Daten zu dir und deiner Umgebung zugreifen"
+ "sensible XR-Trackingdaten"
+ "auf sensible Trackingdaten wie Daten zu Blickbewegungen zugreifen""Fensterinhalte abrufen""Die Inhalte eines Fensters, mit dem du interagierst, werden abgerufen.""\"Tippen & Entdecken\" aktivieren"
@@ -656,38 +652,22 @@
"Ermöglicht der App, deine Fotosammlung zu ändern.""Standorte aus meiner Mediensammlung abrufen""Ermöglicht der App, Standorte aus deiner Mediensammlung abzurufen."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ungefähre Blickbewegungen erfassen"
+ "Ermöglicht der App, deine ungefähren Blickbewegungen zu erfassen."
+ "erfassen, wo du gerade hinschaust"
+ "Ermöglicht der App, auf präzise Daten zu Blickbewegungen zuzugreifen."
+ "Gesichtsbewegungen erfassen"
+ "Ermöglicht der App, auf Daten zur Erfassung von Gesichtsbewegungen zuzugreifen."
+ "Handbewegungen erfassen"
+ "Ermöglicht der App, auf Daten zur Erfassung von Handbewegungen zuzugreifen."
+ "Kopfbewegungen erfassen"
+ "Ermöglicht der App, auf Daten zur Erfassung von Kopfbewegungen zuzugreifen."
+ "auf Daten zu deiner unmittelbaren Umgebung zugreifen"
+ "Ermöglicht der App, auf Trackingdaten zu deiner unmittelbaren Umgebung zuzugreifen."
+ "auf sehr detaillierte Daten zu deiner unmittelbaren Umgebung zugreifen"
+ "Ermöglicht der App, auf sehr detaillierte Trackingdaten zu deiner unmittelbaren Umgebung zuzugreifen."
+ "auf XR-Daten zugreifen, wenn die App im Hintergrund ausgeführt wird"
+ "Ermöglicht der App, auf XR-Daten zuzugreifen, wenn sie im Hintergrund ausgeführt wird.""Biometrisches Verfahren nutzen""Biometrisches Verfahren oder Displaysperre verwenden""Deine Identität bestätigen"
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 84ca5b7808b7e37baee600ecc240a7ac77318859..f4fb932b6cbf15dd455f9d7de94db565b0513512 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -353,14 +353,10 @@
"πρόσβαση στα δεδομένα αισθητήρα σχετικά με τις ζωτικές ενδείξεις σας""Ειδοποιήσεις""εμφάνιση ειδοποιήσεων"
-
-
-
-
-
-
-
-
+ "Δεδομένα παρακολούθησης XR"
+ "πρόσβαση σε δεδομένα XR για εσάς και το περιβάλλον γύρω σας"
+ "ευαίσθητα δεδομένα παρακολούθησης XR"
+ "πρόσβαση σε ευαίσθητα δεδομένα παρακολούθησης, όπως είναι η εστίαση των ματιών""Ανάκτηση του περιεχομένου του παραθύρου""Έλεγχος του περιεχομένου ενός παραθύρου με το οποίο αλληλεπιδράτε.""Ενεργοποίηση της \"Εξερεύνησης με άγγιγμα\""
@@ -656,38 +652,22 @@
"Επιτρέπει στην εφαρμογή να τροποποιήσει τη συλλογή φωτογραφιών σας.""ανάγνωση τοποθεσιών από τη συλλογή πολυμέσων σας""Επιτρέπει στην εφαρμογή να διαβάσει τοποθεσίες από τη συλλογή πολυμέσων σας."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "παρακολούθηση της εστίασης των ματιών κατά προσέγγιση"
+ "Επιτρέπει στην εφαρμογή να παρακολουθεί την εστίαση των ματιών κατά προσέγγιση."
+ "παρακολούθηση του σημείου που κοιτάτε"
+ "Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε ακριβή δεδομένα της εστίασης των ματιών."
+ "παρακολούθηση του προσώπου"
+ "Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης προσώπου."
+ "παρακολούθηση των κινήσεων των χεριών"
+ "Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης χεριού."
+ "παρακολούθηση της κίνησης του κεφαλιού"
+ "Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης κίνησης κεφαλιού."
+ "κατανόηση του άμεσου περιβάλλοντος"
+ "Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης του περιβάλλοντος γύρω σας."
+ "κατανόηση του άμεσου περιβάλλοντος με μεγάλη λεπτομέρεια"
+ "Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης του περιβάλλοντος γύρω σας με εξαιρετική λεπτομέρεια."
+ "πρόσβαση σε δεδομένα XR, όταν δεν βρίσκεται στο προσκήνιο"
+ "Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα XR, όταν δεν βρίσκεται στο προσκήνιο.""Χρήση βιομετρικών""Χρήση βιομετρικών ή κλειδώματος οθόνης""Επαλήθευση ταυτότητας"
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index ef7238ce249e44cff97a4372da21333c37039d47..3b4f52ccfdda9b80ecd7f80348ccbcb3cd076d64 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -353,14 +353,10 @@
"access sensor data about your vital signs""Notifications""show notifications"
-
-
-
-
-
-
-
-
+ "XR tracking data"
+ "access XR data about you and the environment around you"
+ "sensitive XR tracking data"
+ "access sensitive tracking data, such as eye gaze""Retrieve window content""Inspect the content of a window you\'re interacting with.""Turn on Explore by Touch"
@@ -656,38 +652,22 @@
"Allows the app to modify your photo collection.""read locations from your media collection""Allows the app to read locations from your media collection."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "track your approximate eye gaze"
+ "Allows the app to track your approximate eye gaze."
+ "track where you are looking"
+ "Allows the app to access precise eye-gaze data."
+ "track your face"
+ "Allows the app to access face-tracking data."
+ "track your hands"
+ "Allows the app to access hand-tracking data."
+ "track your head"
+ "Allows the app to access head-tracking data."
+ "understand your immediate environment"
+ "Allows the app to access tracking data about the environment directly around you."
+ "understand your immediate environment at high detail"
+ "Allows the app to access tracking data about the environment directly around you with very high detail."
+ "access XR data while not in the foreground"
+ "Allows the app to access XR data while not in the foreground.""Use biometrics""Use biometrics or screen lock""Verify that it’s you"
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 7e837390ad9835cb3503de6acd9bc22693fccca3..79020c58479a65659e9d08b806f522e40ca17c14 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -353,14 +353,10 @@
"access sensor data about your vital signs""Notifications""show notifications"
-
-
-
-
-
-
-
-
+ "XR tracking data"
+ "access XR data about you and the environment around you"
+ "sensitive XR tracking data"
+ "access sensitive tracking data, such as eye gaze""Retrieve window content""Inspect the content of a window you\'re interacting with.""Turn on Explore by Touch"
@@ -656,38 +652,22 @@
"Allows the app to modify your photo collection.""read locations from your media collection""Allows the app to read locations from your media collection."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "track your approximate eye gaze"
+ "Allows the app to track your approximate eye gaze."
+ "track where you are looking"
+ "Allows the app to access precise eye gaze data."
+ "track your face"
+ "Allows the app to access face tracking data."
+ "track your hands"
+ "Allows the app to access hand tracking data."
+ "track your head"
+ "Allows the app to access head tracking data."
+ "understand your immediate environment"
+ "Allows the app to access tracking data about the environment directly around you."
+ "understand your immediate environment at high detail"
+ "Allows the app to access tracking data about the environment directly around you with very high detail."
+ "access XR data while not in the foreground"
+ "Allows the app to access XR data while not in the foreground.""Use biometrics""Use biometrics or screen lock""Verify it’s you"
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 5b99b57a0d406ace7c7540386119db6da8867d36..2c5cf4da48d2c41098b0ceb49f067dc3b13c53b9 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -353,14 +353,10 @@
"access sensor data about your vital signs""Notifications""show notifications"
-
-
-
-
-
-
-
-
+ "XR tracking data"
+ "access XR data about you and the environment around you"
+ "sensitive XR tracking data"
+ "access sensitive tracking data, such as eye gaze""Retrieve window content""Inspect the content of a window that you\'re interacting with.""Turn on Explore by Touch"
@@ -656,38 +652,22 @@
"Allows the app to modify your photo collection.""read locations from your media collection""Allows the app to read locations from your media collection."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "track your approximate eye gaze"
+ "Allows the app to track your approximate eye gaze."
+ "track where you are looking"
+ "Allows the app to access precise eye-gaze data."
+ "track your face"
+ "Allows the app to access face-tracking data."
+ "track your hands"
+ "Allows the app to access hand-tracking data."
+ "track your head"
+ "Allows the app to access head-tracking data."
+ "understand your immediate environment"
+ "Allows the app to access tracking data about the environment directly around you."
+ "understand your immediate environment at high detail"
+ "Allows the app to access tracking data about the environment directly around you with very high detail."
+ "access XR data while not in the foreground"
+ "Allows the app to access XR data while not in the foreground.""Use biometrics""Use biometrics or screen lock""Verify that it’s you"
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 5ba765bc68de560ed316358a6a4f8f5243f68199..65ebd0d38c0c2986e638bf6e5872a2e16d3a19c6 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -353,14 +353,10 @@
"access sensor data about your vital signs""Notifications""show notifications"
-
-
-
-
-
-
-
-
+ "XR tracking data"
+ "access XR data about you and the environment around you"
+ "sensitive XR tracking data"
+ "access sensitive tracking data, such as eye gaze""Retrieve window content""Inspect the content of a window you\'re interacting with.""Turn on Explore by Touch"
@@ -656,38 +652,22 @@
"Allows the app to modify your photo collection.""read locations from your media collection""Allows the app to read locations from your media collection."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "track your approximate eye gaze"
+ "Allows the app to track your approximate eye gaze."
+ "track where you are looking"
+ "Allows the app to access precise eye-gaze data."
+ "track your face"
+ "Allows the app to access face-tracking data."
+ "track your hands"
+ "Allows the app to access hand-tracking data."
+ "track your head"
+ "Allows the app to access head-tracking data."
+ "understand your immediate environment"
+ "Allows the app to access tracking data about the environment directly around you."
+ "understand your immediate environment at high detail"
+ "Allows the app to access tracking data about the environment directly around you with very high detail."
+ "access XR data while not in the foreground"
+ "Allows the app to access XR data while not in the foreground.""Use biometrics""Use biometrics or screen lock""Verify that it’s you"
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index d3258dde67214d9ed559bbb623db30522ee2d41e..c9bb39cc1fe8a9ef37494ca93068b4b601aa5a6b 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -282,7 +282,7 @@
"Modo silencioso""El sonido está Desactivado""El sonido está Activado"
- "Modo de avión"
+ "Modo avión""El modo avión está Activado""El modo avión está Desactivado""Configuración"
@@ -354,14 +354,10 @@
"acceder a los datos de sensores acerca de tus signos vitales""Notificaciones""mostrar notificaciones"
-
-
-
-
-
-
-
-
+ "datos de seguimiento de realidad extendida"
+ "acceder a datos de realidad extendida sobre ti y el entorno que te rodea"
+ "datos sensibles de seguimiento de realidad extendida"
+ "acceder a datos de seguimiento sensibles, como la mirada""Recuperar el contenido de las ventanas""Inspeccionará el contenido de la ventana con la que estés interactuando.""Activar la Exploración táctil"
@@ -657,38 +653,22 @@
"Permite que la app modifique tu colección de fotos.""leer ubicaciones de tu colección de contenido multimedia""Permite que la app lea las ubicaciones de tu colección de contenido multimedia."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "seguimiento aproximado de la mirada"
+ "Permite que la app haga un seguimiento aproximado de tu mirada."
+ "seguimiento de la dirección de la mirada"
+ "Permite que la app acceda a datos precisos de la mirada."
+ "seguimiento de tu rostro"
+ "Permite que la app acceda a los datos de seguimiento de rostros."
+ "seguimiento de tus manos"
+ "Permite que la app acceda a los datos de seguimiento de manos."
+ "seguimiento de tu cabeza"
+ "Permite que la app acceda a los datos de seguimiento de la cabeza."
+ "comprensión de tu entorno inmediato"
+ "Permite que la app acceda a los datos de seguimiento del entorno que te rodea directamente."
+ "comprensión de tu entorno inmediato con gran detalle"
+ "Permite que la app acceda a datos de seguimiento del entorno que te rodea directamente con mucho detalle."
+ "acceso a los datos de realidad extendida cuando no está en primer plano"
+ "Permite que la app acceda a los datos de realidad extendida cuando no está en primer plano.""Usar datos biométricos""Usar datos biométricos o bloqueo de pantalla""Comprueba que eres tú"
@@ -2260,7 +2240,7 @@
"Hoja de cálculo %1$s""Presentación""Presentación %1$s"
- "La conexión Bluetooth permanecerá activa durante el modo de avión"
+ "La conexión Bluetooth permanecerá activa durante el modo avión""Cargando""{count,plural, =1{{file_name} y # archivo más}many{{file_name} y # archivos más}other{{file_name} y # archivos más}}""No hay personas recomendadas con quienes compartir"
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index c021a8afde4f9aa7eac307a7620e3e9356f820d0..63fc2769adc70ec1520ab5247611ed2797e405c9 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -354,14 +354,10 @@
"acceder a datos de sensores de tus constantes vitales""Notificaciones""mostrar notificaciones"
-
-
-
-
-
-
-
-
+ "datos de seguimiento de RE"
+ "acceder a datos de RE sobre ti y el entorno que te rodea"
+ "datos de seguimiento de RE sensibles"
+ "acceder a datos de seguimiento sensibles, como la mirada""Comprobar el contenido de la ventana""Inspecciona el contenido de una ventana con la que estés interactuando.""Activar la exploración táctil"
@@ -657,38 +653,22 @@
"Permite que la aplicación modifique tu colección de fotos.""leer las ubicaciones de tu colección de contenido multimedia""Permite que la aplicación lea las ubicaciones de tu colección de contenido multimedia."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "hacer un seguimiento de tu mirada de forma aproximada"
+ "Permite que la aplicación haga un seguimiento de tu mirada de forma aproximada."
+ "hacer un seguimiento de hacia dónde miras"
+ "Permite que la aplicación acceda a los datos precisos de la mirada."
+ "hacer un seguimiento de tu cara"
+ "Permite que la aplicación acceda a los datos de seguimiento facial."
+ "hacer un seguimiento de tus manos"
+ "Permite que la aplicación acceda a los datos de seguimiento de manos."
+ "hacer un seguimiento de tu cabeza"
+ "Permite que la aplicación acceda a los datos de seguimiento de cabeza."
+ "entender tu entorno inmediato"
+ "Permite que la aplicación acceda a los datos de seguimiento sobre el entorno que te rodea de forma directa."
+ "entender tu entorno inmediato con un nivel alto de detalle"
+ "Permite que la aplicación acceda a datos de seguimiento sobre el entorno que te rodea de forma directa con un nivel de detalle muy alto."
+ "acceder a datos de RE cuando no está en primer plano"
+ "Permite que la aplicación acceda a los datos de RE cuando no está en primer plano.""Usar biometría""Usar biometría o bloqueo de pantalla""Verifica que eres tú"
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index ae215833cdd609b7cef8101584a9c28d7f36ec5d..c9b29c3a819228811e9ed3c9f8e0976c96bd7d88 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -353,14 +353,10 @@
"juurdepääs anduri andmetele teie eluliste näitajate kohta""Märguanded""märguannete kuvamine"
-
-
-
-
-
-
-
-
+ "XR-i jälgimise andmed"
+ "juurdepääs XR-i andmetele teie ja teid ümbritseva keskkonna kohta"
+ "delikaatsed XR-i jälgimise andmed"
+ "juurdepääs delikaatsetele jälgimisandmetele, näiteks pilgule""Akna sisu toomine""Kasutatava akna sisu kontrollimine.""Puudutusega sirvimise sisselülitamine"
@@ -656,38 +652,22 @@
"Võimaldab rakendusel muuta teie fotokogu.""Lugeda teie meediakogus olevaid asukohti""Võimaldab rakendusel lugeda teie meediakogus olevaid asukohti."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ligikaudse pilgu jälgimine"
+ "Võimaldab rakendusel teie pilku ligikaudselt jälgida."
+ "pilgu suuna jälgimine"
+ "Võimaldab rakendusel juurde pääseda täpsetele pilguandmetele."
+ "näo jälgimine"
+ "Võimaldab rakendusel juurde pääseda näo jälgimise andmetele."
+ "käteliigutuste jälgimine"
+ "Võimaldab rakendusel juurde pääseda käeliigutuste jälgimise andmetele."
+ "pea jälgimine"
+ "Võimaldab rakendusel juurde pääseda peajälgimise andmetele."
+ "vahetu keskkonna mõistmine"
+ "Võimaldab rakendusel juurde pääseda teie vahetu keskkonna jälgimisandmetele."
+ "vahetu keskkonna väga üksikasjalik mõistmine"
+ "Võimaldab rakendusel pääseda väga üksikasjalikult juurde teie vahetu keskkonna jälgimisandmetele."
+ "juurdepääs XR-i andmetele, kui see pole esiplaanil"
+ "Võimaldab rakendusel pääseda juurde XR-i andmetele, kui see pole esiplaanil.""Biomeetria kasutamine""Biomeetria või ekraaniluku kasutamine""Kinnitage oma isik"
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index a78754ff28c5d17464fdeb2bd8034b75f1ef67e7..88bb3c95e1aa0b7c80ca938f09d1236be43b4856 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -353,14 +353,10 @@
"atzitu bizi-konstanteei buruzko sentsorearen datuak""Jakinarazpenak""jakinarazpenak erakutsi"
-
-
-
-
-
-
-
-
+ "EHko jarraipen-datuak"
+ "zuri eta inguruko inguruneari buruzko EHko datuak erabili"
+ "kontuzko EHko jarraipen-datuak"
+ "kontuzko jarraipen-datuak erabili, hala nola begiradari buruzkoak""Leihoko edukia eskuratu.""Arakatu irekita daukazun leihoko edukia.""\"Arakatu ukituta\" aktibatu."
@@ -656,38 +652,22 @@
"Argazki bilduma aldatzeko baimena ematen dio aplikazioari.""multimedia-edukien bildumako kokapena irakurri""Multimedia-edukien bildumako kokapena irakurtzeko baimena ematen dio aplikazioari."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "begiradaren gutxi gorabeherako datuen jarraipena egin"
+ "Zure begiradaren gutxi gorabeherako datuen jarraipena egiteko baimena ematen dio aplikazioari."
+ "begiradaren jarraipena egin"
+ "Zure begiradaren datu zehatzen jarraipena egiteko baimena ematen dio aplikazioari."
+ "aurpegiaren jarraipena egin"
+ "Aurpegiaren jarraipen-datuak erabiltzeko baimena ematen dio aplikazioari."
+ "eskuen jarraipena egin"
+ "Eskuen jarraipen-datuak erabiltzeko baimena ematen dio aplikazioari."
+ "buruaren jarraipena egin"
+ "Buruaren jarraipen-datuak erabiltzeko baimena ematen dio aplikazioari."
+ "inguruan duzun ingurunea aztertu"
+ "Inguruan duzun ingurunearen jarraipen datuak erabiltzeko baimena ematen dio aplikazioari."
+ "inguruan duzun ingurunea xehetasunez aztertu"
+ "Inguruan duzun ingurunearen jarraipen datu oso xeheak erabiltzeko baimena ematen dio aplikazioari."
+ "aurreko planoan egon gabe ere EHko datuak erabili"
+ "Aurreko planoan ez badago ere EHko datuak erabiltzeko baimena ematen dio aplikazioari.""Erabili sistema biometrikoak""Erabili sistema biometrikoak edo pantailaren blokeoa""Egiaztatu zeu zarela"
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index ddde0b28b6855fb4e58f373856583bab965e5a0b..0c3b7551e4f6379ec7404757f4680c5247586a17 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -353,14 +353,10 @@
"دسترسی به دادههای حسگر در رابطه با علائم حیاتی شما""اعلانها""نمایش اعلان"
-
-
-
-
-
-
-
-
+ "دادههای ردگیری واقعیت گسترده"
+ "دسترسی به دادههای واقعیت گسترده درباره شما و محیط اطرافتان"
+ "دادههای حساس ردگیری واقعیت گسترده"
+ "دسترسی به دادههای حساس ردگیری، مانند جهت نگاه""محتوای پنجره را بازیابی کند""محتوای پنجرهای را که درحال تعامل با آن هستید بررسی میکند.""فعالسازی کاوش لمسی"
@@ -656,38 +652,22 @@
"به برنامه اجازه میدهد مجموعه عکستان را تغییر دهد.""خواندن مکانها از مجموعه رسانه شما""به برنامه اجازه میدهد مکانها را از مجموعه رسانهتان بخواند."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ردگیری جهت تقریبی نگاه شما"
+ "به برنامه اجازه میدهد جهت تقریبی نگاه شما را ردگیری کند."
+ "ردگیری جایی که به آن نگاه میکنید"
+ "به برنامه اجازه میدهد به دادههای دقیق جهت نگاه دسترسی داشته باشد."
+ "ردگیری چهره شما"
+ "به برنامه اجازه میدهد به دادههای ردگیری چهره دسترسی داشته باشد."
+ "ردگیری دستهای شما"
+ "به برنامه اجازه میدهد به دادههای ردگیری دست دسترسی داشته باشد."
+ "ردگیری سر شما"
+ "به برنامه اجازه میدهد به دادههای ردگیری سر دسترسی داشته باشد."
+ "پی بردن به محیط مجاور شما"
+ "به برنامه اجازه میدهد به دادههای ردگیری مربوط به محیط مجاور شما دسترسی داشته باشد."
+ "پی بردن به محیط مجاور شما با جزئیات بالا"
+ "به برنامه اجازه میدهد به دادههای ردگیری مربوط به محیط مجاور شما با جزئیات بسیار بالا دسترسی داشته باشد."
+ "دسترسی به دادههای واقعیت گسترده هنگام اجرا نشدن در پیشزمینه"
+ "به برنامه اجازه میدهد هنگام اجرا نشدن در پیشزمینه به دادههای واقعیت گسترده دسترسی داشته باشد.""استفاده از دادههای زیستسنجشی""استفاده از دادههای زیستسنجشی یا قفل صفحه""تأیید کنید این شمایید"
@@ -1824,7 +1804,7 @@
"بسیار کمنور""دستگاههای کمکشنوایی""متصل نیست"
- "متصل"
+ "وصل شد""فعال""درحال بار کردن""کلیدهای میزان صدا پایین نگه داشته شد. %1$s روشن شد."
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index b17ab238841320033535696688d5000f7d96b5b3..b12fd5cffbedff9dd04f80bb89c053e57fd75e18 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -353,14 +353,10 @@
"pääsy anturidataan elintoiminnoistasi""Ilmoitukset""näyttää ilmoituksia"
-
-
-
-
-
-
-
-
+ "XR-seurantadata"
+ "pääsy XR-dataan, joka liittyy sinuun ja ympäristöösi"
+ "arkaluontoinen XR-seurantadata"
+ "pääsy arkaluontoiseen seurantadataan, esim. katseenseurantadataan""Noutaa ikkunan sisältöä""Tarkistaa käyttämäsi ikkunan sisältö.""Ottaa kosketuksella tutkimisen käyttöön"
@@ -656,38 +652,22 @@
"Antaa sovelluksen muokata kuvakokoelmaasi.""lukea mediakokoelmasi sijainteja""Antaa sovelluksen lukea mediakokoelmasi sijainteja."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "seuraa katsetta likimääräisesti"
+ "Sallii sovelluksen seurata katsettasi likimääräisesti."
+ "seuraa sitä, mihin katsot"
+ "Sallii sovellukselle pääsyn tarkkaan katsedataan."
+ "seuraa kasvojasi"
+ "Sallii sovellukselle pääsyn kasvojen seurantadataan."
+ "seuraa käsiäsi"
+ "Sallii sovellukselle pääsyn kädenseurantadataan."
+ "seuraa päätäsi"
+ "Sallii sovellukselle pääsyn päänseurantadataan."
+ "ymmärtää välitöntä ympäristöäsi"
+ "Sallii sovellukselle pääsyn ympäristöösi liittyvään seurantadataan."
+ "ymmärtää välittömän ympäristösi yksityiskohtaisesti"
+ "Sallii sovellukselle pääsyn erittäin yksityiskohtaiseen, välittömään ympäristöösi liittyvään seurantadataan."
+ "pääsy XR-dataan, kun sovellus ei ole etualalla."
+ "Sallii sovellukselle pääsyn XR-dataan, kun sovellus ei ole etualalla.""Käytä biometriikkaa""Käytä biometriikkaa tai näytön lukitusta""Vahvista henkilöllisyytesi"
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 7145e5719298149bdebdbf0dd0c9941530bd7ded..b9c8b64b2fe5c91c8cc0949a4f9512f8d5e4dff4 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -354,14 +354,10 @@
"accéder aux données des capteurs sur vos signes vitaux""Notifications""afficher les notifications"
-
-
-
-
-
-
-
-
+ "données de suivi de RE"
+ "accès aux données de RE sur vous et l\'environnement qui vous entoure"
+ "données de suivi de RE sensibles"
+ "accède aux données de suivi sensibles, comme le regard""Récupérer le contenu d\'une fenêtre""Inspecter le contenu d\'une fenêtre avec laquelle vous interagissez.""Activer la fonctionnalité Explorer au toucher"
@@ -657,38 +653,22 @@
"Autorise l\'appli à modifier votre collection de photos.""lire les positions issues de votre collection multimédia""Autorise l\'appli à lire les positions indiquées dans votre collection multimédia."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "suivre votre regard approximatif"
+ "Permet à l\'appli de suivre votre regard approximatif."
+ "suivre où vous regardez"
+ "Permet à l\'appli d\'accéder à des données précises sur le regard."
+ "suivre votre visage"
+ "Permet à l\'appli d\'accéder aux données de suivi du visage."
+ "suivre vos mains"
+ "Permet à l\'appli d\'accéder aux données de suivi des mains."
+ "suivre votre tête"
+ "Permet à l\'appli d\'accéder aux données de suivi de la tête."
+ "comprendre votre environnement immédiat"
+ "Permet à l\'appli d\'accéder aux données de suivi sur l\'environnement directement autour de vous."
+ "comprendre votre environnement immédiat dans les moindres détails"
+ "Permet à l\'appli d\'accéder aux données de suivi sur l\'environnement directement autour de vous avec des détails très précis."
+ "accéder aux données de RE sans être en avant-plan"
+ "Permet à l\'appli d\'accéder aux données de RE lorsqu\'elle n\'est pas en avant-plan.""Utiliser les données biométriques""Utiliser les données biométriques ou le verrouillage de l\'écran""Confirmez que c\'est vous"
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index a71348ae832f66916f5e3370375fb902b857e370..9952d043718704d5232e81985dc418b5dd3bbe89 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -354,14 +354,10 @@
"accéder aux données des capteurs relatives à vos signes vitaux""Notifications""afficher des notifications"
-
-
-
-
-
-
-
-
+ "Données de suivi XR"
+ "accéder aux données XR vous concernant et concernant l\'environnement qui vous entoure"
+ "données de suivi XR sensibles"
+ "accéder à des données de suivi sensibles, comme le suivi du regard""Récupérer le contenu d\'une fenêtre""Inspecte le contenu d\'une fenêtre avec laquelle vous interagissez.""Activer la fonctionnalité Explorer au toucher"
@@ -657,38 +653,22 @@
"Autorise l\'application à modifier votre bibliothèque photo.""consulter des positions issues de votre bibliothèque multimédia""Autorise l\'application à consulter des positions issues de votre bibliothèque multimédia."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "suivre approximativement votre regard"
+ "Autorise l\'appli à suivre approximativement votre regard."
+ "suivre votre regard"
+ "Autorise l\'appli à accéder à des données sur le suivi précis du regard."
+ "suivre votre visage"
+ "Autorise l\'appli à accéder aux données de suivi du visage."
+ "suivre vos mains"
+ "Autorise l\'appli à accéder aux données de suivi des mains."
+ "suivre votre tête"
+ "Autorise l\'appli à accéder aux données de suivi de la tête."
+ "comprendre votre environnement immédiat"
+ "Autorise l\'appli à accéder aux données de suivi sur l\'environnement qui vous entoure directement."
+ "comprendre votre environnement immédiat avec précision"
+ "Autorise l\'appli à accéder à des données de suivi très détaillées sur l\'environnement qui vous entoure directement."
+ "accéder aux données XR sans être au premier plan"
+ "Autorise l\'appli à accéder aux données XR lorsqu\'elle n\'est pas au premier plan.""Utiliser la biométrie""Utiliser la biométrie ou le verrouillage de l\'écran""Confirmez votre identité"
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index e8090b8e16b4c10e01dcccbc7086d1114b51d572..a2d29c9c16d07280e4cc52343c778b68bfe3be6e 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -353,14 +353,10 @@
"acceder aos datos dos sensores sobre as túas constantes vitais""Notificacións""mostrar notificacións"
-
-
-
-
-
-
-
-
+ "datos de seguimento de RE"
+ "acceder aos datos de realidade estendida sobre ti e o ambiente que te rodea"
+ "datos de seguimento de RE confidenciais"
+ "acceder a datos de seguimento confidenciais, como a mirada""Recuperar contido da ventá""Inspecciona o contido dunha ventá coa que estás interactuando.""Activar a exploración táctil"
@@ -656,38 +652,22 @@
"Permite que a aplicación modifique a túa colección de fotos.""ler localizacións da túa colección multimedia""Permite que a aplicación lea as localizacións da túa colección multimedia."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "facer un seguimento aproximado da mirada"
+ "Permite que a aplicación faga un seguimento aproximado da mirada."
+ "facer un seguimento da dirección da mirada"
+ "Permite que a aplicación acceda aos datos precisos da mirada."
+ "facer un seguimento da cara"
+ "Permite que a aplicación acceda aos datos de seguimento da cara."
+ "facer un seguimento das mans"
+ "Permite que a aplicación acceda aos datos de seguimento das mans."
+ "facer un seguimento da cabeza"
+ "Permite que a aplicación acceda aos datos de seguimento da cabeza."
+ "entender o teu ambiente próximo"
+ "Permite que a aplicación acceda aos datos de seguimento do ambiente que te rodea directamente."
+ "entender o teu ambiente próximo con moito detalle"
+ "Permite que a aplicación acceda aos datos de seguimento do ambiente que te rodea directamente con moito detalle."
+ "acceder os datos de realidade estendida cando non estea en primeiro plano"
+ "Permite que a aplicación acceda aos datos de realidade estendida cando non estea en primeiro plano.""Utilizar desbloqueo biométrico""Utilizar desbloqueo biométrico ou credencial do dispositivo""Verifica a túa identidade"
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 3ddc9da52d23944435e01331e7b72be6ba476b64..bb0748466bbf315056aeda9f3f7865969f4c25bb 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -353,14 +353,10 @@
"તમારા મહત્વપૂર્ણ ચિહ્નો વિશે સેન્સર ડેટા ઍક્સેસ કરો""નોટિફિકેશન""નોટિફિકેશન બતાવો"
-
-
-
-
-
-
-
-
+ "XR ટ્રૅકિંગ ડેટા"
+ "તમારા અને તમારી આસપાસના વાતાવરણ વિશેનો XR ડેટા ઍક્સેસ કરો"
+ "સંવેદનશીલ XR ટ્રૅકિંગ ડેટા"
+ "નજર જેવો સંવેદનશીલ ટ્રૅકિંગ ડેટા ઍક્સેસ કરો""વિંડો કન્ટેન્ટ પુનઃપ્રાપ્ત કરો""તમે જેની સાથે ક્રિયા-પ્રતિક્રિયા કરી રહ્યાં છો તે વિંડોનું કન્ટેન્ટ તપાસો.""સ્પર્શ કરીને શોધખોળ કરવું ચાલુ કરો"
@@ -656,38 +652,22 @@
"એપને તમારો ફોટો સંગ્રહ સંશોધિત કરવાની મંજૂરી આપે છે.""આપના મીડિયા સંગ્રહમાંથી સ્થાનો વાંચવા""એપને તમારા મીડિયા સંગ્રહમાંથી સ્થાનો વાંચવાની મંજૂરી આપે છે."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "તમારી અંદાજિત નજરને ટ્રૅક કરો"
+ "ઍપને તમારી અંદાજિત નજર ટ્રૅક કરવાની મંજૂરી આપે છે."
+ "તમે ક્યાં જુઓ છો, તે ટ્રૅક કરો"
+ "ઍપને નજરનો ચોક્કસ ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."
+ "તમારા ચહેરાને ટ્રૅક કરો"
+ "ઍપને ચહેરો ટ્રૅક કરવાની સુવિધાનો ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."
+ "તમારા હાથને ટ્રૅક કરો"
+ "ઍપને હાથ ટ્રૅક કરવાની સુવિધાનો ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."
+ "તમારા માથાને ટ્રૅક કરો"
+ "ઍપને હૅડ ટ્રૅકિંગની સુવિધાનો ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."
+ "તમારી સાવ નજીકના વાતાવરણને સમજો"
+ "ઍપને સીધા તમારી આસપાસના વાતાવરણ વિશેનો ટ્રૅકિંગ ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."
+ "તમારી સાવ નજીકના વાતાવરણને ખૂબ વિગતવાર સમજો"
+ "ઍપને સીધા તમારી આસપાસના વાતાવરણ વિશેનો ટ્રૅકિંગ ડેટા ખૂબ જ વિગતવાર ઍક્સેસ કરવાની મંજૂરી આપે છે."
+ "ફૉરગ્રાઉન્ડમાં ન હોય ત્યારે XR ડેટા ઍક્સેસ કરો"
+ "ફૉરગ્રાઉન્ડમાં ન હોય ત્યારે ઍપને XR ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે.""બાયોમેટ્રિક્સનો ઉપયોગ કરો""બાયોમેટ્રિક્સ અથવા સ્ક્રીન લૉકનો ઉપયોગ કરો""આ તમે જ છો તેની ચકાસણી કરો"
@@ -1844,7 +1824,7 @@
"સ્વિચ કરો""સેટિંગ""વર્તમાન વપરાશકર્તા %1$s."
- "%1$s પર સ્વિચ કરી રહ્યાં છે…"
+ "%1$s પર સ્વિચ કરી રહ્યાં છીએ…""%1$s લોગ આઉટ થઈ રહ્યાં છે…""માલિક""અતિથિ"
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index a587509290dc414af96c3c0af1bc2ee1a16a1a39..538e86c1841155534848462f9d45cc654591823d 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -353,14 +353,10 @@
"अपने महत्वपूर्ण संकेतों के बारे में सेंसर डेटा को ऐक्सेस करें""सूचनाएं""सूचनाएं दिखाएं"
-
-
-
-
-
-
-
-
+ "एक्सआर ट्रैकिंग डेटा"
+ "अपने और अपने आस-पास के माहौल के बारे में एक्सआर डेटा ऐक्सेस करें"
+ "संवेदनशील एक्सआर ट्रैकिंग डेटा"
+ "संवेदनशील ट्रैकिंग डेटा को ऐक्सेस करें, जैसे कि आंखों की गतिविधि""विंडो का कॉन्टेंट वापस पाएं""विंडो पर नज़र आ रहे कॉन्टेंट की जांच करें.""छूकर, किसी चीज़ से जुड़ी जानकारी सुनने की सुविधा चालू करें"
@@ -656,38 +652,22 @@
"इससे ऐप्लिकेशन को आपके फ़ोटो संग्रह में बदलाव करने की मंज़ूरी दी जाती है.""अपने मीडिया संग्रह से जगह की जानकारी ऐक्सेस करने की अनुमति दें""इससे ऐप्लिकेशन को आपके मीडिया संग्रह से जगह की जानकारी ऐक्सेस करने की अनुमति दी जाती है."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "आंखों की गतिविधियां ट्रैक करें"
+ "इससे ऐप्लिकेशन को, आपकी आंखों की गतिविधियों को ट्रैक करने की अनुमति मिलती है."
+ "किस ओर देखा जा रहा है, यह ट्रैक करें"
+ "इससे ऐप्लिकेशन को, आंखों की गतिविधियों का सटीक डेटा ऐक्सेस करने की अनुमति मिलती है."
+ "चेहरे को ट्रैक करें"
+ "इससे ऐप्लिकेशन को, फ़ेस ट्रैकिंग का डेटा ऐक्सेस करने की अनुमति मिलती है."
+ "हाथों को ट्रैक करें"
+ "इससे ऐप्लिकेशन को, हैंड ट्रैकिंग का डेटा ऐक्सेस करने की अनुमति मिलती है."
+ "सिर को ट्रैक करें"
+ "इससे ऐप्लिकेशन को, हेड ट्रैकिंग डेटा को ऐक्सेस करने की अनुमति मिलती है."
+ "अपने आस-पास के माहौल की जानकारी पाएं"
+ "इससे ऐप्लिकेशन को, आपके आस-पास के माहौल के ट्रैकिंग डेटा को ऐक्सेस करने की अनुमति मिलती है."
+ "अपने आस-पास के माहौल के बारे में छोटी से छोटी जानकारी पाएं"
+ "इससे ऐप्लिकेशन को, आपके आस-पास के माहौल के बारे में छोटी से छोटी जानकारी के साथ ट्रैकिंग डेटा ऐक्सेस करने की अनुमति मिलती है."
+ "ऐप्लिकेशन पर, फ़ोरग्राउंड के काम न करने पर भी एक्सआर डेटा ऐक्सेस करें"
+ "इससे ऐप्लिकेशन को, एक्सआर डेटा ऐक्सेस करने की अनुमति मिलती है, भले ही उसमें फ़ोरग्राउंड में काम न कर रहा हो.""बायोमेट्रिक्स इस्तेमाल करें""बायोमेट्रिक्स या स्क्रीन लॉक का क्रेडेंशियल इस्तेमाल करें""अपनी पहचान की पुष्टि करें"
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index cfea6abb4dc8ad4f09295da587b15e0172d83a9a..cde062acf7b0c9a097b1caa4651747d6f9606c10 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -354,14 +354,10 @@
"pristupiti podacima senzora o vašim vitalnim znakovima""Obavijesti""prikazati obavijesti"
-
-
-
-
-
-
-
-
+ "XR podaci o praćenju"
+ "pristup XR podacima o vama i vašem okruženju"
+ "osjetljivi XR podaci o praćenju"
+ "pristup osjetljivim podacima o praćenju, kao što je pogled""Dohvaćati sadržaj prozora""Pregledat će sadržaj prozora koji upotrebljavate.""Uključiti značajku Istraži dodirom"
@@ -657,38 +653,22 @@
"Omogućuje aplikaciji izmjenu vaše zbirke fotografija.""čitanje lokacija iz vaše medijske zbirke""Omogućuje aplikaciji čitanje lokacija iz vaše medijske zbirke."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "praćenje približnog pogleda"
+ "Aplikaciji omogućuje praćenje približnih podataka o pogledu."
+ "praćenje toga gdje gledate"
+ "Aplikaciji omogućuje pristup preciznim podacima o pogledu."
+ "praćenje lica"
+ "Aplikaciji omogućuje pristup podacima o praćenju lica."
+ "praćenje pokreta ruku"
+ "Aplikaciji omogućuje pristup podacima o praćenju ruku."
+ "praćenje pokreta glave"
+ "Aplikaciji omogućuje pristup podacima o praćenju pokreta glave."
+ "stjecanje uvida u neposredno okruženje"
+ "Aplikaciji omogućuje pristup podacima o praćenju o vašem neposrednom okruženju."
+ "stjecanje detaljnih uvida u neposredno okruženje"
+ "Aplikaciji omogućuje pristup detaljnim podacima o praćenju o vašem neposrednom okruženju."
+ "pristup XR podacima dok nije u prednjem planu"
+ "Aplikaciji omogućuje pristup XR podacima dok nije u prednjem planu.""Upotreba biometrije""Upotreba biometrijske autentifikacije ili zaključavanja zaslona""Potvrdite da ste to vi"
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 24389d6931b8e3790590779fd37d8d9b0e7a208d..1acf7bcf50d83f59eedcc85c43fe4562048a65a3 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -353,14 +353,10 @@
"az érzékelők által mért, életjelekkel kapcsolatos adatok elérése""Értesítések""értesítések megjelenítése"
-
-
-
-
-
-
-
-
+ "XR-nyomonkövetési adatok"
+ "hozzáférés az Önre és a környezetére vonatkozó XR-adatokhoz"
+ "bizalmas XR-nyomonkövetési adatok"
+ "hozzáférés bizalmas nyomon követési adatokhoz, például a szemmozgáshoz""Ablaktartalom lekérdezése""A használt ablak tartalmának vizsgálata.""Felfedezés érintéssel bekapcsolása"
@@ -656,38 +652,22 @@
"Engedélyezi az alkalmazásnak a fényképgyűjtemény módosítását.""helyek olvasása a médiagyűjteményből""Engedélyezi az alkalmazásnak a helyek médiagyűjteményből való olvasását."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "a szemmozgás hozzávetőleges nyomon követése"
+ "Lehetővé teszi az alkalmazás számára a szemmozgás hozzávetőleges nyomon követését."
+ "annak nyomon követése, hogy Ön hová néz"
+ "Lehetővé teszi az alkalmazás számára, hogy hozzáférjen a szemmozgással kapcsolatos pontos adatokhoz."
+ "arc nyomon követése"
+ "Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az arckövetési adatokhoz."
+ "kézmozgás nyomon követése"
+ "Lehetővé teszi az alkalmazás számára, hogy hozzáférjen a kézmozgáskövetési adatokhoz."
+ "fej nyomon követése"
+ "Lehetővé teszi az alkalmazás számára, hogy hozzáférjen a fejkövetési adatokhoz."
+ "a közvetlen környezet megértése"
+ "Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az Ön közvetlen környezetére vonatkozó nyomon követési adatokhoz."
+ "a közvetlen környezetének nagyon pontos megértése"
+ "Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az Ön közvetlen környezetére vonatkozó nagyon pontos nyomon követési adatokhoz."
+ "hozzáférés az XR-adatokhoz, amikor nincs az előtérben"
+ "Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az XR-adatokhoz, amikor nincs az előtérben.""Biometriai feloldás használata""A folytatás biometriai feloldással vagy képernyőzárral lehetséges""Igazolja, hogy Ön az"
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 1125dc9914e98a21d5041162ca74b39c2127f5b4..041042f0be2f13b64c01a90a73c638f362dd280e 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -353,14 +353,10 @@
"օգտագործել սենսորների տվյալները ձեր օրգանիզմի վիճակի մասին""Ծանուցումներ""ցուցադրել ծանուցումներ"
-
-
-
-
-
-
-
-
+ "XR հետագծման տվյալներ"
+ "մուտք գործեք XR տվյալներ ձեր և ձեզ շրջապատող միջավայրի մասին"
+ "զգայուն XR հետագծման տվյալներ"
+ "մուտք գործել հետևելու զգայուն տվյալներ, ինչպիսիք են աչքի հայացքը""Առբերել պատուհանի բովանդակությունը""Վերլուծել գործող պատուհանի բովանդակությունը""Միացնել Հպման միջոցով հետազոտումը"
@@ -656,38 +652,22 @@
"Թույլ է տալիս հավելվածին փոփոխել ձեր լուսանկարների հավաքածուն:""ճանաչել տեղադրության մասին տվյալները մեդիա բովանդակության հավաքածուից""Թույլ է տալիս հավելվածին ճանաչել տեղադրության մասին տվյալները ձեր մեդիա բովանդակության հավաքածուից:"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "հետևեք ձեր աչքերի մոտավոր հայացքին"
+ "Թույլ է տալիս հավելվածին հետևել ձեր աչքերի մոտավոր հայացքին։"
+ "հետևեք, թե որտեղ եք փնտրում"
+ "Թույլ է տալիս հավելվածին մուտք գործել աչքի հայացքի ճշգրիտ տվյալներ։"
+ "հետևեք ձեր դեմքին"
+ "Թույլ է տալիս հավելվածին մուտք գործել դեմքերի հետագծման տվյալներ։"
+ "հետագծեք ձեր ձեռքերի շարժումները"
+ "Թույլ է տալիս հավելվածին մուտք գործել ձեռքի հետագծման տվյալներ։"
+ "հետևեք ձեր գլխին"
+ "Թույլ է տալիս հավելվածին մուտք գործել գլխի հետագծման տվյալներ։"
+ "հասկացեք ձեր անմիջական միջավայրը"
+ "Թույլ է տալիս հավելվածին մուտք գործել անմիջականորեն ձեր շուրջը գտնվող միջավայրի հետագծման տվյալներ։"
+ "հասկացեք ձեր անմիջական միջավայրը մանրամասնությամբ"
+ "Թույլ է տալիս հավելվածին մուտք գործել անմիջականորեն ձեր շուրջը գտնվող միջավայրի հետագծման տվյալներ՝ մանրամասների հետագծմամբ։"
+ "մուտք գործեք XR տվյալներ, երբ առաջին պլանում չեք"
+ "Թույլ է տալիս հավելվածին մուտք գործել XR տվյալներ, մինչդեռ առաջին պլանում չէ։""Կենսաչափական համակարգեր""Օգտագործել կենսաչափական համակարգեր կամ էկրանի կողպում""Հաստատեք ձեր ինքնությունը"
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 2cd5472ccb7dc4b77a25daff25bae43ced741ace..b02d5ee9e040ef8d563b818fb5578453f1eb1986 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -353,14 +353,10 @@
"mengakses data sensor tentang tanda-tanda vital""Notifikasi""tampilkan notifikasi"
-
-
-
-
-
-
-
-
+ "Data pelacakan XR"
+ "mengakses data XR tentang Anda dan lingkungan di sekitar Anda"
+ "data pelacakan XR sensitif"
+ "mengakses data pelacakan sensitif, seperti pandangan mata""Membaca konten di jendela""Memeriksa konten di jendela yang sedang Anda buka.""Mengaktifkan Jelajahi dengan Sentuhan"
@@ -656,38 +652,22 @@
"Mengizinkan aplikasi untuk memodifikasi koleksi foto Anda.""membaca lokasi dari koleksi media Anda""Mengizinkan aplikasi untuk membaca lokasi dari koleksi media Anda."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "melacak perkiraan pandangan mata Anda"
+ "Mengizinkan aplikasi melacak perkiraan pandangan mata Anda."
+ "melacak arah yang Anda lihat"
+ "Mengizinkan aplikasi mengakses data pandangan mata yang akurat."
+ "melacak wajah Anda"
+ "Mengizinkan aplikasi mengakses data pelacakan wajah."
+ "melacak gerak tangan Anda"
+ "Mengizinkan aplikasi mengakses data pelacakan gerak tangan."
+ "melacak gerak kepala Anda"
+ "Mengizinkan aplikasi mengakses data pelacakan gerak kepala."
+ "memahami lingkungan sekitar Anda"
+ "Mengizinkan aplikasi mengakses data pelacakan tentang lingkungan di sekitar Anda."
+ "memahami lingkungan sekitar Anda secara mendetail"
+ "Mengizinkan aplikasi mengakses data pelacakan tentang lingkungan di sekitar Anda secara mendetail."
+ "mengakses data XR saat tidak berada di latar depan"
+ "Mengizinkan aplikasi mengakses data XR saat tidak berada di latar depan.""Gunakan biometrik""Gunakan biometrik atau kunci layar""Verifikasi diri Anda"
@@ -743,7 +723,7 @@
"Terjadi error. Coba lagi.""Ikon sidik jari"
- "Buka kunci perangkat"
+ "Pembuka kunci perangkat""Coba cara lain untuk membuka kunci""Gunakan Buka dengan Wajah saat sidik jari Anda tidak dikenali, seperti saat jari Anda basah""Gunakan Buka dengan Sidik Jari saat wajah Anda tidak dikenali, seperti saat pencahayaan tidak cukup"
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index a89a50fe9c8b2f77fdf088eb0218fa4710c792da..d66721aeeabc7abe24c489360b04b45a1e10acf5 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -353,14 +353,10 @@
"aðgangur að skynjaragögnum um lífsmörk þín""Tilkynningar""sýna tilkynningar"
-
-
-
-
-
-
-
-
+ "víðveruleikarakningargögn"
+ "aðgangur að víðveruleikagögnum um þig og umhverfi þitt"
+ "viðkvæm víðveruleikarakningargögn"
+ "aðgangur að viðkvæmum rakningargögnum, eins og augnhreyfingum""Sækja innihald glugga""Kanna innihald glugga sem þú ert að nota.""Kveikja á snertikönnun"
@@ -656,38 +652,22 @@
"Leyfir forritinu að breyta myndasafninu þínu.""lesa staðsetningar úr efnissafninu þínu""Leyfir forritinu að lesa staðsetningar úr efnissafninu þínu."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "fylgjast með áætluðum augnhreyfingum þínum"
+ "Leyfir forritinu að fylgjast með áætluðum augnhreyfingum þínum."
+ "fylgjast með því hvert þú horfir"
+ "Leyfir forritinu að fá aðgang að gögnum um nákvæmar augnhreyfingar þínar."
+ "fylgjast með andliti þínu"
+ "Leyfir forritinu að fá aðgang að gögnum um greiningu andlitshreyfinga."
+ "rekja handahreyfingarnar þínar"
+ "Leyfir forritinu að fá aðgang að gögnum um greiningu handahreyfinga."
+ "fylgjast með höfðinu á þér"
+ "Leyfir forritinu að fá aðgang að gögnum um vöktun höfuðhreyfinga."
+ "átta sig á nánasta umhverfi þínu"
+ "Veitir forritinu aðgang að rakningargögnum um nánasta umhverfi þitt."
+ "átta sig á nánasta umhverfi þínu í miklum smáatriðum"
+ "Leyfir forritinu að fá aðgang að rakningargögnum um nánasta umhverfi þitt í miklum smáatriðum."
+ "fá aðgang að víðveruleikagögnum þegar það er ekki í forgrunni"
+ "Leyfir forritinu að fá aðgang að víðveruleikagögnum þegar það er ekki í forgrunni.""Nota lífkenni""Nota lífkenni eða skjálás""Staðfestu hver þú ert"
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 47ef283523ec11503538abe8caaf325dc7b819da..7506002ce141b0dbbdce1db493bf742a62ee1e9c 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -354,14 +354,10 @@
"Possono accedere ai dati dei sensori relativi ai tuoi parametri vitali""Notifiche""Visualizzazione di notifiche"
-
-
-
-
-
-
-
-
+ "dati di tracciamento XR"
+ "accesso ai dati XR relativi a te e all\'ambiente circostante"
+ "dati di tracciamento XR sensibili"
+ "accesso a dati di tracciamento sensibili, come lo sguardo""Recuperare contenuti della finestra""Esamina i contenuti di una finestra con cui interagisci.""Attivare Esplora al tocco"
@@ -657,38 +653,22 @@
"Consente all\'app di modificare la tua raccolta di foto.""lettura delle posizioni dalla tua raccolta multimediale""Consente all\'app di leggere le posizioni dalla tua raccolta multimediale."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "tracciamento approssimativo dello sguardo"
+ "Consente all\'app di tracciare approssimativamente il tuo sguardo."
+ "tracciamento del punto osservato"
+ "Consente all\'app di accedere a dati precisi sullo sguardo."
+ "tracciamento del volto"
+ "Consente all\'app di accedere ai dati di tracciamento del volto."
+ "tracciamento delle mani"
+ "Consente all\'app di accedere ai dati di tracciamento delle mani."
+ "tracciamento della testa"
+ "Consente all\'app di accedere ai dati di tracciamento della testa."
+ "comprensione dell\'ambiente circostante"
+ "Consente all\'app di accedere ai dati di tracciamento sull\'ambiente direttamente intorno a te."
+ "comprensione dell\'ambiente circostante in modo dettagliato"
+ "Consente all\'app di accedere ai dati di tracciamento sull\'ambiente direttamente intorno a te molto dettagliatamente."
+ "accesso ai dati XR non in primo piano"
+ "Consente all\'app di accedere ai dati XR non in primo piano.""Usa la biometria""Usa la biometria o il blocco schermo""Verifica la tua identità"
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 7e37dffdff69443e355ab380dd4f0a457331ada2..7ad10c85fece79a811a50aa42c2811d6b9c47273 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -353,14 +353,10 @@
"バイタルサインに関するセンサーデータへのアクセス""通知""通知を表示"
-
-
-
-
-
-
-
-
+ "XR トラッキング データ"
+ "ユーザーと周囲の環境に関する XR データへのアクセス"
+ "機密性の高い XR トラッキング データ"
+ "視線などの機密性の高いトラッキング データへのアクセス""ウィンドウコンテンツの取得""ユーザーがアクセスしているウィンドウのコンテンツを検査します。""タッチガイドの有効化"
@@ -656,38 +652,22 @@
"写真コレクションの変更をアプリに許可します。""メディア コレクションの位置情報の読み取り""メディア コレクションの位置情報の読み取りをアプリに許可します。"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "おおまかな視線のトラッキング"
+ "おおまかな視線のトラッキングをアプリに許可します。"
+ "視線の移動のトラッキング"
+ "正確な視線データへのアクセスをアプリに許可します。"
+ "顔トラッキング"
+ "顔トラッキング データへのアクセスをアプリに許可します。"
+ "ハンド トラッキング"
+ "ハンド トラッキング データへのアクセスをアプリに許可します。"
+ "ヘッド トラッキング"
+ "ヘッド トラッキング データへのアクセスをアプリに許可します。"
+ "周囲の環境を把握"
+ "周囲の環境に関するトラッキング データへのアクセスをアプリに許可します。"
+ "周囲の環境を詳細に把握"
+ "周囲の環境に関する非常に詳細なトラッキング データへのアクセスをアプリに許可します。"
+ "フォアグラウンドで実行されていないときに XR データにアクセス"
+ "フォアグラウンドで実行されていないときに XR データへのアクセスをアプリに許可します。""生体認証の使用""生体認証または画面ロックの使用""本人確認"
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 5ecf5b71638dde07840443ef2775b2d561924f6c..fcdfc0135fece280216ea6f70a93511126383b95 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -353,14 +353,10 @@
"თქვენი სასიცოცხლო ფუნქციების შესახებ სენსორის მონაცემებზე წვდომა""შეტყობინებები""შეტყობინებების ჩვენება"
-
-
-
-
-
-
-
-
+ "XR თვალყურის დევნების მონაცემები"
+ "წვდომა თქვენ და მიმდებარე გარემოს შესახებ XR მონაცემებზე"
+ "XR თვალყურის დევნების სენსიტ. მონაცემები"
+ "წვდომა თვალყურის დევნების სენსიტიურ მონაცემებზე, როგორიცაა მზერის მიმართულება""ფანჯრის კონტენტის მოძიება""იმ ფანჯრის კონტენტის შემოწმება, რომელშიც მუშაობთ.""„შეხებით აღმოჩენის“ ჩართვა"
@@ -656,38 +652,22 @@
"აპი შეძლებს თქვენი ფოტოკოლექციის შეცვლას.""მდებარეობების გაცნობა თქვენი მედიაკოლექციიდან""აპი შეძლებს მდებარეობების გაცნობას თქვენი მედიაკოლექციიდან."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "თქვენი მზერის მიახლოებითი მიმართულების თვალყურის დევნება"
+ "ნებართვას აძლევს აპს, თვალყური ადევნოს თქვენი მზერის სავარაუდო მიმართულებას."
+ "მზერის მიმართულების თვალყურის დევნება"
+ "ნებართვას აძლევს აპს, მოიპოვოს წვდომა მზერის მიმართულების ზუსტ მონაცემებზე."
+ "თქვენი სახის თვალყურის დევნება"
+ "ნებართვას აძლევს აპს, მოიპოვოს წვდომა სახის თვალყურის დევნების მონაცემებზე."
+ "თქვენი ხელების მოძრაობაზე თვალის დევნება"
+ "ნებართვას აძლევს აპს, მოიპოვოს წვდომა ხელების მოძრაობაზე თვალყურის დევნების მონაცემებზე."
+ "თქვენი თავის მოძრაობაზე თვალყურის დევნება"
+ "ნებართვას აძლევს აპს, მოიპოვოს წვდომა თავის მოძრაობაზე თვალყურის დევნების მონაცემებზე."
+ "უშუალო გარემოს გაგება"
+ "ნებართვას აძლევს აპს, მოიპოვოს წვდომა თქვენ მიმდებარე გარემოზე თვალყურის დევნების მონაცემებზე."
+ "უშუალო გარემოს გაგება ზედმიწევნით დეტალურად"
+ "ნებართვას აძლევს აპს, მოიპოვოს წვდომა თქვენ მიმდებარე გარემოზე თვალყურის დევნების მონაცემებზე ზედმიწევნით დეტალურად."
+ "XR მონაცემებზე წვდომა უკანა პლანზე ყოფნისას"
+ "ნებართვას აძლევს აპს, მოიპოვოს წვდომა XR მონაცემებზე, უკანა პლანზე ყოფნისას.""გამოიყენეთ ბიომეტრიული სისტემა""გამოიყენეთ ბიომეტრიული სისტემა ან ეკრანის დაბლოკვა""დაადასტურეთ ვინაობა"
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 98addd075a1288c837dfe50b967565619228474f..e60ce5dc02601a9dfc32a154a1676fb93b2660ec 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -353,14 +353,10 @@
"ағза күйінің көрсеткіштері туралы сенсор деректеріне қатынасу""Хабарландырулар""хабарландыруларды көрсету"
-
-
-
-
-
-
-
-
+ "бақылауға арналған XR деректері"
+ "сіз және айналаңыздағы орта туралы XR деректерін пайдалану"
+ "бақылауға арналған құпия XR деректері"
+ "қарау бағыты сияқты құпия қадағалау деректерін пайдалану""Терезе контентін оқып отыру""Ашық тұрған терезе контентін тексеру.""Түртілген элементтерді дыбыстау функциясын қосу"
@@ -656,38 +652,22 @@
"Қолданбаға суреттер жинағын өзгертуге мүмкіндік береді.""медиамазмұн жинағынан геодеректерді оқу""Қолданбаға медиамазмұн жинағынан геодеректерді оқуға мүмкіндік береді."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "болжалды қарау бағытын қадағалау"
+ "Қолданбаға болжалды қарау бағытын қадағалау рұқсаты беріледі."
+ "қараған бағытты қадағалау"
+ "Қолданбаға қарау бағытының нақты деректерін пайдалану рұқсаты беріледі."
+ "бетті қадағалау"
+ "Қолданбаға бетті қадағалау деректерін пайдалану рұқсаты беріледі."
+ "қол қимылын аңду"
+ "Қолданбаға қол қимылын аңду деректерін пайдалану рұқсаты беріледі."
+ "бас қозғалысын қадағалау"
+ "Қолданбаға бас қозғалысын қадағалау деректерін пайдалану рұқсаты беріледі."
+ "сізді қоршаған айналаны түсіне білу"
+ "Қолданбаға сіздің айналаңыздағы ортаны бақылау деректерін пайдалану рұқсаты беріледі."
+ "сізді қоршаған айналаны терең түсіне білу"
+ "Қолданбаға сіздің айналаңыздағы ортаны бақылаудың толық деректерін пайдалану рұқсаты беріледі."
+ "экрандық режимнен тыс кезде XR деректерін пайдалану"
+ "Қолданба экрандық режимде тұрмаған кезде, оған XR деректерін пайдалану рұқсаты беріледі.""Биометриканы пайдалану""Биометриканы немесе экран құлпын пайдалану""Cіз екеніңізді растаңыз"
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 7d0f7785366d6e6f4e1906d41dc11de64f7ebda6..ad1017552f6e61b538e72babce7daf1aaf736c0a 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -353,14 +353,10 @@
"ចូលដំណើរការទិន្នន័យឧបករណ៍ចាប់សញ្ញាអំពីស្ថានភាពសុខភាពរបស់អ្នក""ការជូនដំណឹង""បង្ហាញការជូនដំណឹង"
-
-
-
-
-
-
-
-
+ "ទិន្នន័យតាមដាន XR"
+ "ចូលប្រើទិន្នន័យ XR អំពីអ្នក និងមជ្ឈដ្ឋានជុំវិញអ្នក"
+ "ទិន្នន័យតាមដាន XR ដែលរសើប"
+ "ចូលប្រើទិន្នន័យតាមដានដែលរសើប ដូចជាការសម្លឹងមើល""ទាញយកខ្លឹមសារវិនដូ""ពិនិត្យខ្លឹមសារវិនដូដែលអ្នកកំពុងធ្វើអន្តរកម្មជាមួយ។""បើកការរកមើលដោយប៉ះ"
@@ -656,38 +652,22 @@
"អនុញ្ញាតឱ្យកម្មវិធីកែប្រែបណ្ដុំរូបថតរបស់អ្នក។""អានទីតាំងពីបណ្ដុំមេឌៀរបស់អ្នក""អនុញ្ញាតឱ្យកម្មវិធីអានទីតាំងពីបណ្ដុំមេឌៀរបស់អ្នក។"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "តាមដានការសម្លឹងមើលប្រហាក់ប្រហែលរបស់អ្នក"
+ "អនុញ្ញាតឱ្យកម្មវិធីតាមដានការសម្លឹងមើលប្រហាក់ប្រហែលរបស់អ្នក។"
+ "តាមដានកន្លែងដែលអ្នកកំពុងមើល"
+ "អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យនៃការសម្លឹងមើលជាក់លាក់។"
+ "តាមដានមុខរបស់អ្នក"
+ "អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានមុខ។"
+ "តាមដានដៃរបស់អ្នក"
+ "អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានចលនាដៃ។"
+ "តាមដានក្បាលរបស់អ្នក"
+ "អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានចលនាក្បាល។"
+ "យល់ដឹងអំពីមជ្ឈដ្ឋានបច្ចុប្បន្នរបស់អ្នក"
+ "អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានអំពីមជ្ឈដ្ឋានជុំវិញអ្នកដោយផ្ទាល់។"
+ "យល់ដឹងអំពីមជ្ឈដ្ឋានបច្ចុប្បន្នរបស់អ្នកដោយមានភាពលម្អិតកម្រិតខ្ពស់"
+ "អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានអំពីមជ្ឈដ្ឋានជុំវិញអ្នកដោយផ្ទាល់ដោយមានភាពលម្អិតកម្រិតខ្ពស់ខ្លាំង។"
+ "ចូលប្រើទិន្នន័យ XR ពេលមិននៅផ្ទៃខាងមុខ"
+ "អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យ XR ពេលមិននៅផ្ទៃខាងមុខ។""ប្រើជីវមាត្រ""ប្រើជីវមាត្រ ឬការចាក់សោអេក្រង់""ផ្ទៀងផ្ទាត់ថាជាអ្នក"
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index e3caae5745f1d56718b839fb96845f55e9e8de3e..5711aa6087d9c03d77536eb7b9d3235431b79853 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -353,14 +353,10 @@
"ನಿಮ್ಮ ಮುಖ್ಯ ಲಕ್ಷಣಗಳ ಕುರಿತು ಸೆನ್ಸಾರ್ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಿ""ನೋಟಿಫಿಕೇಶನ್ಗಳು""ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಿ"
-
-
-
-
-
-
-
-
+ "XR ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾ"
+ "ನಿಮ್ಮ ಮತ್ತು ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರದ ಕುರಿತು XR ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"
+ "ಸೂಕ್ಷ್ಮವಾದ XR ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾ"
+ "ಕಣ್ಣಿನ ನೋಟದಂತಹ ಸೂಕ್ಷ್ಮವಾದ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ""ವಿಂಡೋ ವಿಷಯವನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ""ನೀವು ಸಂವಹನ ನಡೆಸುತ್ತಿರುವ ವಿಂಡೋದ ಕಂಟೆಂಟ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ.""ಸ್ಪರ್ಶ-ಎಕ್ಸ್ಪ್ಲೋರ್ ಆನ್ ಮಾಡುತ್ತದೆ"
@@ -656,38 +652,22 @@
"ನಿಮ್ಮ ಫೋಟೋ ಸಂಗ್ರಹಣೆಯನ್ನು ಮಾರ್ಪಡಿಸಲು ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ.""ನಿಮ್ಮ ಮೀಡಿಯಾ ಸಂಗ್ರಹಣೆಯಿಂದ ಸ್ಥಳಗಳನ್ನು ಓದಿ""ನಿಮ್ಮ ಮೀಡಿಯಾ ಸಂಗ್ರಹಣೆಯಿಂದ ಸ್ಥಳಗಳನ್ನು ಓದಲು ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ನಿಮ್ಮ ಕಣ್ಣಿನ ಅಂದಾಜು ನೋಟವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"
+ "ನಿಮ್ಮ ಕಣ್ಣಿನ ಅಂದಾಜು ನೋಟವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
+ "ನೀವು ಎಲ್ಲಿ ನೋಡುತ್ತಿದ್ದೀರಿ ಎಂಬುದನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"
+ "ಕಣ್ಣಿನ ನಿಖರವಾದ ನೋಟದ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
+ "ನಿಮ್ಮ ಮುಖವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"
+ "ಫೇಸ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
+ "ನಿಮ್ಮ ಕೈಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"
+ "ಹ್ಯಾಂಡ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
+ "ನಿಮ್ಮ ತಲೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"
+ "ಹೆಡ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
+ "ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ"
+ "ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರದ ಕುರಿತು ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ನೇರವಾಗಿ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
+ "ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರವನ್ನು ಇನ್ನಷ್ಟು ವಿವರವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ"
+ "ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರದ ಕುರಿತು ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಹೆಚ್ಚಿನ ವಿವರಗಳೊಂದಿಗೆ ನೇರವಾಗಿ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
+ "ಮುನ್ನೆಲೆಯಲ್ಲಿ ಇಲ್ಲದಿರುವಾಗ XR ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"
+ "ಮುನ್ನೆಲೆಯಲ್ಲಿ ಇಲ್ಲದಿರುವಾಗ XR ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ.""ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ಬಳಸಿ""ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ಅಥವಾ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಬಳಸಿ""ಇದು ನೀವೇ ಎಂದು ಪರಿಶೀಲಿಸಿ"
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index ffbe631f754e858ea53e485cb7c9541f1956cb1f..bb8c0221716a5a09fd2608bd7b0923da61d75c58 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -353,14 +353,10 @@
"생체 신호에 관한 센서 데이터에 액세스""알림""알림 표시"
-
-
-
-
-
-
-
-
+ "XR 추적 데이터"
+ "사용자 및 주변 환경에 대한 XR 데이터에 액세스"
+ "민감한 XR 추적 데이터"
+ "시선 추적과 같은 민감한 추적 데이터에 액세스""창 콘텐츠 가져오기""상호작용 중인 창의 콘텐츠를 검사합니다.""터치하여 탐색 사용"
@@ -656,38 +652,22 @@
"앱에서 사진 컬렉션을 수정하도록 허용합니다.""미디어 컬렉션에서 위치 읽기""앱에서 미디어 컬렉션의 위치를 읽도록 허용합니다."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "대략적인 시선 추적"
+ "앱이 대략적인 시선을 추적하도록 허용합니다."
+ "시선 추적"
+ "앱이 정확한 시선 데이터에 액세스하도록 허용합니다."
+ "얼굴 추적"
+ "앱이 얼굴 트래킹 데이터에 액세스하도록 허용합니다."
+ "손 추적"
+ "앱이 핸드 트래킹 데이터에 액세스하도록 허용합니다."
+ "머리 추적"
+ "앱이 헤드 트래킹 데이터에 액세스하도록 허용합니다."
+ "주변 환경 파악"
+ "앱이 주변 환경에 대한 추적 데이터에 직접 액세스하도록 허용합니다."
+ "주변 환경 상세 파악"
+ "앱이 주변 환경에 대한 매우 상세한 추적 데이터에 액세스하도록 허용합니다."
+ "포그라운드에 있지 않을 때 XR 데이터에 액세스"
+ "앱이 포그라운드에 있지 않을 때 XR 데이터에 액세스하도록 허용합니다.""생체 인식 사용""생체 인식 또는 화면 잠금을 사용""본인 확인"
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 5f19cf7c99f05be17ab0771bdac5fa9244529021..3fe442fcdbb805e6769c59fcb0451ec9a5a409b0 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -353,14 +353,10 @@
"организмдин абалына көз салган сенсордун дайындарына мүмкүнчүлүк алуу""Билдирмелер""билдирмелерди көрсөтүү"
-
-
-
-
-
-
-
-
+ "кеңейтилген чындыкка көз салуу дайындары"
+ "сиз жана айланаңыздагы чөйрө жөнүндө кеңейтилген чындык дайындарына кирүү"
+ "купуя XR көз салуу дайындары"
+ "көз караш сыяктуу купуя көз салуу дайындарына кирүү""Терезедеги нерселерди алып туруу""Учурда ачылып турган терезедеги маалыматты талдайт.""\"Сыйпалап изилдөө\" мүмкүнчүлүгүн иштетет"
@@ -656,38 +652,22 @@
"Колдонмого сүрөт жыйнагыңызды өзгөртүүгө мүмкүнчүлүк берет.""медиа жыйнагыңыз сакталган жерлерди окуу""Колдонмого медиа жыйнагыңыз сакталган жерлерди окууга мүмкүнчүлүк берет."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "көз карашыңыздын болжолдуу багытына көз салуу"
+ "Колдонмого көз карашыңыздын болжолдуу багытына көз салуу мүмкүнчүлүгүн берет."
+ "кайда карап жатканыңызга көз салуу"
+ "Колдонмого көз карашыңыздын багыты боюнча так маалыматка кирүү мүмкүнчүлүгүн берет."
+ "жүзүңүзгө көз салуу"
+ "Колдонмого жүзгө көз салуу боюнча так маалыматка кирүү мүмкүнчүлүгүн берет."
+ "колдоруңузга көз салуу"
+ "Колдонмого колдорго көз салуу боюнча маалыматка кирүү мүмкүнчүлүгүн берет."
+ "башыңыздын кыймылына көз салуу"
+ "Колдонмого баштын кыймылына көз салуу мүмкүнчүлүгүн берет."
+ "жакын айлана-чөйрөңүздү түшүнүү"
+ "Колдонмого айлана-чөйрөңүзгө көз салуу дайындарына кирүү мүмкүнчүлүгүн берет."
+ "айлана-чөйрөңүзгө көз салуу дайындарынын толук чоо-жайын түшүнүү"
+ "Колдонмого айлана-чөйрөңүзгө көз салуу дайындарынын толук чоо-жайына кирүү мүмкүнчүлүгүн берет."
+ "фондук режиминде кеңейтилген чындык дайындарына кирүү мүмкүнчүлүгү"
+ "Колдонмого фондук режиминде кеңейтилген чындык дайындарына кирүү мүмкүнчүлүгүн берет.""Биометрикалык параметрлерди колдонуу""Биометрикалык жөндөөнү же экрандын кулпусун колдонуу""Өзүңүздү ырастаңыз"
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index fa1ff2b6a55e774bc35c2133813c681386c356e0..1658a78fe1a047d528474b295094107dfd615a59 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -353,14 +353,10 @@
"ເຂົ້າຫາຂໍ້ມູນເຊັນເຊີກ່ຽວກັບສັນຍານຊີບຂອງທ່ານ""ການແຈ້ງເຕືອນ""ສະແດງການແຈ້ງເຕືອນ"
-
-
-
-
-
-
-
-
+ "ຂໍ້ມູນການຕິດຕາມ XR"
+ "ເຂົ້າເຖິງຂໍ້ມູນ XR ກ່ຽວກັບທ່ານ ແລະ ສະພາບແວດລ້ອມອ້ອມຕົວທ່ານ"
+ "ຂໍ້ມູນການຕິດຕາມ XR ທີ່ມີຄວາມລະອຽດອ່ອນ"
+ "ເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມທີ່ມີຄວາມລະອຽດອ່ອນ ເຊັ່ນ: ການຈ້ອງດ້ວຍຕາ""ດຶງຂໍ້ມູນເນື້ອຫາໃນໜ້າຈໍ""ກວດກາເນື້ອຫາຂອງໜ້າຈໍທີ່ທ່ານກຳລັງມີປະຕິສຳພັນນຳ.""ເປີດໃຊ້ \"ການສຳຫຼວດໂດຍສຳຜັດ\""
@@ -656,38 +652,22 @@
"ອະນຸຍາດໃຫ້ແອັບແກ້ໄຂຄໍເລັກຊັນຮູບຂອງທ່ານ.""ອ່ານສະຖານທີ່ຈາກຄໍເລັກຊັນມີເດຍຂອງທ່ານ""ອະນຸຍາດໃຫ້ແອັບອ່ານສະຖານທີ່ຈາກຄໍເລັກຊັນມີເດຍຂອງທ່ານ."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ຕິດຕາມການຈ້ອງດ້ວຍຕາໂດຍປະມານຂອງທ່ານ"
+ "ອະນຸຍາດໃຫ້ແອັບຕິດຕາມການຈ້ອງດ້ວຍຕາໂດຍປະມານຂອງທ່ານ."
+ "ຕິດຕາມຕຳແໜ່ງທີ່ທ່ານເບິ່ງ"
+ "ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຈ້ອງດ້ວຍຕາຢ່າງລະອຽດ."
+ "ຕິດຕາມໃບໜ້າຂອງທ່ານ"
+ "ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມໃບໜ້າ."
+ "ຕິດຕາມມືຂອງທ່ານ"
+ "ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມມື."
+ "ຕິດຕາມຫົວຂອງທ່ານ"
+ "ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມຫົວ."
+ "ເຂົ້າໃຈສະພາບແວດລ້ອມທີ່ຢູ່ໃກ້ຕົວທ່ານ"
+ "ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມກ່ຽວກັບສະພາບແວດລ້ອມອ້ອມຕົວທ່ານໂດຍກົງ."
+ "ເຂົ້າໃຈສະພາບແວດລ້ອມທີ່ຢູ່ໃກ້ຕົວທ່ານແບບລາຍລະອຽດສູງ"
+ "ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມກ່ຽວກັບສະພາບແວດລ້ອມອ້ອມຕົວທ່ານໂດຍກົງທີ່ມີລາຍລະອຽດສູງຫຼາຍ."
+ "ເຂົ້າເຖິງຂໍ້ມູນ XR ໃນລະຫວ່າງທີ່ບໍ່ໄດ້ເຮັດວຽກຢູ່ໃນເບື້ອງໜ້າ"
+ "ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນ XR ໃນລະຫວ່າງທີ່ບໍ່ໄດ້ເຮັດວຽກຢູ່ໃນເບື້ອງໜ້າ.""ໃຊ້ລະບົບຊີວະມິຕິ""ໃຊ້ລະບົບຊີວະມິຕິ ຫຼື ການລັອກໜ້າຈໍ""ຢັ້ງຢືນວ່າແມ່ນທ່ານ"
@@ -1844,7 +1824,7 @@
"ປ່ຽນ""ການຕັ້ງຄ່າ""ຜູ່ໃຊ້ປັດຈຸບັນ %1$s ."
- "ກຳລັງສະຫຼັບໄປຫາ%1$s…"
+ "ກຳລັງສະຫຼັບໄປຫາ %1$s…""ກຳລັງອອກຈາກລະບົບ %1$s…""ເຈົ້າຂອງ""ແຂກ"
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index b9303fa9d68ef06a3af735074eaacc48a9028e97..57db15721b9ec61572b9df221143edb4ecb6cbed 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -355,14 +355,10 @@
"pasiekti jutiklių duomenis apie gyvybinius ženklus""Pranešimai""rodyti pranešimus"
-
-
-
-
-
-
-
-
+ "XR stebėjimo duomenys"
+ "pasiekti XR duomenis apie jus ir aplinką"
+ "neskelbtini XR stebėjimo duomenys"
+ "pasiekti neskelbtinus stebėjimo duomenis, pvz., žvilgsnį""Gauti lango turinį""Tikrinti lango, su kuriuo sąveikaujate, turinį.""Įjungti „Naršyti paliečiant“"
@@ -658,38 +654,22 @@
"Programai leidžiama keisti nuotraukų kolekciją.""skaityti vietoves iš medijos kolekcijos""Programai leidžiama skaityti vietoves iš medijos kolekcijos."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "stebėti apytikslį žvilgsnį"
+ "Leidžiama programai stebėti apytikslį žvilgsnį."
+ "stebėti, kur žiūrite"
+ "Leidžiama programai pasiekti tikslius žvilgsnio duomenis."
+ "stebėti veidą"
+ "Leidžiama programai pasiekti veido stebėjimo duomenis."
+ "stebėti rankas"
+ "Leidžiama programai pasiekti rankų stebėjimo duomenis."
+ "stebėti galvos judesius"
+ "Leidžiama programai pasiekti galvos stebėjimo duomenis."
+ "suprasti artimiausią aplinką"
+ "Leidžiama programai pasiekti stebėjimo duomenis apie aplinką, esančią tiesiogiai aplink jus."
+ "suprasti artimiausią aplinką labai detaliai"
+ "Leidžiama programai pasiekti labai išsamius stebėjimo duomenis apie aplinką, esančią tiesiogiai aplink jus."
+ "pasiekti XR duomenis, kai programa veikia ne priekiniame plane"
+ "Leidžiama programai pasiekti XR duomenis, kai ji nėra priekiniame plane.""Naudoti biometrinius duomenis""Naudoti biometrinius duomenis arba ekrano užraktą""Patvirtinkite, kad tai jūs"
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 3a1df4b50b12df7915eb7bc2c13684f7de1680ad..764e8c96d13db21b9a496a61b575ead570f57661 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -354,14 +354,10 @@
"piekļūt sensoru datiem par jūsu veselības rādījumiem""Paziņojumi""rādīt paziņojumus"
-
-
-
-
-
-
-
-
+ "PR izsekošanas dati"
+ "piekļūt PR datiem par jums un vidi ap jums"
+ "sensitīvi PR izsekošanas dati"
+ "piekļūt sensitīviem izsekošanas datiem, piemēram, acu kustībām""Izgūt loga saturu.""Skatīt tā loga saturu, ar kuru mijiedarbojaties.""Aktivizēt funkciju “Pārlūkot pieskaroties”."
@@ -657,38 +653,22 @@
"Ļauj lietotnei pārveidot jūsu fotoattēlu kolekciju.""Lasīt atrašanās vietas no jūsu multivides kolekcijas""Ļauj lietotnei lasīt atrašanās vietas no jūsu multivides kolekcijas."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "izsekot aptuvenām acu kustībām"
+ "Ļauj lietotnei izsekot aptuvenām acu kustībām."
+ "izsekot, kur skatāties"
+ "Ļauj lietotnei piekļūt precīziem acu kustību izsekošanas datiem."
+ "izsekot jūsu sejas kustībām"
+ "Ļauj lietotnei piekļūt sejas kustību izsekošanas datiem."
+ "izsekot jūsu roku kustībām"
+ "Ļauj lietotnei piekļūt roku kustību izsekošanas datiem."
+ "izsekot jūsu galvas kustībām"
+ "Ļauj lietotnei piekļūt galvas kustību reģistrēšanas datiem."
+ "izprast jūsu tuvāko apkārtni"
+ "Ļauj lietotnei piekļūt izsekošanas datiem par vidi tieši ap jums."
+ "detalizēti izprast jūsu tuvāko apkārtni"
+ "Ļauj lietotnei piekļūt ļoti detalizētiem izsekošanas datiem par vidi tieši ap jums."
+ "piekļūt PR datiem, kamēr lietotne nedarbojas priekšplānā"
+ "Ļauj lietotnei piekļūt PR datiem, kamēr lietotne nedarbojas priekšplānā.""Biometrijas izmantošana""Biometrijas vai ekrāna bloķēšanas izmantošana""Apstipriniet, ka tas esat jūs"
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index c6d51c7f7d1873110c2ea832b80cf402524ff25a..46009350774a3c6124a78619b469591130616404 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -353,14 +353,10 @@
"пристапува до податоците од сензорите за виталните функции""Известувања""да прикажува известувања"
-
-
-
-
-
-
-
-
+ "XR-податоци за следење"
+ "да пристапува до XR-податоци за вас и околината околу вас"
+ "чувствителни XR-податоци за следење"
+ "да пристапува до чувствителни податоци за следење, како што е погледот""да ги вчитува содржините од прозорците""да ги проверува содржините од прозорецот што го користите""да вклучи „Истражувај со допир“"
@@ -656,38 +652,22 @@
"Дозволува апликацијата да ја менува вашата збирка на фотографии.""да чита локации од вашата збирка на аудиовизуелни содржини""Дозволува апликацијата да чита локации од вашата збирка на аудиовизуелни содржини."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "да го следи вашиот приближен поглед"
+ "Дозволува апликацијата да го следи вашиот приближен поглед."
+ "да следи каде гледате"
+ "Дозволува апликацијата да пристапува до податоци за прецизен поглед."
+ "да го следи вашиот лик"
+ "Дозволува апликацијата да пристапува до податоците за следење лик."
+ "да ги следи вашите раце"
+ "Дозволува апликацијата да пристапува до податоците за следење на раце."
+ "да го следи вашето движење"
+ "Дозволува апликацијата да пристапува до податоците за следење на движење."
+ "да ја разбере вашата непосредна околина"
+ "Дозволува апликацијата да пристапува до податоците за следење на околината директно околу вас."
+ "да ја разбере вашата непосредна околина со многу детали"
+ "Дозволува апликацијата да пристапува до податоците за следење на околината директно околу вас со многу детали."
+ "да пристапува до XR-податоци кога не е во преден план"
+ "Дозволува апликацијата да пристапува до XR-податоците кога не е во преден план.""Користи биометрика""Користи биометрика или заклучен екран""Потврдете дека сте вие"
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 17fa98b2d372f7f85f44d8813f625f679029b3de..d9ec167f5c847c63b9535ac178d004f38e62efcb 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -353,14 +353,10 @@
"നിങ്ങളുടെ ജീവാധാര ലക്ഷണങ്ങളെ കുറിച്ചുള്ള സെൻസർ വിവരങ്ങൾ ആക്സസ് ചെയ്യുക""അറിയിപ്പുകൾ""അറിയിപ്പുകൾ കാണിക്കുക"
-
-
-
-
-
-
-
-
+ "XR ട്രാക്കിംഗ് ഡാറ്റ"
+ "നിങ്ങളെ കുറിച്ചും നിങ്ങളുടെ ചുറ്റുപാടുകളെകുറിച്ചുമുള്ള XR ഡാറ്റ ആക്സസ് ചെയ്യുക"
+ "സെൻസിറ്റീവ് XR ട്രാക്കിംഗ് ഡാറ്റ"
+ "നോട്ടം പോലുള്ള, സൂക്ഷ്മമായി കൈകാര്യം ചെയ്യേണ്ട ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യുക""വിൻഡോ ഉള്ളടക്കം വീണ്ടെടുക്കുക""നിങ്ങൾ സംവദിക്കുന്ന ഒരു വിൻഡോയുടെ ഉള്ളടക്കം പരിശോധിക്കുക.""സ്പർശനം വഴി പര്യവേക്ഷണം ചെയ്യുക, ഓണാക്കുക"
@@ -656,38 +652,22 @@
"നിങ്ങളുടെ ഫോട്ടോ ശേഖരം പരിഷ്ക്കരിക്കുന്നതിന് ആപ്പിനെ അനുവദിക്കുന്നു.""നിങ്ങളുടെ മീഡിയ ശേഖരത്തിൽ നിന്നും ലൊക്കേഷനുകൾ റീഡ് ചെയ്യുക""നിങ്ങളുടെ മീഡിയ ശേഖരത്തിൽ നിന്നും ലൊക്കേഷനുകൾ റീഡ് ചെയ്യുന്നതിന് ആപ്പിനെ അനുവദിക്കുന്നു."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "നിങ്ങളുടെ നോട്ടത്തിന്റെ ഏകദേശ ഡാറ്റ ട്രാക്ക് ചെയ്യുക"
+ "നിങ്ങളുടെ നോട്ടത്തിന്റെ ഏകദേശ ഡാറ്റ ട്രാക്ക് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."
+ "നിങ്ങൾ എവിടേയ്ക്കാണ് നോക്കുന്നതെന്ന് ട്രാക്ക് ചെയ്യുക"
+ "നോട്ടത്തിന്റെ കൃത്യമായ ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."
+ "നിങ്ങളുടെ മുഖം ട്രാക്ക് ചെയ്യുക"
+ "മുഖ ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."
+ "നിങ്ങളുടെ കൈകൾ ട്രാക്ക് ചെയ്യുക"
+ "കൈചലനം ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."
+ "നിങ്ങളുടെ തല ട്രാക്ക് ചെയ്യുക"
+ "തല ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുക."
+ "നിങ്ങളുടെ ഏറ്റവുമടുത്തുള്ള ചുറ്റുപാടുകൾ മനസ്സിലാക്കുക"
+ "നിങ്ങളുടെ ചുറ്റുപാടുകളെക്കുറിച്ചുള്ള ട്രാക്കിംഗ് ഡാറ്റ നേരിട്ട് ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."
+ "നിങ്ങളുടെ ഏറ്റവുമടുത്തുള്ള ചുറ്റുപാടുകൾ വളരെ വിശദമായി മനസ്സിലാക്കുക"
+ "നിങ്ങളുടെ ചുറ്റുപാടുകളെക്കുറിച്ചുള്ള വളരെ വിശദമായ ട്രാക്കിംഗ് ഡാറ്റ നേരിട്ട് ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."
+ "ഫോർഗ്രൗണ്ടിൽ ഇല്ലാത്തപ്പോൾ XR ഡാറ്റ ആക്സസ് ചെയ്യുക"
+ "ഫോർഗ്രൗണ്ടിൽ ഇല്ലാത്തപ്പോൾ XR ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു.""ബയോമെട്രിക്സ് ഉപയോഗിക്കുക""ബയോമെട്രിക്സ് അല്ലെങ്കിൽ സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക""ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക"
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 48b2aa88ea490a7dde01e6b67569bbd31e6f4095..05f4f0572a471baa414f95a50dd652fab327b3b4 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -353,14 +353,10 @@
"таны биеийн байдлын талаарх мэдрэгч бүхий өгөгдөлд нэвтрэх""Мэдэгдэл""мэдэгдэл харуулах"
-
-
-
-
-
-
-
-
+ "XR-н хяналтын өгөгдөл"
+ "таны болон таны орчны талаарх XR-н өгөгдөлд хандах"
+ "XR-н хяналтын эмзэг өгөгдөл"
+ "нүдний харц зэрэг хяналтын эмзэг өгөгдөлд хандах""Цонхны агуулгыг авах""Таны харилцан үйлчлэх цонхны контентоос шалгах.""Хүрэлтээр сонсохыг асаах"
@@ -656,38 +652,22 @@
"Таны зургийн цуглуулгыг тохируулах зөвшөөрлийг аппад олгодог.""медиа цуглуулгаасаа байршлыг унших""Таны медиа цуглуулгаас байршлыг унших зөвшөөрлийг аппад олгодог."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "таны нүдний барагцаалсан харцыг хянах"
+ "Аппад таны нүдний барагцаалсан харцыг хянахыг зөвшөөрнө."
+ "таны хаашаа харж байгааг хянах"
+ "Аппад таны нүдний нарийвчилсан харцын өгөгдөлд хандахыг зөвшөөрнө."
+ "таны царайг хянах"
+ "Аппад царай хяналтын өгөгдөлд хандахыг зөвшөөрнө."
+ "таны гарыг хянах"
+ "Аппад гар хяналтын өгөгдөлд хандахыг зөвшөөрнө."
+ "таны толгойг хянах"
+ "Аппад толгойн хяналтын өгөгдөлд хандахыг зөвшөөрнө."
+ "таны яг байгаа орчныг ойлгох"
+ "Аппад таны яг байгаа орчны талаарх хяналтын өгөгдөлд хандахыг зөвшөөрнө."
+ "таны яг байгаа орчныг өндөр нарийвчлалтай ойлгох"
+ "Аппад таны яг байгаа орчны талаарх маш өндөр нарийвчлалтай хяналтын өгөгдөлд хандахыг зөвшөөрнө."
+ "дэвсгэрт байхдаа XR-н өгөгдөлд хандах"
+ "Аппад дэвсгэрт байхдаа XR-н өгөгдөлд хандахыг зөвшөөрнө.""Биометр ашиглах""Биометр эсвэл дэлгэцийн түгжээ ашиглах""Өөрийгөө мөн гэдгийг баталгаажуулаарай"
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 03400f2db1e8ac7b8a5e25cc19a60eedc8d7210e..df7688ed9e3c6782f814fa75b1a6ef1b1fe6e535 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -353,14 +353,10 @@
"आपल्या महत्त्वाच्या मापनांविषयी सेन्सर डेटा अॅक्सेस करा""सूचना""सूचना दाखवा"
-
-
-
-
-
-
-
-
+ "XR ट्रॅकिंग डेटा"
+ "तुमच्याबद्दल आणि तुमच्या सभोवतालच्या वातावरणाबद्दल XR डेटा अॅक्सेस करा"
+ "संवेदनशील XR ट्रॅकिंग डेटा"
+ "संवेदनशील ट्रॅकिंग डेटा अॅक्सेस करा, जसे की डोळ्यांची हालचाल""विंडोमधील आशय पुन्हा मिळवा""तुम्ही वापरत असलेल्या विंडोमधील आशय तपासा.""स्पर्श करून अन्वेषण सुरू करा"
@@ -656,38 +652,22 @@
"ॲपला तुमच्या फोटो संग्रहामध्ये सुधारणा करण्याची अनुमती देते.""तुमच्या मीडिया संग्रहातून स्थाने वाचा""ॲपला तुमच्या मीडिया संग्रहामध्येील स्थाने वाचण्यासाठी अनुमती देते."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "तुमच्या डोळ्यांची अंदाजे हालचाल ट्रॅक करा"
+ "अॅपला तुमच्या डोळ्यांची अंदाजे हालचाल ट्रॅक करण्याची अनुमती देते."
+ "तुम्ही कुठे पाहत आहात ते ट्रॅक करा"
+ "अॅपला तुमच्या डोळ्यांच्या अचूक हालचालीचा डेटा अॅक्सेस करण्याची अनुमती देते."
+ "तुमचा चेहरा ट्रॅक करा"
+ "अॅपला फेस ट्रॅकिंग डेटा अॅक्सेस करण्याची अनुमती देते."
+ "तुमचे हात ट्रॅक करा"
+ "अॅपला हँड ट्रॅकिंग डेटा अॅक्सेस करण्याची अनुमती देते."
+ "तुमचे डोके ट्रॅक करा"
+ "अॅपला हेड ट्रॅकिंग डेटा अॅक्सेस करण्याची अनुमती देते."
+ "तुमच्या आजूबाजूचे वातावरण समजून घ्या"
+ "तुमच्या सभोवतालच्या वातावरणाबद्दलचा ट्रॅकिंग डेटा अॅक्सेस करण्यासाठी अॅपला अनुमती देते."
+ "तुमच्या आजूबाजूचे वातावरण सविस्तरपणे समजून घ्या"
+ "अॅपला तुमच्या सभोवतालच्या वातावरणाबद्दलचा ट्रॅकिंग डेटा अत्यंत तपशिलवार अॅक्सेस करण्याची अनुमती देते."
+ "फोरग्राउंडमध्ये नसताना XR डेटा अॅक्सेस करा"
+ "फोरग्राउंडमध्ये नसतानाही अॅपला XR डेटा अॅक्सेस करण्याची अनुमती देते.""बायोमेट्रिक वापरा""बायोमेट्रिक किंवा स्क्रीन लॉक वापरा""हे तुम्हीच आहात याची पडताळणी करा"
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 889324c15a15b1625c2a9de1fd01b2db0ec3bbcb..7d77268154ee5fb304d1a433eea7e3176b641697 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -353,14 +353,10 @@
"akses data penderia tentang tanda vital anda""Pemberitahuan""tunjukkan pemberitahuan"
-
-
-
-
-
-
-
-
+ "Data penjejakan XR"
+ "mengakses data XR tentang anda dan persekitaran di sekeliling anda"
+ "Data penjejakan XR sensitif"
+ "mengakses data penjejakan sensitif, seperti renungan mata""Dapatkan kembali kandungan tetingkap""Periksa kandungan tetingkap yang berinteraksi dengan anda.""Hidupkan Teroka melalui Sentuhan"
@@ -656,38 +652,22 @@
"Membenarkan apl mengubah suai koleksi foto anda.""baca lokasi daripada koleksi media anda""Membenarkan apl membaca lokasi daripada koleksi media anda."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "Menjejaki anggaran renungan mata anda"
+ "Membenarkan apl menjejaki anggaran renungan mata anda."
+ "menjejaki tempat yang anda lihat"
+ "Membenarkan apl menjejaki data renungan mata yang tepat."
+ "menjejaki wajah anda"
+ "Membenarkan apl mengakses data penjejakan wajah."
+ "menjejaki tangan anda"
+ "Membenarkan apl mengakses data penjejakan tangan."
+ "menjejaki kepala anda"
+ "Membenarkan apl mengakses data penjejakan kepala."
+ "memahami persekitaran berhampiran anda"
+ "Membenarkan apl untuk mengakses data penjejakan tentang persekitaran secara langsung di sekeliling anda."
+ "memahami persekitaran berhampiran anda pada butiran yang tinggi"
+ "Membenarkan apl mengakses data penjejakan tentang persekitaran secara langsung di sekeliling anda dengan butiran yang amat tinggi."
+ "mengakses data XR semasa tidak di latar depan"
+ "Membenarkan apl mengakses data XR semasa tidak di latar depan.""Gunakan biometrik""Gunakan biometrik atau kunci skrin""Sahkan diri anda"
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 67f084130f8951017cab6614abaa736272020612..b2b601138317e6471f0c10b5ae96a0eb5039512d 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -353,14 +353,10 @@
"သင်၏အရေးကြီးသော ကျန်းမာရေးလက္ခဏာဆိုင်ရာ အာရုံခံကိရိယာဒေတာကို ရယူရန်""အကြောင်းကြားချက်များ""အကြောင်းကြားချက်များ ပြနိုင်သည်"
-
-
-
-
-
-
-
-
+ "XR ခြေရာခံခြင်းဒေတာ"
+ "သင်နှင့် သင့်ဘေးနားရှိ ပတ်ဝန်းကျင်အကြောင်း XR ဒေတာကို သုံးခွင့်"
+ "သတိထားရမည့် XR ခြေရာခံခြင်းဒေတာ"
+ "မျက်လုံးအကြည့်ကဲ့သို့သော သတိထားရမည့် ခြေရာခံခြင်းဒေတာကို သုံးခွင့်""ဝင်းဒိုးတွင် ပါရှိသည်များကို ပြန်လည်ရယူရန်""သင်အသုံးပြုနေသော ဝင်းဒိုးတွင် ပါရှိသည်များကို ကြည့်ရှုစစ်ဆေးသည်။""တို့ထိခြင်းဖြင့် ရှာဖွေမှုကို ဖွင့်ရန်"
@@ -656,38 +652,22 @@
"အက်ပ်အား သင့်ဓာတ်ပုံစုစည်းမှုကို ပြုပြင်ခွင့်ပေးသည်။""သင့်မီဒီယာစုစည်းမှုမှ တည်နေရာများကို ဖတ်ခြင်း""အက်ပ်အား သင့်မီဒီယာစုစည်းမှုမှ တည်နေရာများကို ဖတ်ခွင့်ပေးသည်။"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ခန့်မှန်းခြေ မျက်လုံးအကြည့်ကို စောင့်ကြည့်ခြင်း"
+ "သင်၏ ခန့်မှန်းခြေမျက်လုံးအကြည့်ကို အက်ပ်အား စောင့်ကြည့်ခွင့်ပြုသည်။"
+ "သင်ကြည့်နေသည့်နေရာကို စောင့်ကြည့်ခြင်း"
+ "တိကျသော မျက်လုံးအကြည့်ဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"
+ "သင့်မျက်နှာကို စောင့်ကြည့်ခြင်း"
+ "မျက်နှာခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"
+ "သင့်လက်များကို စောင့်ကြည့်ခြင်း"
+ "လက်ဟန်ခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"
+ "သင့်ခေါင်းကို စောင့်ကြည့်ခြင်း"
+ "ဦးခေါင်းလှုပ်ရှားမှု မှတ်သားခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"
+ "သင့်အနီးဆုံးပတ်ဝန်းကျင်ကို နားလည်ခြင်း"
+ "သင့်ဘေးနားရှိ ပတ်ဝန်းကျင်အကြောင်း ခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"
+ "သင့်အနီးဆုံးပတ်ဝန်းကျင်၏ အတွင်းကျကျအသေးစိတ်ကို နားလည်ခြင်း"
+ "သင့်ဘေးနားရှိ ပတ်ဝန်းကျင်အကြောင်း အတွင်းကျကျအသေးစိတ် ခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"
+ "မျက်နှာစာတွင် ဖွင့်မထားချိန်၌ XR ဒေတာကို သုံးခွင့်"
+ "မျက်နှာစာတွင် ဖွင့်မထားချိန်၌ XR ဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။""ဇီဝမက်ထရစ်အချက်အလက်များ သုံးခြင်း""ဇီဝမက်ထရစ်အချက်အလက်များ (သို့) ဖန်သားပြင်လော့ခ်ချခြင်းကို သုံးခြင်း""သင်ဖြစ်ကြောင်း အတည်ပြုပါ"
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 44458bafab9be07bbaa4c98d30415808ef8d7c78..3022fca58bf33e0f821c4313480e8fc68dfca6a7 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -353,14 +353,10 @@
"få tilgang til sensordata om de vitale tegnene dine""Varsler""vise varsler"
-
-
-
-
-
-
-
-
+ "XR-sporingsdata"
+ "lese XR-data om deg og omgivelsene dine"
+ "sensitive XR-sporingsdata"
+ "lese sensitive sporingsdata, for eksempel øyebevegelser""hente innhold i vinduer""Appen analyserer innholdet i vinduer du samhandler med.""slå på berøringsutforsking"
@@ -656,38 +652,22 @@
"Lar appen gjøre endringer i bildesamlingen din.""lese posisjoner fra mediesamlingen din""Lar appen lese posisjoner fra mediesamlingen din."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "spore omtrentlige øyebevegelser"
+ "Lar appen spore de omtrentlige øyebevegelsene dine."
+ "spore hvor du ser"
+ "Gir appen tilgang til nøyaktige data om øyebevegelser."
+ "spore ansiktet ditt"
+ "Gir appen tilgang til data for ansiktssporing."
+ "spore hendene dine"
+ "Gir appen tilgang til data for håndsporing."
+ "spore hodet ditt"
+ "Gir appen tilgang til data for hodesporing."
+ "forstå omgivelsene like rundt deg"
+ "Gir appen tilgang til sporingsdata om omgivelsene like rundt deg."
+ "forstå omgivelsene like rundt deg med høyt detaljnivå"
+ "Gir appen tilgang til sporingsdata om omgivelsene like rundt deg med svært høyt detaljnivå."
+ "bruke XR-data når appen ikke er i forgrunnen"
+ "Gir appen tilgang til XR-data når den ikke er i forgrunnen.""Bruk biometri""Bruk biometri eller skjermlås""Bekreft at det er deg"
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index 2591a154a78c1d9f25014aea4aceff584b0a2725..93ead6dfff57fb2b5dd83c7c443d15c8d802312e 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -353,14 +353,10 @@
"तपाईंको महत्त्वपूर्ण संकेत बारे सेन्सर डेटा पहुँच गर्नुहोस्""नोटिफिकेसनहरू""सूचनाहरू देखाउनुहोस्"
-
-
-
-
-
-
-
-
+ "XR सम्बन्धी ट्रयाकिङ डेटा"
+ "तपाईं र तपाईंको वरपरको वातावरणका बारेमा XR सम्बन्धी डेटा एक्सेस गर्ने"
+ "XR सम्बन्धी संवेदनशील ट्रयाकिङ डेटा"
+ "संवेदनशील ट्रयाकिङ डेटा (जस्तै, आँखाको गतिविधि) एक्सेस गर्ने""विन्डो सामग्रीको पुनःबहाली गर्नुहोस्।""तपाईँको अन्तरक्रिया भइरहेको विन्डोको सामग्रीको निरीक्षण गर्नुहोस्।""छोएर गरिने खोजलाई सुचारु गर्नुहोस्"
@@ -656,38 +652,22 @@
"यसले एपलाई तपाईंको तस्बिरको सङ्ग्रह परिमार्जन गर्न दिन्छ।""आफ्नो मिडियाको सङ्ग्रहका स्थानहरू पढ्नुहोस्""यसले एपलाई तपाईंको मिडिया सङ्ग्रहका स्थानहरू पढ्न दिन्छ।"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "तपाईंको आँखाको गतिविधिसम्बन्धी अनुमानित डेटा ट्रयाक गर्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एपले तपाईंको आँखाको गतिविधिसम्बन्धी अनुमानित डेटा ट्रयाक गर्न सक्छ।"
+ "तपाईं कहाँ हेरिरहनुभएको छ भन्ने कुरा ट्रयाक गर्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एपले आँखाको गतिविधिसम्बन्धी सटीक डेटा एक्सेस गर्न सक्छ।"
+ "तपाईंको अनुहार ट्रयाक गर्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एपले फेस ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"
+ "तपाईंका हातहरू ट्र्याक गर्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एपले ह्यान्ड ट्र्याकिङ डेटा एक्सेस गर्न सक्छ।"
+ "तपाईंको टाउको ट्रयाक गर्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एपले हेड ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"
+ "तपाईंको वरपरको वातावरणका बारेमा बुझ्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एपले तपाईंको वरपरको वातावरणसम्बन्धी ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"
+ "तपाईंको वरपरको वातावरणका ससाना विवरणहरू पनि बुझ्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एपले तपाईंको वरपरको वातावरणका बारेमा ससाना विवरणहरू समावेश गरिएको ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"
+ "फोरग्राउन्डमा नचलिरहेका बेला XR सम्बन्धी डेटा एक्सेस गर्ने"
+ "तपाईंले यो अनुमति दिनुभयो भने यो एप फोरग्राउन्डमा नचलिरहेका बेला पनि यो एपले XR सम्बन्धी डेटा एक्सेस गर्न सक्छ।""बायोमेट्रिक्स प्रयोग गर्नुहोस्""बायोमेट्रिक्स वा स्क्रिन लक प्रयोग गर्नुहोस्""यो व्यक्ति तपाईं नै हो भन्ने प्रमाणित गर्नुहोस्"
@@ -1091,7 +1071,7 @@
"निकै धेरै कोसिसहरू""अनलक गर्नको लागि, तपाईँको Google खातासँग साइन इन गर्नुहोस्।""प्रयोगकर्तानाम (इमेल)"
- "पासवर्ड:"
+ "पासवर्ड""साइन इन गर्नुहोस्""अमान्य प्रयोगकर्तानाम वा पासवर्ड""तपाईँको एक-पटके टेक्स्ट म्यासेज वा पासवर्ड बिर्सनुभयो?\n भ्रमण गर्नुहोस""google.com/accounts/recovery"
@@ -1844,7 +1824,7 @@
"बदल्नुहोस्""सेटिङ""अहिलेको प्रयोगकर्ता %1$s।"
- "स्विच गरेर %1$s बनाइँदै..."
+ "%1$s मा स्विच गरिँदै छ…""लग आउट गर्दै %1$s…""मालिक""अतिथि"
diff --git a/core/res/res/values-night/colors.xml b/core/res/res/values-night/colors.xml
index 7b9b2d66629247f6dd36eb6e0c5f072cbdf41d97..e19ee23a8bd23a98a0f174a8e26b1e75f14a1e90 100644
--- a/core/res/res/values-night/colors.xml
+++ b/core/res/res/values-night/colors.xml
@@ -50,6 +50,8 @@
@color/surface_effect_0_color@color/surface_effect_1_color
+ @color/surface_effect_2_color
+ @color/surface_effect_3_color#2E3132
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index bbdc1bb09c5f80e53cae74f2154aca4b0906b0ad..fc12906e14fa7804804d02f456c543265a44f4e4 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -353,14 +353,10 @@
"toegang krijgen tot sensorgegevens over je vitale functies""Meldingen""meldingen tonen"
-
-
-
-
-
-
-
-
+ "XR-trackinggegevens"
+ "toegang tot XR-gegevens over jou en de omgeving om je heen"
+ "gevoelige XR-trackinggegevens"
+ "toegang tot gevoelige trackinggegevens, zoals oogbewegingen""Content van vensters ophalen""De content inspecteren van een venster waarmee je interactie hebt.""Verkennen via aanraking aanzetten"
@@ -656,38 +652,22 @@
"Hiermee sta je de app toe je fotocollectie aan te passen.""locaties van je mediacollecties bekijken""Hiermee sta je de app toe locaties van je mediacollectie te bekijken."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "je oogbewegingen bij benadering volgen"
+ "Hiermee kan de app je oogbewegingen bij benadering volgen."
+ "volgen waar je naar kijkt"
+ "Hiermee kan de app toegang krijgen tot nauwkeurige gegevens voor oogbewegingen."
+ "je gezicht volgen"
+ "Hiermee kan de app toegang krijgen tot gegevens voor gezichtstracking."
+ "je handen volgen"
+ "Hiermee kan de app toegang krijgen tot gegevens voor handtracking."
+ "je hoofd volgen"
+ "Hiermee kan de app toegang krijgen tot gegevens voor hoofdtracking."
+ "je directe omgeving begrijpen"
+ "Hiermee kan de app toegang krijgen tot trackinggegevens over de omgeving direct om je heen."
+ "je directe omgeving begrijpen met veel details"
+ "Hiermee kan de app toegang krijgen tot trackinggegevens over de omgeving direct om je heen met veel details."
+ "toegang tot XR-gegevens terwijl de app niet op de voorgrond wordt gebruikt"
+ "Hiermee kan de app toegang krijgen tot XR-gegevens terwijl de app niet op de voorgrond wordt gebruikt.""Biometrische gegevens gebruiken""Biometrische gegevens of schermvergrendeling gebruiken""Je identiteit bevestigen"
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index a1b24ebe52edc78f454ed6191e40140c3c1d8995..3200f40606c6236f9bd30c418958026e8e4429e0 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -353,14 +353,10 @@
"ଆପଣଙ୍କ ଗୁରୁତପୂର୍ଣ୍ଣ ସଂକେତଗୁଡ଼ିକ ବିଷୟରେ ସେନ୍ସର୍ ଡାଟା ଆକ୍ସେସ୍ କରେ""ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ""ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"
-
-
-
-
-
-
-
-
+ "XR ଟ୍ରାକିଂ ଡାଟା"
+ "ଆପଣଙ୍କ ଚାରିପାଖର ପରିବେଶ ଏବଂ ଆପଣଙ୍କ ବିଷୟରେ XR ଡାଟା ଆକ୍ସେସ କରନ୍ତୁ"
+ "ସମ୍ବେଦନଶୀଳ XR ଟ୍ରାକିଂ ଡାଟା"
+ "ସମ୍ବେଦନଶୀଳ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରନ୍ତୁ, ଯେପରି କି ଆଇ ଗେଜ""ୱିଣ୍ଡୋ କଣ୍ଟେଣ୍ଟ ହାସଲ କରନ୍ତୁ""ଆପଣ କାମ କରୁଥିବା ୱିଣ୍ଡୋର କଣ୍ଟେଣ୍ଟକୁ ଯାଞ୍ଚ କରନ୍ତୁ।""ସ୍ପର୍ଶ ଦ୍ୱାରା ଏକ୍ସପ୍ଲୋର୍ ଅନ୍ କରନ୍ତୁ"
@@ -656,38 +652,22 @@
"ଆପଣଙ୍କ ଫଟୋ ସଂଗ୍ରହ ପରିବର୍ତ୍ତନ କରିବାକୁ ଆପ୍ ଅନୁମତି ଦେଇଥାଏ।""ଆପଣଙ୍କ ମିଡିଆ ସଂଗ୍ରହ ଠାରୁ ଲୋକେସନ୍ଗୁଡିକୁ ପଢନ୍ତୁ""ଆପଣଙ୍କ ମିଡିଆ ସଂଗ୍ରହ ଠାରୁ ଅବସ୍ଥାନଗୁଡିକୁ ପଢିବାକୁ ଆପ୍ ଅନୁମତି ଦେଇଥାଏ।"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ଆପଣଙ୍କର ଆନୁମାନିକ ଆଇ ଗେଜ ଟ୍ରାକ କରନ୍ତୁ"
+ "ଆପଣଙ୍କର ଆନୁମାନିକ ଆଇ ଗେଜ ଟ୍ରାକ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"
+ "ଆପଣ କେଉଁଠିକୁ ଦେଖୁଛନ୍ତି ତାହା ଟ୍ରାକ କରନ୍ତୁ"
+ "ଆପଣଙ୍କର ସଠିକ ଆଇ ଗେଜ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"
+ "ଆପଣଙ୍କର ମୁହଁକୁ ଟ୍ରାକ କରନ୍ତୁ"
+ "ଫେସ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"
+ "ଆପଣଙ୍କର ହାତକୁ ଟ୍ରାକ କରନ୍ତୁ"
+ "ହେଣ୍ଡ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"
+ "ଆପଣଙ୍କର ମୁଣ୍ଡକୁ ଟ୍ରାକ କରନ୍ତୁ"
+ "ହେଡ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"
+ "ଆପଣଙ୍କର ଅତିନିକଟର ପରିବେଶ ବିଷୟରେ ବୁଝନ୍ତୁ"
+ "ଆପଣଙ୍କ ଚାରିପାଖର ପରିବେଶ ବିଷୟରେ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"
+ "ଅଧିକ ବିବରଣୀ ସହ ଆପଣଙ୍କର ଅତିନିକଟର ପରିବେଶ ବିଷୟରେ ବୁଝନ୍ତୁ"
+ "ବହୁତ ଅଧିକ ସହ ଆପଣଙ୍କ ଚାରିପାଖର ପରିବେଶ ବିଷୟରେ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"
+ "ଫୋରଗ୍ରାଉଣ୍ଡରେ ନଥିବା ବେଳେ XR ଡାଟା ଆକ୍ସେସ କରନ୍ତୁ"
+ "ଫୋରଗ୍ରାଉଣ୍ଡରେ ନଥିବା ବେଳେ XR ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।""ବାୟୋମେଟ୍ରିକ୍ସ ବ୍ୟବହାର କରନ୍ତୁ""ବାୟୋମେଟ୍ରିକ୍ସ ବା ସ୍କ୍ରିନ୍ ଲକ୍ ବ୍ୟବହାର କରନ୍ତୁ""ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ"
@@ -1246,7 +1226,7 @@
"ଡିଲିଟ କରନ୍ତୁ""URL କପି କରନ୍ତୁ""ଟେକ୍ସଟ୍ ଚୟନ କରନ୍ତୁ"
- "ପୂର୍ବ ପରି କରନ୍ତୁ"
+ "ଅନଡୁ କରନ୍ତୁ""ପୁଣି କରନ୍ତୁ""ଅଟୋଫିଲ୍""ଟେକ୍ସଟ୍ ଚୟନ"
@@ -1844,7 +1824,7 @@
"ସୁଇଚ କରନ୍ତୁ""ସେଟିଂସ""ବର୍ତ୍ତମାନର ୟୁଜର୍ ହେଉଛନ୍ତି %1$s।"
- "%1$sରେ ସ୍ୱିଚ କରନ୍ତୁ…"
+ "%1$sରେ ସୁଇଚ ହେଉଛି…""%1$sଙ୍କୁ ଲଗଆଉଟ୍ କରାଯାଉଛି…""ମାଲିକ""ଅତିଥି"
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 70dcd66a2fd7d1f50682ea7b6eb139183d546bc1..cee65af4fc0becc43e00bc5c76e330a9931f0dc6 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -353,14 +353,10 @@
"ਆਪਣੇ ਸਰੀਰ ਦੇ ਅਹਿਮ ਚਿੰਨ੍ਹਾਂ ਬਾਰੇ ਸੰਵੇਦਕ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ ਕਰਨ""ਸੂਚਨਾਵਾਂ""ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"
-
-
-
-
-
-
-
-
+ "XR ਟਰੈਕਿੰਗ ਡਾਟਾ"
+ "ਆਪਣੇ ਅਤੇ ਆਪਣੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਵਾਤਾਵਰਨ ਬਾਰੇ XR ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"
+ "ਸੰਵੇਦਨਸ਼ੀਲ XR ਟਰੈਕਿੰਗ ਡਾਟਾ"
+ "ਸੰਵੇਦਨਸ਼ੀਲ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਅੱਖਾਂ ਦੀ ਹਲਚਲ""ਵਿੰਡੋ ਸਮੱਗਰੀ ਮੁੜ-ਪ੍ਰਾਪਤ ਕਰਨਾ""ਉਸ ਵਿੰਡੋ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰੋ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਅੰਤਰਕਿਰਿਆ ਕਰ ਰਹੇ ਹੋ""\'ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ\' ਚਾਲੂ ਕਰਨਾ"
@@ -656,38 +652,22 @@
"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਫ਼ੋਟੋ ਸੰਗ੍ਰਹਿ ਨੂੰ ਸੋਧਣ ਦਿੰਦੀ ਹੈ।""ਤੁਹਾਡੇ ਮੀਡੀਆ ਸੰਗ੍ਰਹਿ ਦੇ ਟਿਕਾਣਿਆਂ ਨੂੰ ਪੜ੍ਹਨਾ""ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਮੀਡੀਆ ਸੰਗ੍ਰਹਿ ਦੇ ਟਿਕਾਣਿਆਂ ਨੂੰ ਪੜ੍ਹਨ ਦਿੰਦੀ ਹੈ।"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ਆਪਣੀ ਅੰਦਾਜ਼ਨ ਅੱਖਾਂ ਦੀ ਹਲਚਲ ਨੂੰ ਟਰੈਕ ਕਰੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੀਆਂ ਅੱਖਾਂ ਦੀ ਹਲਚਲ ਨੂੰ ਟਰੈਕ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"
+ "ਇਹ ਟਰੈਕ ਕਰੋ ਕਿ ਤੁਸੀਂ ਕਿੱਥੇ ਦੇਖ ਰਹੇ ਹੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੀਆਂ ਅੱਖਾਂ ਦੀ ਹਲਚਲ ਦੇ ਸਟੀਕ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"
+ "ਆਪਣੇ ਚਿਹਰੇ ਨੂੰ ਟਰੈਕ ਕਰੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਚਿਹਰਾ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"
+ "ਆਪਣੇ ਹੱਥਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਹੱਥ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"
+ "ਆਪਣੇ ਸਿਰ ਨੂੰ ਟਰੈਕ ਕਰੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਹੈੱਡ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"
+ "ਆਪਣੇ ਮੌਜੂਦਾ ਵਾਤਾਵਰਨ ਨੂੰ ਸਮਝੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਵਾਤਾਵਰਨ ਦੇ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"
+ "ਆਪਣੇ ਮੌਜੂਦਾ ਵਾਤਾਵਰਨ ਨੂੰ ਬਰੀਕੀ ਨਾਲ ਸਮਝੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਵਾਤਾਵਰਨ ਬਾਰੇ ਬਰੀਕੀ ਨਾਲ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"
+ "ਫੋਰਗ੍ਰਾਊਂਡ ਸੇਵਾ ਨਾ ਹੋਣ \'ਤੇ ਵੀ XR ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"
+ "ਇਸ ਨਾਲ ਐਪ ਨੂੰ XR ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ, ਭਾਵੇਂ ਉਸ ਵਿੱਚ ਫੋਰਗ੍ਰਾਊਂਡ ਸੇਵਾ ਨਾ ਹੋਵੇ।""ਬਾਇਓਮੈਟ੍ਰਿਕ ਦੀ ਵਰਤੋਂ ਕਰੋ""ਬਾਇਓਮੈਟ੍ਰਿਕ ਜਾਂ ਸਕ੍ਰੀਨ ਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰੋ""ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index c92c2bb45480e5c5a8e2c90eb65298474c5636c8..0c6eb46afc67761e5375bed8e09fbc237e8381e3 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -355,14 +355,10 @@
"dostęp do danych czujnika podstawowych funkcji życiowych""Powiadomienia""pokazuj powiadomienia"
-
-
-
-
-
-
-
-
+ "dane śledzenia XR"
+ "dostęp do danych XR dotyczących Ciebie i Twojego otoczenia"
+ "wrażliwe dane śledzenia XR"
+ "dostęp do wrażliwych danych śledzenia, takich jak ruchy gałek ocznych""Pobieranie zawartości okna""Sprawdzanie zawartości okna, z którego korzystasz.""Włączenie czytania dotykiem"
@@ -658,38 +654,22 @@
"Zezwala aplikacji na modyfikowanie kolekcji zdjęć.""odczytywanie lokalizacji z kolekcji multimediów""Zezwala aplikacji na odczytywanie lokalizacji z kolekcji multimediów."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "śledzenie przybliżonych ruchów gałek ocznych"
+ "Zezwala aplikacji na śledzenie przybliżonych ruchów gałek ocznych."
+ "śledzenie punktu skupienia wzroku"
+ "Zezwala aplikacji na dostęp do dokładnych danych o ruchach gałek ocznych."
+ "śledzenie twarzy"
+ "Zezwala aplikacji na dostęp do danych śledzenia twarzy."
+ "śledzenie rąk"
+ "Zezwala aplikacji na dostęp do danych śledzenia rąk."
+ "śledzenie ruchów głowy"
+ "Zezwala aplikacji na dostęp do danych śledzenia ruchów głowy."
+ "analizowanie bliskiego otoczenia"
+ "Zezwala aplikacji na dostęp do danych śledzenia bliskiego otoczenia."
+ "bardzo szczegółowe analizowanie bliskiego otoczenia"
+ "Zezwala aplikacji na dostęp do bardzo szczegółowych danych śledzenia bliskiego otoczenia."
+ "dostęp do danych XR, gdy aplikacja nie jest na pierwszym planie"
+ "Zezwala aplikacji na dostęp do danych XR, gdy nie jest ona na pierwszym planie.""Używaj biometrii""Używaj biometrii lub blokady ekranu""Potwierdź, że to Ty"
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 99c4375ec5f9bf45cf4d4732533bc616d1fabcc5..4fe1c96986c0d23a4370176e8bf8409f688f4f8c 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -354,14 +354,10 @@
"acesse dados do sensor sobre seus sinais vitais""Notificações""mostrar notificações"
-
-
-
-
-
-
-
-
+ "Dados de rastreamento de XR"
+ "acessar dados de XR sobre você e o ambiente ao seu redor"
+ "dados de rastreamento sensíveis de XR"
+ "acessar dados de rastreamento sensíveis, como o olhar""Acessar conteúdo de uma janela""Inspeciona o conteúdo de uma janela com a qual você está interagindo.""Ativar Explorar por toque"
@@ -657,38 +653,22 @@
"Permite que o app modifique sua coleção de fotos.""ler locais na sua coleção de mídias""Permite que o app leia os locais na sua coleção de mídias."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "rastrear seu olhar aproximado"
+ "Permite que o app rastreie seu olhar aproximado."
+ "rastrear para onde você está olhando"
+ "Permite que o app acesse dados precisos de olhar."
+ "rastrear seu rosto"
+ "Permite que o app acesse dados de rastreamento do rosto."
+ "rastrear suas mãos"
+ "Permite que o app acesse dados de rastreamento das mãos."
+ "rastrear sua cabeça"
+ "Permite que o app acesse dados de rastreamento da cabeça."
+ "entender o ambiente diretamente ao seu redor"
+ "Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor."
+ "entender o ambiente diretamente ao seu redor com riqueza de detalhes"
+ "Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor com riqueza de detalhes."
+ "acessar dados de XR sem estar em primeiro plano"
+ "Permite que o app acesse dados de XR sem estar em primeiro plano.""Usar biometria""Usar biometria ou bloqueio de tela""Confirme que é você"
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index a45354643bf5671edfa2954aec24d4bf59f5e2f2..e17b96f8a5e89d1b2bbe1d07db9e13cae0ba709c 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -354,14 +354,10 @@
"aceder a dados do sensor acerca dos seus sinais vitais""Notificações""mostrar notificações"
-
-
-
-
-
-
-
-
+ "dados de monitorização de XR"
+ "aceder a dados de XR sobre si e o ambiente à sua volta"
+ "dados de monitoriz. de XR confidenciais"
+ "aceder a dados de monitorização confidenciais, como o olhar""Obter conteúdo da janela""Inspecionar o conteúdo de uma janela com a qual está a interagir.""Ativar Explorar Através do Toque"
@@ -657,38 +653,22 @@
"Permite que a app modifique a sua coleção de fotos.""ler as localizações a partir da sua coleção de multimédia""Permite que a app leia as localizações a partir da sua coleção de multimédia."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "monitorizar o seu olhar aproximado"
+ "Permite que a app monitorize o seu olhar aproximado."
+ "monitorizar para onde está a olhar"
+ "Permite que a app aceda a dados precisos do olhar."
+ "monitorizar o seu rosto"
+ "Permite que a app aceda a dados de monitorização facial."
+ "monitorizar as suas mãos"
+ "Permite que a app aceda a dados de monitorização das mãos."
+ "monitorizar a sua cabeça"
+ "Permite que a app aceda a dados de posição da cabeça."
+ "compreender o seu ambiente imediato"
+ "Permite que a app aceda a dados de monitorização sobre o ambiente diretamente à sua volta."
+ "compreender o seu ambiente imediato com grande detalhe"
+ "Permite que a app aceda a dados de monitorização sobre o ambiente diretamente à sua volta com detalhes muito precisos."
+ "aceder aos dados de XR quando não estiver em primeiro plano"
+ "Permite que app aceda a dados de XR quando não está em primeiro plano.""Usar a biometria""Usar a biometria ou o bloqueio de ecrã""Confirme a sua identidade"
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 99c4375ec5f9bf45cf4d4732533bc616d1fabcc5..4fe1c96986c0d23a4370176e8bf8409f688f4f8c 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -354,14 +354,10 @@
"acesse dados do sensor sobre seus sinais vitais""Notificações""mostrar notificações"
-
-
-
-
-
-
-
-
+ "Dados de rastreamento de XR"
+ "acessar dados de XR sobre você e o ambiente ao seu redor"
+ "dados de rastreamento sensíveis de XR"
+ "acessar dados de rastreamento sensíveis, como o olhar""Acessar conteúdo de uma janela""Inspeciona o conteúdo de uma janela com a qual você está interagindo.""Ativar Explorar por toque"
@@ -657,38 +653,22 @@
"Permite que o app modifique sua coleção de fotos.""ler locais na sua coleção de mídias""Permite que o app leia os locais na sua coleção de mídias."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "rastrear seu olhar aproximado"
+ "Permite que o app rastreie seu olhar aproximado."
+ "rastrear para onde você está olhando"
+ "Permite que o app acesse dados precisos de olhar."
+ "rastrear seu rosto"
+ "Permite que o app acesse dados de rastreamento do rosto."
+ "rastrear suas mãos"
+ "Permite que o app acesse dados de rastreamento das mãos."
+ "rastrear sua cabeça"
+ "Permite que o app acesse dados de rastreamento da cabeça."
+ "entender o ambiente diretamente ao seu redor"
+ "Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor."
+ "entender o ambiente diretamente ao seu redor com riqueza de detalhes"
+ "Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor com riqueza de detalhes."
+ "acessar dados de XR sem estar em primeiro plano"
+ "Permite que o app acesse dados de XR sem estar em primeiro plano.""Usar biometria""Usar biometria ou bloqueio de tela""Confirme que é você"
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 28728b5c6a15aad56d5c15587168d8b669c6c71d..596a3ed91ea5833f0824c74c3278b4a2945d9a51 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -354,14 +354,10 @@
"să acceseze datele de la senzori despre semnele vitale""Notificări""să afișeze notificări"
-
-
-
-
-
-
-
-
+ "Date de urmărire XR"
+ "să acceseze date XR despre tine și mediul din jur;"
+ "date de urmărire XR sensibile;"
+ "să acceseze date de urmărire sensibile, cum ar fi privirea;""să preia conținutul ferestrei""Inspectează conținutul unei ferestre cu care interacționezi.""să activeze funcția Explorează prin atingere"
@@ -657,38 +653,22 @@
"Permite aplicației să-ți modifice colecția de fotografii.""să citească locațiile din colecția media""Permite aplicației să citească locațiile din colecția ta media."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "să-ți urmărească privirea aproximativă;"
+ "Permite aplicației să-ți urmărească privirea aproximativă."
+ "să urmărească unde te uiți;"
+ "Permite aplicației să acceseze date exacte despre privire."
+ "să-ți urmărească fața;"
+ "Permite aplicației să acceseze date de urmărire a feței."
+ "să-ți urmărească mâinile;"
+ "Permite aplicației să acceseze date de urmărire a mâinilor."
+ "să-ți urmărească mișcările capului;"
+ "Permite aplicației să acceseze date de urmărire a mișcărilor capului."
+ "să înțeleagă mediul imediat apropiat;"
+ "Permite aplicației să acceseze date de urmărire despre mediul din jurul tău."
+ "să înțeleagă mediul imediat apropiat în detaliu;"
+ "Permite aplicației să acceseze date de urmărire despre mediul din jurul tău, cu detalii foarte precise."
+ "să acceseze date XR când nu ești în prim-plan;"
+ "Permite aplicației să acceseze datele XR când nu ești în prim-plan.""Folosește sistemele biometrice""Folosește sistemele biometrice sau blocarea ecranului""Confirmă-ți identitatea"
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index f587a73836e38e705f9c537c326132b9c2eefb3b..5104ca11097d70f8ef34837d73d358988d42ce15 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -355,14 +355,10 @@
"доступ к данным датчиков о состоянии организма""Уведомления""показ уведомлений"
-
-
-
-
-
-
-
-
+ "данные XR для отслеживания"
+ "доступ к данным расширенной реальности с информацией о вас и окружающей обстановке"
+ "конфиденц. данные XR для отслеживания"
+ "доступ к конфиденциальным данным для отслеживания, например направления взгляда""Получать содержимое окна""Анализировать содержимое активного окна.""Включать Изучение касанием"
@@ -658,38 +654,22 @@
"Приложение сможет вносить изменения в вашу фотоколлекцию.""Доступ к геоданным в медиаколлекции""Приложение получит доступ к геоданным в вашей медиаколлекции."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "отслеживание примерного направления взгляда"
+ "Приложение сможет отслеживать примерное направление взгляда."
+ "отслеживание направления взгляда"
+ "Приложение получит доступ к точным данным о направлении взгляда."
+ "отслеживание лица"
+ "Приложение получит доступ к данным для отслеживания лица."
+ "отслеживание рук"
+ "Приложение получит доступ к данным для отслеживания рук."
+ "отслеживание движения головы"
+ "Приложение получит доступ к данным для отслеживания движений головы."
+ "понимание обстановки вокруг вас"
+ "Приложение получит доступ к данным для отслеживания обстановки вокруг вас."
+ "глубокое понимание обстановки вокруг вас"
+ "Приложение получит доступ к подробным данным для отслеживания обстановки вокруг вас."
+ "доступ к данным XR в фоновом режиме"
+ "Приложение получит доступ к данным расширенной реальности в фоновом режиме.""Использовать биометрию""Использовать биометрию или блокировку экрана""Подтвердите, что это вы"
@@ -2302,7 +2282,7 @@
"Групповой чат""%1$d+""Личный"
- "Рабочее"
+ "Рабочий""Просмотр личных данных""Просмотр рабочих данных""Заблокировано вашим администратором"
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index f30a48331cc73d0cf805712f88db054204deaa61..8df50b7c62c33d5624ed2938887668c4ff960d38 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -353,14 +353,10 @@
"ඔබේ ජෛව ලක්ෂණ පිළිබඳ සංවේදක දත්ත වෙත පිවිසෙන්න""දැනුම්දීම්""දැනුම්දීම් පෙන්වන්න"
-
-
-
-
-
-
-
-
+ "XR ලුහුබැඳීමේ දත්ත"
+ "ඔබ සහ ඔබ අවට පරිසරය පිළිබඳ XR දත්ත වෙත ප්රවේශ වන්න"
+ "සංවේදී XR ලුහුබැඳීමේ දත්ත"
+ "ඇස් බැල්ම වැනි සංවේදී ලුහුබැඳීමේ දත්ත වෙත ප්රවේශ වීම""කවුළු අන්න්තර්ගතය ලබාගන්න""ඔබ අන්තර්ක්රියාකාරී වන කවුළුවේ අන්තර්ගතය පරීක්ෂා කරන්න.""ස්පර්ශයෙන් ගවේෂණය සක්රිය කරන්න"
@@ -656,38 +652,22 @@
"ඔබගේ ඡායාරූප එකතුව වෙනස් කිරීමට යෙදුමට ඉඩ දෙයි.""ඔබගේ මාධ්ය එකතුවෙන් ස්ථාන කියවන්න""ඔබගේ මාධ්ය එකතුවෙන් ස්ථාන කියවීමට යෙදුමට ඉඩ දෙයි."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ඔබේ ආසන්න ඇස් බැල්ම ලුහුබඳින්න"
+ "ඔබගේ ආසන්න ඇස් බැල්ම ලුහුබැඳීමට යෙදුමට ඉඩ දෙයි."
+ "ඔබ බලන තැන ලුහුබඳින්න"
+ "යෙදුමට නිරවද්ය ඇස් බැල්ම දත්ත වෙත ප්රවේශ වීමට ඉඩ දෙයි."
+ "ඔබේ මුහුණ ලුහුබඳින්න"
+ "මුහුණු ලුහුබැඳීමේ දත්ත වෙත ප්රවේශ වීමට යෙදුමට ඉඩ දෙන්න."
+ "ඔබේ දෑත් ලුහුබඳින්න"
+ "හස්තීයව ලුහුබැඳීමේ දත්ත වෙත ප්රවේශ වීමට යෙදුමට ඉඩ දෙන්න."
+ "ඔබේ හිස ලුහුබඳින්න"
+ "යෙදුමට හිස ලුහුබැඳීමේ දත්ත වෙත ප්රවේශ වීමට ඉඩ දෙන්න."
+ "ඔබේ ආසන්න පරිසරය තේරුම් ගන්න"
+ "ඔබ වටා ඇති පරිසරය පිළිබඳ ලුහුබැඳීමේ දත්ත වෙත කෙලින්ම ප්රවේශ වීමට යෙදුමට ඉඩ දෙන්න."
+ "ඔබේ ආසන්න පරිසරය ඉතා විස්තරාත්මකව තේරුම් ගන්න"
+ "ඉතා ඉහළ විස්තර සහිතව ඔබ වටා ඇති පරිසරය පිළිබඳ ලුහුබැඳීමේ දත්ත වෙත ප්රවේශ වීමට යෙදුමට ඉඩ දෙයි."
+ "පෙරබිමෙහි නොමැති විට XR දත්ත වෙත ප්රවේශ වන්න"
+ "පෙරබිමෙහි නොමැති විට XR දත්ත වෙත ප්රවේශ වීමට යෙදුමට ඉඩ දෙයි.""ජෛවමිතික භාවිත කරන්න""ජෛවමිතික හෝ තිර අගුල භාවිත කරන්න""එය ඔබ බව තහවුරු කරන්න"
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 49600ced8654fd51c5958d971ea4027e9c5b7784..1d5b4e5f111d02021406cf8780d02af6c6c22310 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -355,14 +355,10 @@
"prístup k dátam senzorov vašich životných funkcií""Upozornenia""zobrazovať upozornenia"
-
-
-
-
-
-
-
-
+ "údaje sledovania UR"
+ "prístup k údajom UR o vás a prostredí okolo vás"
+ "citlivé údaje sledovania UR"
+ "prístup k citlivým údajom sledovania, ako je pohľad""Načítať obsah okna""Môžete preskúmať obsah okna, s ktorým pracujete.""Zapnúť funkciu Preskúmanie dotykom"
@@ -658,38 +654,22 @@
"Umožňuje aplikácii upravovať zbierku fotiek.""čítať polohy zo zbierky médií""Umožňuje aplikácii čítať polohy zo zbierky médií."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "sledovať približný smer vášho pohľadu"
+ "Umožňuje aplikácii sledovať približný smer vášho pohľadu."
+ "sledovať, kam sa pozeráte"
+ "Umožňuje aplikácii získať prístup k presným údajom o pohľade."
+ "sledovať vašu tvár"
+ "Umožňuje aplikácii získať prístup k údajom sledovania tváre."
+ "sledovať vaše ruky"
+ "Umožňuje aplikácii získať prístup k údajom sledovania rúk."
+ "sledovať vašu hlavu"
+ "Umožňuje aplikácii získať prístup k údajom sledovania hlavy."
+ "porozumieť, čo je vo vašom bezprostrednom okolí"
+ "Umožňuje aplikácii získať prístup k údajom sledovania prostredia vo vašom okolí."
+ "veľmi presne porozumieť, čo je vo vašom okolí"
+ "Umožňuje aplikácii získať prístup k veľmi podrobným údajom sledovania prostredia vo vašom okolí."
+ "získať k údajom UR, keď aplikácia nie je spustená na popredí"
+ "Umožňuje aplikácii získať prístup k údajom UR, keď nie je na popredí.""Použiť biometrické údaje""Použiť biometrické údaje alebo zámku obrazovky""Potvrďte, že ste to vy"
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index c8dc4eec6c169af6d85191bd295a0e1c9e6098e5..3f9592bbddd09fb0b23aef82806323569e1a6de9 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -355,14 +355,10 @@
"dostop do podatkov tipala o vaših vitalnih znakih""Obvestila""prikaz obvestil"
-
-
-
-
-
-
-
-
+ "Podatki o sledenju za RR"
+ "dostop do podatkov razširjene resničnosti (RR) o vas in vaši okolici"
+ "občutljivi podatki o sledenju za RR"
+ "dostop do občutljivih podatkov o sledenju, na primer o smeri pogleda""Pridobiti vsebino okna""Preverjanje vsebine okna, ki ga uporabljate.""Vklopiti raziskovanje z dotikom"
@@ -658,38 +654,22 @@
"Aplikaciji omogoča spreminjanje zbirke fotografij.""branje lokacij v predstavnostni zbirki""Aplikaciji omogoča branje lokacij v predstavnostni zbirki."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "sledenje približni smeri pogleda"
+ "Aplikaciji omogoča sledenje približni smeri pogleda."
+ "sledenje smeri vašega pogleda"
+ "Aplikaciji omogoča dostop do natančnih podatkov o smeri pogleda."
+ "sledenje obrazu"
+ "Aplikaciji omogoča dostop do podatkov o sledenju obrazu."
+ "sledenje premikom dlani"
+ "Aplikaciji omogoča dostop do podatkov o sledenju premikom dlani."
+ "spremljanje premikov glave"
+ "Aplikaciji omogoča dostop do podatkov o spremljanju premikov glave."
+ "razumevanje vaše neposredne okolice"
+ "Aplikaciji omogoča dostop do podatkov o spremljanju vaše neposredne okolice."
+ "zelo podrobno razumevanje vaše neposredne okolice"
+ "Aplikaciji omogoča dostop do zelo podrobnih podatkov o spremljanju vaše neposredne okolice."
+ "dostop do podatkov razširjene resničnosti (RR), ko se aplikacija ne izvaja v ospredju"
+ "Aplikaciji omogoča dostop do podatkov razširjene resničnosti (RR), ko se aplikacija ne izvaja v ospredju.""Uporaba biometrike""Uporaba biometrike ali odklepanja s poverilnico""Potrdite, da ste res vi"
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 54810231691d5a185f8f273b7abade23767647c7..d6ad76bc17fab896518df07555a8b9a43b7bce1a 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -354,14 +354,10 @@
"приступа подацима сензора о виталним функцијама""Обавештења""приказивање обавештења"
-
-
-
-
-
-
-
-
+ "подаци о праћењу проширене стварности"
+ "приступа подацима проширене стварности о вама и окружењу око вас"
+ "осетљиви подаци о XR праћењу"
+ "приступа осетљивим подацима о праћењу, на пример подацима о погледу""да преузима садржај прозора""Проверава садржај прозора са којим остварујете интеракцију.""да укључи Истраживања додиром"
@@ -657,38 +653,22 @@
"Дозвољава апликацији да мења колекцију слика.""читање локација из медијске колекције""Дозвољава апликацији да чита локације из медијске колекције."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "праћење приближних података о погледу"
+ "Дозвољава апликацији да прати приближне податке о погледу."
+ "праћење погледа"
+ "Дозвољава апликацији да приступа прецизним подацима о погледу."
+ "праћење лица"
+ "Дозвољава апликацији да приступа подацима о праћењу лица."
+ "праћење руку"
+ "Дозвољава апликацији да приступа подацима о праћењу руку."
+ "праћење главе"
+ "Дозвољава апликацији да приступа подацима о праћењу главе."
+ "разумевање непосредног окружења"
+ "Дозвољава апликацији да приступа подацима о праћењу вашег непосредног окружења."
+ "разумевање непосредног окружења са мноштвом детаља"
+ "Дозвољава апликацији да приступа подацима о праћењу вашег непосредног окружења који садрже мноштво детаља."
+ "приступ подацима проширене стварности када није у првом плану"
+ "Дозвољава апликацији да приступа подацима проширене стварности када није у првом плану.""Користите биометрију""Користите биометрију или откључавање екрана""Потврдите идентитет"
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 38634d574e037ad252dad6a6bd2c322e2ea6ee44..3d88850b5b0ac73c781be17f3d6ce9324ee5da5f 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -353,14 +353,10 @@
"få åtkomst till sensordata om dina vitalparametrar""Aviseringar""visa aviseringar"
-
-
-
-
-
-
-
-
+ "XR-spårningsdata"
+ "få åtkomst till XR-data om dig och din omgivning"
+ "känslig XR-spårningsdata"
+ "få åtkomst till känslig spårningsdata, som ögonrörelser""Hämta fönsterinnehåll""Granska innehållet i ett fönster som du interagerar med.""Aktivera Explore by touch"
@@ -656,38 +652,22 @@
"Tillåter att appen gör ändringar i din fotosamling.""läsa av platser i din mediesamling""Tillåter att appen läser av platser i din mediesamling."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "spåra dina ungefärliga ögonrörelser"
+ "Tillåter att appen spårar dina ungefärliga ögonrörelser."
+ "spåra var du tittar"
+ "Tillåter att appen får åtkomst till exakta ögonrörelser."
+ "spåra ditt ansikte"
+ "Tillåter att appen får åtkomst till data om ansiktsspårning."
+ "spåra dina händer"
+ "Tillåter att appen får åtkomst till data om handspårning."
+ "spåra ditt huvud"
+ "Tillåter att appen får åtkomst till data om huvudföljning."
+ "förstå din omgivning"
+ "Tillåter att appen får åtkomst till spårningsdata om omgivningen runtomkring dig."
+ "förstå din omgivning i detalj"
+ "Tillåter att appen får åtkomst till spårningsdata om omgivningen runtomkring dig i mycket hög detalj."
+ "få åtkomst till XR-data när appen inte är i förgrunden"
+ "Tillåter att appen får åtkomst till XR-data när den inte är i förgrunden.""Använd biometri""Använd biometrisk data eller skärmlåset""Verifiera din identitet"
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index b6eab89286f861329d26d5b4378bf5037dc51432..6d67618ff05bbf772e6f2c30f3d112e8d2c82a55 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -353,14 +353,10 @@
"fikia data ya kitambuzi kuhusu alama zako muhimu""Arifa""kuonyesha arifa"
-
-
-
-
-
-
-
-
+ "data ya ufuatiliaji wa XR"
+ "kufikia data ya XR kukuhusu na mazingira yaliyo karibu nawe"
+ "data nyeti ya ufuatiliaji wa XR"
+ "kufikia data nyeti ya ufuatiliaji, kama vile mahali ambako macho yanaangalia""Kufikia maudhui ya dirisha""Kuchunguza maudhui ya dirisha unalotumia.""Kuwasha \'Chunguza kwa Kugusa\'"
@@ -656,38 +652,22 @@
"Inaruhusu programu kubadilisha mkusanyiko wa picha zako.""kusoma maeneo kwenye mkusanyiko wa vipengee vyako""Inaruhusu programu kusoma maeneo kwenye mkusanyiko wa vipengee vyako."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "kufuatilia kadirio la data ya mahali ambako macho yanaangalia"
+ "Huruhusu programu ifuatilie kadirio la data ya mahali ambako macho yako yanaangalia."
+ "kufuatilia mahali unakoangalia"
+ "Huruhusu programu ifikie data mahususi ya mahali ambako macho yako yanaangalia."
+ "kufuatilia mijongeo ya uso wako"
+ "Huruhusu programu ifikie data ya ufuatiliaji wa mijongeo ya uso."
+ "kufuatilia mijongeo ya mikono yako"
+ "Huruhusu programu ifikie data ya ufuatiliaji wa mijongeo ya mikono."
+ "kufuatilia mijongeo ya kichwa chako"
+ "Huruhusu programu ifikie data ya ufuatiliaji wa mijongeo ya kichwa."
+ "kufahamu mazingira yaliyo karibu nawe"
+ "Huruhusu programu ifikie data ya ufuatiliaji kuhusu mazingira yaliyo karibu nawe."
+ "kufahamu mazingira yaliyo karibu nawe kwa usahihi zaidi"
+ "Huruhusu programu ifikie data ya ufuatiliaji kuhusu mazingira yaliyo karibu nawe kwa usahihi zaidi."
+ "kufikia data ya XR wakati haipo mbele ya skrini ya kifaa"
+ "Huruhusu programu ifikie data ya XR wakati haitumiki mbele ya skrini ya kifaa.""Tumia bayometriki""Tumia bayometriki au mbinu ya kufunga skrini""Thibitisha kuwa ni wewe"
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index d48f4a2763910b61fd157209bd871770cc71f280..6a8179cf4b17e4d23ebe4877f891954dae8edee0 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -353,14 +353,10 @@
"உங்கள் உடல் இயக்கம் பற்றி உணர்விகள் கூறும் தகவலைப் பார்க்கலாம்""அறிவிப்புகள்""அறிவிப்புகளைக் காட்டும்"
-
-
-
-
-
-
-
-
+ "XR கண்காணிப்புத் தரவு"
+ "உங்களையும் உங்கள் சுற்றுச்சூழலையும் பற்றிய XR தரவை அணுகும்"
+ "பாதுகாக்க வேண்டிய XR கண்காணிப்புத் தரவு"
+ "கண் பார்வை போன்ற பாதுகாக்க வேண்டிய கண்காணிப்புத் தரவை அணுகும்""சாளர உள்ளடக்கத்தைப் பெறும்""நீங்கள் பணியாற்றிக் கொண்டிருக்கும் சாளரத்தின் உள்ளடக்கத்தைப் பார்க்கலாம்.""தொடுவதன் மூலம் அறிவதை இயக்கும்"
@@ -656,38 +652,22 @@
"உங்களின் படத் தொகுப்பை மாற்ற ஆப்ஸை அனுமதிக்கும்.""மீடியா தொகுப்பிலிருந்து இடங்களை அறிதல்""உங்களின் மீடியா தொகுப்பிலிருந்து இடங்களை அறிந்துகொள்ள ஆப்ஸை அனுமதிக்கும்."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "உங்கள் தோராயமான கண் பார்வைத் தரவைக் கண்காணிக்கும்"
+ "உங்கள் தோராயமான கண் பார்வையின் தரவைக் கண்காணிக்க ஆப்ஸை அனுமதிக்கும்."
+ "எங்கே பார்க்கிறீர்கள் என்பதைக் கண்காணித்தல்"
+ "துல்லியமான கண் பார்வையின் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."
+ "உங்கள் முகத்தைக் கண்காணித்தல்"
+ "முகக் கண்காணிப்புத் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."
+ "உங்கள் கைகளைக் கண்காணித்தல்"
+ "கை அசைவு அறிதல் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."
+ "உங்கள் தலையைக் கண்காணித்தல்"
+ "ஹெட் டிராக்கிங் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."
+ "உங்களின் சுற்றுச்சூழலைப் புரிந்துகொள்ளுதல்"
+ "உங்களின் சுற்றுச்சூழல் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."
+ "உங்களின் சுற்றுச்சூழலை மிக விரிவான விவரத்துடன் புரிந்துகொள்ளுதல்"
+ "உங்கள் சுற்றுச்சூழல் பற்றிய மிக விரிவான விவரங்களுடன் கூடிய தரவை நேரடியாக அணுக ஆப்ஸை அனுமதிக்கும்."
+ "முன்புலத்தில் இல்லாதபோது XR தரவை அணுகுதல்"
+ "முன்புலத்தில் இல்லாதபோது XR தரவை அணுக ஆப்ஸை அனுமதிக்கும்.""பயோமெட்ரிக்ஸைப் பயன்படுத்து""பயோமெட்ரிக்ஸையோ திரைப் பூட்டையோ பயன்படுத்து""நீங்கள்தான் என உறுதிசெய்க"
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 84e56d2a181e87b72f8c900813877132770fa83b..11611ead7bf2c4c02da09c76f315b2df604b3aef 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -353,14 +353,10 @@
"మీ అత్యంత కీలకమైన గుర్తుల గురించి సెన్సార్ డేటాను యాక్సెస్ చేస్తుంది""నోటిఫికేషన్లు""నోటిఫికేషన్లను చూపండి"
-
-
-
-
-
-
-
-
+ "XR ట్రాకింగ్ డేటా"
+ "మీ గురించి, మీ చుట్టూ ఉన్న పరిసరాల గురించి XR డేటాను యాక్సెస్ చేయండి"
+ "సున్నితమైన XR ట్రాకింగ్ డేటా"
+ "కంటి చూపు వంటి సున్నితమైన ట్రాకింగ్ డేటాను యాక్సెస్ చేయండి""విండో కంటెంట్ను తిరిగి పొందుతుంది""మీరు పరస్పర చర్య చేస్తున్న విండో కంటెంట్ను పరిశీలిస్తుంది.""తాకడం ద్వారా విశ్లేషణను ఆన్ చేయండి"
@@ -656,38 +652,22 @@
"మీ ఫోటో సేకరణను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది.""మీ మీడియా సేకరణ నుండి లొకేషన్లను చదవండి""మీ మీడియా సేకరణ నుండి లొకేషన్లను చదవడానికి యాప్ను అనుమతిస్తుంది."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "మీ సుమారు కంటి చూపును ట్రాక్ చేయండి"
+ "మీ సుమారు కంటి చూపును ట్రాక్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "మీరు ఎక్కడ చూస్తున్నారో ట్రాక్ చేయండి"
+ "కంటి చూపునకు సంబంధించిన ఖచ్చితమైన డేటాను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "మీ ముఖాన్ని ట్రాక్ చేయండి"
+ "ఫేస్ ట్రాకింగ్ డేటాను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "మీ చేతి కదలికలను ట్రాక్ చేయండి"
+ "హ్యాండ్ ట్రాకింగ్ డేటాను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "మీ తలను ట్రాక్ చేయండి"
+ "హెడ్ ట్రాకింగ్ డేటాను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "మీ చుట్టూ ఉన్న పరిసరాలను అర్థం చేసుకోండి"
+ "మీ చుట్టూ ఉన్న పర్యావరణం గురించి ట్రాకింగ్ డేటాను నేరుగా యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "మీ చుట్టూ ఉన్న పరిసరాలను చాలా వివరంగా అర్థం చేసుకోండి"
+ "మీ చుట్టూ ఉన్న పర్యావరణం గురించి ట్రాకింగ్ డేటాను చాలా ఎక్కువ వివరాలతో యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "ముందుభాగంలో లేనప్పుడు XR డేటాను యాక్సెస్ చేయండి"
+ "ముందుభాగంలో లేనప్పుడు XR డేటాను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది.""బయోమెట్రిక్స్ను ఉపయోగించండి""బయోమెట్రిక్స్ను లేదా స్క్రీన్ లాక్ను ఉపయోగించండి""ఈ చర్య చేస్తోంది మీరేనని వెరిఫై చేయండి"
@@ -715,8 +695,8 @@
"ప్రతిసారి మీ వేలిని కొద్ది కొద్దిగా జరపండి"
- "వేలిముద్ర గుర్తించబడలేదు"
- "వేలిముద్ర గుర్తించబడలేదు"
+ "వేలిముద్ర (ఫింగర్-ప్రింట్) మ్యాచ్ కాలేదు"
+ "వేలిముద్ర (ఫింగర్-ప్రింట్) మ్యాచ్ కాలేదు""ముఖం గుర్తించలేదు. బదులుగా వేలిముద్ర ఉపయోగించండి.""వేలిముద్ర ప్రమాణీకరించబడింది""ముఖం ప్రమాణీకరించబడింది"
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index e16a28a099640ac9ef8f716c78cdf9898454ef9d..d854025051bdcb0582076d9eb09b8ec20640c3f7 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -353,14 +353,10 @@
"เข้าถึงข้อมูลเซ็นเซอร์เกี่ยวกับสัญญาณชีพของคุณ""การแจ้งเตือน""แสดงการแจ้งเตือน"
-
-
-
-
-
-
-
-
+ "ข้อมูลการติดตาม XR"
+ "เข้าถึงข้อมูล XR เกี่ยวกับคุณและสภาพแวดล้อมรอบตัว"
+ "ข้อมูลการติดตาม XR ที่มีความละเอียดอ่อน"
+ "เข้าถึงข้อมูลการติดตามที่มีความละเอียดอ่อน เช่น การจ้องด้วยตา""เรียกข้อมูลเนื้อหาของหน้าต่าง""ตรวจสอบเนื้อหาของหน้าต่างที่คุณกำลังโต้ตอบอยู่""เปิด \"แตะเพื่อสำรวจ\""
@@ -656,38 +652,22 @@
"อนุญาตให้แอปแก้ไขคอลเล็กชันรูปภาพของคุณ""อ่านตำแหน่งจากคอลเล็กชันสื่อของคุณ""อนุญาตให้แอปอ่านตำแหน่งจากคอลเล็กชันสื่อของคุณ"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "ติดตามการจ้องด้วยตาโดยประมาณ"
+ "อนุญาตให้แอปติดตามข้อมูลการจ้องด้วยตาโดยประมาณ"
+ "ติดตามตำแหน่งที่คุณมอง"
+ "อนุญาตให้แอปเข้าถึงข้อมูลการจ้องด้วยตาอย่างละเอียด"
+ "ติดตามการเคลื่อนไหวของใบหน้า"
+ "อนุญาตให้แอปเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของใบหน้า"
+ "ติดตามการเคลื่อนไหวของมือ"
+ "อนุญาตให้แอปเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของมือ"
+ "ติดตามการเคลื่อนไหวของศีรษะ"
+ "อนุญาตให้แอปเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของศีรษะ"
+ "เข้าใจสภาพแวดล้อมที่อยู่ใกล้ตัวคุณ"
+ "อนุญาตให้แอปเข้าถึงข้อมูลการติดตามเกี่ยวกับสภาพแวดล้อมรอบตัวคุณโดยตรง"
+ "เข้าใจสภาพแวดล้อมที่อยู่ใกล้ตัวคุณอย่างละเอียด"
+ "อนุญาตให้แอปเข้าถึงข้อมูลการติดตามเกี่ยวกับสภาพแวดล้อมรอบตัวคุณโดยตรงที่มีรายละเอียดสูงมาก"
+ "เข้าถึงข้อมูล XR ขณะที่ไม่ได้ทำงานอยู่ในเบื้องหน้า"
+ "อนุญาตให้แอปเข้าถึงข้อมูล XR ขณะที่ไม่ได้ทำงานอยู่ในเบื้องหน้า""ใช้ข้อมูลไบโอเมตริก""ใช้ข้อมูลไบโอเมตริกหรือการล็อกหน้าจอ""ยืนยันว่าเป็นตัวคุณ"
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 98de106436170d34e1082485df39342fce4fe5a2..78f44c8f0bd95afc5ae8a7977c17a7a551bf2f59 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -353,14 +353,10 @@
"i-access ang data ng sensor tungkol sa iyong vital signs""Mga Notification""magpakita ng mga notification"
-
-
-
-
-
-
-
-
+ "Data ng pag-track ng XR"
+ "i-access ang XR data tungkol sa iyo at sa kapaligiran sa paligid mo"
+ "Sensitibong data ng pag-track ng XR"
+ "i-access ang sensitibong data sa pag-track, gaya ng pagtitig""Kunin ang content ng window""Siyasatin ang nilalaman ng isang window kung saan ka nakikipag-ugnayan.""I-on ang Explore by Touch"
@@ -656,38 +652,22 @@
"Pinapayagan ang app na baguhin ang iyong koleksyon ng larawan.""basahin ang mga lokasyon mula sa iyong koleksyon ng media""Pinapayagan ang app na basahin ang mga lokasyon mula sa iyong koleksyon ng media."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "i-track ang iyong tinatayang pagtitig"
+ "Nagbibigay-daan sa app na i-track ang iyong tinatayang pagtitig."
+ "i-track kung saan ka nakatingin"
+ "Nagbibigay-daan sa app na ma-access ang tumpak na data ng pagtitig."
+ "i-track ang iyong mukha"
+ "Nagbibigay-daan sa app na i-access ang data ng pag-track sa mukha."
+ "i-track ang iyong mga kamay"
+ "Nagbibigay-daan sa app na i-access ang data ng pag-track sa kamay."
+ "i-track ang iyong ulo"
+ "Nagbibigay-daan sa app na i-access ang data ng pag-track ng ulo."
+ "maunawaan ang iyong kapaligiran"
+ "Nagbibigay-daan sa app na i-access ang data ng pag-track tungkol sa kapaligirang direktang nasa paligid mo."
+ "maunawaan ang iyong kapaligiran sa mataas na detalye"
+ "Binibigyang-daan ang app na i-access ang data ng pag-track tungkol sa kapaligirang direktang nasa paligid mo na may napakataas na detalye."
+ "i-access ang XR data habang wala sa foreground"
+ "Nagbibigay-daan sa app na i-access ang XR data habang wala sa foreground.""Gumamit ng biometrics""Gumamit ng biometrics o lock ng screen""I-verify na ikaw ito"
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 2ec15cac8655310e73e6c8da0a727377c9f73943..b575d9f996ea2f579c57964201936df48ae2484e 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -353,14 +353,10 @@
"hayati belirtilerinizle ilgili sensör verilerine erişme""Bildirimler""bildirimleri göster"
-
-
-
-
-
-
-
-
+ "XR takip verileri"
+ "sizinle ve çevrenizdeki ortamla ilgili XR verilerine erişme"
+ "hassas XR takip verileri"
+ "göz hareketleri gibi hassas takip verilerine erişme""Pencere içeriğini alma""Etkileşim kurduğunuz pencerenin içeriğini inceler.""Dokunarak Keşfet\'i açma"
@@ -656,38 +652,22 @@
"Uygulamanın fotoğraf koleksiyonunuzu değiştirmesine izin verir.""medya koleksiyonunuzdaki konumları okuma""Uygulamanın medya koleksiyonunuzdaki konumları okumasına izin verir."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "yaklaşık göz hareketinizi takip etme"
+ "Uygulamanın, yaklaşık göz hareketinizi takip etmesine izin verir."
+ "baktığınız noktayı takip etme"
+ "Uygulamanın, tam göz hareketiyle ilgili verilere erişmesine izin verir."
+ "yüzünüzü takip etme"
+ "Uygulamanın, yüz takibi verilerine erişmesine izin verir."
+ "ellerinizi takip etme"
+ "Uygulamanın, el takibi verilerine erişmesine izin verir."
+ "başınızı takip etme"
+ "Uygulamanın, baş takibi verilerine erişmesine izin verir."
+ "yakın çevrenizi anlama"
+ "Uygulamanın, hemen etrafınızdaki ortamla ilgili takip verilerine erişmesine izin verir."
+ "yakın çevrenizi ayrıntılı bir şekilde anlama"
+ "Uygulamanın, hemen etrafınızdaki ortamla ilgili takip verilerine çok ayrıntılı bir şekilde erişmesine izin verir."
+ "ön planda değilken XR verilerine erişme"
+ "Uygulamanın, ön planda değilken XR verilerine erişmesine izin verir.""Biyometri kullan""Biyometri veya ekran kilidi kullan""Kimliğinizi doğrulayın"
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 9aeee9c85ad13cc0415d7e1867389f0327b3a872..737c245b017abd695effd68e70c3b95e3f411379 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -355,14 +355,10 @@
"отримувати доступ до інформації датчиків про ваші життєві показники""Сповіщення""показувати сповіщення"
-
-
-
-
-
-
-
-
+ "дані відстеження розширеної реальності"
+ "отримувати доступ до даних розширеної реальності про вас і оточення"
+ "чутливі дані відстеж. розшир. реальності"
+ "отримувати доступ до чутливих даних відстеження, наприклад даних про напрямок погляду""Отримувати вміст вікна""Перевіряти вміст вікна, з яким ви взаємодієте.""Увімкнути функцію дослідження дотиком"
@@ -658,38 +654,22 @@
"Додаток зможе змінювати вашу колекцію фотографій.""розпізнавати геодані з колекції медіа-вмісту""Додаток зможе розпізнавати геодані з вашої колекції медіа-вмісту."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "відстежувати приблизний напрямок вашого погляду"
+ "Дозволяє додатку відстежувати приблизний напрямок вашого погляду."
+ "відстежувати напрямок вашого погляду"
+ "Дозволяє додатку отримувати точні дані про напрямок погляду."
+ "відстежувати рухи вашого обличчя"
+ "Дозволяє додатку отримувати доступ до даних відстеження рухів обличчя."
+ "відстежувати ваші руки"
+ "Дозволяє додатку отримувати доступ до даних відстеження рук."
+ "відстежувати рухи вашої голови"
+ "Дозволяє додатку отримувати доступ до даних відстеження руху голови."
+ "розпізнавати об’єкти у вашому найближчому оточенні"
+ "Дозволяє додатку отримувати доступ до даних про оточення навколо вас."
+ "розпізнавати об’єкти у вашому оточенні з високою деталізацією"
+ "Дозволяє додатку отримувати доступ до дуже детальних даних про оточення навколо вас."
+ "отримувати доступ до даних розширеної реальності у фоновому режимі"
+ "Дозволяє додатку отримувати доступ до даних розширеної реальності у фоновому режимі.""Доступ через біометрію""Використовувати біометрію або дані для розблокування екрана""Підтвердьте, що це ви"
@@ -1846,7 +1826,7 @@
"Перемкнути""Налаштування""Поточний користувач: %1$s."
- "Перехід у режим \"%1$s\"…"
+ "Перехід в обліковий запис \"%1$s\"…""Вихід з облікового запису користувача %1$s…""Власник""Гість"
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index f934b87d9f5aa0a0fd8dee0ab1a277b1a269d9d7..82292bf7cd795252651be553f6d67e2cdcc18637 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -353,14 +353,10 @@
"اپنی علامات حیات کے متعلق سنسر ڈیٹا تک رسائی حاصل کریں""اطلاعات""اطلاعات دکھائیں"
-
-
-
-
-
-
-
-
+ "XR ٹریکنگ ڈیٹا"
+ "اپنے اور اپنے آس پاس کے ماحول کے بارے میں XR ڈیٹا تک رسائی حاصل کریں"
+ "حساس XR ٹریکنگ ڈیٹا"
+ "آنکھوں جیسے حساس ٹریکنگ ڈیٹا تک رسائی حاصل کریں""ونڈو مواد بازیافت کرنے کی""کسی ایسی ونڈو کے مواد کا معائنہ کریں جس کے ساتھ آپ تعامل کر رہے ہیں۔""ٹچ کے ذریعے دریافت کریں کو آن کرنے کی"
@@ -656,38 +652,22 @@
"ایپ کو آپ کی تصویر کے مجموعے میں ترمیم کی اجازت دیتا ہے۔""اپنی میڈيا کے مجموعے سے مقامات پڑھیں""ایپ کو آپ کی میڈيا کے مجموعے سے مقامات پڑھنے کی اجازت دیتا ہے۔"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "اپنی آنکھوں کی تخمینی نگاہوں کو ٹریک کریں"
+ "ایپ کو آپ کی تخمینی نگاہوں کو ٹریک کرنے کی اجازت ملتی ہے۔"
+ "وہ جگہ ٹریک کریں جہاں آپ دیکھ رہے ہیں"
+ "ایپ کو آنکھوں کے عین مطابق ڈیٹا تک رسائی کی اجازت ملتی ہے۔"
+ "اپنے چہرے کو ٹریک کریں"
+ "ایپ کو ایپس کو فیس ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"
+ "اپنے ہاتھوں کو ٹریک کریں"
+ "ایپ کو ہینڈ ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"
+ "اپنے سر کو ٹریک کریں"
+ "ایپ کو ہیڈ ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"
+ "اپنے آس پاس کے ماحول کو سمجھیں"
+ "ایپ کو براہ راست آپ کے آس پاس کے ماحول کے بارے میں ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"
+ "اپنے آس پاس کے ماحول کو اعلیٰ تفصیل سے سمجھیں"
+ "ایپ کو بہت زیادہ تفصیل کے ساتھ براہ راست آپ کے آس پاس کے ماحول کے بارے میں ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"
+ "XR ڈیٹا تک رسائی حاصل کریں جبکہ پیش منظر میں نہ ہو"
+ "ایپ کو پیش منظر میں نہ ہوتے ہوئے XR ڈیٹا تک رسائی کی اجازت ملتی ہے۔""بایو میٹرکس استعمال کریں""بایو میٹرکس یا اسکرین لاک استعمال کریں""توثیق کریں کہ یہ آپ ہیں"
@@ -1844,7 +1824,7 @@
"سوئچ کریں""ترتیبات""موجودہ صارف %1$s۔"
- "%1$s پر سوئچ کیا جا رہا ہے…"
+ "%1$s پر سوئچ کیا جا رہا ہے…""%1$s لاگ آؤٹ ہو رہا ہے…""مالک""مہمان"
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 942be7901bc7ed2cec840d124871526dd9a16da1..0e6616582f0a2e71bcf67dedc2ab01c0e39647e8 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -353,14 +353,10 @@
"organizm holati haqidagi sezgich ma’lumotlariga kirish""Bildirishnomalar""bildirishnomalarni chiqarish"
-
-
-
-
-
-
-
-
+ "XR kuzatuv maʼlumotlari"
+ "siz va atrofingizdagi muhit haqidagi XR maʼlumotlarga kirish"
+ "nozik XR kuzatuv maʼlumotlari"
+ "nigoh kabi nozik kuzatuv maʼlumotlariga kirish""Oynadagi kontentni o‘qiydi""Joriy oynadagi kontent mazmunini aniqlaydi.""Teginib o‘rganish xizmatini yoqadi"
@@ -656,38 +652,22 @@
"Ilovaga suratlar to‘plamingizni o‘zgartirishga ruxsat beradi.""multimedia to‘plamidan joylashuv axborotini o‘qish""Ilovaga multimedia to‘plamingizdan joylashuv axborotini o‘qishga ruxsat beradi."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "taxminiy nigohni kuzatish"
+ "Ilovaga taxminiy nigohingizni kuzatish imkonini beradi."
+ "qayerga qarayotganingizni kuzatish"
+ "Ilovaga nigohga oid aniq maʼlumotlarga kirish imkonini beradi."
+ "yuzingizni kuzatish"
+ "Ilovaga yuz harakatini kuzatish maʼlumotlariga kirish imkonini beradi."
+ "qoʻllaringiz harakatini kuzatish"
+ "Ilovaga qoʻl harakatini kuzatish maʼlumotlariga kirish imkonini beradi."
+ "boshingiz harakatini kuzatish"
+ "Ilovaga bosh harakatini kuzatish maʼlumotlariga kirish imkonini beradi."
+ "atrofingizdagi vaziyatni chuqur tushunish"
+ "Ilovaga bevosita atrofingizdagi muhit haqidagi kuzatuv maʼlumotlariga kirish imkonini beradi."
+ "atrofingizdagi vaziyatni juda yuqori aniqlikda chuqur tushunish"
+ "Ilovaga bevosita atrofingizdagi juda yuqori aniqlikda muhit haqidagi kuzatuv maʼlumotlariga kirish imkonini beradi."
+ "XR maʼlumotlariga faol rejimda emasligida kirish"
+ "Ilovaga faol rejimda emasligida XR maʼlumotlariga kirish imkonini beradi.""Biometrik tasdiqlash""Biometrika yoki ekran qulfi""Oʻzingizni taniting"
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 947a9b4145a811aff8dbfc35c82329d77d3b2431..754e66e817cbe1821f2761ff5aa1f7f2ca3104c8 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -353,14 +353,10 @@
"truy cập dữ liệu cảm biến về dấu hiệu sinh tồn của bạn""Thông báo""hiển thị thông báo"
-
-
-
-
-
-
-
-
+ "dữ liệu theo dõi XR"
+ "truy cập vào dữ liệu XR về bạn và môi trường xung quanh bạn"
+ "dữ liệu theo dõi XR mang tính nhạy cảm"
+ "truy cập vào dữ liệu theo dõi mang tính nhạy cảm, chẳng hạn như vị trí ánh mắt""Truy xuất nội dung cửa sổ""Kiểm tra nội dung của cửa sổ bạn đang tương tác.""Bật tính năng Khám phá bằng cách chạm"
@@ -656,38 +652,22 @@
"Cho phép ứng dụng này sửa đổi bộ sưu tập ảnh của bạn.""đọc vị trí từ bộ sưu tập phương tiện""Cho phép ứng dụng này đọc vị trí từ bộ sưu tập phương tiện của bạn."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "theo dõi vị trí gần đúng của ánh mắt bạn"
+ "Cho phép ứng dụng này theo dõi vị trí gần đúng của ánh mắt bạn."
+ "theo dõi vị trí bạn đang nhìn"
+ "Cho phép ứng dụng này truy cập vào dữ liệu vị trí chính xác của ánh mắt."
+ "theo dõi cử động của khuôn mặt"
+ "Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cử động của khuôn mặt."
+ "theo dõi cử động của tay"
+ "Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cử động của tay."
+ "theo dõi cử động của đầu"
+ "Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cử động của đầu."
+ "hiểu về môi trường ngay xung quanh bạn"
+ "Cho phép ứng dụng này truy cập vào dữ liệu theo dõi về môi trường ngay xung quanh bạn."
+ "hiểu cụ thể về môi trường ngay xung quanh bạn"
+ "Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cụ thể về môi trường ngay xung quanh bạn."
+ "truy cập vào dữ liệu XR khi không ở chế độ nền trước"
+ "Cho phép ứng dụng này truy cập vào dữ liệu thực tế mở rộng (XR) khi không ở chế độ nền trước.""Dùng dữ liệu sinh trắc học""Dùng dữ liệu sinh trắc học hoặc phương thức khóa màn hình""Xác minh danh tính của bạn"
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 46c53eb074acc065ccbce3805c54fb8b0ff6d11c..1f625ad553550e50a475a1a50d8f4f2fa3430d9a 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -353,14 +353,10 @@
"访问与您的生命体征相关的传感器数据""通知""显示通知"
-
-
-
-
-
-
-
-
+ "扩展现实跟踪数据"
+ "访问有关您和您周围环境的扩展现实数据"
+ "敏感的扩展现实跟踪数据"
+ "访问视线等敏感的跟踪数据""检索窗口内容""检测您与之互动的窗口的内容。""启用触摸浏览"
@@ -656,38 +652,22 @@
"允许该应用修改您的照片收藏。""从您的媒体收藏中读取位置信息""允许该应用从您的媒体收藏中读取位置信息。"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "跟踪您的大致视线"
+ "允许应用跟踪您的大致视线。"
+ "跟踪您的视线方向"
+ "允许应用访问精确的视线跟踪数据。"
+ "跟踪您的面部表情"
+ "允许应用访问面部跟踪数据。"
+ "跟踪您的手部动作"
+ "允许应用访问手部跟踪数据。"
+ "跟踪您的头部动作"
+ "允许应用访问头部追踪数据。"
+ "了解您周围的环境"
+ "允许应用访问关于您周围环境的跟踪数据。"
+ "详细了解您周围的环境"
+ "允许应用访问关于您周围环境的详细跟踪数据。"
+ "不在前台时访问扩展现实数据"
+ "允许应用不在前台时访问扩展现实数据。""使用生物识别""使用生物识别或屏幕锁定凭据""验证是您本人在操作"
@@ -1067,7 +1047,7 @@
"停止""快退""快进"
- "只能拨打紧急呼叫电话"
+ "只能拨打紧急求助电话""网络已锁定""SIM 卡已用 PUK 码锁定。""请参阅《用户指南》或与客服人员联系。"
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index d013a475539bf1afbfdd3c97ff5e708219461d09..fc2783ce95dbb3ed2e4d26c437713329e01d9c5d 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -353,14 +353,10 @@
"存取與你生命體徵相關的感應器資料""通知""顯示通知"
-
-
-
-
-
-
-
-
+ "XR 追蹤資料"
+ "存取與你和周遭環境相關的 XR 資料"
+ "敏感的 XR 追蹤資料"
+ "存取敏感的追蹤資料,例如視線""擷取視窗內容""檢查你使用中的視窗內容。""開啟「輕觸探索」功能"
@@ -656,38 +652,22 @@
"允許應用程式修改你的相片集。""讀取媒體集的位置""允許應用程式讀取媒體集的位置。"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "追蹤視線的概略方向"
+ "允許應用程式追蹤你概略的視線。"
+ "追蹤視線"
+ "允許應用程式存取精確的視線資料。"
+ "追蹤面孔"
+ "允許應用程式存取面孔追蹤資料。"
+ "追蹤手勢"
+ "允許應用程式存取手勢追蹤資料。"
+ "追蹤頭部"
+ "允許應用程式存取頭部追蹤資料。"
+ "瞭解當下環境"
+ "允許應用程式存取與你周遭環境相關的追蹤資料。"
+ "詳細瞭解當下環境"
+ "允許應用程式存取與你周遭環境相關的極詳細追蹤資料。"
+ "在非前景執行時存取 XR 資料"
+ "允許應用程式在非前景執行時存取 XR 資料。""使用生物識別""使用生物識別或螢幕鎖定""驗證是你本人"
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index f1c9dcdffe62f90bf4e825a1fc7ac95552b1adc6..c53aaa1b0f4859ac4ecd8880905681b6bd658328 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -353,14 +353,10 @@
"存取與你生命徵象相關的感應器資料""通知""顯示通知"
-
-
-
-
-
-
-
-
+ "延展實境追蹤資料"
+ "存取與你和周遭環境相關的延展實境資料"
+ "敏感的延展實境追蹤資料"
+ "存取敏感的追蹤資料,例如視線""擷取視窗內容""檢查你存取的視窗內容。""啟用輕觸探索功能"
@@ -656,38 +652,22 @@
"允許應用程式修改你的相片收藏。""讀取你的媒體收藏的位置資訊""允許應用程式讀取你的媒體收藏的位置資訊。"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "追蹤視線的大概方向"
+ "允許應用程式追蹤你視線的大概方向。"
+ "追蹤視線"
+ "允許應用程式存取視線精確方向的資料。"
+ "追蹤臉部"
+ "允許應用程式存取臉部追蹤資料。"
+ "追蹤手勢"
+ "允許應用程式存取手勢追蹤資料。"
+ "追蹤頭部"
+ "允許應用程式存取頭部追蹤資料。"
+ "瞭解當下環境"
+ "允許應用程式存取與你周遭環境相關的追蹤資料。"
+ "深入瞭解當下環境"
+ "允許應用程式存取與你周遭環境相關的詳細追蹤資料。"
+ "在非前景執行時存取延展實境資料"
+ "允許應用程式在非前景執行時存取延展實境資料。""使用生物辨識功能""使用生物辨識或螢幕鎖定功能""驗證你的身分"
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 5732cec9af9537f1e04ee926af9d34f51641efee..079bf67bec6b1f601c1eeb46af039a1455353e11 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -353,14 +353,10 @@
"finyelela idatha yesizweli mayelana nezimpawu zakho ezibalulekile""Izaziso""bonisa izaziso"
-
-
-
-
-
-
-
-
+ "Idatha yokulandelela ye-XR"
+ "finyelela idatha ye-XR emayelana nawe nendawo ekuzungezile"
+ "idatha ebucayi yokulandelela i-XR"
+ "finyelela idatha yokulandelela ebucayi, efana nokubuka kweso""Thola okuqukethwe kwewindi""Hlola okuqukethwe kwewindi ohlanganyela nalo.""Vula ukuhlola ngokuthinta"
@@ -656,38 +652,22 @@
"Ivumela uhlelo lwakho lokusebenza ukuthi lilungise iqoqo lakho lesithombe.""funda izindawo kusukela kuqoqo lakho lemidiya""Ivumela uhlelo lokusebenza ukuthi lifunde izindawo kusukela kuqoqo lakho lemidiya."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ "landelela ukuthi iso lakho libheke ngakuphi"
+ "Ivumela i-app ukuthi ilandelele ukubuka kwakho kweso."
+ "landelela lapho obheke khona"
+ "Ivumela i-app ifinyelele idatha yokubuka kweso okunembile."
+ "landelela ubuso bakho"
+ "Ivumela i-app ukuthi ifinyelele idatha yokulandelela ukunyakaza kobuso."
+ "landelela izandla zakho"
+ "Ivumela i-app ukuthi ifinyelele idatha yokulandelela ukunyakaza kwesandla."
+ "landelela ikhanda lakho"
+ "Ivumela i-app ukuthi ifinyelele idatha yokulandelela ukunyakaza kwekhanda."
+ "qonda indawo okuyo eseduze"
+ "Ivumela i-app ukuthi ifinyelele idatha elandelela indawo ekuzungezile."
+ "qonda indawo yakho eseduze ngemininingwane ephezulu"
+ "Ivumela i-app ukuthi ifinyelele idatha elandelela indawo ekuzungezile ngemininingwane ephezulu kakhulu."
+ "finyelela idatha ye-XR ngenkathi ungekho ngaphambili"
+ "Ivumela i-app ukuba ifinyelele idatha ye-XR ngenkathi ingekho ngaphambili.""Sebenzisa i-biometrics""Sebenzisa i-biometrics noma ukukhiya isikrini""Qinisekisa ukuthi nguwe"
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 15230c299973fd2e0ba300ce739f778ba9d1a906..9983c459d71a4b9c53c3f5966d2e86ee1cb5c4a1 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -853,11 +853,14 @@
element.
-->
@@ -1519,18 +1523,19 @@
This attribute is ignored if the activity has
{@link android.R.attr#resizeableActivity} set to {@code true}.
+
To improve the layout of apps on form factors with smallest width >= 600dp, the
+ system ignores this attribute for apps that target Android 16 (API level 36) or
+ higher.
Device manufacturers can configure devices to override (ignore) this attribute
- to improve the layout of apps. See
-
- Device compatibility mode.
+ to improve the layout of apps.
On devices with Android 16 (API level 36) or higher installed, virtual device
- owners (limited to select trusted and privileged apps) can configure devices
- they manage to override (ignore) this attribute to improve app layout. See
-
- Device compatibility mode. See also
+ owners (select trusted and privileged apps) can configure devices they manage to
+ override (ignore) this attribute to improve app layout. See
Companion app streaming.
Minimum aspect ratio, expressed as (longer dimension / shorter dimension) in decimal
form. For example, if the minimum aspect ratio is 4:3, set value to 1.33.
Value needs to be greater or equal to 1.0, otherwise it is ignored.
-
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Canvas extends BaseCanvas {
private static int sCompatibilityVersion = 0;
private static boolean sCompatibilityRestore = false;
diff --git a/graphics/java/android/graphics/CanvasProperty.java b/graphics/java/android/graphics/CanvasProperty.java
index e949584b0659d46e614f1e9c6c1dc61e23b6a1cc..755161d387cc9ae8ac3c824674bc21dbfd21c6f1 100644
--- a/graphics/java/android/graphics/CanvasProperty.java
+++ b/graphics/java/android/graphics/CanvasProperty.java
@@ -25,6 +25,7 @@ import com.android.internal.util.VirtualRefBasePtr;
* TODO: Make public?
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class CanvasProperty {
private VirtualRefBasePtr mProperty;
diff --git a/graphics/java/android/graphics/ColorFilter.java b/graphics/java/android/graphics/ColorFilter.java
index 7050325997b6638ee357f066214b2723194a44e2..918f26dfe6401d6cc0daee1a95cb0931fddb7ebf 100644
--- a/graphics/java/android/graphics/ColorFilter.java
+++ b/graphics/java/android/graphics/ColorFilter.java
@@ -23,6 +23,7 @@ import libcore.util.NativeAllocationRegistry;
* each pixel drawn with that paint. This is an abstract class that should
* never be used directly.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ColorFilter {
private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/ColorMatrixColorFilter.java b/graphics/java/android/graphics/ColorMatrixColorFilter.java
index bfdf3187c575432baeee694ca9d98bcdec116a5c..cb78a838499477617710859e819521d376567b7e 100644
--- a/graphics/java/android/graphics/ColorMatrixColorFilter.java
+++ b/graphics/java/android/graphics/ColorMatrixColorFilter.java
@@ -27,6 +27,7 @@ import android.os.Build;
*
* @see ColorMatrix
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ColorMatrixColorFilter extends ColorFilter {
@UnsupportedAppUsage
private final ColorMatrix mMatrix = new ColorMatrix();
diff --git a/graphics/java/android/graphics/Compatibility.java b/graphics/java/android/graphics/Compatibility.java
index 747fbf111b4b748b34233043781b8057cd6857a2..f89a4f7810c1a081fb6f7da1e98b0083f777ba40 100644
--- a/graphics/java/android/graphics/Compatibility.java
+++ b/graphics/java/android/graphics/Compatibility.java
@@ -21,6 +21,7 @@ package android.graphics;
* specified by the app.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Compatibility {
private Compatibility() {}
diff --git a/graphics/java/android/graphics/ComposePathEffect.java b/graphics/java/android/graphics/ComposePathEffect.java
index 7d59ecea948ece20eaf326ea3dddcfeda260eb38..b380d2e78d4c62a602f4eb238d91f3452aa3565a 100644
--- a/graphics/java/android/graphics/ComposePathEffect.java
+++ b/graphics/java/android/graphics/ComposePathEffect.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ComposePathEffect extends PathEffect {
/**
diff --git a/graphics/java/android/graphics/ComposeShader.java b/graphics/java/android/graphics/ComposeShader.java
index e7145686247e826e1bbfb16a5593c3f4ef3acc6c..57a11d232ac56295898598e5a0b377cd99bc9aff 100644
--- a/graphics/java/android/graphics/ComposeShader.java
+++ b/graphics/java/android/graphics/ComposeShader.java
@@ -22,6 +22,7 @@ import android.annotation.NonNull;
/** A subclass of shader that returns the composition of two other shaders, combined by
an {@link android.graphics.Xfermode} subclass.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ComposeShader extends Shader {
Shader mShaderA;
diff --git a/graphics/java/android/graphics/CornerPathEffect.java b/graphics/java/android/graphics/CornerPathEffect.java
index 8f4d7d9b1c49dc053ff6b27bc2d5b93b777bd15d..37f0d2979e5e5e9c1a013436eda574beb8a97480 100644
--- a/graphics/java/android/graphics/CornerPathEffect.java
+++ b/graphics/java/android/graphics/CornerPathEffect.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class CornerPathEffect extends PathEffect {
/**
diff --git a/graphics/java/android/graphics/DashPathEffect.java b/graphics/java/android/graphics/DashPathEffect.java
index ef3ebe8089cab448bc9023c907a331afb94e17fd..ff3c376be29deacde5525b945a2788a7d9090614 100644
--- a/graphics/java/android/graphics/DashPathEffect.java
+++ b/graphics/java/android/graphics/DashPathEffect.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DashPathEffect extends PathEffect {
/**
diff --git a/graphics/java/android/graphics/DiscretePathEffect.java b/graphics/java/android/graphics/DiscretePathEffect.java
index 3b3c9c9be6c2624bcc89daab0cfd26358710a7d9..77f984589896e514b2d5ddf0e7c2ddf2678066ab 100644
--- a/graphics/java/android/graphics/DiscretePathEffect.java
+++ b/graphics/java/android/graphics/DiscretePathEffect.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DiscretePathEffect extends PathEffect {
/**
diff --git a/graphics/java/android/graphics/DrawFilter.java b/graphics/java/android/graphics/DrawFilter.java
index c7fdcb22c71d4f249bbe026028b7850db139fb20..505a830d725b611d73c04a9b4d75b1742b6fd81c 100644
--- a/graphics/java/android/graphics/DrawFilter.java
+++ b/graphics/java/android/graphics/DrawFilter.java
@@ -22,6 +22,7 @@ package android.graphics;
* can disable/enable antialiasing, or change the color for everything this is
* drawn.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DrawFilter {
/**
diff --git a/graphics/java/android/graphics/EmbossMaskFilter.java b/graphics/java/android/graphics/EmbossMaskFilter.java
index 003678ae5a3cb8fa361dc589555d9ecc3a166bd2..f0a661f57291a3d31522a4bc8faf2c278baca009 100644
--- a/graphics/java/android/graphics/EmbossMaskFilter.java
+++ b/graphics/java/android/graphics/EmbossMaskFilter.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class EmbossMaskFilter extends MaskFilter {
/**
* Create an emboss maskfilter
diff --git a/graphics/java/android/graphics/FontFamily.java b/graphics/java/android/graphics/FontFamily.java
index 88f0e8ef8a94d9dbfcc2898febe4464521594f21..09022ee35e6494e68e52acc7509eab74daa918a0 100644
--- a/graphics/java/android/graphics/FontFamily.java
+++ b/graphics/java/android/graphics/FontFamily.java
@@ -41,6 +41,7 @@ import java.nio.channels.FileChannel;
* @deprecated Use {@link android.graphics.fonts.FontFamily} instead.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class FontFamily {
private static String TAG = "FontFamily";
diff --git a/graphics/java/android/graphics/FontListParser.java b/graphics/java/android/graphics/FontListParser.java
index 13c4a94cb9b66a3513c2528dc7efb798b3630197..8d0f12866bcfd932b700c26647c07fa37b6bcc0c 100644
--- a/graphics/java/android/graphics/FontListParser.java
+++ b/graphics/java/android/graphics/FontListParser.java
@@ -48,6 +48,7 @@ import java.util.regex.Pattern;
* Parser for font config files.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class FontListParser {
private static final String TAG = "FontListParser";
diff --git a/graphics/java/android/graphics/ForceDarkType.java b/graphics/java/android/graphics/ForceDarkType.java
index 396b03703bb985dc4a094432b17fed13da5ef0c6..d21aef30a45c01974b6d1ee4cffe74bb6f8335fd 100644
--- a/graphics/java/android/graphics/ForceDarkType.java
+++ b/graphics/java/android/graphics/ForceDarkType.java
@@ -29,6 +29,7 @@ import java.lang.annotation.RetentionPolicy;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ForceDarkType {
/**
* Force dark disabled: normal, default operation.
diff --git a/graphics/java/android/graphics/FrameInfo.java b/graphics/java/android/graphics/FrameInfo.java
index 3b8f46630344215a4bc8cfdec12023f2fc00eb15..520213892d01419251eefbdea76d868d99fcd761 100644
--- a/graphics/java/android/graphics/FrameInfo.java
+++ b/graphics/java/android/graphics/FrameInfo.java
@@ -38,6 +38,7 @@ import java.lang.annotation.RetentionPolicy;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class FrameInfo {
public long[] frameInfo = new long[FRAME_INFO_SIZE];
diff --git a/graphics/java/android/graphics/Gainmap.java b/graphics/java/android/graphics/Gainmap.java
index 63ca3b8313ce0fa863e3d0e6a580685c322911fa..7fc13db85659fd5c9501585cc9e7dad6ecd50f21 100644
--- a/graphics/java/android/graphics/Gainmap.java
+++ b/graphics/java/android/graphics/Gainmap.java
@@ -86,6 +86,7 @@ import java.lang.annotation.RetentionPolicy;
* for these functions cancels out and does not affect the result, so other bases may be used
* if preferred.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Gainmap implements Parcelable {
/** @hide */
diff --git a/graphics/java/android/graphics/GraphicBuffer.java b/graphics/java/android/graphics/GraphicBuffer.java
index 6705b25ab0eceaa55c551d03e9094551b2c30ab2..4982851c65de960527f26806bde64629d5a525a6 100644
--- a/graphics/java/android/graphics/GraphicBuffer.java
+++ b/graphics/java/android/graphics/GraphicBuffer.java
@@ -28,6 +28,7 @@ import android.os.Parcelable;
* @hide
*/
@SuppressWarnings("UnusedDeclaration")
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class GraphicBuffer implements Parcelable {
// Note: keep usage flags in sync with GraphicBuffer.h and gralloc.h
public static final int USAGE_SW_READ_NEVER = 0x0;
diff --git a/graphics/java/android/graphics/GraphicsProtos.java b/graphics/java/android/graphics/GraphicsProtos.java
index 6bc41d39ff98c2d1d1ea5d03714368bdd239b123..fa7eaf946845213cb3e05c065c8bc23d68be9dc7 100644
--- a/graphics/java/android/graphics/GraphicsProtos.java
+++ b/graphics/java/android/graphics/GraphicsProtos.java
@@ -24,6 +24,7 @@ import android.util.proto.ProtoOutputStream;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class GraphicsProtos {
/** GraphicsProtos can never be an instance */
private GraphicsProtos() {}
diff --git a/graphics/java/android/graphics/GraphicsStatsService.java b/graphics/java/android/graphics/GraphicsStatsService.java
index 7a012bcde7995ac0ebc27ff189f3c31e6ade3486..d0b9998e18c8b38c42e6d481d048dd16966b57ed 100644
--- a/graphics/java/android/graphics/GraphicsStatsService.java
+++ b/graphics/java/android/graphics/GraphicsStatsService.java
@@ -74,6 +74,7 @@ import java.util.TimeZone;
* for the process to use.
*
* @hide */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class GraphicsStatsService extends IGraphicsStats.Stub {
public static final String GRAPHICS_STATS_SERVICE = "graphicsstats";
diff --git a/graphics/java/android/graphics/HardwareBufferRenderer.java b/graphics/java/android/graphics/HardwareBufferRenderer.java
index e04f13c9b92236de6e2362c7340cc4606472793c..81798709b7c6063254f2cbb13aa72faa1409f820 100644
--- a/graphics/java/android/graphics/HardwareBufferRenderer.java
+++ b/graphics/java/android/graphics/HardwareBufferRenderer.java
@@ -55,6 +55,7 @@ import java.util.function.Consumer;
* HardwareBufferRenderer will never clear contents before each draw invocation so previous contents
* in the {@link HardwareBuffer} target will be preserved across renders.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class HardwareBufferRenderer implements AutoCloseable {
private static final ColorSpace DEFAULT_COLORSPACE = ColorSpace.get(Named.SRGB);
diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java
index ef6b72871415bdaa50cb8952f814bbda5ad26311..3444f84c20af1e241654ec90d9328489aff56e40 100644
--- a/graphics/java/android/graphics/HardwareRenderer.java
+++ b/graphics/java/android/graphics/HardwareRenderer.java
@@ -79,6 +79,7 @@ import sun.misc.Cleaner;
* Failure to do so will cause the render thread to stall on that surface, blocking all
* HardwareRenderer instances.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class HardwareRenderer {
private static final String LOG_TAG = "HardwareRenderer";
diff --git a/graphics/java/android/graphics/HardwareRendererObserver.java b/graphics/java/android/graphics/HardwareRendererObserver.java
index d5a6a2fe158ad7a6619199e232495dc3a3476f19..99263780f407015e926bc93ba4ee62582f4b52b5 100644
--- a/graphics/java/android/graphics/HardwareRendererObserver.java
+++ b/graphics/java/android/graphics/HardwareRendererObserver.java
@@ -28,6 +28,7 @@ import java.lang.ref.WeakReference;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class HardwareRendererObserver {
private final long[] mFrameMetrics;
private final Handler mHandler;
diff --git a/graphics/java/android/graphics/ImageDecoder.java b/graphics/java/android/graphics/ImageDecoder.java
index 6395179967244e7973e076c4117de597a9524b7f..419929a390072169e3aa6c0b4167d54426d38a97 100644
--- a/graphics/java/android/graphics/ImageDecoder.java
+++ b/graphics/java/android/graphics/ImageDecoder.java
@@ -44,6 +44,7 @@ import android.media.MediaFormat;
import android.net.Uri;
import android.os.Build;
import android.os.Trace;
+import android.ravenwood.annotation.RavenwoodIgnore;
import android.system.ErrnoException;
import android.system.Os;
import android.util.DisplayMetrics;
@@ -173,6 +174,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
* });
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class ImageDecoder implements AutoCloseable {
/**
* Source of encoded image data.
@@ -1987,6 +1989,7 @@ public final class ImageDecoder implements AutoCloseable {
* Check if HEVC decoder is supported by the device.
*/
@SuppressWarnings("AndroidFrameworkCompatChange")
+ @RavenwoodIgnore(blockedBy = MediaCodecList.class)
private static boolean isHevcDecoderSupported() {
synchronized (sIsHevcDecoderSupportedLock) {
if (sIsHevcDecoderSupportedInitialized) {
@@ -2010,6 +2013,7 @@ public final class ImageDecoder implements AutoCloseable {
* Checks if the device supports decoding 10-bit AV1.
*/
@SuppressWarnings("AndroidFrameworkCompatChange") // This is not an app-visible API.
+ @RavenwoodIgnore(blockedBy = MediaCodecList.class)
private static boolean isP010SupportedForAV1() {
synchronized (sIsP010SupportedLock) {
if (sIsP010SupportedFlagsInitialized) {
@@ -2025,6 +2029,7 @@ public final class ImageDecoder implements AutoCloseable {
* This method is called by JNI.
*/
@SuppressWarnings("unused")
+ @RavenwoodIgnore(blockedBy = MediaCodecList.class)
private static boolean isP010SupportedForHEVC() {
synchronized (sIsP010SupportedLock) {
if (sIsP010SupportedFlagsInitialized) {
diff --git a/graphics/java/android/graphics/ImageFormat.java b/graphics/java/android/graphics/ImageFormat.java
index b4899f975f43f2a608715a3cad2d5c35b6798389..4c9f5ac6ba923c1a324b1cd55698f25f8ddb1cbb 100644
--- a/graphics/java/android/graphics/ImageFormat.java
+++ b/graphics/java/android/graphics/ImageFormat.java
@@ -24,6 +24,7 @@ import com.android.internal.camera.flags.Flags;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ImageFormat {
/** @hide */
@Retention(RetentionPolicy.SOURCE)
diff --git a/graphics/java/android/graphics/LayerRasterizer.java b/graphics/java/android/graphics/LayerRasterizer.java
index 25155ab284fb0baf6a465c6229d6b5e0a15ea29a..1a44248d01b041f49b371fd27cf505159e867492 100644
--- a/graphics/java/android/graphics/LayerRasterizer.java
+++ b/graphics/java/android/graphics/LayerRasterizer.java
@@ -20,6 +20,7 @@ package android.graphics;
* @removed feature is not supported by hw-accerlerated or PDF backends
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LayerRasterizer extends Rasterizer {
public LayerRasterizer() { }
diff --git a/graphics/java/android/graphics/LeakyTypefaceStorage.java b/graphics/java/android/graphics/LeakyTypefaceStorage.java
index 618e60d442d73c39c263d775de5d58e2f05bde01..25a843696cc564de978767e9d50e4522b0cc2c1a 100644
--- a/graphics/java/android/graphics/LeakyTypefaceStorage.java
+++ b/graphics/java/android/graphics/LeakyTypefaceStorage.java
@@ -32,6 +32,7 @@ import java.util.ArrayList;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LeakyTypefaceStorage {
private static final Object sLock = new Object();
diff --git a/graphics/java/android/graphics/LightingColorFilter.java b/graphics/java/android/graphics/LightingColorFilter.java
index fe73a1a70b9c7d54c8e502380fcbb0bb31377c65..1afdc7706396a886922157a26853e82c1fcec236 100644
--- a/graphics/java/android/graphics/LightingColorFilter.java
+++ b/graphics/java/android/graphics/LightingColorFilter.java
@@ -40,6 +40,7 @@ import android.os.Build;
*
* The result is pinned to the [0..255] range for each channel.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LightingColorFilter extends ColorFilter {
@ColorInt
private int mMul;
diff --git a/graphics/java/android/graphics/LinearGradient.java b/graphics/java/android/graphics/LinearGradient.java
index 087937144b97695783b6b5c8f7e270f0e9c6e9dc..c6566c9b27fe27b94e44f6b431b476b2141af536 100644
--- a/graphics/java/android/graphics/LinearGradient.java
+++ b/graphics/java/android/graphics/LinearGradient.java
@@ -24,6 +24,7 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LinearGradient extends Shader {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private float mX0;
diff --git a/graphics/java/android/graphics/MaskFilter.java b/graphics/java/android/graphics/MaskFilter.java
index d4743155729ea211a76cb1d15a07e47ba44f6d40..b490650e4d0ca4739bb4b55298ce4c9f1a9a9be4 100644
--- a/graphics/java/android/graphics/MaskFilter.java
+++ b/graphics/java/android/graphics/MaskFilter.java
@@ -21,6 +21,7 @@ package android.graphics;
* an alpha-channel mask before drawing it. A subclass of MaskFilter may be
* installed into a Paint. Blur and emboss are implemented as subclasses of MaskFilter.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MaskFilter {
protected void finalize() throws Throwable {
diff --git a/graphics/java/android/graphics/Mesh.java b/graphics/java/android/graphics/Mesh.java
index 6be8332e784b34fcbde4fd298f9824c4fd625a98..f4d841b161fab795436f8022e6a0cd901d203f91 100644
--- a/graphics/java/android/graphics/Mesh.java
+++ b/graphics/java/android/graphics/Mesh.java
@@ -37,6 +37,7 @@ import java.nio.ShortBuffer;
* for the mesh. Once generated, a mesh object can be drawn through
* {@link Canvas#drawMesh(Mesh, BlendMode, Paint)}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Mesh {
private long mNativeMeshWrapper;
private boolean mIsIndexed;
diff --git a/graphics/java/android/graphics/MeshSpecification.java b/graphics/java/android/graphics/MeshSpecification.java
index b1aae7f37c31bcefb969dc5a9ee59afb3acb1a06..9c7e948dfc1b9a35d00f336befe5ead8eb78ff9e 100644
--- a/graphics/java/android/graphics/MeshSpecification.java
+++ b/graphics/java/android/graphics/MeshSpecification.java
@@ -72,6 +72,7 @@ import java.lang.annotation.RetentionPolicy;
* These should be kept in mind when generating a mesh specification, as exceeding them will
* lead to errors.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MeshSpecification {
long mNativeMeshSpec;
diff --git a/graphics/java/android/graphics/Movie.java b/graphics/java/android/graphics/Movie.java
index 9c9535d16aabc9b96866c31c647068a55e2a3a89..cefe391f2d2cc2709f0496be20a83e14459313e7 100644
--- a/graphics/java/android/graphics/Movie.java
+++ b/graphics/java/android/graphics/Movie.java
@@ -27,6 +27,7 @@ import java.io.InputStream;
* @deprecated Prefer {@link android.graphics.drawable.AnimatedImageDrawable}.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Movie {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private long mNativeMovie;
diff --git a/graphics/java/android/graphics/NinePatch.java b/graphics/java/android/graphics/NinePatch.java
index 382269f74366e38c17a780d2c454253ed1421415..00df23fe76bac5a1c3d24f1f2d2598d745f6c02c 100644
--- a/graphics/java/android/graphics/NinePatch.java
+++ b/graphics/java/android/graphics/NinePatch.java
@@ -32,6 +32,7 @@ import android.compat.annotation.UnsupportedAppUsage;
* using a WYSIWYG graphics editor.
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class NinePatch {
/**
* Struct of inset information attached to a 9 patch bitmap.
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index 3d4dccf095f525d1c905d796a43fcc2c0ab39e86..a0ca0988e03c3e9fa4a199f9c890423896eeb00b 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -66,6 +66,7 @@ import java.util.Objects;
* The Paint class holds the style and color information about how to draw
* geometries, text and bitmaps.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Paint {
private static final String TAG = "Paint";
diff --git a/graphics/java/android/graphics/PaintFlagsDrawFilter.java b/graphics/java/android/graphics/PaintFlagsDrawFilter.java
index 232661113b5acdf46048f6b057c6e57087d09e40..f4c49b11ea96041b5143387882a2804425df0929 100644
--- a/graphics/java/android/graphics/PaintFlagsDrawFilter.java
+++ b/graphics/java/android/graphics/PaintFlagsDrawFilter.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PaintFlagsDrawFilter extends DrawFilter {
/**
* Subclass of DrawFilter that affects every paint by first clearing
diff --git a/graphics/java/android/graphics/PathDashPathEffect.java b/graphics/java/android/graphics/PathDashPathEffect.java
index 2b6a6edcc266f14f7e47dcece1b67c283395acde..dc92e6caabcd55e9b0b8341e1c2c832956bffd79 100644
--- a/graphics/java/android/graphics/PathDashPathEffect.java
+++ b/graphics/java/android/graphics/PathDashPathEffect.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PathDashPathEffect extends PathEffect {
public enum Style {
diff --git a/graphics/java/android/graphics/PathEffect.java b/graphics/java/android/graphics/PathEffect.java
index 3292501e6324f23e1e9c6be7b5aa8d1866a65d70..9bb71935cfd0d76addb3b9c6fabbe9349ffa0492 100644
--- a/graphics/java/android/graphics/PathEffect.java
+++ b/graphics/java/android/graphics/PathEffect.java
@@ -21,6 +21,7 @@ package android.graphics;
* the geometry of a drawing primitive before it is transformed by the
* canvas' matrix and drawn.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PathEffect {
protected void finalize() throws Throwable {
diff --git a/graphics/java/android/graphics/PathIterator.java b/graphics/java/android/graphics/PathIterator.java
index d7caabf9f91bca160716b1774312d5f6edb97171..1ed70d02d140f0876614b49f9d36e47be10e075e 100644
--- a/graphics/java/android/graphics/PathIterator.java
+++ b/graphics/java/android/graphics/PathIterator.java
@@ -34,6 +34,7 @@ import java.util.Iterator;
* PathIterator can be used to query a given {@link Path} object, to discover its
* operations and point values.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PathIterator implements Iterator {
private final float[] mPointsArray;
@@ -47,9 +48,11 @@ public class PathIterator implements Iterator {
private static final boolean IS_DALVIK = "dalvik".equalsIgnoreCase(
System.getProperty("java.vm.name"));
- private static final NativeAllocationRegistry sRegistry =
- NativeAllocationRegistry.createMalloced(
- PathIterator.class.getClassLoader(), nGetFinalizer());
+ private static class NoImagePreloadHolder {
+ private static final NativeAllocationRegistry sRegistry =
+ NativeAllocationRegistry.createMalloced(
+ PathIterator.class.getClassLoader(), nGetFinalizer());
+ }
/**
* The Verb indicates the operation for a given segment of a path. These
@@ -69,6 +72,11 @@ public class PathIterator implements Iterator {
public static final int VERB_CLOSE = 5;
public static final int VERB_DONE = 6;
+
+ static {
+ // Keep exist in bytecode
+ }
+
/**
* Returns a {@link PathIterator} object for this path, which can be used to query the
* data (operations and points) in the path. Iterators can only be used on Path objects
@@ -90,7 +98,7 @@ public class PathIterator implements Iterator {
mPointsArray = new float[POINT_ARRAY_SIZE];
mPointsAddress = 0;
}
- sRegistry.registerNativeAllocation(this, mNativeIterator);
+ NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, mNativeIterator);
}
/**
diff --git a/graphics/java/android/graphics/PathMeasure.java b/graphics/java/android/graphics/PathMeasure.java
index 2c6cfa5c2e3d22574f228e050273351300cbeaa9..4d123db41ee74ed4222f35edd1f79125bdf3665b 100644
--- a/graphics/java/android/graphics/PathMeasure.java
+++ b/graphics/java/android/graphics/PathMeasure.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PathMeasure {
private Path mPath;
diff --git a/graphics/java/android/graphics/Picture.java b/graphics/java/android/graphics/Picture.java
index ee4165b8da05048dfae5f0aec476d98821f72942..54eb2bc659bc2a44f7dd2d1978d98bb97bca19d0 100644
--- a/graphics/java/android/graphics/Picture.java
+++ b/graphics/java/android/graphics/Picture.java
@@ -33,6 +33,7 @@ import java.io.OutputStream;
*
Note: Prior to API level 23 a picture cannot
* be replayed on a hardware accelerated canvas.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Picture {
private PictureCanvas mRecordingCanvas;
// TODO: Figure out if this was a false-positive
diff --git a/graphics/java/android/graphics/PixelXorXfermode.java b/graphics/java/android/graphics/PixelXorXfermode.java
index 27884e07ecfb04b43cb6a57cb376d294095ee96f..64278525bb1f698dad8ab82ca474a26f5f6ba01f 100644
--- a/graphics/java/android/graphics/PixelXorXfermode.java
+++ b/graphics/java/android/graphics/PixelXorXfermode.java
@@ -20,6 +20,7 @@ package android.graphics;
* @removed
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PixelXorXfermode extends Xfermode {
public PixelXorXfermode(int opColor) {
diff --git a/graphics/java/android/graphics/PorterDuff.java b/graphics/java/android/graphics/PorterDuff.java
index eb940e2f90175bdd1d8e5ec247614bd1e21c4bf9..730a804e17c35a04928a501c4c2826190d79440c 100644
--- a/graphics/java/android/graphics/PorterDuff.java
+++ b/graphics/java/android/graphics/PorterDuff.java
@@ -26,6 +26,7 @@ import android.compat.annotation.UnsupportedAppUsage;
*
* Consider using {@link BlendMode} instead as it provides a wider variety of tinting options
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PorterDuff {
/**
* {@usesMathJax}
diff --git a/graphics/java/android/graphics/PorterDuffColorFilter.java b/graphics/java/android/graphics/PorterDuffColorFilter.java
index 0700f217ecf0469d8acb0b1474935acd2b0b5adf..777ef6ce906b96f867ca73ba9617a32f219de64d 100644
--- a/graphics/java/android/graphics/PorterDuffColorFilter.java
+++ b/graphics/java/android/graphics/PorterDuffColorFilter.java
@@ -25,6 +25,7 @@ import android.os.Build;
* A color filter that can be used to tint the source pixels using a single
* color and a specific {@link PorterDuff Porter-Duff composite mode}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PorterDuffColorFilter extends ColorFilter {
@ColorInt
private int mColor;
diff --git a/graphics/java/android/graphics/PorterDuffXfermode.java b/graphics/java/android/graphics/PorterDuffXfermode.java
index 83d0507a507496bff000b8d9d5dd6fa86aebf75d..e10d7370d6f9046ace82931072d7af89c3f13867 100644
--- a/graphics/java/android/graphics/PorterDuffXfermode.java
+++ b/graphics/java/android/graphics/PorterDuffXfermode.java
@@ -23,6 +23,7 @@ package android.graphics;
* information on the available alpha compositing and blending modes.
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PorterDuffXfermode extends Xfermode {
/**
* Create an xfermode that uses the specified porter-duff mode.
diff --git a/graphics/java/android/graphics/PostProcessor.java b/graphics/java/android/graphics/PostProcessor.java
index 6fed39b9975d69c59acb92d21fc91d8e40325675..066214ac6cd60570bf383d3904ffbbb0d01f6354 100644
--- a/graphics/java/android/graphics/PostProcessor.java
+++ b/graphics/java/android/graphics/PostProcessor.java
@@ -37,6 +37,7 @@ import android.graphics.drawable.Drawable;
*
*
Supplied to ImageDecoder via {@link ImageDecoder#setPostProcessor setPostProcessor}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface PostProcessor {
/**
* Do any processing after (for example) decoding.
diff --git a/graphics/java/android/graphics/RadialGradient.java b/graphics/java/android/graphics/RadialGradient.java
index e582e66e16278da801c409646d7d45268bde03f7..06e92eae9c82b77040331ccb23edb5d5bc3a9f7e 100644
--- a/graphics/java/android/graphics/RadialGradient.java
+++ b/graphics/java/android/graphics/RadialGradient.java
@@ -24,6 +24,7 @@ import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RadialGradient extends Shader {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private float mX;
diff --git a/graphics/java/android/graphics/Rasterizer.java b/graphics/java/android/graphics/Rasterizer.java
index 575095426563b172c5cc7ac1a22f688ec6710790..5e67da50a40d96041be9977bf90a05af954416d1 100644
--- a/graphics/java/android/graphics/Rasterizer.java
+++ b/graphics/java/android/graphics/Rasterizer.java
@@ -24,6 +24,7 @@ package android.graphics;
/**
* @removed feature is not supported by hw-accerlerated or PDF backends
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Rasterizer {
protected void finalize() throws Throwable { }
diff --git a/graphics/java/android/graphics/RecordingCanvas.java b/graphics/java/android/graphics/RecordingCanvas.java
index cc5b3b94e0fa352573f90d36f1247b3ff7826a87..a56f461e511a82f384f0f532d8c1d060837d1fde 100644
--- a/graphics/java/android/graphics/RecordingCanvas.java
+++ b/graphics/java/android/graphics/RecordingCanvas.java
@@ -33,6 +33,7 @@ import dalvik.annotation.optimization.CriticalNative;
* {@link RenderNode#endRecording()} is called. It must not be retained beyond that as it is
* internally reused.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class RecordingCanvas extends BaseRecordingCanvas {
// The recording canvas pool should be large enough to handle a deeply nested
// view hierarchy because display lists are generated recursively.
diff --git a/graphics/java/android/graphics/Region.java b/graphics/java/android/graphics/Region.java
index 29708738d2db6dbb0d6679baf924b0e1b45e8ad9..e2215d4bf300647164c142cdf9259f7c61f1cbac 100644
--- a/graphics/java/android/graphics/Region.java
+++ b/graphics/java/android/graphics/Region.java
@@ -23,6 +23,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.util.Pools.SynchronizedPool;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Region implements Parcelable {
private static final int MAX_POOL_SIZE = 10;
diff --git a/graphics/java/android/graphics/RegionIterator.java b/graphics/java/android/graphics/RegionIterator.java
index 443b23c1b5fc728db692ccf9f5abec018fbd730b..5d74487e5a8e40e46ca21530891e4a3ecfbffdb0 100644
--- a/graphics/java/android/graphics/RegionIterator.java
+++ b/graphics/java/android/graphics/RegionIterator.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RegionIterator {
/**
diff --git a/graphics/java/android/graphics/RenderEffect.java b/graphics/java/android/graphics/RenderEffect.java
index b8a46856601e4342228f0cca740a0cf6bc2d8333..06bfb82ef6304b6a2c75a129aecf545780d422be 100644
--- a/graphics/java/android/graphics/RenderEffect.java
+++ b/graphics/java/android/graphics/RenderEffect.java
@@ -30,6 +30,7 @@ import libcore.util.NativeAllocationRegistry;
* Additionally a {@link RenderEffect} can be applied to a View's backing RenderNode through
* {@link android.view.View#setRenderEffect(RenderEffect)}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class RenderEffect {
private static class RenderEffectHolder {
diff --git a/graphics/java/android/graphics/RenderNode.java b/graphics/java/android/graphics/RenderNode.java
index 03a8b306f99d6092f8db0892ae5b25998091b5c0..fa41876187cf2e9017da3c4cd15503b3edbc627e 100644
--- a/graphics/java/android/graphics/RenderNode.java
+++ b/graphics/java/android/graphics/RenderNode.java
@@ -192,6 +192,7 @@ import java.lang.ref.WeakReference;
* top-level content is desired, and finally calling {@link Surface#unlockCanvasAndPost(Canvas)}.
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class RenderNode {
// Use a Holder to allow static initialization in the boot image.
diff --git a/graphics/java/android/graphics/RuntimeColorFilter.java b/graphics/java/android/graphics/RuntimeColorFilter.java
index a64acfe767a9fb1c16fa0d2cccb3bc4fc67a4a10..06aecc3f2c49bd7103dbf0c99da1cc05727212f4 100644
--- a/graphics/java/android/graphics/RuntimeColorFilter.java
+++ b/graphics/java/android/graphics/RuntimeColorFilter.java
@@ -37,6 +37,7 @@ import com.android.graphics.hwui.flags.Flags;
*
*/
@FlaggedApi(Flags.FLAG_RUNTIME_COLOR_FILTERS_BLENDERS)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RuntimeColorFilter extends ColorFilter {
private String mAgsl;
diff --git a/graphics/java/android/graphics/RuntimeShader.java b/graphics/java/android/graphics/RuntimeShader.java
index db2376e008f571c83eedf68b6e11124225d99ee1..6464f72490c427af8958d6d08afec3219e0b3886 100644
--- a/graphics/java/android/graphics/RuntimeShader.java
+++ b/graphics/java/android/graphics/RuntimeShader.java
@@ -248,6 +248,7 @@ import libcore.util.NativeAllocationRegistry;
* the bitmap), remember that the coordinates are local to the canvas.
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RuntimeShader extends Shader {
private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/RuntimeXfermode.java b/graphics/java/android/graphics/RuntimeXfermode.java
index c8a0b1a113399f94db41bc6e2aef3b1d9aff3a6b..1e20bd352244d67e65654c6248f578f7ae955fe0 100644
--- a/graphics/java/android/graphics/RuntimeXfermode.java
+++ b/graphics/java/android/graphics/RuntimeXfermode.java
@@ -39,6 +39,7 @@ import libcore.util.NativeAllocationRegistry;
*
*/
@FlaggedApi(Flags.FLAG_RUNTIME_COLOR_FILTERS_BLENDERS)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RuntimeXfermode extends Xfermode {
private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/Shader.java b/graphics/java/android/graphics/Shader.java
index 4d6beadc0fddaf57771bb81bd9c5054a64eb63b3..369fab45bf69b87e320234317bb406265990378a 100644
--- a/graphics/java/android/graphics/Shader.java
+++ b/graphics/java/android/graphics/Shader.java
@@ -29,6 +29,7 @@ import libcore.util.NativeAllocationRegistry;
* paint.setShader(shader). After that any object (other than a bitmap) that is
* drawn with that paint will get its color(s) from the shader.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Shader {
private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/SumPathEffect.java b/graphics/java/android/graphics/SumPathEffect.java
index 8fedc317c4283aef6e92d086286ab563b4def00b..3543e101fb38b3764acc4d48470f8c90f6b4bc37 100644
--- a/graphics/java/android/graphics/SumPathEffect.java
+++ b/graphics/java/android/graphics/SumPathEffect.java
@@ -16,6 +16,7 @@
package android.graphics;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SumPathEffect extends PathEffect {
/**
diff --git a/graphics/java/android/graphics/SurfaceTexture.java b/graphics/java/android/graphics/SurfaceTexture.java
index 5caedba364be79553f5a387265caf60261972f40..df384ead58fb427d5311216e2ff5305c35b35856 100644
--- a/graphics/java/android/graphics/SurfaceTexture.java
+++ b/graphics/java/android/graphics/SurfaceTexture.java
@@ -78,6 +78,7 @@ import java.lang.ref.WeakReference;
* frame-available callback is called on an arbitrary thread, so unless special care is taken {@link
* #updateTexImage} should not be called directly from the callback.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SurfaceTexture {
private final Looper mCreatorLooper;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
diff --git a/graphics/java/android/graphics/SweepGradient.java b/graphics/java/android/graphics/SweepGradient.java
index 3a29395b1717c8d8df9e18f41535f1b88a0263b9..94219259a69db7218e1466d6db3151ee8e560341 100644
--- a/graphics/java/android/graphics/SweepGradient.java
+++ b/graphics/java/android/graphics/SweepGradient.java
@@ -23,6 +23,7 @@ import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SweepGradient extends Shader {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private float mCx;
diff --git a/graphics/java/android/graphics/TableMaskFilter.java b/graphics/java/android/graphics/TableMaskFilter.java
index 204f9705852a9f3edc55dfe53adad0415933f0d3..ca7627c40031995e68be0ac7501612156dcb1931 100644
--- a/graphics/java/android/graphics/TableMaskFilter.java
+++ b/graphics/java/android/graphics/TableMaskFilter.java
@@ -21,6 +21,7 @@ import android.compat.annotation.UnsupportedAppUsage;
/**
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TableMaskFilter extends MaskFilter {
public TableMaskFilter(byte[] table) {
diff --git a/graphics/java/android/graphics/TemporaryBuffer.java b/graphics/java/android/graphics/TemporaryBuffer.java
index ef3f7f704e0d34ee991b96672659f65641e3ad5c..681c48ea9f715a5d4a0ccdc2754b2357fd76c10d 100644
--- a/graphics/java/android/graphics/TemporaryBuffer.java
+++ b/graphics/java/android/graphics/TemporaryBuffer.java
@@ -23,6 +23,7 @@ import com.android.internal.util.ArrayUtils;
/**
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TemporaryBuffer {
@UnsupportedAppUsage
public static char[] obtain(int len) {
diff --git a/graphics/java/android/graphics/TextureLayer.java b/graphics/java/android/graphics/TextureLayer.java
index ac1bd69020622f54168e92d588cb6d58940c57ef..981b78a7b5b8ab52fb4fdc887eb12ca45c4949dd 100644
--- a/graphics/java/android/graphics/TextureLayer.java
+++ b/graphics/java/android/graphics/TextureLayer.java
@@ -29,6 +29,7 @@ import com.android.internal.util.VirtualRefBasePtr;
*
* @hide TODO: Make this a SystemApi for b/155905258
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class TextureLayer implements AutoCloseable {
private HardwareRenderer mRenderer;
private VirtualRefBasePtr mFinalizer;
diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java
index 874b847c709c8aaff10b399c624a1144f67fda37..d1aca34c7b8d6b49d71a948dbe195448b785de36 100644
--- a/graphics/java/android/graphics/Typeface.java
+++ b/graphics/java/android/graphics/Typeface.java
@@ -42,6 +42,7 @@ import android.os.SystemProperties;
import android.os.Trace;
import android.provider.FontRequest;
import android.provider.FontsContract;
+import android.ravenwood.annotation.RavenwoodReplace;
import android.system.ErrnoException;
import android.system.OsConstants;
import android.text.FontConfig;
@@ -86,6 +87,7 @@ import java.util.Objects;
* textSize, textSkewX, textScaleX to specify
* how text appears when drawn (and measured).
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Typeface {
private static String TAG = "Typeface";
@@ -93,9 +95,11 @@ public class Typeface {
/** @hide */
public static final boolean ENABLE_LAZY_TYPEFACE_INITIALIZATION = true;
- private static final NativeAllocationRegistry sRegistry =
- NativeAllocationRegistry.createMalloced(
- Typeface.class.getClassLoader(), nativeGetReleaseFunc());
+ private static class NoImagePreloadHolder {
+ static final NativeAllocationRegistry sRegistry =
+ NativeAllocationRegistry.createMalloced(
+ Typeface.class.getClassLoader(), nativeGetReleaseFunc());
+ }
/** The default NORMAL typeface object */
public static final Typeface DEFAULT = null;
@@ -1284,7 +1288,7 @@ public class Typeface {
}
native_instance = ni;
- mCleaner = sRegistry.registerNativeAllocation(this, native_instance);
+ mCleaner = NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, native_instance);
mStyle = nativeGetStyle(ni);
mWeight = nativeGetWeight(ni);
mIsVariationInstance = nativeIsVariationInstance(ni);
@@ -1560,9 +1564,23 @@ public class Typeface {
}
static {
+ staticInitializer();
+ }
+
+ @RavenwoodReplace(reason = "Prevent circular reference on host side JVM", bug = 337329128)
+ private static void staticInitializer() {
+ init();
+ }
+
+ private static void staticInitializer$ravenwood() {
+ /* no-op */
+ }
+
+ /** @hide */
+ public static void init() {
// Preload Roboto-Regular.ttf in Zygote for improving app launch performance.
- preloadFontFile("/system/fonts/Roboto-Regular.ttf");
- preloadFontFile("/system/fonts/RobotoStatic-Regular.ttf");
+ preloadFontFile(SystemFonts.SYSTEM_FONT_DIR + "Roboto-Regular.ttf");
+ preloadFontFile(SystemFonts.SYSTEM_FONT_DIR + "RobotoStatic-Regular.ttf");
String locale = SystemProperties.get("persist.sys.locale", "en-US");
String script = ULocale.addLikelySubtags(ULocale.forLanguageTag(locale)).getScript();
@@ -1642,6 +1660,21 @@ public class Typeface {
setSystemFontMap(typefaceMap);
}
+ /**
+ * {@link #loadPreinstalledSystemFontMap()} does not actually initialize the native
+ * system font APIs. Add a new method to actually load the font files without going
+ * through SharedMemory.
+ *
+ * @hide
+ */
+ public static void loadNativeSystemFonts() {
+ synchronized (SYSTEM_FONT_MAP_LOCK) {
+ for (var type : sSystemFontMap.values()) {
+ nativeAddFontCollections(type.native_instance);
+ }
+ }
+ }
+
static {
if (!ENABLE_LAZY_TYPEFACE_INITIALIZATION) {
loadPreinstalledSystemFontMap();
diff --git a/graphics/java/android/graphics/Xfermode.java b/graphics/java/android/graphics/Xfermode.java
index fb689e4cb9c29698925707543f0cbc803fb8de1e..eda9e3c1055df7f84069db9e5ea60c8a7a68042c 100644
--- a/graphics/java/android/graphics/Xfermode.java
+++ b/graphics/java/android/graphics/Xfermode.java
@@ -28,4 +28,5 @@ package android.graphics;
* specified in the Modes enum. When an Xfermode is assigned to a Paint, then
* objects drawn with that paint have the xfermode applied.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Xfermode {}
diff --git a/graphics/java/android/graphics/YuvImage.java b/graphics/java/android/graphics/YuvImage.java
index b0c7f202f23aee46439723eec448652b6319b13f..2b7f40493e8d84e767bb38a318e6e728a5cb7844 100644
--- a/graphics/java/android/graphics/YuvImage.java
+++ b/graphics/java/android/graphics/YuvImage.java
@@ -32,6 +32,7 @@ import java.io.OutputStream;
* To compress a rectangle region in the YUV data, users have to specify the
* region by left, top, width and height.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class YuvImage {
/**
diff --git a/graphics/java/android/graphics/fonts/Font.java b/graphics/java/android/graphics/fonts/Font.java
index 2893177aafc5dc2546c0d8d4b13997edc7b63d1d..8be340005543ae73df03f452894e8454cf056d73 100644
--- a/graphics/java/android/graphics/fonts/Font.java
+++ b/graphics/java/android/graphics/fonts/Font.java
@@ -44,6 +44,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.util.Arrays;
import java.util.Collections;
@@ -54,6 +55,7 @@ import java.util.Set;
/**
* A font class can be used for creating FontFamily.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Font {
private static final String TAG = "Font";
@@ -293,7 +295,14 @@ public final class Font {
int capacity = assetStream.available();
ByteBuffer buffer = ByteBuffer.allocateDirect(capacity);
buffer.order(ByteOrder.nativeOrder());
- assetStream.read(buffer.array(), buffer.arrayOffset(), assetStream.available());
+ if (buffer.hasArray()) {
+ assetStream.read(buffer.array(), buffer.arrayOffset(), assetStream.available());
+ } else {
+ // Direct buffer does not have a backing array on Ravenwood,
+ // wrap it with a channel and read from it
+ var ch = Channels.newChannel(assetStream);
+ ch.read(buffer.duplicate());
+ }
if (assetStream.read() != -1) {
throw new IOException("Unable to access full contents of " + path);
diff --git a/graphics/java/android/graphics/fonts/FontCustomizationParser.java b/graphics/java/android/graphics/fonts/FontCustomizationParser.java
index b7bf0553bcc6a0cd52ab61e4760e4ddec0ffabc4..732a5f3bfce4c75050e9259c70d3a7bb78d0baaa 100644
--- a/graphics/java/android/graphics/fonts/FontCustomizationParser.java
+++ b/graphics/java/android/graphics/fonts/FontCustomizationParser.java
@@ -43,6 +43,7 @@ import java.util.Map;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class FontCustomizationParser {
private static final String TAG = "FontCustomizationParser";
diff --git a/graphics/java/android/graphics/fonts/FontFamily.java b/graphics/java/android/graphics/fonts/FontFamily.java
index 5a7b0bbca399801571848fadb58d085793b76a12..0ab46398c92420a71dbd88ace05e3ec819ef23e7 100644
--- a/graphics/java/android/graphics/fonts/FontFamily.java
+++ b/graphics/java/android/graphics/fonts/FontFamily.java
@@ -66,6 +66,7 @@ import java.util.Set;
*
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class FontFamily {
private static final String TAG = "FontFamily";
diff --git a/graphics/java/android/graphics/fonts/FontFileUtil.java b/graphics/java/android/graphics/fonts/FontFileUtil.java
index abcafb666576b2f0cf7156850faa20aacfba8fb9..305ab3b39995c65474663bc71999066107062a4c 100644
--- a/graphics/java/android/graphics/fonts/FontFileUtil.java
+++ b/graphics/java/android/graphics/fonts/FontFileUtil.java
@@ -32,6 +32,7 @@ import java.util.Set;
* Provides a utility for font file operations.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class FontFileUtil {
private FontFileUtil() {} // Do not instantiate
diff --git a/graphics/java/android/graphics/fonts/FontStyle.java b/graphics/java/android/graphics/fonts/FontStyle.java
index 48969aa710594737245e3219da0c721286b44b4d..b3ddbed645fface0f3eff5fc78e5e99c230d5f98 100644
--- a/graphics/java/android/graphics/fonts/FontStyle.java
+++ b/graphics/java/android/graphics/fonts/FontStyle.java
@@ -44,6 +44,7 @@ import java.util.Objects;
*
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class FontStyle {
private static final String TAG = "FontStyle";
diff --git a/graphics/java/android/graphics/fonts/FontVariationAxis.java b/graphics/java/android/graphics/fonts/FontVariationAxis.java
index 30a248bb3e0e55dadcc6dc62d9a52a5f5c1cfce4..1d715940d628855af550143e253ccbabb6104926 100644
--- a/graphics/java/android/graphics/fonts/FontVariationAxis.java
+++ b/graphics/java/android/graphics/fonts/FontVariationAxis.java
@@ -31,6 +31,7 @@ import java.util.regex.Pattern;
/**
* Class that holds information about single font variation axis.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class FontVariationAxis {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
private final int mTag;
diff --git a/graphics/java/android/graphics/fonts/SystemFonts.java b/graphics/java/android/graphics/fonts/SystemFonts.java
index 0e25c346064c51eca9603d0d884c6ca326e7b6fd..599c42659ece75792ed2d373100b3a7988570242 100644
--- a/graphics/java/android/graphics/fonts/SystemFonts.java
+++ b/graphics/java/android/graphics/fonts/SystemFonts.java
@@ -25,6 +25,7 @@ import android.annotation.Nullable;
import android.graphics.FontListParser;
import android.graphics.Typeface;
import android.os.LocaleList;
+import android.ravenwood.annotation.RavenwoodReplace;
import android.text.FontConfig;
import android.util.ArrayMap;
import android.util.Log;
@@ -32,6 +33,7 @@ import android.util.SparseIntArray;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.ravenwood.RavenwoodEnvironment;
import org.xmlpull.v1.XmlPullParserException;
@@ -50,23 +52,46 @@ import java.util.Set;
/**
* Provides the system font configurations.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class SystemFonts {
private static final String TAG = "SystemFonts";
- private static final String FONTS_XML = "/system/etc/font_fallback.xml";
- private static final String LEGACY_FONTS_XML = "/system/etc/fonts.xml";
+ private static final String FONTS_XML = getFontsXmlDir() + "font_fallback.xml";
+ /** @hide */
+ public static final String LEGACY_FONTS_XML = getFontsXmlDir() + "fonts.xml";
/** @hide */
- public static final String SYSTEM_FONT_DIR = "/system/fonts/";
+ public static final String SYSTEM_FONT_DIR = getSystemFontDir();
private static final String OEM_XML = "/product/etc/fonts_customization.xml";
/** @hide */
public static final String OEM_FONT_DIR = "/product/fonts/";
+ private static final String DEVICE_FONTS_XML_DIR = "/system/etc/";
+ private static final String DEVICE_FONT_DIR = "/system/fonts/";
+
private SystemFonts() {} // Do not instansiate.
private static final Object LOCK = new Object();
private static @GuardedBy("sLock") Set sAvailableFonts;
+ @RavenwoodReplace
+ private static String getFontsXmlDir() {
+ return DEVICE_FONTS_XML_DIR;
+ }
+
+ private static String getFontsXmlDir$ravenwood() {
+ return RavenwoodEnvironment.getInstance().getRavenwoodRuntimePath() + "fonts/";
+ }
+
+ @RavenwoodReplace
+ private static String getSystemFontDir() {
+ return DEVICE_FONT_DIR;
+ }
+
+ private static String getSystemFontDir$ravenwood() {
+ return RavenwoodEnvironment.getInstance().getRavenwoodRuntimePath() + "fonts/";
+ }
+
/**
* Returns all available font files in the system.
*
diff --git a/graphics/java/android/graphics/text/GraphemeBreak.java b/graphics/java/android/graphics/text/GraphemeBreak.java
index f82b2fd659ccb0a95c87562295f1643279cc9e5d..0bc1e3b0cae34beddd5a05ee41db3dac257b2f77 100644
--- a/graphics/java/android/graphics/text/GraphemeBreak.java
+++ b/graphics/java/android/graphics/text/GraphemeBreak.java
@@ -17,6 +17,7 @@
package android.graphics.text;
/** @hide */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class GraphemeBreak {
private GraphemeBreak() { }
diff --git a/graphics/java/android/graphics/text/LineBreakConfig.java b/graphics/java/android/graphics/text/LineBreakConfig.java
index 5a1086cef407254c5788d1534573b117a0682e07..fa3cfbdd4e97046f7a449b192b50a0910ac498e2 100644
--- a/graphics/java/android/graphics/text/LineBreakConfig.java
+++ b/graphics/java/android/graphics/text/LineBreakConfig.java
@@ -24,12 +24,13 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SuppressLint;
-import android.app.ActivityThread;
import android.os.Build;
import android.os.LocaleList;
import android.os.Parcel;
import android.os.Parcelable;
+import dalvik.system.VMRuntime;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Objects;
@@ -41,6 +42,7 @@ import java.util.Objects;
*
* line-break property for more information.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class LineBreakConfig implements Parcelable {
/**
* No hyphenation preference is specified.
@@ -484,8 +486,7 @@ public final class LineBreakConfig implements Parcelable {
* @hide
*/
public static @LineBreakStyle int getResolvedLineBreakStyle(@Nullable LineBreakConfig config) {
- final int targetSdkVersion = ActivityThread.currentApplication().getApplicationInfo()
- .targetSdkVersion;
+ final int targetSdkVersion = VMRuntime.getRuntime().getTargetSdkVersion();
final int defaultStyle;
final int vicVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM;
if (targetSdkVersion >= vicVersion) {
@@ -519,8 +520,7 @@ public final class LineBreakConfig implements Parcelable {
*/
public static @LineBreakWordStyle int getResolvedLineBreakWordStyle(
@Nullable LineBreakConfig config) {
- final int targetSdkVersion = ActivityThread.currentApplication().getApplicationInfo()
- .targetSdkVersion;
+ final int targetSdkVersion = VMRuntime.getRuntime().getTargetSdkVersion();
final int defaultWordStyle;
final int vicVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM;
if (targetSdkVersion >= vicVersion) {
diff --git a/graphics/java/android/graphics/text/LineBreaker.java b/graphics/java/android/graphics/text/LineBreaker.java
index 94de066c91826097d449245f34b60e6f08bd401e..29135b8373526b879b2adc06679dc810cea3d3f3 100644
--- a/graphics/java/android/graphics/text/LineBreaker.java
+++ b/graphics/java/android/graphics/text/LineBreaker.java
@@ -91,6 +91,7 @@ import java.lang.annotation.RetentionPolicy;
*
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LineBreaker {
/** @hide */
@IntDef(prefix = { "BREAK_STRATEGY_" }, value = {
diff --git a/graphics/java/android/graphics/text/MeasuredText.java b/graphics/java/android/graphics/text/MeasuredText.java
index 884268a4b85cfe2b37297d6465f24d411f42a750..f58d5311fa30e078be2440e163c6887c5295e161 100644
--- a/graphics/java/android/graphics/text/MeasuredText.java
+++ b/graphics/java/android/graphics/text/MeasuredText.java
@@ -56,6 +56,7 @@ import java.util.Objects;
*
*
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MeasuredText {
private static final String TAG = "MeasuredText";
diff --git a/graphics/java/android/graphics/text/PositionedGlyphs.java b/graphics/java/android/graphics/text/PositionedGlyphs.java
index 43216ba6e0873976a6b2acdf24fc9ac5c9062c0f..31125ffa7bd43100d485836c404f14d62d75bf0d 100644
--- a/graphics/java/android/graphics/text/PositionedGlyphs.java
+++ b/graphics/java/android/graphics/text/PositionedGlyphs.java
@@ -46,6 +46,7 @@ import java.util.Objects;
* @see TextRunShaper#shapeTextRun(char[], int, int, int, int, float, float, boolean, Paint)
* @see TextRunShaper#shapeTextRun(CharSequence, int, int, int, int, float, float, boolean, Paint)
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class PositionedGlyphs {
private static class NoImagePreloadHolder {
private static final NativeAllocationRegistry REGISTRY =
diff --git a/graphics/java/android/graphics/text/TextRunShaper.java b/graphics/java/android/graphics/text/TextRunShaper.java
index 19ea04a480460480084e1fc7406dad308f44d509..f1e3d67e99254863de1f62c836cd4208fd4f40ca 100644
--- a/graphics/java/android/graphics/text/TextRunShaper.java
+++ b/graphics/java/android/graphics/text/TextRunShaper.java
@@ -40,6 +40,7 @@ import com.android.internal.util.Preconditions;
* @see android.text.TextShaper#shapeText(CharSequence, int, int, TextDirectionHeuristic, TextPaint,
* TextShaper.GlyphsConsumer)
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TextRunShaper {
private TextRunShaper() {} // Do not instantiate
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
index eb59d6efdeff5bb1139203606e7ecc6e10a25eb4..7ab9e2e65b76c6dcee2d3b91d7254bc8998dcbcf 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
@@ -705,8 +705,7 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
}
private static boolean isOverlayTransitionSupported() {
- return Flags.moveAnimationOptionsToChange()
- && Flags.activityEmbeddingOverlayPresentationFlag();
+ return Flags.activityEmbeddingOverlayPresentationFlag();
}
@NonNull
diff --git a/libs/WindowManager/Shell/aconfig/multitasking.aconfig b/libs/WindowManager/Shell/aconfig/multitasking.aconfig
index a08f88a5b937dbb491c8eeccf1458e5320c38b38..1e72d64397d73f5a36b366cf7a4a3ddbd995c989 100644
--- a/libs/WindowManager/Shell/aconfig/multitasking.aconfig
+++ b/libs/WindowManager/Shell/aconfig/multitasking.aconfig
@@ -184,3 +184,13 @@ flag {
description: "Try out bubble bar on phones"
bug: "394869612"
}
+
+flag {
+ name: "enable_bubble_task_view_listener"
+ namespace: "multitasking"
+ description: "Use the same taskview listener for bubble bar and floating"
+ bug: "272102927"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml b/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml
index 95cd1c72a2afa653b6e96b80f980d9f3e53f0795..800ea7446b6e8f6bd7c133563fe4f6cc7f9a49ea 100644
--- a/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml
+++ b/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml
@@ -2,6 +2,7 @@
package="com.android.wm.shell.multivalenttests">
+
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt
index 9ebc3d78b3a7591f23fb2b5aa938fbfd84ba1d15..3aefcd5ec6c0b0854b5c62f121dd1a1984f10c07 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt
@@ -16,6 +16,7 @@
package com.android.wm.shell.bubbles
+import android.app.ActivityOptions
import android.app.Notification
import android.app.PendingIntent
import android.content.ComponentName
@@ -24,6 +25,8 @@ import android.content.Intent
import android.content.pm.ShortcutInfo
import android.graphics.drawable.Icon
import android.os.UserHandle
+import android.platform.test.annotations.EnableFlags
+import android.platform.test.flag.junit.SetFlagsRule
import android.service.notification.NotificationListenerService.Ranking
import android.service.notification.StatusBarNotification
import android.view.View
@@ -33,6 +36,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import com.android.internal.protolog.ProtoLog
+import com.android.wm.shell.Flags.FLAG_ENABLE_BUBBLE_ANYTHING
import com.android.wm.shell.R
import com.android.wm.shell.bubbles.Bubbles.BubbleMetadataFlagListener
import com.android.wm.shell.common.TestShellExecutor
@@ -41,6 +45,7 @@ import com.android.wm.shell.taskview.TaskViewController
import com.android.wm.shell.taskview.TaskViewTaskController
import com.google.common.truth.Truth.assertThat
import org.junit.Before
+import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito
@@ -48,6 +53,7 @@ import org.mockito.Mockito.never
import org.mockito.Mockito.reset
import org.mockito.kotlin.any
import org.mockito.kotlin.anyOrNull
+import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.eq
import org.mockito.kotlin.mock
@@ -61,6 +67,9 @@ import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class BubbleTaskViewListenerTest {
+ @get:Rule
+ val setFlagsRule = SetFlagsRule()
+
private val context = ApplicationProvider.getApplicationContext()
private var taskViewController = mock()
@@ -155,9 +164,22 @@ class BubbleTaskViewListenerTest {
}
getInstrumentation().waitForIdleSync()
- // ..so it's pending intent-based, and launches that
+ // ..so it's pending intent-based, so the pending intent should be active
assertThat(b.isPendingIntentActive).isTrue()
- verify(taskViewController).startActivity(any(), eq(pendingIntent), any(), any(), any())
+
+ val intentCaptor = argumentCaptor()
+ val optionsCaptor = argumentCaptor()
+
+ verify(taskViewController).startActivity(any(),
+ eq(pendingIntent),
+ intentCaptor.capture(),
+ optionsCaptor.capture(),
+ any())
+ val intentFlags = intentCaptor.lastValue.flags
+ assertThat((intentFlags and Intent.FLAG_ACTIVITY_NEW_DOCUMENT) != 0).isTrue()
+ assertThat((intentFlags and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+ assertThat(optionsCaptor.lastValue.launchedFromBubble).isTrue()
+ assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
}
@Test
@@ -178,12 +200,52 @@ class BubbleTaskViewListenerTest {
}
getInstrumentation().waitForIdleSync()
- assertThat(b.isPendingIntentActive).isFalse()
- verify(taskViewController).startShortcutActivity(any(), eq(shortcutInfo), any(), any())
+ val optionsCaptor = argumentCaptor()
+
+ assertThat(b.isPendingIntentActive).isFalse() // not triggered for shortcut chats
+ verify(taskViewController).startShortcutActivity(any(),
+ eq(shortcutInfo),
+ optionsCaptor.capture(),
+ any())
+ assertThat(optionsCaptor.lastValue.launchedFromBubble).isTrue()
+ assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isTrue()
+ assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
}
+ @EnableFlags(FLAG_ENABLE_BUBBLE_ANYTHING)
@Test
- fun onInitialized_appBubble() {
+ fun onInitialized_shortcutBubble() {
+ val shortcutInfo = ShortcutInfo.Builder(context)
+ .setId("mockShortcutId")
+ .build()
+
+ val b = createShortcutBubble(shortcutInfo)
+ bubbleTaskViewListener.setBubble(b)
+
+ assertThat(b.isChat).isFalse()
+ assertThat(b.isShortcut).isTrue()
+ assertThat(b.shortcutInfo).isNotNull()
+
+ getInstrumentation().runOnMainSync {
+ bubbleTaskViewListener.onInitialized()
+ }
+ getInstrumentation().waitForIdleSync()
+
+ val optionsCaptor = argumentCaptor()
+
+ assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+ verify(taskViewController).startShortcutActivity(any(),
+ eq(shortcutInfo),
+ optionsCaptor.capture(),
+ any())
+ assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.isApplyMultipleTaskFlagForShortcut).isTrue()
+ assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
+ }
+
+ @Test
+ fun onInitialized_appBubble_intent() {
val b = createAppBubble()
bubbleTaskViewListener.setBubble(b)
@@ -194,10 +256,82 @@ class BubbleTaskViewListenerTest {
}
getInstrumentation().waitForIdleSync()
- assertThat(b.isPendingIntentActive).isFalse()
- verify(taskViewController).startActivity(any(), any(), anyOrNull(), any(), any())
+ val intentCaptor = argumentCaptor()
+ val optionsCaptor = argumentCaptor()
+
+ assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+ verify(taskViewController).startActivity(any(),
+ any(),
+ intentCaptor.capture(),
+ optionsCaptor.capture(),
+ any())
+
+ assertThat((intentCaptor.lastValue.flags
+ and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+ assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
}
+ @Test
+ fun onInitialized_appBubble_pendingIntent() {
+ val b = createAppBubble(usePendingIntent = true)
+ bubbleTaskViewListener.setBubble(b)
+
+ assertThat(b.isApp).isTrue()
+
+ getInstrumentation().runOnMainSync {
+ bubbleTaskViewListener.onInitialized()
+ }
+ getInstrumentation().waitForIdleSync()
+
+ val intentCaptor = argumentCaptor()
+ val optionsCaptor = argumentCaptor()
+
+ assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+ verify(taskViewController).startActivity(any(),
+ any(),
+ intentCaptor.capture(),
+ optionsCaptor.capture(),
+ any())
+
+ assertThat((intentCaptor.lastValue.flags
+ and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+ assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
+ }
+
+ @Test
+ fun onInitialized_noteBubble() {
+ val b = createNoteBubble()
+ bubbleTaskViewListener.setBubble(b)
+
+ assertThat(b.isNote).isTrue()
+
+ getInstrumentation().runOnMainSync {
+ bubbleTaskViewListener.onInitialized()
+ }
+ getInstrumentation().waitForIdleSync()
+
+ val intentCaptor = argumentCaptor()
+ val optionsCaptor = argumentCaptor()
+
+ assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+ verify(taskViewController).startActivity(any(),
+ any(),
+ intentCaptor.capture(),
+ optionsCaptor.capture(),
+ any())
+
+ assertThat((intentCaptor.lastValue.flags
+ and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+ assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+ assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
+ }
+
+
@Test
fun onInitialized_preparingTransition() {
val b = createAppBubble()
@@ -416,13 +550,24 @@ class BubbleTaskViewListenerTest {
assertThat(isNew).isTrue()
}
- private fun createAppBubble(): Bubble {
+ private fun createAppBubble(usePendingIntent: Boolean = false): Bubble {
val target = Intent(context, TestActivity::class.java)
target.setPackage(context.packageName)
+ if (usePendingIntent) {
+ // Robolectric doesn't seem to play nice with PendingIntents, have to mock it.
+ val pendingIntent = mock()
+ whenever(pendingIntent.intent).thenReturn(target)
+ return Bubble.createAppBubble(pendingIntent, mock(),
+ mainExecutor, bgExecutor)
+ }
return Bubble.createAppBubble(target, mock(), mock(),
mainExecutor, bgExecutor)
}
+ private fun createShortcutBubble(shortcutInfo: ShortcutInfo): Bubble {
+ return Bubble.createShortcutBubble(shortcutInfo, mainExecutor, bgExecutor)
+ }
+
private fun createNoteBubble(): Bubble {
val target = Intent(context, TestActivity::class.java)
target.setPackage(context.packageName)
diff --git a/libs/WindowManager/Shell/res/values-af/strings.xml b/libs/WindowManager/Shell/res/values-af/strings.xml
index b4d594f0c06b56db4b7390d1cbe9fa932ecf380d..0f42645671933fa105db35810220b1b73f897ce3 100644
--- a/libs/WindowManager/Shell/res/values-af/strings.xml
+++ b/libs/WindowManager/Shell/res/values-af/strings.xml
@@ -119,8 +119,7 @@
"Apphandvatsel""Appikoon""Volskerm"
-
-
+ "Rekenaaraansig""Verdeelde skerm""Meer""Sweef"
@@ -133,8 +132,7 @@
"Verander aspekverhouding""Maak toe""Maak kieslys toe"
-
-
+ "%1$s (Rekenaaraansig)""Maksimeer skerm""Verander grootte""App kan nie hierheen geskuif word nie"
@@ -147,10 +145,8 @@
"Verander grootte van linkerkantse venster""Verander grootte van regterkantse venster""Maksimeer of stel venstergrootte terug"
-
-
-
-
+ "Maak kieslys oop"
+ "Voer %1$s in""Verander grootte van linkerkantse venster""Verander grootte van regterkantse venster""Maksimeer of stel venstergrootte terug"
diff --git a/libs/WindowManager/Shell/res/values-am/strings.xml b/libs/WindowManager/Shell/res/values-am/strings.xml
index 9ec8001e1b9cd97fdc0c2b4a12d4583cfa5a41f7..be02f4375e3bc53213938b66fa10c16295fee63b 100644
--- a/libs/WindowManager/Shell/res/values-am/strings.xml
+++ b/libs/WindowManager/Shell/res/values-am/strings.xml
@@ -119,8 +119,7 @@
"የመተግበሪያ መያዣ""የመተግበሪያ አዶ""ሙሉ ማያ"
-
-
+ "የዴስክቶፕ ዕይታ""የተከፈለ ማያ ገፅ""ተጨማሪ""ተንሳፋፊ"
@@ -133,8 +132,7 @@
"ምጥጥነ ገፅታ ለውጥ""ዝጋ""ምናሌ ዝጋ"
-
-
+ "%1$s የዴስክቶፕ ዕይታ""የማያ ገጹ መጠን አሳድግ""መጠን ቀይር""መተግበሪያ ወደዚህ መንቀሳቀስ አይችልም"
@@ -147,10 +145,8 @@
"የመተግበሪያ መስኮትን ወደ ግራ መጠን ቀይር""የመተግበሪያ መስኮትን ወደ ቀኝ መጠን ቀይር""የመስኮት መጠንን አሳድግ ወይም ወደነበረበት መልስ"
-
-
-
-
+ "ምናሌን ክፈት"
+ "%1$s አስገባ""መስኮትን ወደ ግራ መጠን ቀይር""መስኮትን ወደ ቀኝ መጠን ቀይር""የመስኮት መጠንን አሳድግ ወይም ወደነበረበት መልስ"
diff --git a/libs/WindowManager/Shell/res/values-as/strings.xml b/libs/WindowManager/Shell/res/values-as/strings.xml
index 05860c25db89d2e18ba54b9ca2763b8e72243991..0bc4a0a592391e73b84e607de2f57fffddad0448 100644
--- a/libs/WindowManager/Shell/res/values-as/strings.xml
+++ b/libs/WindowManager/Shell/res/values-as/strings.xml
@@ -119,8 +119,7 @@
"এপৰ হেণ্ডেল""এপৰ চিহ্ন""সম্পূৰ্ণ স্ক্ৰীন"
-
-
+ "ডেস্কটপ ভিউ""বিভাজিত স্ক্ৰীন""অধিক""ওপঙা"
@@ -133,8 +132,7 @@
"আকাৰৰ অনুপাত সলনি কৰক""বন্ধ কৰক""মেনু বন্ধ কৰক"
-
-
+ "%1$s (ডেস্কটপ ভিউ)""স্ক্ৰীন মেক্সিমাইজ কৰক""আকাৰ সলনি কৰক""ইয়ালৈ এপ্টো আনিব নোৱাৰি"
@@ -147,10 +145,8 @@
"বাওঁফালে এপ্ ৱিণ্ড’ৰ আকাৰ সলনি কৰক""সোঁফালে এপ্ ৱিণ্ড’ৰ আকাৰ সলনি কৰক""ৱিণ্ড’ৰ আকাৰ মেক্সিমাইজ বা পুনঃস্থাপন কৰক"
-
-
-
-
+ "মেনু খোলক"
+ "%1$sত সোমাওক""সোঁফাললৈ ৱিণ্ড’ৰ আকাৰ সলনি কৰক""বাওঁফাললৈ ৱিণ্ড’ৰ আকাৰ সলনি কৰক""ৱিণ্ড’ৰ আকাৰ মেক্সিমাইজ বা পুনঃস্থাপন কৰক"
diff --git a/libs/WindowManager/Shell/res/values-az/strings.xml b/libs/WindowManager/Shell/res/values-az/strings.xml
index ea64749c023e82f833997e3ea05c37ea17b77126..2ccae4b202374f671393bc2e31776f106c560aaf 100644
--- a/libs/WindowManager/Shell/res/values-az/strings.xml
+++ b/libs/WindowManager/Shell/res/values-az/strings.xml
@@ -119,8 +119,7 @@
"Tətbiq ləqəbi""Tətbiq ikonası""Tam Ekran"
-
-
+ "Masaüstü Görünüş""Bölünmüş Ekran""Ardı""Üzən pəncərə"
@@ -133,8 +132,7 @@
"Tərəflər nisbətini dəyişin""Bağlayın""Menyunu bağlayın"
-
-
+ "%1$s (Masaüstü Görünüş)""Ekranı maksimum böyüdün""Ölçüsünü dəyişin""Tətbiqi bura köçürmək mümkün deyil"
@@ -147,10 +145,8 @@
"Tətbiq pəncərəsinin ölçüsünü sola dəyişin""Tətbiq pəncərəsinin ölçüsünü sağa dəyişin""Pəncərə ölçüsünü artırın və ya bərpa edin"
-
-
-
-
+ "Menyunu açın"
+ "%1$s rejiminə daxil olun""Pəncərə ölçüsünü sola dəyişin""Pəncərə ölçüsünü sağa dəyişin""Pəncərə ölçüsünü artırın və ya bərpa edin"
diff --git a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
index deec04f63270414c487dbbc000f52eecb21a2b8c..b79b8605140d38e7dceaea6db68773f7726654fe 100644
--- a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
@@ -134,9 +134,9 @@
"Zatvorite meni""%1$s (prikaz za računare)""Povećaj ekran"
- "Promeni veličinu"
+ "Prilagodi""Aplikacija ne može da se premesti ovde"
- "Imerzivne"
+ "Imerzivno""Vrati""Uvećaj""Vratite"
diff --git a/libs/WindowManager/Shell/res/values-bg/strings.xml b/libs/WindowManager/Shell/res/values-bg/strings.xml
index 0bb59605b247568c8af0944d7c477aaddb85e5ca..9cc9db80572872a303adf225c0c3a7810ef7c034 100644
--- a/libs/WindowManager/Shell/res/values-bg/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bg/strings.xml
@@ -119,8 +119,7 @@
"Манипулатор за приложението""Икона на приложението""Цял екран"
-
-
+ "Изглед за настолни компютри""Разделяне на екрана""Още""Плаващо"
@@ -133,10 +132,9 @@
"Промяна на съотношението""Затваряне""Затваряне на менюто"
-
-
+ "%1$s (изглед за настолни компютри)""Увеличаване на екрана"
- "Преоразмеряване"
+ "Нов размер""Приложението не може да бъде преместено тук""Реалистично""Възстановяване"
@@ -147,10 +145,8 @@
"Преоразмеряване на прозореца на приложението наляво""Преоразмеряване на прозореца на приложението надясно""Увеличаване или възстановяване на размера на прозореца"
-
-
-
-
+ "Отваряне на менюто"
+ "Въвеждане на %1$s""Преоразмеряване на прозореца наляво""Преоразмеряване на прозореца надясно""Увеличаване или възстановяване на размера на прозореца"
diff --git a/libs/WindowManager/Shell/res/values-bn/strings.xml b/libs/WindowManager/Shell/res/values-bn/strings.xml
index ae63e0402592aa1f0316e511bab47900356e61c5..c1264d41105b700b149c853f171c153b3886cb08 100644
--- a/libs/WindowManager/Shell/res/values-bn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bn/strings.xml
@@ -119,8 +119,7 @@
"অ্যাপের হ্যান্ডেল""অ্যাপ আইকন""ফুলস্ক্রিন"
-
-
+ "ডেস্কটপ ভিউ""স্প্লিট স্ক্রিন""আরও""ফ্লোট"
@@ -133,8 +132,7 @@
"অ্যাস্পেক্ট রেশিও পরিবর্তন করুন""বন্ধ করুন""\'মেনু\' বন্ধ করুন"
-
-
+ "%1$s (ডেস্কটপ ভিউ)""স্ক্রিন বড় করুন""ছোট বড় করুন""অ্যাপটি এখানে সরানো যাবে না"
@@ -147,10 +145,8 @@
"বাঁদিকে অ্যাপ উইন্ডো রিসাইজ করুন""ডানদিকে অ্যাপ উইন্ডো রিসাইজ করুন""উইন্ডো সাইজ বড় বা রিস্টোর করুন"
-
-
-
-
+ "মেনু খুলুন"
+ "%1$s-এ খুলুন""বাঁদিকে উইন্ডো রিসাইজ করুন""ডানদিকে উইন্ডো রিসাইজ করুন""উইন্ডো সাইজ বড় বা রিস্টোর করুন"
diff --git a/libs/WindowManager/Shell/res/values-bs/strings.xml b/libs/WindowManager/Shell/res/values-bs/strings.xml
index b7c76b5f9762617db3d08fabaa32f324757067c0..7c912b6759db698af6ad1d127f1292a807957acc 100644
--- a/libs/WindowManager/Shell/res/values-bs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bs/strings.xml
@@ -119,7 +119,7 @@
"Ručica aplikacije""Ikona aplikacije""Cijeli ekran"
- "Prikaz na računalu"
+ "Prikaz na računaru""Podijeljeni ekran""Više""Lebdeći"
@@ -132,7 +132,7 @@
"Promjena formata slike""Zatvaranje""Zatvaranje menija"
- "%1$s (prikaz na računalu)"
+ "%1$s (prikaz na računaru)""Maksimiziraj ekran""Promijeni veličinu""Ne možete premjestiti aplikaciju ovdje"
@@ -145,8 +145,8 @@
"Promjena veličine prozora aplikacije lijevo""Promjena veličine prozora aplikacije desno""Maksimiziranje ili vraćanje veličine prozora"
- "Otvorite izbornik"
- "Unesite %1$s"
+ "Otvaranje menija"
+ "Aktiviranje načina rada %1$s""Promjena veličine prozora i poravnanje lijevo""Promjena veličine prozora i poravnanje desno""Maksimiziranje ili vraćanje veličine prozora"
diff --git a/libs/WindowManager/Shell/res/values-ca/strings.xml b/libs/WindowManager/Shell/res/values-ca/strings.xml
index 80dd3801c26478723ff9e006907cad4b4e1e1e71..2c2a1776018c40a149506512d28c47e4008c3f71 100644
--- a/libs/WindowManager/Shell/res/values-ca/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ca/strings.xml
@@ -119,8 +119,7 @@
"Identificador de l\'aplicació""Icona de l\'aplicació""Pantalla completa"
-
-
+ "Visualització per a ordinadors""Pantalla dividida""Més""Flotant"
@@ -133,8 +132,7 @@
"Canvia la relació d\'aspecte""Tanca""Tanca el menú"
-
-
+ "%1$s (visualització per a ordinadors)""Maximitza la pantalla""Canvia la mida""L\'aplicació no es pot moure aquí"
@@ -147,10 +145,8 @@
"Canvia la mida de la finestra de l\'aplicació a l\'esquerra""Canvia la mida de la finestra de l\'aplicació a la dreta""Maximitza o restaura la mida de la finestra"
-
-
-
-
+ "Obre el menú"
+ "Introdueix %1$s""Canvia la mida de la finestra a l\'esquerra""Canvia la mida de la finestra a la dreta""Maximitza o restaura la mida de la finestra"
diff --git a/libs/WindowManager/Shell/res/values-da/strings.xml b/libs/WindowManager/Shell/res/values-da/strings.xml
index c465ce3d89fdfd1045e0cd04e49df67db361343b..f5656d58094f14071fb411d5926b81195bd2d2ad 100644
--- a/libs/WindowManager/Shell/res/values-da/strings.xml
+++ b/libs/WindowManager/Shell/res/values-da/strings.xml
@@ -119,8 +119,7 @@
"Apphåndtag""Appikon""Fuld skærm"
-
-
+ "Computervenlig visning""Opdelt skærm""Mere""Svævende"
@@ -133,8 +132,7 @@
"Skift billedformat""Luk""Luk menu"
-
-
+ "%1$s (computervenlig visning)""Maksimér skærm""Tilpas størrelse""Apps kan ikke flyttes hertil"
@@ -147,10 +145,8 @@
"Juster størrelsen på appvinduet til venstre""Juster størrelsen på appvinduet til højre""Maksimer eller gendan vinduesstørrelse"
-
-
-
-
+ "Åbn menu"
+ "Åbn %1$s""Juster størrelsen på vinduet til venstre""Juster størrelsen på vinduet til højre""Maksimer eller gendan vinduesstørrelse"
diff --git a/libs/WindowManager/Shell/res/values-de/strings.xml b/libs/WindowManager/Shell/res/values-de/strings.xml
index 567dd7a0c2a585c230c7b96da88f847a7e37d92f..3762b4b2863159e5828afa72f65e9dad5f1f83ca 100644
--- a/libs/WindowManager/Shell/res/values-de/strings.xml
+++ b/libs/WindowManager/Shell/res/values-de/strings.xml
@@ -119,8 +119,7 @@
"App-Ziehpunkt""App-Symbol""Vollbild"
-
-
+ "Desktop-Ansicht""Splitscreen""Mehr""Frei schwebend"
@@ -133,8 +132,7 @@
"Seitenverhältnis ändern""Schließen""Menü schließen"
-
-
+ "%1$s (Desktop-Ansicht)""Bildschirm maximieren""Größe ändern""Die App kann nicht hierher verschoben werden"
@@ -147,10 +145,8 @@
"Größe des App-Fensters links anpassen""Größe des App-Fensters rechts anpassen""Fenstergröße maximieren oder wiederherstellen"
-
-
-
-
+ "Menü öffnen"
+ "%1$s aktivieren""Fenstergröße nach links anpassen""Fenstergröße nach rechts anpassen""Fenstergröße maximieren oder wiederherstellen"
diff --git a/libs/WindowManager/Shell/res/values-el/strings.xml b/libs/WindowManager/Shell/res/values-el/strings.xml
index 489a4ce6b550417af4a06a2faec7b7ed89450092..8e715d5c232e8194e82279d6bc5d6695d1ac81de 100644
--- a/libs/WindowManager/Shell/res/values-el/strings.xml
+++ b/libs/WindowManager/Shell/res/values-el/strings.xml
@@ -119,8 +119,7 @@
"Λαβή εφαρμογής""Εικονίδιο εφαρμογής""Πλήρης οθόνη"
-
-
+ "Προβολή για υπολογιστές""Διαχωρισμός οθόνης""Περισσότερα""Κινούμενο"
@@ -133,8 +132,7 @@
"Αλλαγή λόγου διαστάσεων""Κλείσιμο""Κλείσιμο μενού"
-
-
+ "%1$s (Προβολή για υπολογιστές)""Μεγιστοποίηση οθόνης""Αλλαγή μεγέθους""Δεν είναι δυνατή η μετακίνηση της εφαρμογής εδώ"
@@ -147,10 +145,8 @@
"Αλλαγή μεγέθους παραθύρου εφαρμογής αριστερά""Αλλαγή μεγέθους παραθύρου εφαρμογής δεξιά""Μεγιστοποίηση ή επαναφορά μεγέθους παραθύρου"
-
-
-
-
+ "Άνοιγμα μενού"
+ "Εισαγωγή %1$s""Αλλαγή μεγέθους παραθύρου προς τα αριστερά""Αλλαγή μεγέθους παραθύρου προς τα δεξιά""Μεγιστοποίηση ή επαναφορά μεγέθους παραθύρου"
diff --git a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
index 1a3d422eb7364c43cb40c313b3727a94a17bd224..75d2bf1ae5e366f7253e0f23ed46e3ba7c3d46cd 100644
--- a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
@@ -119,8 +119,7 @@
"App handle""App icon""Full screen"
-
-
+ "Desktop view""Split screen""More""Float"
@@ -133,8 +132,7 @@
"Change aspect ratio""Close""Close menu"
-
-
+ "%1$s (desktop view)""Maximise screen""Resize""App can\'t be moved here"
@@ -147,10 +145,8 @@
"Resize app window left""Resize app window right""Maximise or restore window size"
-
-
-
-
+ "Open menu"
+ "Enter %1$s""Resize window to left""Resize window to right""Maximise or restore window size"
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
index 1a3d422eb7364c43cb40c313b3727a94a17bd224..75d2bf1ae5e366f7253e0f23ed46e3ba7c3d46cd 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
@@ -119,8 +119,7 @@
"App handle""App icon""Full screen"
-
-
+ "Desktop view""Split screen""More""Float"
@@ -133,8 +132,7 @@
"Change aspect ratio""Close""Close menu"
-
-
+ "%1$s (desktop view)""Maximise screen""Resize""App can\'t be moved here"
@@ -147,10 +145,8 @@
"Resize app window left""Resize app window right""Maximise or restore window size"
-
-
-
-
+ "Open menu"
+ "Enter %1$s""Resize window to left""Resize window to right""Maximise or restore window size"
diff --git a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
index 1a3d422eb7364c43cb40c313b3727a94a17bd224..75d2bf1ae5e366f7253e0f23ed46e3ba7c3d46cd 100644
--- a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
@@ -119,8 +119,7 @@
"App handle""App icon""Full screen"
-
-
+ "Desktop view""Split screen""More""Float"
@@ -133,8 +132,7 @@
"Change aspect ratio""Close""Close menu"
-
-
+ "%1$s (desktop view)""Maximise screen""Resize""App can\'t be moved here"
@@ -147,10 +145,8 @@
"Resize app window left""Resize app window right""Maximise or restore window size"
-
-
-
-
+ "Open menu"
+ "Enter %1$s""Resize window to left""Resize window to right""Maximise or restore window size"
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
index 93aa1b63fa26307e548bdb8bb0433f5cb0303a50..c358ae4473614df1874b2b35248125551e45b4cc 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
@@ -119,8 +119,7 @@
"Controlador de la app""Ícono de la app""Pantalla completa"
-
-
+ "Vista para computadoras de escritorio""Pantalla dividida""Más""Flotante"
@@ -133,8 +132,7 @@
"Cambiar relación de aspecto""Cerrar""Cerrar menú"
-
-
+ "%1$s (vista para computadoras de escritorio)""Maximizar pantalla""Cambiar el tamaño""No se puede mover la app aquí"
@@ -147,10 +145,8 @@
"Ajustar el tamaño de la ventana de la app hacia la izquierda""Ajustar el tamaño de la ventana de la app hacia la derecha""Maximizar o restablecer el tamaño de la ventana"
-
-
-
-
+ "Abrir el menú"
+ "Ingresar a %1$s""Ajustar el tamaño de la ventana hacia la izquierda""Ajustar el tamaño de la ventana hacia la derecha""Maximizar o restablecer el tamaño de la ventana"
diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml
index 27c5b801dbbad05c56fb4a61005791aef16ddd92..275d88d1ea8aaaa5779efa14922f3c3045068128 100644
--- a/libs/WindowManager/Shell/res/values-es/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings.xml
@@ -119,8 +119,7 @@
"Controlador de la aplicación""Icono de la aplicación""Pantalla completa"
-
-
+ "Vista para ordenadores""Pantalla dividida""Más""Flotante"
@@ -133,8 +132,7 @@
"Cambiar relación de aspecto""Cerrar""Cerrar menú"
-
-
+ "%1$s (vista para ordenadores)""Maximizar pantalla""Cambiar tamaño""La aplicación no se puede mover aquí"
@@ -147,10 +145,8 @@
"Cambiar tamaño de la ventana de la aplicación izquierda""Cambiar tamaño de la ventana de la aplicación derecha""Maximizar o restaurar tamaño de la ventana"
-
-
-
-
+ "Abrir menú"
+ "Introducir %1$s""Cambiar tamaño de la ventana a la izquierda""Cambiar tamaño de la ventana a la derecha""Maximizar o restaurar tamaño de la ventana"
diff --git a/libs/WindowManager/Shell/res/values-et/strings.xml b/libs/WindowManager/Shell/res/values-et/strings.xml
index c8ab83ef8eae731f16d6d58329e5aad1444cdf1c..3a330b3121ec3c3b9c4f57a560a54705c14b016c 100644
--- a/libs/WindowManager/Shell/res/values-et/strings.xml
+++ b/libs/WindowManager/Shell/res/values-et/strings.xml
@@ -119,8 +119,7 @@
"Rakenduse element""Rakenduse ikoon""Täisekraan"
-
-
+ "Arvutivaade""Jagatud ekraanikuva""Rohkem""Hõljuv"
@@ -133,8 +132,7 @@
"Kuvasuhte muutmine""Sule""Sule menüü"
-
-
+ "%1$s (arvutivaade)""Kuva täisekraanil""Suuruse muutmine""Rakendust ei saa siia teisaldada"
@@ -147,10 +145,8 @@
"Rakenduse akna suuruse muutmine vasakul""Rakenduse akna suuruse muutmine paremal""Akna suuruse maksimeerimine või taastamine"
-
-
-
-
+ "Menüü avamine"
+ "Režiimi %1$s sisenemine""Akna suuruse muutmine, vasakule""Akna suuruse muutmine, paremale""Akna suuruse maksimeerimine või taastamine"
diff --git a/libs/WindowManager/Shell/res/values-eu/strings.xml b/libs/WindowManager/Shell/res/values-eu/strings.xml
index abd92ab758d0b2bba6958a3c07c9a382918eb83a..c0766a2945104960f6dc54ddc12beb5810dbc9af 100644
--- a/libs/WindowManager/Shell/res/values-eu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-eu/strings.xml
@@ -119,8 +119,7 @@
"Aplikazioaren kontrol-puntua""Aplikazioaren ikonoa""Pantaila osoa"
-
-
+ "Ordenagailuetarako ikuspegia""Pantaila zatitzea""Gehiago""Leiho gainerakorra"
@@ -133,8 +132,7 @@
"Aldatu aspektu-erlazioa""Itxi""Itxi menua"
-
-
+ "%1$s (ordenagailuetarako ikuspegia)""Handitu pantaila""Aldatu tamaina""Aplikazioa ezin da hona ekarri"
@@ -147,10 +145,8 @@
"Aldatu aplikazioaren leihoaren tamaina eta eraman ezkerrera""Aldatu aplikazioaren leihoaren tamaina eta eraman eskuinera""Maximizatu edo leheneratu leihoaren tamaina"
-
-
-
-
+ "Ireki menua"
+ "Idatzi %1$s""Aldatu leihoaren tamaina eta eraman ezkerrera""Aldatu leihoaren tamaina eta eraman eskuinera""Maximizatu edo leheneratu leihoaren tamaina"
diff --git a/libs/WindowManager/Shell/res/values-fa/strings.xml b/libs/WindowManager/Shell/res/values-fa/strings.xml
index 651635a8cc1c66bb35e28dcb189ea3e1847a5ef8..ace8b333f47c946dc25336be93705eb09bec3bb8 100644
--- a/libs/WindowManager/Shell/res/values-fa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fa/strings.xml
@@ -119,8 +119,7 @@
"دستگیره برنامه""نماد برنامه""تمامصفحه"
-
-
+ "نمای ویژه رایانه رومیزی""صفحهٔ دونیمه""بیشتر""شناور"
@@ -133,8 +132,7 @@
"تغییر نسبت ابعادی""بستن""بستن منو"
-
-
+ "%1$s (نمای ویژه رایانه رومیزی)""بزرگ کردن صفحه""تغییر اندازه""برنامه را نمیتوان به اینجا منتقل کرد"
@@ -147,10 +145,8 @@
"تغییر اندازه پنجره برنامه در چپ""تغییر اندازه پنجره برنامه در راست""بیشینهسازی یا بازیابی اندازه پنجره"
-
-
-
-
+ "باز کردن منو"
+ "وارد شدن به %1$s""تغییر اندازه پنجره به چپ""تغییر اندازه پنجره به راست""بیشینهسازی یا بازیابی اندازه پنجره"
diff --git a/libs/WindowManager/Shell/res/values-fi/strings.xml b/libs/WindowManager/Shell/res/values-fi/strings.xml
index 47e9ea335db81ccf0a1889b152e97ff666a52276..aed3fdc55bb41a042a3b76ffa1a0aaf0da2b8e34 100644
--- a/libs/WindowManager/Shell/res/values-fi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fi/strings.xml
@@ -119,8 +119,7 @@
"Sovelluksen tunnus""Sovelluskuvake""Koko näyttö"
-
-
+ "Tietokonenäkymä""Jaettu näyttö""Lisää""Kelluva ikkuna"
@@ -133,8 +132,7 @@
"Vaihda kuvasuhdetta""Sulje""Sulje valikko"
-
-
+ "%1$s (tietokonenäkymä)""Suurenna näyttö""Muuta kokoa""Sovellusta ei voi siirtää tänne"
@@ -147,10 +145,8 @@
"Muuta vasemmanpuoleisen sovellusikkunan kokoa""Muuta oikeanpuoleisen sovellusikkunan kokoa""Suurenna ikkuna tai palauta ikkunan koko"
-
-
-
-
+ "Avaa valikko"
+ "Avaa %1$s""Muuta vasemmanpuoleisen ikkunan kokoa""Muuta vasemmanpuoleisen ikkunan kokoa""Suurenna ikkuna tai palauta ikkunan koko"
diff --git a/libs/WindowManager/Shell/res/values-fr/strings.xml b/libs/WindowManager/Shell/res/values-fr/strings.xml
index 038a90dcb736e3adfcbab9c366a586c00fa75e68..377413e27e87d143c13998b03bac1d58aa1325fe 100644
--- a/libs/WindowManager/Shell/res/values-fr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr/strings.xml
@@ -119,8 +119,7 @@
"Poignée de l\'appli""Icône d\'application""Plein écran"
-
-
+ "Affichage sur ordinateur""Écran partagé""Plus""Flottante"
@@ -133,8 +132,7 @@
"Modifier le format""Fermer""Fermer le menu"
-
-
+ "%1$s (affichage sur ordinateur)""Mettre en plein écran""Redimensionner""Impossible de déplacer l\'appli ici"
@@ -147,10 +145,8 @@
"Redimensionner la fenêtre de l\'appli vers la gauche""Redimensionner la fenêtre de l\'appli vers la droite""Agrandir ou restaurer la taille de la fenêtre"
-
-
-
-
+ "Ouvrir le menu"
+ "Saisir l’%1$s""Redimensionner la fenêtre vers la gauche""Redimensionner la fenêtre vers la droite""Agrandir ou restaurer la taille de la fenêtre"
diff --git a/libs/WindowManager/Shell/res/values-gl/strings.xml b/libs/WindowManager/Shell/res/values-gl/strings.xml
index a2a6b3ebb2c4d06df33efab01fcca30d402a7733..3022f6238567f92a5f59d89b6e1822dca1fe1fb0 100644
--- a/libs/WindowManager/Shell/res/values-gl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gl/strings.xml
@@ -119,8 +119,7 @@
"Controlador da aplicación""Icona de aplicación""Pantalla completa"
-
-
+ "Vista para ordenadores""Pantalla dividida""Máis""Flotante"
@@ -133,8 +132,7 @@
"Cambiar a proporción""Pechar""Pechar o menú"
-
-
+ "%1$s (vista para ordenadores)""Maximizar pantalla""Cambiar tamaño""Non se pode mover aquí a aplicación"
@@ -147,10 +145,8 @@
"Axustar o tamaño da ventá da aplicación á esquerda""Axustar o tamaño da ventá da aplicación á dereita""Maximizar ou restaurar o tamaño da ventá"
-
-
-
-
+ "Abrir o menú"
+ "Entrar en %1$s""Axustar o tamaño da ventá á esquerda""Axustar o tamaño da ventá á dereita""Maximizar ou restaurar o tamaño da ventá"
diff --git a/libs/WindowManager/Shell/res/values-hi/strings.xml b/libs/WindowManager/Shell/res/values-hi/strings.xml
index f1f2a0ae8a9d452aeda712b7e58270bb85b2e25f..945bc93a667ec2c6c3daf8c02f225dc8414949e7 100644
--- a/libs/WindowManager/Shell/res/values-hi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hi/strings.xml
@@ -119,8 +119,7 @@
"ऐप्लिकेशन का हैंडल""ऐप्लिकेशन आइकॉन""फ़ुलस्क्रीन"
-
-
+ "डेस्कटॉप व्यू""स्प्लिट स्क्रीन मोड""ज़्यादा देखें""फ़्लोट"
@@ -133,8 +132,7 @@
"आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बदलें""बंद करें""मेन्यू बंद करें"
-
-
+ "%1$s (डेस्कटॉप व्यू)""स्क्रीन को बड़ा करें""साइज़ बदलें""ऐप्लिकेशन को यहां मूव नहीं किया जा सकता"
@@ -147,10 +145,8 @@
"ऐप्लिकेशन विंडो का साइज़ बाईं ओर से बदलें""ऐप्लिकेशन विंडो का साइज़ दाईं ओर से बदलें""विंडो को बड़ा करें या उसका साइज़ पहले जैसा करें"
-
-
-
-
+ "मेन्यू खोलें"
+ "%1$s में जाएं""विंडो का साइज़ बाईं ओर से बदलें""विंडो का साइज़ दाईं ओर से बढ़ाएं""विंडो को बड़ा करें या उसका साइज़ पहले जैसा करें"
diff --git a/libs/WindowManager/Shell/res/values-hu/strings.xml b/libs/WindowManager/Shell/res/values-hu/strings.xml
index 5d52c4836e0068504c0d466410b2d161f34b0b37..a7aedc465a9286a99fe61c3a83681512bfdbde52 100644
--- a/libs/WindowManager/Shell/res/values-hu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hu/strings.xml
@@ -119,8 +119,7 @@
"App fogópontja""Alkalmazásikon""Teljes képernyő"
-
-
+ "Asztali nézet""Osztott képernyő""Továbbiak""Lebegő"
@@ -133,8 +132,7 @@
"Méretarány módosítása""Bezárás""Menü bezárása"
-
-
+ "%1$s (Asztali nézet)""Képernyő méretének maximalizálása""Átméretezés""Az alkalmazás nem helyezhető át ide"
@@ -147,10 +145,8 @@
"Alkalmazásablak átméretezése balra""Alkalmazásablak átméretezése jobbra""Ablak teljes méretre állítása vagy visszaállítása"
-
-
-
-
+ "Menü megnyitása"
+ "Belépés %1$s módba""Ablak átméretezése balra""Ablak átméretezése jobbra""Ablak teljes méretre állítása vagy visszaállítása"
diff --git a/libs/WindowManager/Shell/res/values-hy/strings.xml b/libs/WindowManager/Shell/res/values-hy/strings.xml
index b7b4422a673e05e1905e86a5f138e0554676b72a..00b2f91c9eb946c36934210a1b375b18099cc4a1 100644
--- a/libs/WindowManager/Shell/res/values-hy/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hy/strings.xml
@@ -119,8 +119,7 @@
"Հավելվածի կեղծանուն""Հավելվածի պատկերակ""Լիաէկրան"
-
-
+ "Համակարգչային տարբերակ""Տրոհված էկրան""Ավելին""Լողացող պատուհան"
@@ -133,8 +132,7 @@
"Փոխել կողմերի հարաբերակցությունը""Փակել""Փակել ընտրացանկը"
-
-
+ "%1$s (համակարգչային տարբերակ)""Ծավալել էկրանը""Փոխել չափը""Հավելվածը հնարավոր չէ տեղափոխել այստեղ"
@@ -147,10 +145,8 @@
"Ձգել հավելվածի պատուհանը դեպի ձախ""Ձգել հավելվածի պատուհանը դեպի աջ""Ծավալել կամ վերականգնել պատուհանի չափսը"
-
-
-
-
+ "Բացեք ընտրացանկը"
+ "Մուտքագրեք %1$s""Ձգել պատուհանը դեպի ձախ""Ձգել պատուհանը դեպի աջ""Ծավալել կամ վերականգնել պատուհանի չափսը"
diff --git a/libs/WindowManager/Shell/res/values-in/strings.xml b/libs/WindowManager/Shell/res/values-in/strings.xml
index a3ed7c3743552cc59099836e95a6ed348a713496..54ccf84d398b05ec965586b18cf53c46cd2326e0 100644
--- a/libs/WindowManager/Shell/res/values-in/strings.xml
+++ b/libs/WindowManager/Shell/res/values-in/strings.xml
@@ -119,8 +119,7 @@
"Penanganan aplikasi""Ikon Aplikasi""Layar Penuh"
-
-
+ "Tampilan Desktop""Layar Terpisah""Lainnya""Mengambang"
@@ -133,8 +132,7 @@
"Ubah rasio aspek""Tutup""Tutup Menu"
-
-
+ "%1$s (Tampilan Desktop)""Perbesar Layar""Ubah ukuran""Aplikasi tidak dapat dipindahkan ke sini"
@@ -147,10 +145,8 @@
"Ubah ukuran jendela aplikasi ke kiri""Ubah ukuran jendela aplikasi ke kanan""Maksimalkan atau pulihkan ukuran jendela"
-
-
-
-
+ "Buka Menu"
+ "Masuk ke %1$s""Ubah ukuran jendela ke kiri""Ubah ukuran jendela ke kanan""Maksimalkan atau pulihkan ukuran jendela"
diff --git a/libs/WindowManager/Shell/res/values-is/strings.xml b/libs/WindowManager/Shell/res/values-is/strings.xml
index e8ecad1fc5e9cf50e38d0916efc025aae064d3c4..56b179033ddb7d7c92bd4956e001535f9e7426b4 100644
--- a/libs/WindowManager/Shell/res/values-is/strings.xml
+++ b/libs/WindowManager/Shell/res/values-is/strings.xml
@@ -119,8 +119,7 @@
"Handfang forrits""Tákn forrits""Allur skjárinn"
-
-
+ "Tölvuútgáfa""Skjáskipting""Meira""Reikult"
@@ -133,8 +132,7 @@
"Breyta myndhlutfalli""Loka""Loka valmynd"
-
-
+ "%1$s (tölvuútgáfa)""Stækka skjá""Breyta stærð""Ekki er hægt að færa forritið hingað"
@@ -147,10 +145,8 @@
"Breyta stærð forritsglugga til vinstri""Breyta stærð forritsglugga til hægri""Hámarka eða endurheimta stærð glugga"
-
-
-
-
+ "Opna valmynd"
+ "Opna %1$s""Breyta stærð glugga til vinstri""Breyta stærð glugga til hægri""Hámarka eða endurheimta stærð glugga"
diff --git a/libs/WindowManager/Shell/res/values-it/strings.xml b/libs/WindowManager/Shell/res/values-it/strings.xml
index 630e9ee0f4f5fa94d36901b8e4194f5f0ef6efd4..30159c7663f0948dcbfd16b93b6485e6966ca911 100644
--- a/libs/WindowManager/Shell/res/values-it/strings.xml
+++ b/libs/WindowManager/Shell/res/values-it/strings.xml
@@ -119,8 +119,7 @@
"Punto di manipolazione app""Icona dell\'app""Schermo intero"
-
-
+ "Visualizzazione desktop""Schermo diviso""Altro""Mobile"
@@ -133,8 +132,7 @@
"Cambia proporzioni""Chiudi""Chiudi il menu"
-
-
+ "%1$s (visualizzazione desktop)""Massimizza schermo""Ridimensiona""Impossibile spostare l\'app qui"
@@ -147,10 +145,8 @@
"Ridimensiona la finestra dell\'app a sinistra""Ridimensiona la finestra dell\'app a destra""Ingrandisci o ripristina le dimensioni della finestra"
-
-
-
-
+ "Apri menu"
+ "Attiva %1$s""Ridimensiona la finestra a sinistra""Ridimensiona la finestra a destra""Ingrandisci o ripristina le dimensioni della finestra"
diff --git a/libs/WindowManager/Shell/res/values-iw/strings.xml b/libs/WindowManager/Shell/res/values-iw/strings.xml
index 102d646eb2b3f8eaee38c6c0f735138f630062e1..5a19f146566e36fdb828d6d4806fc9bcc8f2b80c 100644
--- a/libs/WindowManager/Shell/res/values-iw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-iw/strings.xml
@@ -119,8 +119,7 @@
"נקודת אחיזה לאפליקציה""סמל האפליקציה""מסך מלא"
-
-
+ "תצוגה למחשב""מסך מפוצל""עוד""בלונים"
@@ -133,12 +132,11 @@
"שינוי יחס הגובה-רוחב""סגירה""סגירת התפריט"
-
-
+ "%1$s (תצוגה למחשב)""הגדלת המסך""שינוי הגודל""לא ניתן להעביר את האפליקציה לכאן"
- "סוחף"
+ "הטמעה""שחזור""הגדלה""שחזור"
@@ -147,10 +145,8 @@
"שינוי הגודל של חלון האפליקציה שמשמאל""שינוי הגודל של חלון האפליקציה שמימין""שחזור של גודל החלון או הגדלת החלון"
-
-
-
-
+ "פתיחת התפריט"
+ "כניסה אל %1$s""שינוי גודל החלון שמשמאל""שינוי גודל החלון שמימין""שחזור של גודל החלון או הגדלת החלון"
diff --git a/libs/WindowManager/Shell/res/values-kk/strings.xml b/libs/WindowManager/Shell/res/values-kk/strings.xml
index 31a01533309620bb7f85300fa6177e673e7f870a..be9e9c12a417bf7e4e97b1d17514748189d40cd1 100644
--- a/libs/WindowManager/Shell/res/values-kk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kk/strings.xml
@@ -119,8 +119,7 @@
"Қолданба идентификаторы""Қолданба белгішесі""Толық экран"
-
-
+ "Компьютерлік нұсқа""Экранды бөлу""Қосымша""Қалқыма"
@@ -133,12 +132,11 @@
"Арақатынасты өзгерту""Жабу""Мәзірді жабу"
-
-
+ "%1$s (компьютерлік нұсқа)""Экранды ұлғайту""Өлшемін өзгерту""Қолданба бұл жерге қойылмайды."
- "Әсерлі"
+ "Иммерсивтік әсер""Қалпына келтіру""Жаю""Қалпына келтіру"
@@ -147,10 +145,8 @@
"Қолданба терезесінің өлшемін сол жақтан өзгерту""Қолданба терезесінің өлшемін оң жақтан өзгерту""Терезе өлшемін ұлғайту не қалпына келтіру"
-
-
-
-
+ "Мәзірді ашу"
+ "%1$s режиміне өту""Терезе өлшемін сол жаққа өзгерту""Терезе өлшемін оң жаққа өзгерту""Терезе өлшемін ұлғайту не қалпына келтіру"
diff --git a/libs/WindowManager/Shell/res/values-km/strings.xml b/libs/WindowManager/Shell/res/values-km/strings.xml
index 9a7db67781620719d21af5d4b88ec5fb410bcbfd..c835650f705f77927a53149005f5ec4d4cd05ee8 100644
--- a/libs/WindowManager/Shell/res/values-km/strings.xml
+++ b/libs/WindowManager/Shell/res/values-km/strings.xml
@@ -119,8 +119,7 @@
"ឈ្មោះអ្នកប្រើប្រាស់កម្មវិធី""រូបកម្មវិធី""អេក្រង់ពេញ"
-
-
+ "ទិដ្ឋភាពលើកុំព្យូទ័រ""មុខងារបំបែកអេក្រង់""ច្រើនទៀត""អណ្ដែត"
@@ -133,8 +132,7 @@
"ប្ដូរសមាមាត្រ""បិទ""បិទម៉ឺនុយ"
-
-
+ "%1$s (ទិដ្ឋភាពលើកុំព្យូទ័រ)""ពង្រីកអេក្រង់""ប្ដូរទំហំ""មិនអាចផ្លាស់ទីកម្មវិធីមកទីនេះបានទេ"
@@ -147,10 +145,8 @@
"ប្ដូរទំហំវិនដូកម្មវិធីទៅឆ្វេង""ប្ដូរទំហំវិនដូកម្មវិធីទៅស្ដាំ""ស្ដារ ឬបង្កើនទំហំវិនដូជាអតិបរមា"
-
-
-
-
+ "បើកម៉ឺនុយ"
+ "ចូលទៅ%1$s""ប្ដូរទំហំវិនដូទៅឆ្វេង""ប្ដូរទំហំវិនដូទៅស្ដាំ""ស្ដារ ឬបង្កើនទំហំវិនដូជាអតិបរមា"
diff --git a/libs/WindowManager/Shell/res/values-kn/strings.xml b/libs/WindowManager/Shell/res/values-kn/strings.xml
index e9fa2cf6aaa561634af631397fa03befea0d1e53..143208a2e16d6eaf06fa65f1d791798adf1f8daf 100644
--- a/libs/WindowManager/Shell/res/values-kn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kn/strings.xml
@@ -119,8 +119,7 @@
"ಆ್ಯಪ್ ಹ್ಯಾಂಡಲ್""ಆ್ಯಪ್ ಐಕಾನ್""ಫುಲ್ಸ್ಕ್ರೀನ್"
-
-
+ "ಡೆಸ್ಕ್ಟಾಪ್ ವೀಕ್ಷಣೆ""ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್""ಇನ್ನಷ್ಟು""ಫ್ಲೋಟ್"
@@ -133,8 +132,7 @@
"ದೃಶ್ಯಾನುಪಾತವನ್ನು ಬದಲಾಯಿಸಿ""ಮುಚ್ಚಿ""ಮೆನು ಮುಚ್ಚಿ"
-
-
+ "%1$s (ಡೆಸ್ಕ್ಟಾಪ್ ವೀಕ್ಷಣೆ)""ಸ್ಕ್ರೀನ್ ಅನ್ನು ಮ್ಯಾಕ್ಸಿಮೈಸ್ ಮಾಡಿ""ಮರುಗಾತ್ರಗೊಳಿಸಿ""ಆ್ಯಪ್ ಅನ್ನು ಇಲ್ಲಿಗೆ ಸರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"
@@ -147,10 +145,8 @@
"ಮರುಗಾತ್ರಗೊಳಿಸಿ ಆ್ಯಪ್ ವಿಂಡೋ ಎಡ""ಮರುಗಾತ್ರಗೊಳಿಸಿ ಆ್ಯಪ್ ವಿಂಡೋ ಬಲ""ವಿಂಡೋ ಗಾತ್ರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಿ ಅಥವಾ ಮರುಸ್ಥಾಪಿಸಿ"
-
-
-
-
+ "ಮೆನು ತೆರೆಯಿರಿ"
+ "%1$s ಅನ್ನು ನಮೂದಿಸಿ""ಮರುಗಾತ್ರಗೊಳಿಸಿ ವಿಂಡೋವನ್ನು ಎಡಕ್ಕೆ ಸರಿಸಿ""ಮರುಗಾತ್ರಗೊಳಿಸಿ ವಿಂಡೋವನ್ನು ಬಲಕ್ಕೆ ಸರಿಸಿ""ವಿಂಡೋ ಗಾತ್ರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಿ ಅಥವಾ ಮರುಸ್ಥಾಪಿಸಿ"
diff --git a/libs/WindowManager/Shell/res/values-ky/strings.xml b/libs/WindowManager/Shell/res/values-ky/strings.xml
index 3716741ed61a33da6de3072d5c8cff0188df6355..fe1bcd481f0b5aab6a8092720b95130d9c359c06 100644
--- a/libs/WindowManager/Shell/res/values-ky/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ky/strings.xml
@@ -119,8 +119,7 @@
"Колдонмонун маркери""Колдонмонун сүрөтчөсү""Толук экран"
-
-
+ "Компьютердик версия""Экранды бөлүү""Дагы""Калкыма"
@@ -133,8 +132,7 @@
"Тараптардын катнашын өзгөртүү""Жабуу""Менюну жабуу"
-
-
+ "%1$s (компьютердик версия)""Экранды чоңойтуу""Өлчөмүн өзгөртүү""Колдонмону бул жерге жылдырууга болбойт"
@@ -147,10 +145,8 @@
"Колдонмонун терезесинин өлчөмүн солго өзгөртүү""Колдонмонун терезесинин өлчөмүн оңго өзгөртүү""Терезенин өлчөмүн чоңойтуу же калыбына келтирүү"
-
-
-
-
+ "Менюну ачуу"
+ "%1$s режимине өтүү""Терезенин өлчөмүн солго өзгөртүү""Терезенин өлчөмүн оңго өзгөртүү""Терезенин өлчөмүн чоңойтуу же калыбына келтирүү"
diff --git a/libs/WindowManager/Shell/res/values-lo/strings.xml b/libs/WindowManager/Shell/res/values-lo/strings.xml
index a1d9d297ffaeae17258362a0a10e2b0b9e324234..dd9df35cad0097d95a46d8ddd5c755fcc4ca8e6c 100644
--- a/libs/WindowManager/Shell/res/values-lo/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lo/strings.xml
@@ -119,8 +119,7 @@
"ຊື່ຜູ້ໃຊ້ແອັບ""ໄອຄອນແອັບ""ເຕັມຈໍ"
-
-
+ "ມຸມມອງຢູ່ເດັສທັອບ""ແບ່ງໜ້າຈໍ""ເພີ່ມເຕີມ""ລອຍ"
@@ -133,8 +132,7 @@
"ປ່ຽນອັດຕາສ່ວນຮູບ""ປິດ""ປິດເມນູ"
-
-
+ "%1$s (ມຸມມອງຢູ່ເດັສທັອບ)""ປັບຈໍໃຫຍ່ສຸດ""ປັບຂະໜາດ""ບໍ່ສາມາດຍ້າຍແອັບມາບ່ອນນີ້ໄດ້"
@@ -147,10 +145,8 @@
"ປັບຂະໜາດໜ້າຈໍແອັບໄປທາງຊ້າຍ""ປັບຂະໜາດໜ້າຈໍແອັບໄປທາງຂວາ""ຂະຫຍາຍ ຫຼື ຄືນຄ່າຂະໜາດໜ້າຈໍ"
-
-
-
-
+ "ເປີດເມນູ"
+ "ເຂົ້າສູ່ %1$s""ປັບຂະໜາດໜ້າຈໍໄປທາງຊ້າຍ""ປັບຂະໜາດໜ້າຈໍໄປທາງຂວາ""ຂະຫຍາຍ ຫຼື ຄືນຄ່າຂະໜາດໜ້າຈໍ"
diff --git a/libs/WindowManager/Shell/res/values-lv/strings.xml b/libs/WindowManager/Shell/res/values-lv/strings.xml
index 3fcbbe20cff3ff3b14881ed95a023f3d9ae01f20..8c4360b80548929f6f885b7b0b2d5ae7202d2cd8 100644
--- a/libs/WindowManager/Shell/res/values-lv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lv/strings.xml
@@ -119,8 +119,7 @@
"Lietotnes turis""Lietotnes ikona""Pilnekrāna režīms"
-
-
+ "Skats datorā""Sadalīt ekrānu""Vairāk""Peldošs"
@@ -133,8 +132,7 @@
"Mainīt malu attiecību""Aizvērt""Aizvērt izvēlni"
-
-
+ "%1$s (skats datorā)""Maksimizēt ekrānu""Mainīt lielumu""Lietotni nevar pārvietot šeit."
@@ -147,10 +145,8 @@
"Mainīt lietotnes loga lielumu uz kreiso pusi""Mainīt lietotnes loga lielumu uz labo pusi""Maksimizēt vai atjaunot loga lielumu"
-
-
-
-
+ "Atvērt izvēlni"
+ "Atvērt: %1$s""Mainīt loga lielumu uz kreiso pusi""Mainīt loga lielumu uz labo pusi""Maksimizēt vai atjaunot loga lielumu"
diff --git a/libs/WindowManager/Shell/res/values-mk/strings.xml b/libs/WindowManager/Shell/res/values-mk/strings.xml
index 76b62ec1b6cf1ab2912e1a3fed274013b56482a8..653e66a2c586421a84998e7cdf6cf71fa327891c 100644
--- a/libs/WindowManager/Shell/res/values-mk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mk/strings.xml
@@ -119,8 +119,7 @@
"Прекар на апликацијата""Икона на апликацијата""Цел екран"
-
-
+ "Приказ на компјутер""Поделен екран""Повеќе""Лебдечко"
@@ -133,10 +132,9 @@
"Промени го соодносот""Затворете""Затворете го менито"
-
-
+ "%1$s (приказ на компјутер)""Максимизирај го екранот"
- "Промени ја гол."
+ "Смени големина""Апликацијата не може да се премести овде""Реалистично""Врати"
@@ -147,10 +145,8 @@
"Променете ја големината на прозорецот на апликацијата одлево""Променете ја големината на прозорецот на апликацијата оддесно""Максимизирајте или вратете ја големината на прозорецот"
-
-
-
-
+ "Отворете го менито"
+ "Отворете %1$s""Променете ја големината на прозорецот налево""Променете ја големината на прозорецот надесно""Максимизирајте или вратете ја големината на прозорецот"
diff --git a/libs/WindowManager/Shell/res/values-ml/strings.xml b/libs/WindowManager/Shell/res/values-ml/strings.xml
index d9d0cf9b96a94c578fd3a08d2ef81daded1c59cb..88876657642d887ef03489f9c941c182ec8d28f2 100644
--- a/libs/WindowManager/Shell/res/values-ml/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ml/strings.xml
@@ -119,8 +119,7 @@
"ആപ്പ് ഹാൻഡിൽ""ആപ്പ് ഐക്കൺ""പൂർണ്ണസ്ക്രീൻ"
-
-
+ "ഡെസ്ക്ടോപ്പ് വ്യൂ""സ്ക്രീൻ വിഭജനം""കൂടുതൽ""ഫ്ലോട്ട്"
@@ -133,8 +132,7 @@
"വീക്ഷണ അനുപാതം മാറ്റുക""അടയ്ക്കുക""മെനു അടയ്ക്കുക"
-
-
+ "%1$s (ഡെസ്ക്ടോപ്പ് വ്യൂ)""സ്ക്രീൻ വലുതാക്കുക""വലുപ്പം മാറ്റുക""ആപ്പ് ഇവിടേക്ക് നീക്കാനാകില്ല"
@@ -147,10 +145,8 @@
"ഇടത് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക""വലത് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക""വിന്ഡോ വലുപ്പം വലുതാക്കുക അല്ലെങ്കിൽ പഴയത് പുനഃസ്ഥാപിക്കുക"
-
-
-
-
+ "മെനു തുറക്കുക"
+ "%1$s നൽകുക""ഇടത്തേക്ക് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക""വലത്തേക്ക് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക""വിന്ഡോ വലുപ്പം വലുതാക്കുക അല്ലെങ്കിൽ പഴയത് പുനഃസ്ഥാപിക്കുക"
diff --git a/libs/WindowManager/Shell/res/values-mn/strings.xml b/libs/WindowManager/Shell/res/values-mn/strings.xml
index 875eceab05d8c808650fb3f7a374f0b661dbde47..df922e09fb46d3302d220e12db533f3fc48aa751 100644
--- a/libs/WindowManager/Shell/res/values-mn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mn/strings.xml
@@ -119,8 +119,7 @@
"Аппын бариул""Aппын дүрс тэмдэг""Бүтэн дэлгэц"
-
-
+ "Дэлгэц дээр харагдах байдал""Дэлгэцийг хуваах""Бусад""Хөвөгч"
@@ -129,12 +128,11 @@
"Хөтчид нээх""Аппад нээх""Шинэ цонх"
- "Windows-г удирдах"
+ "Цонхнуудыг удирдах""Аспектын харьцааг өөрчлөх""Хаах""Цэсийг хаах"
-
-
+ "%1$s (дэлгэц дээр харагдах байдал)""Дэлгэцийг томруулах""Хэмжээг өөрчлөх""Аппыг ийш зөөх боломжгүй"
@@ -147,10 +145,8 @@
"Аппын цонхны хэмжээг зүүн тал руу өөрчлөх""Аппын цонхны хэмжээг баруун тал руу өөрчлөх""Цонхны хэмжээг томруулах эсвэл сэргээх"
-
-
-
-
+ "Цэсийг нээх"
+ "%1$s-д орох""Цонхны хэмжээг зүүн тал руу өөрчлөх""Цонхны хэмжээг баруун тал руу өөрчлөх""Цонхны хэмжээг томруулах эсвэл сэргээх"
diff --git a/libs/WindowManager/Shell/res/values-mr/strings.xml b/libs/WindowManager/Shell/res/values-mr/strings.xml
index 73c16e67302be3222711cae99fc5c73451383638..f31631175039fcc4a021a1643c804e7b910f7fb8 100644
--- a/libs/WindowManager/Shell/res/values-mr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mr/strings.xml
@@ -119,8 +119,7 @@
"अॅपचे हँडल""अॅप आयकन""फुलस्क्रीन"
-
-
+ "डेस्कटॉप दृश्य""स्प्लिट स्क्रीन""आणखी""फ्लोट"
@@ -133,8 +132,7 @@
"आस्पेक्ट रेशो बदला""बंद करा""मेनू बंद करा"
-
-
+ "%1$s (डेस्कटॉप दृश्य)""स्क्रीन मोठी करा""आकार बदला""अॅप इथे हलवू शकत नाही"
@@ -147,10 +145,8 @@
"अॅप विंडोचा डावीकडून आकार बदला""अॅप विंडोचा उजवीकडून आकार बदला""विंडोचा आकार मोठा करा किंवा रिस्टोअर करा"
-
-
-
-
+ "मेनू उघडा"
+ "%1$s एंटर करा""अॅप विंडोचा डावीकडे आकार बदला""अॅप विंडोचा उजवीकडे आकार बदला""विंडोचा आकार मोठा करा किंवा रिस्टोअर करा"
diff --git a/libs/WindowManager/Shell/res/values-my/strings.xml b/libs/WindowManager/Shell/res/values-my/strings.xml
index be7cca53717e1d0389d1633edc2459fed487db4b..8697af849ad5ac3fc511120be2199a40a441ff5f 100644
--- a/libs/WindowManager/Shell/res/values-my/strings.xml
+++ b/libs/WindowManager/Shell/res/values-my/strings.xml
@@ -119,8 +119,7 @@
"အက်ပ်သုံးသူအမည်""အက်ပ်သင်္ကေတ""ဖန်သားပြင်အပြည့်"
-
-
+ "ဒက်စ်တော့ မြင်ကွင်း""မျက်နှာပြင် ခွဲ၍ပြသရန်""ပိုပြပါ""မျှောရန်"
@@ -133,12 +132,11 @@
"အချိုးအစား ပြောင်းရန်""ပိတ်ရန်""မီနူး ပိတ်ရန်"
-
-
+ "%1$s (ဒက်စ်တော့ မြင်ကွင်း)""စခရင်ကို ချဲ့မည်""အရွယ်ပြင်ရန်""အက်ပ်ကို ဤနေရာသို့ ရွှေ့၍မရပါ"
- "သုံးဘက်မြင်"
+ "ဘက်ပေါင်းစုံ""ပြန်ပြောင်းရန်""ချဲ့ရန်""ပြန်ပြောင်းရန်"
@@ -147,10 +145,8 @@
"အက်ပ်ဝင်းဒိုး ဘယ်ဘက်ကို အရွယ်ပြင်ရန်""အက်ပ်ဝင်းဒိုး ညာဘက်ကို အရွယ်ပြင်ရန်""ဝင်းဒိုးအရွယ်အစားကို ချဲ့ရန် (သို့) ပြန်ပြောင်းရန်"
-
-
-
-
+ "မီနူးဖွင့်ရန်"
+ "%1$s ကို ဝင်ရန်""ဝင်းဒိုးကို ဘယ်ဘက်သို့ အရွယ်ပြင်ရန်""ဝင်းဒိုးကို ညာဘက်သို့ အရွယ်ပြင်ရန်""ဝင်းဒိုးအရွယ်အစားကို ချဲ့ရန် (သို့) ပြန်ပြောင်းရန်"
diff --git a/libs/WindowManager/Shell/res/values-nb/strings.xml b/libs/WindowManager/Shell/res/values-nb/strings.xml
index c213b7b7227a6f51ea54e0e5ddf9e5570f4b18cc..43de6363e6bd40d4fcc271178dda07a1896d40b1 100644
--- a/libs/WindowManager/Shell/res/values-nb/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nb/strings.xml
@@ -119,8 +119,7 @@
"Apphåndtak""Appikon""Fullskjerm"
-
-
+ "Datamaskinvisning""Delt skjerm""Mer""Svevende"
@@ -133,8 +132,7 @@
"Endre høyde/bredde-forholdet""Lukk""Lukk menyen"
-
-
+ "%1$s (datamaskinvisning)""Maksimer skjermen""Endre størrelse""Appen kan ikke flyttes hit"
@@ -147,10 +145,8 @@
"Endre størrelsen på appvinduet til venstre""Endre størrelsen på appvinduet til høyre""Maksimer eller gjenopprett størrelsen på vinduet"
-
-
-
-
+ "Åpne menyen"
+ "Skriv inn %1$s.""Endre størrelsen på vinduet til venstre""Endre størrelsen på vinduet til høyre""Maksimer eller gjenopprett størrelsen på vinduet"
diff --git a/libs/WindowManager/Shell/res/values-ne/strings.xml b/libs/WindowManager/Shell/res/values-ne/strings.xml
index e5f4cbebce8cc27e267458f3024ebb95f73ec145..23b49b7dfe42c4ad1a61cf83a08bc1de8cae30f2 100644
--- a/libs/WindowManager/Shell/res/values-ne/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ne/strings.xml
@@ -119,8 +119,7 @@
"एपको ह्यान्डल""एपको आइकन""फुल स्क्रिन"
-
-
+ "डेस्कटप भ्यू""स्प्लिट स्क्रिन""थप""फ्लोट"
@@ -133,8 +132,7 @@
"एस्पेक्ट रेसियो परिवर्तन गर्नुहोस्""बन्द गर्नुहोस्""मेनु बन्द गर्नुहोस्"
-
-
+ "%1$s (डेस्कटप भ्यू)""स्क्रिन ठुलो बनाउनुहोस्""आकार बदल्नुहोस्""एप सारेर यहाँ ल्याउन सकिएन"
@@ -147,10 +145,8 @@
"एपको विन्डोको आकार बदलेर बायाँतिर लैजानुहोस्""एपको विन्डोको आकार बदलेर दायाँतिर लैजानुहोस्""विन्डोको आकार म्याक्सिमाइज गर्नुहोस् वा रिस्टोर गर्नुहोस्"
-
-
-
-
+ "मेनु खोल्नुहोस्"
+ "%1$s प्रयोग गर्नुहोस्""विन्डोको आकार बदलेर बायाँतिर लैजानुहोस्""विन्डोको आकार बदलेर दायाँतिर लैजानुहोस्""विन्डोको आकार म्याक्सिमाइज गर्नुहोस् वा रिस्टोर गर्नुहोस्"
diff --git a/libs/WindowManager/Shell/res/values-or/strings.xml b/libs/WindowManager/Shell/res/values-or/strings.xml
index 182ea46d83c27d37960bf64e8be3a5654ca2245e..9e1ee43a01b6e0ee6458d17b7ebeeec619ea0759 100644
--- a/libs/WindowManager/Shell/res/values-or/strings.xml
+++ b/libs/WindowManager/Shell/res/values-or/strings.xml
@@ -119,8 +119,7 @@
"ଆପର ହେଣ୍ଡେଲ""ଆପ ଆଇକନ""ପୂର୍ଣ୍ଣସ୍କ୍ରିନ"
-
-
+ "ଡେସ୍କଟପ ଭ୍ୟୁ""ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ""ଅଧିକ""ଫ୍ଲୋଟ"
@@ -133,8 +132,7 @@
"ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ପରିବର୍ତ୍ତନ କରନ୍ତୁ""ବନ୍ଦ କରନ୍ତୁ""ମେନୁ ବନ୍ଦ କରନ୍ତୁ"
-
-
+ "%1$s (ଡେସ୍କଟପ ଭ୍ୟୁ)""ସ୍କ୍ରିନକୁ ବଡ଼ କରନ୍ତୁ""ରିସାଇଜ କରନ୍ତୁ""ଆପକୁ ଏଠାକୁ ମୁଭ କରାଯାଇପାରିବ ନାହିଁ"
@@ -147,10 +145,8 @@
"ଆପ ୱିଣ୍ଡୋ ରିସାଇଜ କରିବା ପାଇଁ ବାମ ବଟନ""ଆପ ୱିଣ୍ଡୋ ରିସାଇଜ କରିବା ପାଇଁ ଡାହାଣ ବଟନ""ୱିଣ୍ଡୋ ସାଇଜକୁ ମେକ୍ସିମାଇଜ କିମ୍ବା ରିଷ୍ଟୋର କରନ୍ତୁ"
-
-
-
-
+ "ମେନୁ ଖୋଲନ୍ତୁ"
+ "%1$sରେ ଲେଖନ୍ତୁ""ବାମପଟକୁ ୱିଣ୍ଡୋ ରିସାଇଜ କରନ୍ତୁ""ଡାହାଣପଟକୁ ୱିଣ୍ଡୋ ରିସାଇଜ କରନ୍ତୁ""ୱିଣ୍ଡୋ ସାଇଜକୁ ମେକ୍ସିମାଇଜ କିମ୍ବା ରିଷ୍ଟୋର କରନ୍ତୁ"
diff --git a/libs/WindowManager/Shell/res/values-pl/strings.xml b/libs/WindowManager/Shell/res/values-pl/strings.xml
index 9a1bf3321274d31910ba50aafc0f6ef86a1c8e18..3a55cf3f9f4e045a7620891c5461fea0eaa4e170 100644
--- a/libs/WindowManager/Shell/res/values-pl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pl/strings.xml
@@ -119,8 +119,7 @@
"Uchwyt aplikacji""Ikona aplikacji""Pełny ekran"
-
-
+ "Wersja na komputery""Podzielony ekran""Więcej""Pływające"
@@ -133,8 +132,7 @@
"Zmień format obrazu""Zamknij""Zamknij menu"
-
-
+ "%1$s (wersja na komputery)""Maksymalizuj ekran""Zmień rozmiar""Nie można przenieść aplikacji tutaj"
@@ -147,10 +145,8 @@
"Zmień rozmiar okna aplikacji po lewej""Zmień rozmiar okna aplikacji po prawej""Zmaksymalizuj lub przywróć rozmiar okna"
-
-
-
-
+ "Otwórz menu"
+ "Wybierz %1$s""Zmień rozmiar okna do lewej""Zmień rozmiar okna do prawej""Zmaksymalizuj lub przywróć rozmiar okna"
diff --git a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
index 0ca0e8e40543a95f56f955030216ac366b473ae4..3eaf0f515b9753ff319723e47c4cd331745e00e7 100644
--- a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
@@ -128,7 +128,7 @@
"Abrir no navegador""Abrir na app""Nova janela"
- "Faça a gestão das janelas"
+ "Gerir janelas""Alterar formato""Fechar""Fechar menu"
diff --git a/libs/WindowManager/Shell/res/values-ro/strings.xml b/libs/WindowManager/Shell/res/values-ro/strings.xml
index f71d93b591200f65af151c9eedfc59bcb08a1d4f..0195acac1919bad85a52a3812aaa8f9f574c5ba5 100644
--- a/libs/WindowManager/Shell/res/values-ro/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ro/strings.xml
@@ -119,8 +119,7 @@
"Handle de aplicație""Pictograma aplicației""Ecran complet"
-
-
+ "Afișare pe desktop""Ecran împărțit""Mai multe""Flotantă"
@@ -133,8 +132,7 @@
"Schimbă raportul de dimensiuni""Închide""Închide meniul"
-
-
+ "%1$s (afișare pe desktop)""Maximizează fereastra""Redimensionează""Aplicația nu poate fi mutată aici"
@@ -147,10 +145,8 @@
"Redimensionează fereastra aplicației la stânga""Redimensionează fereastra aplicației la dreapta""Maximizează sau restabilește dimensiunea ferestrei"
-
-
-
-
+ "Deschide meniul"
+ "Introdu %1$s""Redimensionează fereastra la stânga""Redimensionează fereastra la dreapta""Maximizează sau restabilește dimensiunea ferestrei"
diff --git a/libs/WindowManager/Shell/res/values-si/strings.xml b/libs/WindowManager/Shell/res/values-si/strings.xml
index b7b286338f166be7b1d5ac0a192d850931b99031..26bd9372763c68daa172e46b79795091c598e5c4 100644
--- a/libs/WindowManager/Shell/res/values-si/strings.xml
+++ b/libs/WindowManager/Shell/res/values-si/strings.xml
@@ -119,8 +119,7 @@
"යෙදුම් හසුරුව""යෙදුම් නිරූපකය""පූර්ණ තිරය"
-
-
+ "ඩෙස්ක්ටොප් දසුන""බෙදුම් තිරය""තව""පාවෙන"
@@ -133,8 +132,7 @@
"දර්ශන අනුපාතය වෙනස් කරන්න""වසන්න""මෙනුව වසන්න"
-
-
+ "%1$s (ඩෙස්ක්ටොප් දසුන)""තිරය උපරිම කරන්න""ප්රතිප්රමාණය කරන්න""යෙදුම මෙතැනට ගෙන යා නොහැක"
@@ -147,10 +145,8 @@
"යෙදුම් කවුළුව වමට ප්රතිප්රමාණ කරන්න""යෙදුම් කවුළුව දකුණට ප්රතිප්රමාණ කරන්න""කවුළු ප්රමාණය උපරිම කරන්න හෝ ප්රතිසාධනය කරන්න"
-
-
-
-
+ "මෙනුව විවෘත කරන්න"
+ "%1$s ඇතුළු කරන්න""කවුළුව වමට ප්රතිප්රමාණ කරන්න""කවුළුව දකුණට ප්රතිප්රමාණ කරන්න""කවුළු ප්රමාණය උපරිම කරන්න හෝ ප්රතිසාධනය කරන්න"
diff --git a/libs/WindowManager/Shell/res/values-sk/strings.xml b/libs/WindowManager/Shell/res/values-sk/strings.xml
index ede0cdda7ab5043a43c0c561232467434ab16cb8..8b6999e9c0d09a8e53def41d567ddb709b1ba498 100644
--- a/libs/WindowManager/Shell/res/values-sk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sk/strings.xml
@@ -128,7 +128,7 @@
"Otvoriť v prehliadači""Otvoriť v aplikácii""Nové okno"
- "Správa okien"
+ "Spravovať okná""Zmeniť pomer strán""Zavrieť""Zavrieť ponuku"
diff --git a/libs/WindowManager/Shell/res/values-sq/strings.xml b/libs/WindowManager/Shell/res/values-sq/strings.xml
index ea26bc6a5a4c0991107f0ce6b7cbd87f1e6faf34..45a1c001755ffa405807b2a202dea779c10e975b 100644
--- a/libs/WindowManager/Shell/res/values-sq/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sq/strings.xml
@@ -119,8 +119,7 @@
"Emërtimi i aplikacionit""Ikona e aplikacionit""Ekrani i plotë"
-
-
+ "Pamja për desktop""Ekrani i ndarë""Më shumë""Pluskuese"
@@ -133,8 +132,7 @@
"Ndrysho raportin e pamjes""Mbyll""Mbyll menynë"
-
-
+ "%1$s (Pamja për desktop)""Maksimizo ekranin""Ndrysho përmasat""Aplikacioni nuk mund të zhvendoset këtu"
@@ -147,10 +145,8 @@
"Ndrysho përmasat e dritares së aplikacionit majtas""Ndrysho përmasat e dritares së aplikacionit djathtas""Maksimizo ose restauro madhësinë e dritares"
-
-
-
-
+ "Hap menynë"
+ "Kalo te \"%1$s\"""Ndrysho përmasat e dritares në të majtë""Ndrysho përmasat e dritares në të djathtë""Maksimizo ose restauro madhësinë e dritares"
diff --git a/libs/WindowManager/Shell/res/values-sr/strings.xml b/libs/WindowManager/Shell/res/values-sr/strings.xml
index ea7a1bb292f24a41328790f2694ba957769db6b3..40ca9a41d2908650d7936f124171e8444da05e1d 100644
--- a/libs/WindowManager/Shell/res/values-sr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sr/strings.xml
@@ -134,9 +134,9 @@
"Затворите мени""%1$s (приказ за рачунаре)""Повећај екран"
- "Промени величину"
+ "Прилагоди""Апликација не може да се премести овде"
- "Имерзивне"
+ "Имерзивно""Врати""Увећај""Вратите"
diff --git a/libs/WindowManager/Shell/res/values-sv/strings.xml b/libs/WindowManager/Shell/res/values-sv/strings.xml
index f3e53d0ed0c873ce5e6305f1abb3b71c770b50d4..4e126e88d242ddae61e9c1430b663fe232a149a0 100644
--- a/libs/WindowManager/Shell/res/values-sv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sv/strings.xml
@@ -136,7 +136,7 @@
"Maximera skärmen""Ändra storlek""Det går inte att flytta appen hit"
- "Uppslukande"
+ "Immersiv""Återställ""Utöka""Återställ"
diff --git a/libs/WindowManager/Shell/res/values-sw/strings.xml b/libs/WindowManager/Shell/res/values-sw/strings.xml
index 51aacac5902cb44c94e20cdfd84e1f0907793fae..8bfdfc62a5b794a07896ec31ef8c5d93098f78ce 100644
--- a/libs/WindowManager/Shell/res/values-sw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sw/strings.xml
@@ -119,8 +119,7 @@
"Utambulisho wa programu""Aikoni ya Programu""Skrini nzima"
-
-
+ "Mwonekano wa Kompyuta""Gawa Skrini""Zaidi""Inayoelea"
@@ -133,8 +132,7 @@
"Badilisha uwiano""Funga""Funga Menyu"
-
-
+ "%1$s (Mwonekano wa Kompyuta)""Panua Dirisha kwenye Skrini""Badilisha ukubwa""Imeshindwa kuhamishia programu hapa"
@@ -147,10 +145,8 @@
"Badilisha ukubwa wa dirisha la programu kushoto""Badilisha ukubwa wa dirisha la programu kulia""Panua au urejeshe ukubwa wa dirisha"
-
-
-
-
+ "Fungua Menyu"
+ "Weka %1$s""Badilisha ukubwa wa dirisha kushoto""Badilisha ukubwa wa dirisha kulia""Panua au urejeshe ukubwa wa dirisha"
diff --git a/libs/WindowManager/Shell/res/values-ta/strings.xml b/libs/WindowManager/Shell/res/values-ta/strings.xml
index 0c7206c0b9d8b5f8ea45bf8da6fe0ae9c8643e1b..4d9093c5bf3110d217b3ec4a82af8b6f7bb852b0 100644
--- a/libs/WindowManager/Shell/res/values-ta/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ta/strings.xml
@@ -119,8 +119,7 @@
"ஆப்ஸ் ஹேண்டில்""ஆப்ஸ் ஐகான்""முழுத்திரை"
-
-
+ "டெஸ்க்டாப் காட்சி""திரையைப் பிரிக்கும்""கூடுதல் விருப்பத்தேர்வுகள்""மிதக்கும் சாளரம்"
@@ -133,12 +132,11 @@
"தோற்ற விகிதத்தை மாற்று""மூடும்""மெனுவை மூடும்"
-
-
+ "%1$s (டெஸ்க்டாப் காட்சி)""திரையைப் பெரிதாக்கு""அளவை மாற்று""ஆப்ஸை இங்கே நகர்த்த முடியாது"
- "ஈடுபட வைக்கும்"
+ "முழுத்திரையும்""மீட்டெடுக்கும்""பெரிதாக்கும்""மீட்டெடுக்கும்"
@@ -147,10 +145,8 @@
"ஆப்ஸ் சாளரத்தின் இடதுபுறத்தில் அளவை மாற்றும்""ஆப்ஸ் சாளரத்தின் வலதுபுறத்தில் அளவை மாற்றும்""சாளரத்தின் அளவைப் பெரிதாக்கும்/மீட்டெடுக்கும்"
-
-
-
-
+ "மெனுவைத் திறக்கும்"
+ "%1$s ஐ உள்ளிடும்""சாளரத்தை இடதுபுறமாக அளவு மாற்றும்""சாளரத்தை வலதுபுறமாக அளவு மாற்றும்""சாளரத்தின் அளவைப் பெரிதாக்கும்/மீட்டெடுக்கும்"
diff --git a/libs/WindowManager/Shell/res/values-tl/strings.xml b/libs/WindowManager/Shell/res/values-tl/strings.xml
index 5787e10d1ad3fdb9bab2ca8bd81fcbd85e4ac1c6..056bc225669ca7e50dccadaf8aeb3a7b80958f95 100644
--- a/libs/WindowManager/Shell/res/values-tl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tl/strings.xml
@@ -119,8 +119,7 @@
"Handle ng app""Icon ng App""Fullscreen"
-
-
+ "Desktop View""Split Screen""Higit pa""Float"
@@ -133,8 +132,7 @@
"Baguhin ang aspect ratio""Isara""Isara ang Menu"
-
-
+ "%1$s (Desktop View)""I-maximize ang Screen""I-resize""Hindi mailipat dito ang app"
@@ -147,10 +145,8 @@
"I-resize pakaliwa ang window ng app""I-resize pakanan ang window ng app""I-maximize o i-restore ang laki ng window"
-
-
-
-
+ "Buksan ang Menu"
+ "Pumasok sa %1$s""I-resize pakaliwa ang window""I-resize pakanan ang window""I-maximize o i-restore ang laki ng window"
diff --git a/libs/WindowManager/Shell/res/values-tr/strings.xml b/libs/WindowManager/Shell/res/values-tr/strings.xml
index 28b2a7d314d12bb8b61b65e4388c3bdb1ff33b09..017f6bb1d539bd8c17cd65407f8d8cc81ce97109 100644
--- a/libs/WindowManager/Shell/res/values-tr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tr/strings.xml
@@ -119,8 +119,7 @@
"Uygulama tanıtıcısı""Uygulama Simgesi""Tam Ekran"
-
-
+ "Masaüstü görünümü""Bölünmüş Ekran""Daha Fazla""Havada Süzülen"
@@ -133,12 +132,11 @@
"En boy oranını değiştir""Kapat""Menüyü kapat"
-
-
+ "%1$s (masaüstü görünümü)""Ekranı Büyüt""Yeniden boyutlandır""Uygulama buraya taşınamıyor"
- "Etkileyici"
+ "Tam ekran""Geri yükle""Ekranı kapla""Geri yükle"
@@ -147,10 +145,8 @@
"Uygulama penceresini sola yeniden boyutlandır""Uygulama penceresini sağa yeniden boyutlandır""Pencereyi ekranı kaplayacak şekilde büyüt veya önceki boyutuna döndür"
-
-
-
-
+ "Menüyü aç"
+ "%1$s moduna geç""Pencereyi sola yeniden boyutlandır""Pencereyi sağa yeniden boyutlandır""Pencereyi ekranı kaplayacak şekilde büyüt veya önceki boyutuna döndür"
diff --git a/libs/WindowManager/Shell/res/values-uk/strings.xml b/libs/WindowManager/Shell/res/values-uk/strings.xml
index f5693ca04f1e1e07141f5a2dc358de950343d3f8..32ce4a0c6ece4336b463f064c1b91ce1d8fcf406 100644
--- a/libs/WindowManager/Shell/res/values-uk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uk/strings.xml
@@ -119,8 +119,7 @@
"Дескриптор додатка""Значок додатка""На весь екран"
-
-
+ "Версія для ПК""Розділити екран""Більше""Плаваюче вікно"
@@ -133,8 +132,7 @@
"Змінити формат""Закрити""Закрити меню"
-
-
+ "%1$s (версія для ПК)""Розгорнути екран""Змінити розмір""Сюди не можна перемістити додаток"
@@ -147,10 +145,8 @@
"Змінити розмір вікна додатка ліворуч""Змінити розмір вікна додатка праворуч""Розгорнути вікно або відновити його розмір"
-
-
-
-
+ "Відкрити меню"
+ "Відкрити в режимі \"%1$s\"""Змінити розмір вікна ліворуч""Змінити розмір вікна праворуч""Розгорнути вікно або відновити його розмір"
diff --git a/libs/WindowManager/Shell/res/values-ur/strings.xml b/libs/WindowManager/Shell/res/values-ur/strings.xml
index a801b5eb47b0d486eb3da759d67fc55ad3d33eb7..4de0c47d27501034407d7224783953642628d3bf 100644
--- a/libs/WindowManager/Shell/res/values-ur/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ur/strings.xml
@@ -119,8 +119,7 @@
"ایپ ہینڈل""ایپ کا آئیکن""مکمل اسکرین"
-
-
+ "ڈیسک ٹاپ منظر""اسپلٹ اسکرین""مزید""فلوٹ"
@@ -129,12 +128,11 @@
"براؤزر میں کھولیں""ایپ میں کھولیں""نئی ونڈو"
- "Windows کا نظم کریں"
+ "ونڈوز کا نظم کریں""تناسبی شرح کو تبدیل کریں""بند کریں""مینیو بند کریں"
-
-
+ "%1$s (ڈیسک ٹاپ منظر)""اسکرین کو بڑا کریں""سائز تبدیل کریں""ایپ کو یہاں منتقل نہیں کیا جا سکتا"
@@ -147,10 +145,8 @@
"دائیں طرف ایپ ونڈو کا سائز تبدیل کریں""ایپ ونڈو کا سائز بائیں طرف تبدیل کریں""ونڈو کا سائز زیادہ سے زیادہ یا بحال کریں"
-
-
-
-
+ "مینیو کھولیں"
+ "%1$s درج کریں""دائیں طرف ونڈو کا سائز تبدیل کریں""ونڈو کا سائز بائیں طرف تبدیل کریں""ونڈو کا سائز زیادہ سے زیادہ یا بحال کریں"
diff --git a/libs/WindowManager/Shell/res/values-uz/strings.xml b/libs/WindowManager/Shell/res/values-uz/strings.xml
index 9fbbdc81fc8ed18d384691aaf4f8d0b139380282..8c0d9bb216d46849a2ccf4635af8d4507f24c66e 100644
--- a/libs/WindowManager/Shell/res/values-uz/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uz/strings.xml
@@ -119,8 +119,7 @@
"Ilova identifikatori""Ilova belgisi""Butun ekran"
-
-
+ "Desktop versiya""Ekranni ikkiga ajratish""Yana""Pufakli"
@@ -133,8 +132,7 @@
"Tomonlar nisbatini oʻzgartirish""Yopish""Menyuni yopish"
-
-
+ "%1$s (desktop versiya)""Ekranni yoyish""Oʻlchamini oʻzgartirish""Ilova bu yerga surilmaydi"
@@ -147,10 +145,8 @@
"Ilova chap oynasi oʻlchamini oʻzgartirish""Ilova oʻng oynasi oʻlchamini oʻzgartirish""Oyna oʻlchamini kengaytirish yoki asliga qaytarish"
-
-
-
-
+ "Menyuni ochish"
+ "%1$s rejimiga kirish""Oyna oʻlchamini chapga oʻzgartirish""Oyna oʻlchamini oʻngga oʻzgartirish""Oyna oʻlchamini kengaytirish yoki asliga qaytarish"
diff --git a/libs/WindowManager/Shell/res/values-vi/strings.xml b/libs/WindowManager/Shell/res/values-vi/strings.xml
index b40a4e63be2b0d998e31be8a22e94bde61655914..3455eedeca5fcbd02d14ee8ebfbd51c742904342 100644
--- a/libs/WindowManager/Shell/res/values-vi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-vi/strings.xml
@@ -119,8 +119,7 @@
"Ô điều khiển ứng dụng""Biểu tượng ứng dụng""Toàn màn hình"
-
-
+ "Chế độ xem trên máy tính để bàn""Chia đôi màn hình""Tuỳ chọn khác""Nổi"
@@ -133,8 +132,7 @@
"Thay đổi tỷ lệ khung hình""Đóng""Đóng trình đơn"
-
-
+ "%1$s (Chế độ xem trên máy tính để bàn)""Mở rộng màn hình""Đổi kích thước""Không di chuyển được ứng dụng đến đây"
@@ -147,10 +145,8 @@
"Đổi kích thước và chuyển cửa sổ ứng dụng sang trái""Đổi kích thước và chuyển cửa sổ ứng dụng sang phải""Phóng to hoặc khôi phục kích thước cửa sổ"
-
-
-
-
+ "Mở Trình đơn"
+ "Nhập %1$s""Đổi kích thước và chuyển cửa sổ sang trái""Đổi kích thước và chuyển cửa sổ sang phải""Phóng to hoặc khôi phục kích thước cửa sổ"
diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
index 45cd25bcc757b6aba797a96f64e020543c49bab2..369fa4ba6244c5d06607906a6a93b93babf334c7 100644
--- a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
@@ -119,8 +119,7 @@
"应用手柄""应用图标""全屏"
-
-
+ "桌面版视图""分屏""更多""悬浮"
@@ -133,8 +132,7 @@
"更改宽高比""关闭""关闭菜单"
-
-
+ "%1$s(桌面版视图)""最大化屏幕""调整大小""无法将应用移至此处"
@@ -147,10 +145,8 @@
"调整应用窗口大小并贴靠左侧""调整应用窗口大小并贴靠右侧""将窗口最大化或恢复大小"
-
-
-
-
+ "打开菜单"
+ "进入%1$s""调整窗口大小并贴靠左侧""调整窗口大小并贴靠右侧""将窗口最大化或恢复大小"
diff --git a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
index d2c22da78ac06de9d4f0530972618f366ac093be..8624f94d50b6ed723396ffe2967151578aeba7de 100644
--- a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
@@ -119,8 +119,7 @@
"應用程式控點""應用程式圖示""全螢幕"
-
-
+ "桌面電腦檢視模式""分割螢幕""更多""浮動"
@@ -133,8 +132,7 @@
"變更長寬比""關閉""關閉選單"
-
-
+ "%1$s (桌面電腦檢視模式)""畫面最大化""調整大小""應用程式無法移至這裡"
@@ -147,10 +145,8 @@
"調整左邊應用程式視窗大小""調整右邊應用程式視窗大小""將視窗放到最大或者還原視窗大小"
-
-
-
-
+ "打開選單"
+ "進入%1$s""將視窗移去左邊調整大小""將視窗移去右邊調整大小""將視窗放到最大或者還原視窗大小"
diff --git a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
index 0984fadc9b54a69e35aab6dbd8597847c3dc8284..199c10257d5be61858f517516b840577b9230a82 100644
--- a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
@@ -119,8 +119,7 @@
"應用程式控制代碼""應用程式圖示""全螢幕"
-
-
+ "電腦檢視畫面""分割畫面""更多""浮動"
@@ -133,8 +132,7 @@
"變更顯示比例""關閉""關閉選單"
-
-
+ "%1$s (電腦檢視畫面)""畫面最大化""調整大小""應用程式無法移至此處"
@@ -147,10 +145,8 @@
"調整應用程式視窗大小並向左貼齊""調整應用程式視窗大小並向右貼齊""將視窗最大化或還原大小"
-
-
-
-
+ "開啟選單"
+ "進入%1$s""調整應用程式視窗大小並向左貼齊""調整應用程式視窗大小並向右貼齊""將視窗最大化或還原大小"
diff --git a/libs/WindowManager/Shell/res/values-zu/strings.xml b/libs/WindowManager/Shell/res/values-zu/strings.xml
index 13f8ed16faaa684ed31e73e3fb842a1d73d70ce2..8f40142736bc9991a0f30542f5cac81304ab9862 100644
--- a/libs/WindowManager/Shell/res/values-zu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zu/strings.xml
@@ -119,8 +119,7 @@
"Inkomba ye-App""Isithonjana Se-app""Isikrini esigcwele"
-
-
+ "Ukubuka Kwedeskithophu""Hlukanisa isikrini""Okwengeziwe""Iflowuthi"
@@ -133,8 +132,7 @@
"Shintsha ukubukeka kwesilinganiselo""Vala""Vala Imenyu"
-
-
+ "%1$s (Ukubuka Kwedeskithophu)""Khulisa Isikrini Sifike Ekugcineni""Shintsha usayizi""I-app ayikwazi ukuhanjiswa lapha"
@@ -147,10 +145,8 @@
"Shintsha usayizi we-app yewindi ngakwesokunxele""Shintsha usayizi we-app yewindi ngakwesokudla""Khulisa noma buyisela usayizi wewindi"
-
-
-
-
+ "Vula Imenyu"
+ "Faka i-%1$s""Shintsha usayizi wewindi ngakwesokunxele""Shintsha usayizi wewindi ngakwesokudla""Khulisa noma buyisela usayizi wewindi"
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java
index 0a1e3b9495a05d55529d90e144691dd09cb3ef8a..25b9f8ccc6ae7fa568cd923ea747af86c80fe8c1 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java
@@ -47,20 +47,26 @@ public class GroupedTaskInfo implements Parcelable {
public static final int TYPE_FULLSCREEN = 1;
public static final int TYPE_SPLIT = 2;
- public static final int TYPE_FREEFORM = 3;
+ public static final int TYPE_DESK = 3;
public static final int TYPE_MIXED = 4;
@IntDef(prefix = {"TYPE_"}, value = {
TYPE_FULLSCREEN,
TYPE_SPLIT,
- TYPE_FREEFORM,
+ TYPE_DESK,
TYPE_MIXED
})
public @interface GroupType {}
+ /**
+ * The ID of the desk that this `GroupedTaskInfo` represents (when the type is `TYPE_DESK`). The
+ * value is -1 if this is not a desk.
+ */
+ private final int mDeskId;
+
/**
* The type of this particular task info, can be one of TYPE_FULLSCREEN, TYPE_SPLIT or
- * TYPE_FREEFORM.
+ * TYPE_DESK.
*/
@GroupType
protected final int mType;
@@ -69,7 +75,7 @@ public class GroupedTaskInfo implements Parcelable {
* The list of tasks associated with this single recent task info.
* TYPE_FULLSCREEN: Contains the stack of tasks associated with a single "task" in overview
* TYPE_SPLIT: Contains the two split roots of each side
- * TYPE_FREEFORM: Contains the set of tasks currently in freeform mode
+ * TYPE_DESK: Contains the set of tasks currently in freeform mode contained in desk.
*/
@Nullable
protected final List mTasks;
@@ -83,7 +89,7 @@ public class GroupedTaskInfo implements Parcelable {
protected final SplitBounds mSplitBounds;
/**
- * Only set for TYPE_FREEFORM.
+ * Only set for TYPE_DESK.
*
* TODO(b/348332802): move isMinimized inside each Task object instead once we have a
* replacement for RecentTaskInfo
@@ -103,8 +109,8 @@ public class GroupedTaskInfo implements Parcelable {
* Create new for a stack of fullscreen tasks
*/
public static GroupedTaskInfo forFullscreenTasks(@NonNull TaskInfo task) {
- return new GroupedTaskInfo(List.of(task), null, TYPE_FULLSCREEN,
- null /* minimizedFreeformTasks */);
+ return new GroupedTaskInfo(/* deskId = */ -1, List.of(task), null, TYPE_FULLSCREEN,
+ /* minimizedFreeformTaskIds = */ null);
}
/**
@@ -112,18 +118,19 @@ public class GroupedTaskInfo implements Parcelable {
*/
public static GroupedTaskInfo forSplitTasks(@NonNull TaskInfo task1,
@NonNull TaskInfo task2, @NonNull SplitBounds splitBounds) {
- return new GroupedTaskInfo(List.of(task1, task2), splitBounds, TYPE_SPLIT,
- null /* minimizedFreeformTasks */);
+ return new GroupedTaskInfo(/* deskId = */ -1, List.of(task1, task2), splitBounds,
+ TYPE_SPLIT, /* minimizedFreeformTaskIds = */ null);
}
/**
- * Create new for a group of freeform tasks
+ * Create new for a group of freeform tasks that belong to a single desk.
*/
- public static GroupedTaskInfo forFreeformTasks(
- @NonNull List tasks,
- @NonNull Set minimizedFreeformTasks) {
- return new GroupedTaskInfo(tasks, null /* splitBounds */, TYPE_FREEFORM,
- minimizedFreeformTasks.stream().mapToInt(i -> i).toArray());
+ public static GroupedTaskInfo forDeskTasks(
+ int deskId,
+ @NonNull List tasks,
+ @NonNull Set minimizedFreeformTaskIds) {
+ return new GroupedTaskInfo(deskId, tasks, /* splitBounds = */ null, TYPE_DESK,
+ minimizedFreeformTaskIds.stream().mapToInt(i -> i).toArray());
}
/**
@@ -141,10 +148,12 @@ public class GroupedTaskInfo implements Parcelable {
}
private GroupedTaskInfo(
+ int deskId,
@NonNull List tasks,
@Nullable SplitBounds splitBounds,
@GroupType int type,
@Nullable int[] minimizedFreeformTaskIds) {
+ mDeskId = deskId;
mTasks = tasks;
mGroupedTasks = null;
mSplitBounds = splitBounds;
@@ -154,6 +163,7 @@ public class GroupedTaskInfo implements Parcelable {
}
private GroupedTaskInfo(@NonNull List groupedTasks) {
+ mDeskId = -1;
mTasks = null;
mGroupedTasks = groupedTasks;
mSplitBounds = null;
@@ -174,6 +184,7 @@ public class GroupedTaskInfo implements Parcelable {
}
protected GroupedTaskInfo(@NonNull Parcel parcel) {
+ mDeskId = parcel.readInt();
mTasks = new ArrayList();
final int numTasks = parcel.readInt();
for (int i = 0; i < numTasks; i++) {
@@ -273,6 +284,16 @@ public class GroupedTaskInfo implements Parcelable {
return mSplitBounds;
}
+ /**
+ * Returns the ID of the desk represented by `this` if the type is `TYPE_DESK`, or -1 otherwise.
+ */
+ public int getDeskId() {
+ if (mType == TYPE_MIXED) {
+ throw new IllegalStateException("No desk ID for a mixed task");
+ }
+ return mDeskId;
+ }
+
/**
* Get type of this recents entry. One of {@link GroupType}.
* Note: This is deprecated, callers should use `isBaseType()` and not make assumptions about
@@ -285,7 +306,7 @@ public class GroupedTaskInfo implements Parcelable {
}
/**
- * Returns the set of minimized task ids, only valid for TYPE_FREEFORM.
+ * Returns the set of minimized task ids, only valid for TYPE_DESK.
*/
@Nullable
public int[] getMinimizedTaskIds() {
@@ -301,7 +322,8 @@ public class GroupedTaskInfo implements Parcelable {
return false;
}
GroupedTaskInfo other = (GroupedTaskInfo) obj;
- return mType == other.mType
+ return mDeskId == other.mDeskId
+ && mType == other.mType
&& Objects.equals(mTasks, other.mTasks)
&& Objects.equals(mGroupedTasks, other.mGroupedTasks)
&& Objects.equals(mSplitBounds, other.mSplitBounds)
@@ -310,7 +332,7 @@ public class GroupedTaskInfo implements Parcelable {
@Override
public int hashCode() {
- return Objects.hash(mType, mTasks, mGroupedTasks, mSplitBounds,
+ return Objects.hash(mDeskId, mType, mTasks, mGroupedTasks, mSplitBounds,
Arrays.hashCode(mMinimizedTaskIds));
}
@@ -322,6 +344,7 @@ public class GroupedTaskInfo implements Parcelable {
.map(GroupedTaskInfo::toString)
.collect(Collectors.joining(",\n\t", "[\n\t", "\n]")));
} else {
+ taskString.append("Desk ID= ").append(mDeskId).append(", ");
taskString.append("Tasks=" + mTasks.stream()
.map(taskInfo -> getTaskInfoDumpString(taskInfo))
.collect(Collectors.joining(", ", "[", "]")));
@@ -353,6 +376,7 @@ public class GroupedTaskInfo implements Parcelable {
@Override
public void writeToParcel(Parcel parcel, int flags) {
+ parcel.writeInt(mDeskId);
// We don't use the parcel list methods because we want to only write the TaskInfo state
// and not the subclasses (Recents/RunningTaskInfo) whose fields are all deprecated
final int tasksSize = mTasks != null ? mTasks.size() : 0;
@@ -375,7 +399,7 @@ public class GroupedTaskInfo implements Parcelable {
return switch (type) {
case TYPE_FULLSCREEN -> "FULLSCREEN";
case TYPE_SPLIT -> "SPLIT";
- case TYPE_FREEFORM -> "FREEFORM";
+ case TYPE_DESK -> "DESK";
case TYPE_MIXED -> "MIXED";
default -> "UNKNOWN";
};
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java
index e92c1eb81e89571e77b765cff0f9b11d36fb4055..43dd9b73b352daf08af86760fc36bc598fbeaa6d 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java
@@ -73,6 +73,12 @@ public class Interpolators {
public static final Interpolator EMPHASIZED_DECELERATE = new PathInterpolator(
0.05f, 0.7f, 0.1f, 1f);
+ /**
+ * The standard accelerating interpolator that should be used on every regular movement of
+ * content that is disappearing e.g. when moving off screen.
+ */
+ public static final Interpolator STANDARD_ACCELERATE = new PathInterpolator(0.3f, 0f, 1f, 1f);
+
/**
* The standard decelerating interpolator that should be used on every regular movement of
* content that is appearing e.g. when coming from off screen.
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt
index 0586e265ecedf2f459e21e0e95e873c2324f09eb..4ecace0292cfa50a35312d3fa0b400e5f63fd162 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt
@@ -19,52 +19,76 @@ package com.android.wm.shell.shared.animation
import android.animation.Animator
import android.animation.AnimatorSet
import android.animation.ValueAnimator
-import android.util.DisplayMetrics
+import android.content.Context
+import android.os.Handler
+import android.view.Choreographer
import android.view.SurfaceControl.Transaction
-import android.view.animation.LinearInterpolator
-import android.view.animation.PathInterpolator
import android.window.TransitionInfo.Change
+import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
+import com.android.internal.jank.InteractionJankMonitor
/** Creates minimization animation */
object MinimizeAnimator {
private const val MINIMIZE_ANIM_ALPHA_DURATION_MS = 100L
- private val STANDARD_ACCELERATE = PathInterpolator(0.3f, 0f, 1f, 1f)
-
private val minimizeBoundsAnimationDef =
WindowAnimator.BoundsAnimationParams(
durationMs = 200,
endOffsetYDp = 12f,
endScale = 0.97f,
- interpolator = STANDARD_ACCELERATE,
+ interpolator = Interpolators.STANDARD_ACCELERATE,
)
+ /**
+ * Creates a minimize animator for given task [Change].
+ *
+ * @param onAnimFinish finish-callback for the animation, note that this is called on the same
+ * thread as the animation itself.
+ * @param animationHandler the Handler that the animation is running on.
+ */
@JvmStatic
fun create(
- displayMetrics: DisplayMetrics,
+ context: Context,
change: Change,
transaction: Transaction,
onAnimFinish: (Animator) -> Unit,
+ interactionJankMonitor: InteractionJankMonitor,
+ animationHandler: Handler,
): Animator {
val boundsAnimator = WindowAnimator.createBoundsAnimator(
- displayMetrics,
+ context.resources.displayMetrics,
minimizeBoundsAnimationDef,
change,
transaction,
)
val alphaAnimator = ValueAnimator.ofFloat(1f, 0f).apply {
duration = MINIMIZE_ANIM_ALPHA_DURATION_MS
- interpolator = LinearInterpolator()
+ interpolator = Interpolators.LINEAR
addUpdateListener { animation ->
- transaction.setAlpha(change.leash, animation.animatedValue as Float).apply()
+ transaction
+ .setAlpha(change.leash, animation.animatedValue as Float)
+ .setFrameTimeline(Choreographer.getInstance().vsyncId)
+ .apply()
}
}
val listener = object : Animator.AnimatorListener {
- override fun onAnimationEnd(animator: Animator) = onAnimFinish(animator)
- override fun onAnimationCancel(animator: Animator) = Unit
+ override fun onAnimationStart(animator: Animator) {
+ interactionJankMonitor.begin(
+ change.leash,
+ context,
+ animationHandler,
+ CUJ_DESKTOP_MODE_MINIMIZE_WINDOW,
+ )
+ }
+ override fun onAnimationCancel(animator: Animator) {
+ interactionJankMonitor.cancel(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+ }
override fun onAnimationRepeat(animator: Animator) = Unit
- override fun onAnimationStart(animator: Animator) = Unit
+ override fun onAnimationEnd(animator: Animator) {
+ interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+ onAnimFinish(animator)
+ }
}
return AnimatorSet().apply {
playTogether(boundsAnimator, alphaAnimator)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
index f269b3831aab3b68cee46b77e1c35ab9a1bb46bb..78f5154c0ecb1de15f9d559fe710af9c6fb816c6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
@@ -364,7 +364,7 @@ class ActivityEmbeddingAnimationRunner {
@NonNull SurfaceControl.Transaction finishTransaction,
@NonNull List adapters) {
for (ActivityEmbeddingAnimationAdapter adapter : adapters) {
- final int backgroundColor = getTransitionBackgroundColorIfSet(info, adapter.mChange,
+ final int backgroundColor = getTransitionBackgroundColorIfSet(adapter.mChange,
adapter.mAnimation, 0 /* defaultColor */);
if (backgroundColor != 0) {
// We only need to show one color.
@@ -436,8 +436,8 @@ class ActivityEmbeddingAnimationRunner {
final TransitionInfo.AnimationOptions options = boundsAnimationChange
.getAnimationOptions();
if (options != null) {
- final Animation overrideAnimation = mAnimationSpec.loadCustomAnimationFromOptions(
- options, TRANSIT_CHANGE);
+ final Animation overrideAnimation =
+ mAnimationSpec.loadCustomAnimation(options, TRANSIT_CHANGE);
if (overrideAnimation != null) {
overrideShowBackdrop = overrideAnimation.getShowBackdrop();
}
@@ -447,7 +447,7 @@ class ActivityEmbeddingAnimationRunner {
// There are two animations in the array. The first one is for the start leash
// (snapshot), and the second one is for the end leash (TaskFragment).
final Animation[] animations =
- mAnimationSpec.createChangeBoundsChangeAnimations(info, change, parentBounds);
+ mAnimationSpec.createChangeBoundsChangeAnimations(change, parentBounds);
// Jump cut if either animation has zero for duration.
for (Animation animation : animations) {
if (shouldUseJumpCutForAnimation(animation)) {
@@ -500,12 +500,10 @@ class ActivityEmbeddingAnimationRunner {
// window without bounds change.
animation = ActivityEmbeddingAnimationSpec.createNoopAnimation(change);
} else if (TransitionUtil.isClosingType(change.getMode())) {
- animation =
- mAnimationSpec.createChangeBoundsCloseAnimation(info, change, parentBounds);
+ animation = mAnimationSpec.createChangeBoundsCloseAnimation(change, parentBounds);
shouldShowBackgroundColor = false;
} else {
- animation =
- mAnimationSpec.createChangeBoundsOpenAnimation(info, change, parentBounds);
+ animation = mAnimationSpec.createChangeBoundsOpenAnimation(change, parentBounds);
shouldShowBackgroundColor = false;
}
if (shouldUseJumpCutForAnimation(animation)) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java
index 77799e99607b9da2eefde8ab68bf6ca06870a247..2b9eda40cdbbcd24ae3f8db8041f09dc8bc5ec2b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java
@@ -42,7 +42,6 @@ import android.view.animation.TranslateAnimation;
import android.window.TransitionInfo;
import com.android.internal.policy.TransitionAnimation;
-import com.android.window.flags.Flags;
import com.android.wm.shell.shared.TransitionUtil;
/** Animation spec for ActivityEmbedding transition. */
@@ -94,9 +93,10 @@ class ActivityEmbeddingAnimationSpec {
/** Animation for window that is opening in a change transition. */
@NonNull
- Animation createChangeBoundsOpenAnimation(@NonNull TransitionInfo info,
- @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) {
- final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE);
+ Animation createChangeBoundsOpenAnimation(@NonNull TransitionInfo.Change change,
+ @NonNull Rect parentBounds) {
+ final Animation customAnimation =
+ loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE);
if (customAnimation != null) {
return customAnimation;
}
@@ -126,9 +126,10 @@ class ActivityEmbeddingAnimationSpec {
/** Animation for window that is closing in a change transition. */
@NonNull
- Animation createChangeBoundsCloseAnimation(@NonNull TransitionInfo info,
- @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) {
- final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE);
+ Animation createChangeBoundsCloseAnimation(@NonNull TransitionInfo.Change change,
+ @NonNull Rect parentBounds) {
+ final Animation customAnimation =
+ loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE);
if (customAnimation != null) {
return customAnimation;
}
@@ -162,12 +163,13 @@ class ActivityEmbeddingAnimationSpec {
* the second one is for the end leash.
*/
@NonNull
- Animation[] createChangeBoundsChangeAnimations(@NonNull TransitionInfo info,
- @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) {
+ Animation[] createChangeBoundsChangeAnimations(@NonNull TransitionInfo.Change change,
+ @NonNull Rect parentBounds) {
// TODO(b/293658614): Support more complicated animations that may need more than a noop
// animation as the start leash.
final Animation noopAnimation = createNoopAnimation(change);
- final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE);
+ final Animation customAnimation =
+ loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE);
if (customAnimation != null) {
return new Animation[]{noopAnimation, customAnimation};
}
@@ -221,7 +223,8 @@ class ActivityEmbeddingAnimationSpec {
Animation loadOpenAnimation(@NonNull TransitionInfo info,
@NonNull TransitionInfo.Change change, @NonNull Rect wholeAnimationBounds) {
final boolean isEnter = TransitionUtil.isOpeningType(change.getMode());
- final Animation customAnimation = loadCustomAnimation(info, change, change.getMode());
+ final Animation customAnimation =
+ loadCustomAnimation(change.getAnimationOptions(), change.getMode());
final Animation animation;
if (customAnimation != null) {
animation = customAnimation;
@@ -248,7 +251,8 @@ class ActivityEmbeddingAnimationSpec {
Animation loadCloseAnimation(@NonNull TransitionInfo info,
@NonNull TransitionInfo.Change change, @NonNull Rect wholeAnimationBounds) {
final boolean isEnter = TransitionUtil.isOpeningType(change.getMode());
- final Animation customAnimation = loadCustomAnimation(info, change, change.getMode());
+ final Animation customAnimation =
+ loadCustomAnimation(change.getAnimationOptions(), change.getMode());
final Animation animation;
if (customAnimation != null) {
animation = customAnimation;
@@ -280,20 +284,8 @@ class ActivityEmbeddingAnimationSpec {
}
@Nullable
- private Animation loadCustomAnimation(@NonNull TransitionInfo info,
- @NonNull TransitionInfo.Change change, @WindowManager.TransitionType int mode) {
- final TransitionInfo.AnimationOptions options;
- if (Flags.moveAnimationOptionsToChange()) {
- options = change.getAnimationOptions();
- } else {
- options = info.getAnimationOptions();
- }
- return loadCustomAnimationFromOptions(options, mode);
- }
-
- @Nullable
- Animation loadCustomAnimationFromOptions(@Nullable TransitionInfo.AnimationOptions options,
- @WindowManager.TransitionType int mode) {
+ Animation loadCustomAnimation(@Nullable TransitionInfo.AnimationOptions options,
+ @WindowManager.TransitionType int mode) {
if (options == null || options.getType() != ANIM_CUSTOM) {
return null;
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java
index 55ed5fa4b56f473f21f5c1c22ffac7451a1d8d32..3a95333309ac52014c8e533c011f613aac4019b5 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java
@@ -40,7 +40,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.window.flags.Flags;
import com.android.wm.shell.shared.TransitionUtil;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;
@@ -123,9 +122,6 @@ public class ActivityEmbeddingController implements Transitions.TransitionHandle
}
private boolean shouldAnimateAnimationOptions(@NonNull TransitionInfo info) {
- if (!Flags.moveAnimationOptionsToChange()) {
- return shouldAnimateAnimationOptions(info.getAnimationOptions());
- }
for (TransitionInfo.Change change : info.getChanges()) {
if (!shouldAnimateAnimationOptions(change.getAnimationOptions())) {
// If any of override animation is not supported, don't animate the transition.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
index d9489287ff42bd4e4ebc9e9f3c3402bcb0bebc6c..313d151aeab7c4e15c9dccfaec045d12bc6de7a4 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
@@ -364,7 +364,7 @@ public class Bubble implements BubbleViewProvider {
@ShellMainThread Executor mainExecutor, @ShellBackgroundThread Executor bgExecutor) {
return new Bubble(intent,
user,
- /* key= */ getAppBubbleKeyForApp(ComponentUtils.getPackageName(intent), user),
+ /* key= */ getAppBubbleKeyForApp(intent.getIntent().getPackage(), user),
mainExecutor, bgExecutor);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
index 3f607a9c52ef34dd2eea336b0c3929f785a5437d..2c2451cab999eb8c15c7fa7db7f8370d6c0ec083 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
@@ -197,6 +197,8 @@ public class BubbleExpandedView extends LinearLayout {
*/
private final FrameLayout mExpandedViewContainer = new FrameLayout(getContext());
+ private TaskView.Listener mCurrentTaskViewListener;
+
private final TaskView.Listener mTaskViewListener = new TaskView.Listener() {
private boolean mInitialized = false;
private boolean mDestroyed = false;
@@ -235,18 +237,24 @@ public class BubbleExpandedView extends LinearLayout {
Context context =
mContext.createContextAsUser(
mBubble.getUser(), Context.CONTEXT_RESTRICTED);
+ Intent fillInIntent = new Intent();
+ fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
PendingIntent pi = PendingIntent.getActivity(
context,
/* requestCode= */ 0,
- mBubble.getIntent().addFlags(FLAG_ACTIVITY_MULTIPLE_TASK),
- PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT,
+ mBubble.getIntent(),
+ // Needs to be mutable for the fillInIntent
+ PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT,
/* options= */ null);
- mTaskView.startActivity(pi, /* fillInIntent= */ null, options,
- launchBounds);
+ mTaskView.startActivity(pi, fillInIntent, options, launchBounds);
} else if (!mIsOverflow && isShortcutBubble) {
ProtoLog.v(WM_SHELL_BUBBLES, "startingShortcutBubble=%s", getBubbleKey());
- options.setLaunchedFromBubble(true);
- options.setApplyActivityFlagsForBubbles(true);
+ if (mBubble.isChat()) {
+ options.setLaunchedFromBubble(true);
+ options.setApplyActivityFlagsForBubbles(true);
+ } else {
+ options.setApplyMultipleTaskFlagForShortcut(true);
+ }
mTaskView.startShortcutActivity(mBubble.getShortcutInfo(),
options, launchBounds);
} else {
@@ -453,7 +461,34 @@ public class BubbleExpandedView extends LinearLayout {
mTaskView = bubbleTaskView.getTaskView();
// reset the insets that might left after TaskView is shown in BubbleBarExpandedView
mTaskView.setCaptionInsets(null);
- bubbleTaskView.setDelegateListener(mTaskViewListener);
+ if (Flags.enableBubbleTaskViewListener()) {
+ mCurrentTaskViewListener = new BubbleTaskViewListener(mContext, bubbleTaskView,
+ /* viewParent= */ this, expandedViewManager,
+ new BubbleTaskViewListener.Callback() {
+ @Override
+ public void onTaskCreated() {
+ setContentVisibility(true);
+ }
+
+ @Override
+ public void onContentVisibilityChanged(boolean visible) {
+ setContentVisibility(visible);
+ }
+
+ @Override
+ public void onBackPressed() {
+ mStackView.onBackPressed();
+ }
+
+ @Override
+ public void onTaskRemovalStarted() {
+ // nothing to do / handled in listener.
+ }
+ });
+ } else {
+ mCurrentTaskViewListener = mTaskViewListener;
+ bubbleTaskView.setDelegateListener(mCurrentTaskViewListener);
+ }
// set a fixed width so it is not recalculated as part of a rotation. the width will be
// updated manually after the rotation.
@@ -464,9 +499,12 @@ public class BubbleExpandedView extends LinearLayout {
}
mExpandedViewContainer.addView(mTaskView, lp);
bringChildToFront(mTaskView);
- if (bubbleTaskView.isCreated()) {
- mTaskViewListener.onTaskCreated(
- bubbleTaskView.getTaskId(), bubbleTaskView.getComponentName());
+
+ if (!Flags.enableBubbleTaskViewListener()) {
+ if (bubbleTaskView.isCreated()) {
+ mCurrentTaskViewListener.onTaskCreated(
+ bubbleTaskView.getTaskId(), bubbleTaskView.getComponentName());
+ }
}
}
}
@@ -897,7 +935,12 @@ public class BubbleExpandedView extends LinearLayout {
Log.w(TAG, "Stack is null for bubble: " + bubble);
return;
}
- boolean isNew = mBubble == null || didBackingContentChange(bubble);
+ boolean isNew;
+ if (mCurrentTaskViewListener instanceof BubbleTaskViewListener) {
+ isNew = ((BubbleTaskViewListener) mCurrentTaskViewListener).setBubble(bubble);
+ } else {
+ isNew = mBubble == null || didBackingContentChange(bubble);
+ }
boolean isUpdate = bubble != null && mBubble != null
&& bubble.getKey().equals(mBubble.getKey());
ProtoLog.d(WM_SHELL_BUBBLES, "BubbleExpandedView - update bubble=%s; isNew=%b; isUpdate=%b",
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java
index a38debb702dc933832ea917dba13707d0b610e59..63d71349517714d07137ccfd1dc42ecb435884a6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java
@@ -129,27 +129,28 @@ public class BubbleTaskViewListener implements TaskView.Listener {
Context context =
mContext.createContextAsUser(
mBubble.getUser(), Context.CONTEXT_RESTRICTED);
- Intent fillInIntent = null;
+ Intent fillInIntent = new Intent();
+ fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
// First try get pending intent from the bubble
PendingIntent pi = mBubble.getPendingIntent();
if (pi == null) {
- // If null - create new one
+ // If null - create new one based on the bubble intent
pi = PendingIntent.getActivity(
context,
/* requestCode= */ 0,
- mBubble.getIntent()
- .addFlags(FLAG_ACTIVITY_MULTIPLE_TASK),
- PendingIntent.FLAG_IMMUTABLE
- | PendingIntent.FLAG_UPDATE_CURRENT,
+ mBubble.getIntent(),
+ // Needs to be mutable for the fillInIntent
+ PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT,
/* options= */ null);
- } else {
- fillInIntent = new Intent(pi.getIntent());
- fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
}
mTaskView.startActivity(pi, fillInIntent, options, launchBounds);
} else if (isShortcutBubble) {
- options.setLaunchedFromBubble(true);
- options.setApplyActivityFlagsForBubbles(true);
+ if (mBubble.isChat()) {
+ options.setLaunchedFromBubble(true);
+ options.setApplyActivityFlagsForBubbles(true);
+ } else {
+ options.setApplyMultipleTaskFlagForShortcut(true);
+ }
mTaskView.startShortcutActivity(mBubble.getShortcutInfo(),
options, launchBounds);
} else {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
index 87a4115ccd3a1a2c52cfe79be388b8809c6e8d1d..df82091ef00249a655d947770b7ce03ec9d87f10 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
@@ -227,7 +227,13 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
/** Hides the IME for Bubbles when the device is locked. */
public void hideImeForBubblesWhenLocked(int displayId) {
PerDisplay pd = mImePerDisplay.get(displayId);
- pd.setImeInputTargetRequestedVisibility(false, pd.getImeSourceControl().getImeStatsToken());
+ InsetsSourceControl imeSourceControl = pd.getImeSourceControl();
+ if (imeSourceControl != null) {
+ ImeTracker.Token imeStatsToken = imeSourceControl.getImeStatsToken();
+ if (imeStatsToken != null) {
+ pd.setImeInputTargetRequestedVisibility(false, imeStatsToken);
+ }
+ }
}
/** An implementation of {@link IDisplayWindowInsetsController} for a given display id. */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java
index 8e026f04ac311b8e2caeb95f973a3ab2396e24ff..04e8d8dee520f8076e399dd70a6e4fec5a53d43b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java
@@ -24,6 +24,7 @@ import android.content.pm.ActivityInfo;
import android.content.res.Resources;
import android.graphics.Rect;
import android.util.DisplayMetrics;
+import android.util.Rational;
import android.util.Size;
import android.view.Gravity;
@@ -41,9 +42,6 @@ public class PipBoundsAlgorithm {
private static final String TAG = PipBoundsAlgorithm.class.getSimpleName();
private static final float INVALID_SNAP_FRACTION = -1f;
- // The same value (with the same name) is used in Launcher.
- private static final float PIP_ASPECT_RATIO_MISMATCH_THRESHOLD = 0.01f;
-
@NonNull private final PipBoundsState mPipBoundsState;
@NonNull protected final PipDisplayLayoutState mPipDisplayLayoutState;
@NonNull protected final SizeSpecSource mSizeSpecSource;
@@ -223,9 +221,8 @@ public class PipBoundsAlgorithm {
+ " than destination(%s)", sourceRectHint, destinationBounds);
return false;
}
- final float reportedRatio = destinationBounds.width() / (float) destinationBounds.height();
- final float inferredRatio = sourceRectHint.width() / (float) sourceRectHint.height();
- if (Math.abs(reportedRatio - inferredRatio) > PIP_ASPECT_RATIO_MISMATCH_THRESHOLD) {
+ if (!PictureInPictureParams.isSameAspectRatio(sourceRectHint,
+ new Rational(destinationBounds.width(), destinationBounds.height()))) {
ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
"isSourceRectHintValidForEnterPip=false, hint(%s) does not match"
+ " destination(%s) aspect ratio", sourceRectHint, destinationBounds);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java
index ee3e39e7155878588b2f6607aec14584e2295597..e9dc6132f5f41bd18953a3421ba7923502060567 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java
@@ -162,22 +162,31 @@ public abstract class WMShellConcurrencyModule {
}
}
- /**
- * Provide a Shell animation-thread Executor.
- */
+ /** Provide a Shell animation-thread Handler. */
@WMSingleton
@Provides
@ShellAnimationThread
- public static ShellExecutor provideShellAnimationExecutor() {
- HandlerThread shellAnimationThread = new HandlerThread("wmshell.anim",
- THREAD_PRIORITY_DISPLAY);
- shellAnimationThread.start();
+ public static Handler provideShellAnimationHandler() {
+ HandlerThread animThread = new HandlerThread("wmshell.anim", THREAD_PRIORITY_DISPLAY);
+ animThread.start();
if (Build.IS_DEBUGGABLE) {
- shellAnimationThread.getLooper().setTraceTag(Trace.TRACE_TAG_WINDOW_MANAGER);
- shellAnimationThread.getLooper().setSlowLogThresholdMs(MSGQ_SLOW_DISPATCH_THRESHOLD_MS,
+ animThread.getLooper().setTraceTag(Trace.TRACE_TAG_WINDOW_MANAGER);
+ animThread.getLooper().setSlowLogThresholdMs(MSGQ_SLOW_DISPATCH_THRESHOLD_MS,
MSGQ_SLOW_DELIVERY_THRESHOLD_MS);
}
- return new HandlerExecutor(Handler.createAsync(shellAnimationThread.getLooper()));
+ return Handler.createAsync(animThread.getLooper());
+ }
+
+ /**
+ * Provide a Shell animation-thread Executor.
+ */
+ @WMSingleton
+ @Provides
+ @ShellAnimationThread
+ public static ShellExecutor provideShellAnimationExecutor(
+ @ShellAnimationThread Handler animHandler
+ ) {
+ return new HandlerExecutor(animHandler);
}
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
index 5a246e7c99b98d886736144ee8740cf2476c8b54..5d5e4d3ec758babff6abb2f607614fab3146a82a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
@@ -431,9 +431,10 @@ public abstract class WMShellModule {
Transitions transitions,
DisplayController displayController,
@ShellMainThread ShellExecutor mainExecutor,
- @ShellAnimationThread ShellExecutor animExecutor) {
+ @ShellAnimationThread ShellExecutor animExecutor,
+ @ShellAnimationThread Handler animHandler) {
return new FreeformTaskTransitionHandler(
- transitions, displayController, mainExecutor, animExecutor);
+ transitions, displayController, mainExecutor, animExecutor, animHandler);
}
@WMSingleton
@@ -1101,8 +1102,9 @@ public abstract class WMShellModule {
Context context,
@ShellMainThread ShellExecutor mainExecutor,
@ShellAnimationThread ShellExecutor animExecutor,
- @ShellMainThread Handler handler) {
- return new CloseDesktopTaskTransitionHandler(context, mainExecutor, animExecutor, handler);
+ @ShellAnimationThread Handler animHandler) {
+ return new CloseDesktopTaskTransitionHandler(context, mainExecutor, animExecutor,
+ animHandler);
}
@WMSingleton
@@ -1110,9 +1112,10 @@ public abstract class WMShellModule {
static DesktopMinimizationTransitionHandler provideDesktopMinimizationTransitionHandler(
@ShellMainThread ShellExecutor mainExecutor,
@ShellAnimationThread ShellExecutor animExecutor,
- DisplayController displayController) {
+ DisplayController displayController,
+ @ShellAnimationThread Handler mainHandler) {
return new DesktopMinimizationTransitionHandler(mainExecutor, animExecutor,
- displayController);
+ displayController, mainHandler);
}
@WMSingleton
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
index 1ce093e02a4ababb055f11fcdee1a5d00c7f0dd1..b22a46edbf3ac314381cd31012fced4011ae3044 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
@@ -37,7 +37,6 @@ import com.android.app.animation.Interpolators
import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_CLOSE_TASK
import com.android.internal.jank.InteractionJankMonitor
import com.android.wm.shell.common.ShellExecutor
-import com.android.wm.shell.shared.annotations.ShellMainThread
import com.android.wm.shell.transition.Transitions
import java.util.function.Supplier
@@ -49,7 +48,7 @@ constructor(
private val mainExecutor: ShellExecutor,
private val animExecutor: ShellExecutor,
private val transactionSupplier: Supplier = Supplier { Transaction() },
- @ShellMainThread private val handler: Handler,
+ private val animHandler: Handler,
) : Transitions.TransitionHandler {
private val runningAnimations = mutableMapOf>()
@@ -95,7 +94,7 @@ constructor(
interactionJankMonitor.begin(
lastChangeLeash,
context,
- handler,
+ animHandler,
CUJ_DESKTOP_MODE_CLOSE_TASK,
)
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt
index 728638d9bbd3069b355beef2d2309541698c4a58..7074e8bc9cce123addb4451e04552df57034e068 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt
@@ -18,14 +18,17 @@ package com.android.wm.shell.desktopmode
import android.animation.Animator
import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.os.Handler
import android.os.IBinder
-import android.util.DisplayMetrics
import android.view.SurfaceControl.Transaction
import android.window.TransitionInfo
import android.window.TransitionRequestInfo
import android.window.WindowContainerTransaction
+import com.android.internal.jank.InteractionJankMonitor
+import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.common.DisplayController
import com.android.wm.shell.common.ShellExecutor
+import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
import com.android.wm.shell.shared.TransitionUtil
import com.android.wm.shell.shared.animation.MinimizeAnimator.create
import com.android.wm.shell.transition.Transitions
@@ -41,6 +44,7 @@ class DesktopMinimizationTransitionHandler(
private val mainExecutor: ShellExecutor,
private val animExecutor: ShellExecutor,
private val displayController: DisplayController,
+ private val animHandler: Handler,
) : Transitions.TransitionHandler {
/** Shouldn't handle anything */
@@ -90,10 +94,30 @@ class DesktopMinimizationTransitionHandler(
val t = Transaction()
val sc = change.leash
finishTransaction.hide(sc)
- val displayMetrics: DisplayMetrics? =
- change.taskInfo?.let {
- displayController.getDisplayContext(it.displayId)?.getResources()?.displayMetrics
- }
- return displayMetrics?.let { create(it, change, t, onAnimFinish) }
+ val displayContext =
+ change.taskInfo?.let { displayController.getDisplayContext(it.displayId) }
+ if (displayContext == null) {
+ logW(
+ "displayContext is null for taskId=${change.taskInfo?.taskId}, " +
+ "displayId=${change.taskInfo?.displayId}"
+ )
+ return null
+ }
+ return create(
+ displayContext,
+ change,
+ t,
+ onAnimFinish,
+ InteractionJankMonitor.getInstance(),
+ animHandler,
+ )
+ }
+
+ private companion object {
+ private fun logW(msg: String, vararg arguments: Any?) {
+ ProtoLog.w(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+ }
+
+ const val TAG = "DesktopMinimizationTransitionHandler"
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt
index 7c6cf4a8b37f444de497a511506baf43c24a6e31..926e0f2878699e38ab5eb5acb222697d6bb0712d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt
@@ -217,6 +217,9 @@ class DesktopRepository(
fun getDeskIds(displayId: Int): Set =
desktopData.desksSequence(displayId).map { desk -> desk.deskId }.toSet()
+ /** Returns all the ids of all desks in all displays. */
+ fun getAllDeskIds(): Set = desktopData.desksSequence().map { desk -> desk.deskId }.toSet()
+
/** Returns the id of the default desk in the given display. */
fun getDefaultDeskId(displayId: Int): Int? = getDefaultDesk(displayId)?.deskId
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
index 45adfe4112a6bb92126de3b2fbcb54501be285b5..87d967427d885c0b9ce7f3293b381b9afdad3397 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
@@ -1079,7 +1079,8 @@ class DesktopTasksController(
)
}
- private fun startLaunchTransition(
+ @VisibleForTesting
+ fun startLaunchTransition(
transitionType: Int,
wct: WindowContainerTransaction,
launchingTaskId: Int?,
@@ -1087,34 +1088,52 @@ class DesktopTasksController(
displayId: Int = DEFAULT_DISPLAY,
unminimizeReason: UnminimizeReason = UnminimizeReason.UNKNOWN,
): IBinder {
+ // TODO: b/397619806 - Consolidate sharable logic with [handleFreeformTaskLaunch].
+ var launchTransaction = wct
val taskIdToMinimize =
addAndGetMinimizeChanges(
displayId,
- wct,
+ launchTransaction,
newTaskId = launchingTaskId,
launchingNewIntent = launchingTaskId == null,
)
val exitImmersiveResult =
desktopImmersiveController.exitImmersiveIfApplicable(
- wct = wct,
+ wct = launchTransaction,
displayId = displayId,
excludeTaskId = launchingTaskId,
reason = DesktopImmersiveController.ExitReason.TASK_LAUNCH,
)
+ var deskIdToActivate: Int? = null
+ if (
+ DesktopExperienceFlags.ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING.isTrue &&
+ !isDesktopModeShowing(displayId)
+ ) {
+ deskIdToActivate =
+ checkNotNull(
+ launchingTaskId?.let { taskRepository.getDeskIdForTask(it) }
+ ?: getDefaultDeskId(displayId)
+ )
+ val activateDeskWct = WindowContainerTransaction()
+ addDeskActivationChanges(deskIdToActivate, activateDeskWct)
+ // Desk activation must be handled before app launch-related transactions.
+ activateDeskWct.merge(launchTransaction, /* transfer= */ true)
+ launchTransaction = activateDeskWct
+ }
val t =
if (remoteTransition == null) {
desktopMixedTransitionHandler.startLaunchTransition(
transitionType = transitionType,
- wct = wct,
+ wct = launchTransaction,
taskId = launchingTaskId,
minimizingTaskId = taskIdToMinimize,
exitingImmersiveTask = exitImmersiveResult.asExit()?.exitingTask,
)
} else if (taskIdToMinimize == null) {
val remoteTransitionHandler = OneShotRemoteHandler(mainExecutor, remoteTransition)
- transitions.startTransition(transitionType, wct, remoteTransitionHandler).also {
- remoteTransitionHandler.setTransition(it)
- }
+ transitions
+ .startTransition(transitionType, launchTransaction, remoteTransitionHandler)
+ .also { remoteTransitionHandler.setTransition(it) }
} else {
val remoteTransitionHandler =
DesktopWindowLimitRemoteHandler(
@@ -1123,9 +1142,9 @@ class DesktopTasksController(
remoteTransition,
taskIdToMinimize,
)
- transitions.startTransition(transitionType, wct, remoteTransitionHandler).also {
- remoteTransitionHandler.setTransition(it)
- }
+ transitions
+ .startTransition(transitionType, launchTransaction, remoteTransitionHandler)
+ .also { remoteTransitionHandler.setTransition(it) }
}
if (taskIdToMinimize != null) {
addPendingMinimizeTransition(t, taskIdToMinimize, MinimizeReason.TASK_LIMIT)
@@ -1133,6 +1152,24 @@ class DesktopTasksController(
if (launchingTaskId != null && taskRepository.isMinimizedTask(launchingTaskId)) {
addPendingUnminimizeTransition(t, displayId, launchingTaskId, unminimizeReason)
}
+ if (
+ DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue &&
+ deskIdToActivate != null
+ ) {
+ if (DesktopExperienceFlags.ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING.isTrue) {
+ desksTransitionObserver.addPendingTransition(
+ DeskTransition.ActivateDesk(
+ token = t,
+ displayId = displayId,
+ deskId = deskIdToActivate,
+ )
+ )
+ }
+
+ desktopModeEnterExitTransitionListener?.onEnterDesktopModeTransitionStarted(
+ FREEFORM_ANIMATION_DURATION
+ )
+ }
exitImmersiveResult.asExit()?.runOnTransitionStart?.invoke(t)
return t
}
@@ -1708,6 +1745,9 @@ class DesktopTasksController(
launchWindowingMode = WINDOWING_MODE_FULLSCREEN
pendingIntentBackgroundActivityStartMode =
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS
+ if (Flags.enablePerDisplayDesktopWallpaperActivity()) {
+ launchDisplayId = displayId
+ }
}
val pendingIntent =
PendingIntent.getActivityAsUser(
@@ -2704,10 +2744,9 @@ class DesktopTasksController(
activateDesk(deskId, remoteTransition)
}
- /** Activates the given desk. */
- fun activateDesk(deskId: Int, remoteTransition: RemoteTransition? = null) {
+ /** Activates the given desk but without starting a transition. */
+ fun addDeskActivationChanges(deskId: Int, wct: WindowContainerTransaction) {
val displayId = taskRepository.getDisplayForDesk(deskId)
- val wct = WindowContainerTransaction()
if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
prepareForDeskActivation(displayId, wct)
desksOrganizer.activateDesk(wct, deskId)
@@ -2720,6 +2759,13 @@ class DesktopTasksController(
} else {
bringDesktopAppsToFront(displayId, wct)
}
+ }
+
+ /** Activates the given desk. */
+ fun activateDesk(deskId: Int, remoteTransition: RemoteTransition? = null) {
+ val displayId = taskRepository.getDisplayForDesk(deskId)
+ val wct = WindowContainerTransaction()
+ addDeskActivationChanges(deskId, wct)
val transitionType = transitionType(remoteTransition)
val handler =
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
index 81b136dd1569c947f541a0e12295d4b41cfb5bdd..f9ab359e952d079d0819da5837ceb08e4b908280 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
@@ -26,7 +26,6 @@ import android.window.DesktopModeFlags
import android.window.TransitionInfo
import android.window.WindowContainerTransaction
import androidx.annotation.VisibleForTesting
-import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
import com.android.internal.jank.InteractionJankMonitor
import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.ShellTaskOrganizer
@@ -176,28 +175,13 @@ class DesktopTasksLimiter(
return taskChange.mode == TRANSIT_TO_BACK
}
- override fun onTransitionStarting(transition: IBinder) {
- val mActiveTaskDetails = activeTransitionTokensAndTasks[transition]
- val info = mActiveTaskDetails?.transitionInfo ?: return
- val minimizeChange = getMinimizeChange(info, mActiveTaskDetails.taskId) ?: return
- // Begin minimize window CUJ instrumentation.
- interactionJankMonitor.begin(
- minimizeChange.leash,
- context,
- handler,
- CUJ_DESKTOP_MODE_MINIMIZE_WINDOW,
- )
- }
-
private fun getMinimizeChange(info: TransitionInfo, taskId: Int): TransitionInfo.Change? =
info.changes.find { change ->
change.taskInfo?.taskId == taskId && change.mode == TRANSIT_TO_BACK
}
override fun onTransitionMerged(merged: IBinder, playing: IBinder) {
- if (activeTransitionTokensAndTasks.remove(merged) != null) {
- interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
- }
+ activeTransitionTokensAndTasks.remove(merged)
pendingTransitionTokensAndTasks.remove(merged)?.let { taskToTransfer ->
pendingTransitionTokensAndTasks[playing] = taskToTransfer
}
@@ -209,13 +193,6 @@ class DesktopTasksLimiter(
}
override fun onTransitionFinished(transition: IBinder, aborted: Boolean) {
- if (activeTransitionTokensAndTasks.remove(transition) != null) {
- if (aborted) {
- interactionJankMonitor.cancel(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
- } else {
- interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
- }
- }
pendingTransitionTokensAndTasks.remove(transition)
activeUnminimizeTransitionTokensAndTasks.remove(transition)
pendingUnminimizeTransitionTokensAndTasks.remove(transition)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
index b60fb5e7bfdd34377d8dd263d8bd59a0a9ba0bca..16e411e1fc0742159dd87c125d9486af9fd55874 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
@@ -25,10 +25,12 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.app.ActivityManager;
import android.app.WindowConfiguration;
+import android.content.Context;
import android.graphics.Rect;
+import android.os.Handler;
import android.os.IBinder;
import android.util.ArrayMap;
-import android.util.DisplayMetrics;
+import android.util.Log;
import android.view.SurfaceControl;
import android.view.WindowManager;
import android.window.TransitionInfo;
@@ -38,6 +40,7 @@ import android.window.WindowContainerTransaction;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import com.android.internal.jank.InteractionJankMonitor;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.shared.animation.MinimizeAnimator;
@@ -52,11 +55,13 @@ import java.util.List;
*/
public class FreeformTaskTransitionHandler
implements Transitions.TransitionHandler, FreeformTaskTransitionStarter {
+ private static final String TAG = "FreeformTaskTransitionHandler";
private static final int CLOSE_ANIM_DURATION = 400;
private final Transitions mTransitions;
private final DisplayController mDisplayController;
private final ShellExecutor mMainExecutor;
private final ShellExecutor mAnimExecutor;
+ private final Handler mAnimHandler;
private final List mPendingTransitionTokens = new ArrayList<>();
@@ -66,11 +71,13 @@ public class FreeformTaskTransitionHandler
Transitions transitions,
DisplayController displayController,
ShellExecutor mainExecutor,
- ShellExecutor animExecutor) {
+ ShellExecutor animExecutor,
+ Handler animHandler) {
mTransitions = transitions;
mDisplayController = displayController;
mMainExecutor = mainExecutor;
mAnimExecutor = animExecutor;
+ mAnimHandler = animHandler;
}
@Override
@@ -123,13 +130,11 @@ public class FreeformTaskTransitionHandler
@NonNull Transitions.TransitionFinishCallback finishCallback) {
boolean transitionHandled = false;
final ArrayList animations = new ArrayList<>();
- final Runnable onAnimFinish = () -> {
+ final Runnable onAnimFinish = () -> mMainExecutor.execute(() -> {
if (!animations.isEmpty()) return;
- mMainExecutor.execute(() -> {
- mAnimations.remove(transition);
- finishCallback.onTransitionFinished(null /* wct */);
- });
- };
+ mAnimations.remove(transition);
+ finishCallback.onTransitionFinished(null /* wct */);
+ });
for (TransitionInfo.Change change : info.getChanges()) {
if ((change.getFlags() & TransitionInfo.FLAG_IS_WALLPAPER) != 0) {
continue;
@@ -234,18 +239,25 @@ public class FreeformTaskTransitionHandler
SurfaceControl.Transaction t = new SurfaceControl.Transaction();
SurfaceControl sc = change.getLeash();
finishT.hide(sc);
- final DisplayMetrics displayMetrics =
- mDisplayController
- .getDisplayContext(taskInfo.displayId).getResources().getDisplayMetrics();
+ final Context displayContext =
+ mDisplayController.getDisplayContext(taskInfo.displayId);
+ if (displayContext == null) {
+ Log.w(TAG, "No displayContext for displayId=" + taskInfo.displayId);
+ return false;
+ }
final Animator animator = MinimizeAnimator.create(
- displayMetrics,
+ displayContext,
change,
t,
(anim) -> {
- animations.remove(anim);
- onAnimFinish.run();
+ mMainExecutor.execute(() -> {
+ animations.remove(anim);
+ onAnimFinish.run();
+ });
return null;
- });
+ },
+ InteractionJankMonitor.getInstance(),
+ mAnimHandler);
animations.add(animator);
return true;
}
@@ -277,8 +289,10 @@ public class FreeformTaskTransitionHandler
new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
- animations.remove(animator);
- onAnimFinish.run();
+ mMainExecutor.execute(() -> {
+ animations.remove(animator);
+ onAnimFinish.run();
+ });
}
});
animations.add(animator);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
index c4d065f158a4309a423d56f8afd43ef544139715..e0cae81920adb213fb3be18ec7c84e204721c1e3 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
@@ -133,6 +133,18 @@ public class PipSurfaceTransactionHelper {
return this;
}
+ /**
+ * Operates the round corner radius on a given transaction and leash, scaled by bounds
+ * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
+ */
+ public PipSurfaceTransactionHelper round(SurfaceControl.Transaction tx, SurfaceControl leash,
+ Rect fromBounds, Rect toBounds) {
+ final float scale = (float) (Math.hypot(fromBounds.width(), fromBounds.height())
+ / Math.hypot(toBounds.width(), toBounds.height()));
+ tx.setCornerRadius(leash, mCornerRadius * scale);
+ return this;
+ }
+
/**
* Operates the shadow radius on a given transaction and leash
* @return same {@link PipSurfaceTransactionHelper} instance for method chaining
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java
index 06e8349259b47d2882af457e81b5613c59183a2e..eb5fe88648b3674acb740c63318d591f1c443fcc 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java
@@ -173,7 +173,7 @@ public class PipResizeAnimator extends ValueAnimator {
transformTensor.postRotate(degrees, targetBounds.centerX(), targetBounds.centerY());
tx.setMatrix(leash, transformTensor, mMatrixTmp)
- .setCornerRadius(leash, cornerRadius)
+ .setCornerRadius(leash, cornerRadius / scaleX)
.setShadowRadius(leash, shadowRadius);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java
index df7a25af837684e6b2793325cbc29555e5aa5b25..7805ec34e1050bff389aba942d03cc752f307997 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java
@@ -55,6 +55,7 @@ public class PipScheduler {
private PipTransitionController mPipTransitionController;
private PipSurfaceTransactionHelper.SurfaceControlTransactionFactory
mSurfaceControlTransactionFactory;
+ private final PipSurfaceTransactionHelper mPipSurfaceTransactionHelper;
@Nullable private Runnable mUpdateMovementBoundsRunnable;
@@ -75,6 +76,7 @@ public class PipScheduler {
mSurfaceControlTransactionFactory =
new PipSurfaceTransactionHelper.VsyncSurfaceControlTransactionFactory();
+ mPipSurfaceTransactionHelper = new PipSurfaceTransactionHelper(mContext);
mPipAlphaAnimatorSupplier = PipAlphaAnimator::new;
}
@@ -214,6 +216,8 @@ public class PipScheduler {
transformTensor.postTranslate(toBounds.left, toBounds.top);
transformTensor.postRotate(degrees, toBounds.centerX(), toBounds.centerY());
+ mPipSurfaceTransactionHelper.round(tx, leash, mPipBoundsState.getBounds(), toBounds);
+
tx.setMatrix(leash, transformTensor, mMatrixTmp);
tx.apply();
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
index 97b3e5a2da87ebaca4200a68b7b66cda3d58201d..0cfab11dbc6466603bb8b120f1ae662bd6bf6430 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
@@ -50,6 +50,7 @@ import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.IBinder;
+import android.os.SystemProperties;
import android.view.SurfaceControl;
import android.view.WindowManager;
import android.window.TransitionInfo;
@@ -105,7 +106,10 @@ public class PipTransition extends PipTransitionController implements
* The fixed start delay in ms when fading out the content overlay from bounds animation.
* The fadeout animation is guaranteed to start after the client has drawn under the new config.
*/
- private static final int CONTENT_OVERLAY_FADE_OUT_DELAY_MS = 500;
+ private static final int EXTRA_CONTENT_OVERLAY_FADE_OUT_DELAY_MS =
+ SystemProperties.getInt(
+ "persist.wm.debug.extra_content_overlay_fade_out_delay_ms", 400);
+ private static final int CONTENT_OVERLAY_FADE_OUT_DURATION_MS = 500;
//
// Dependencies
@@ -551,7 +555,8 @@ public class PipTransition extends PipTransitionController implements
@NonNull Runnable onAnimationEnd) {
PipAlphaAnimator animator = new PipAlphaAnimator(mContext, overlayLeash,
null /* startTx */, null /* finishTx */, PipAlphaAnimator.FADE_OUT);
- animator.setDuration(CONTENT_OVERLAY_FADE_OUT_DELAY_MS);
+ animator.setDuration(CONTENT_OVERLAY_FADE_OUT_DURATION_MS);
+ animator.setStartDelay(EXTRA_CONTENT_OVERLAY_FADE_OUT_DELAY_MS);
animator.setAnimationEndCallback(onAnimationEnd);
animator.start();
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
index 2fa09664b73f2f1d7bdb81f008b51f94a3db0e6e..bb5b5cec1b4a1aaa9cdf85bf9079a716d20e47d6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
@@ -44,6 +44,7 @@ import android.os.Bundle;
import android.os.RemoteException;
import android.util.Slog;
import android.util.SparseIntArray;
+import android.window.DesktopExperienceFlags;
import android.window.DesktopModeFlags;
import android.window.WindowContainerToken;
@@ -92,6 +93,11 @@ public class RecentTasksController implements TaskStackListenerCallback,
TaskStackTransitionObserver.TaskStackTransitionObserverListener, UserChangeListener {
private static final String TAG = RecentTasksController.class.getSimpleName();
+ // When the multiple desktops feature is disabled, all freeform tasks are lumped together into
+ // a single `GroupedTaskInfo` whose type is `TYPE_DESK`, and its `mDeskId` doesn't matter, so
+ // we pick the below arbitrary value.
+ private static final int INVALID_DESK_ID = -1;
+
private final Context mContext;
private final ShellController mShellController;
private final ShellCommandHandler mShellCommandHandler;
@@ -128,6 +134,7 @@ public class RecentTasksController implements TaskStackListenerCallback,
// Temporary vars used in `generateList()`
private final Map mTmpRemaining = new HashMap<>();
+ private final Map mTmpDesks = new HashMap<>();
/**
* Creates {@link RecentTasksController}, returns {@code null} if the feature is not
@@ -528,6 +535,78 @@ public class RecentTasksController implements TaskStackListenerCallback,
return false;
}
+ /**
+ * Represents a desk whose ID is `mDeskId` and contains the tasks in `mDeskTasks`. Some of these
+ * tasks are minimized and their IDs are contained in the `mMinimizedDeskTasks` set.
+ */
+ private static class Desk {
+ final int mDeskId;
+ boolean mHasVisibleTasks = false;
+ final ArrayList mDeskTasks = new ArrayList<>();
+ final Set mMinimizedDeskTasks = new HashSet<>();
+
+ Desk(int deskId) {
+ mDeskId = deskId;
+ }
+
+ void addTask(TaskInfo taskInfo, boolean isMinimized, boolean isVisible) {
+ mDeskTasks.add(taskInfo);
+ if (isMinimized) {
+ mMinimizedDeskTasks.add(taskInfo.taskId);
+ }
+ mHasVisibleTasks |= isVisible;
+ }
+
+ boolean hasTasks() {
+ return !mDeskTasks.isEmpty();
+ }
+
+ GroupedTaskInfo createDeskTaskInfo() {
+ return GroupedTaskInfo.forDeskTasks(mDeskId, mDeskTasks, mMinimizedDeskTasks);
+ }
+ }
+
+ /**
+ * Clears the `mTmpDesks` map, and re-initializes it with the current state of desks from all
+ * displays, without adding any desk tasks. This is a preparation step so that tasks can be
+ * added to these desks in `generateList()`.
+ *
+ * This is needed since with the `ENABLE_MULTIPLE_DESKTOPS_BACKEND` flag, we want to include
+ * desk even if they're empty (i.e. have no tasks).
+ *
+ * @param multipleDesktopsEnabled whether the multiple desktops backend feature is enabled.
+ */
+ private void initializeDesksMap(boolean multipleDesktopsEnabled) {
+ mTmpDesks.clear();
+
+ if (DesktopModeStatus.canEnterDesktopMode(mContext)
+ && mDesktopUserRepositories.isPresent()) {
+ if (multipleDesktopsEnabled) {
+ for (var deskId : mDesktopUserRepositories.get().getCurrent().getAllDeskIds()) {
+ getOrCreateDesk(deskId);
+ }
+ } else {
+ // When the multiple desks feature is disabled, we lump all freeform windows in a
+ // single `GroupedTaskInfo` regardless of their display. The `deskId` in this case
+ // doesn't matter and can be any arbitrary value.
+ getOrCreateDesk(/* deskId = */ INVALID_DESK_ID);
+ }
+ }
+ }
+
+ /**
+ * Returns the `Desk` whose ID is `deskId` from the `mTmpDesks` map if it exists, or it creates
+ * one and adds it to the map and then returns it.
+ */
+ private Desk getOrCreateDesk(int deskId) {
+ var desk = mTmpDesks.get(deskId);
+ if (desk == null) {
+ desk = new Desk(deskId);
+ mTmpDesks.put(deskId, desk);
+ }
+ return desk;
+ }
+
/**
* Generates a list of GroupedTaskInfos for the given raw list of tasks (either recents or
* running tasks).
@@ -555,6 +634,14 @@ public class RecentTasksController implements TaskStackListenerCallback,
ProtoLog.v(WM_SHELL_TASK_OBSERVER, "RecentTasksController.generateList(%s)", reason);
}
+ final boolean multipleDesktopsEnabled =
+ DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue();
+ initializeDesksMap(multipleDesktopsEnabled);
+
+ // When the multiple desktops feature is enabled, we include all desks even if they're
+ // empty.
+ final boolean shouldIncludeEmptyDesktops = multipleDesktopsEnabled;
+
// Make a mapping of task id -> task info for the remaining tasks to be processed, this
// mapping is used to keep track of split tasks that may exist later in the task list that
// should be ignored because they've already been grouped
@@ -566,11 +653,7 @@ public class RecentTasksController implements TaskStackListenerCallback,
ArrayList groupedTasks = new ArrayList<>(tasks.size());
ArrayList visibleGroupedTasks = new ArrayList<>();
- // Phase 1: Extract the desktop and visible fullscreen/split tasks. We make new collections
- // here as the GroupedTaskInfo can store them without copying
- ArrayList desktopTasks = new ArrayList<>();
- Set minimizedDesktopTasks = new HashSet<>();
- boolean desktopTasksVisible = false;
+ // Phase 1: Extract the desktops and visible fullscreen/split tasks.
for (int i = 0; i < tasks.size(); i++) {
final TaskInfo taskInfo = tasks.get(i);
final int taskId = taskInfo.taskId;
@@ -600,11 +683,15 @@ public class RecentTasksController implements TaskStackListenerCallback,
taskInfo.positionInParent = new Point(taskInfo.lastNonFullscreenBounds.left,
taskInfo.lastNonFullscreenBounds.top);
}
- desktopTasks.add(taskInfo);
- if (mDesktopUserRepositories.get().getCurrent().isMinimizedTask(taskId)) {
- minimizedDesktopTasks.add(taskId);
- }
- desktopTasksVisible |= mVisibleTasksMap.containsKey(taskId);
+ // Lump all freeform tasks together as if they were all in a single desk whose ID is
+ // `INVALID_DESK_ID` when the multiple desktops feature is disabled.
+ final int deskId = multipleDesktopsEnabled
+ ? mDesktopUserRepositories.get().getCurrent().getDeskIdForTask(taskId)
+ : INVALID_DESK_ID;
+ final Desk desk = getOrCreateDesk(deskId);
+ desk.addTask(taskInfo,
+ mDesktopUserRepositories.get().getCurrent().isMinimizedTask(taskId),
+ mVisibleTasksMap.containsKey(taskId));
mTmpRemaining.remove(taskId);
continue;
}
@@ -636,9 +723,10 @@ public class RecentTasksController implements TaskStackListenerCallback,
if (enableShellTopTaskTracking()) {
// Phase 2: If there were desktop tasks and they are visible, add them to the visible
// list as well (the actual order doesn't matter for Overview)
- if (!desktopTasks.isEmpty() && desktopTasksVisible) {
- visibleGroupedTasks.add(
- GroupedTaskInfo.forFreeformTasks(desktopTasks, minimizedDesktopTasks));
+ for (var desk : mTmpDesks.values()) {
+ if (desk.mHasVisibleTasks) {
+ visibleGroupedTasks.add(desk.createDeskTaskInfo());
+ }
}
if (!visibleGroupedTasks.isEmpty()) {
@@ -674,16 +762,18 @@ public class RecentTasksController implements TaskStackListenerCallback,
// Phase 5: If there were desktop tasks and they are not visible (ie. weren't added
// above), add them to the end of the final list (the actual order doesn't
// matter for Overview)
- if (!desktopTasks.isEmpty() && !desktopTasksVisible) {
- groupedTasks.add(
- GroupedTaskInfo.forFreeformTasks(desktopTasks, minimizedDesktopTasks));
+ for (var desk : mTmpDesks.values()) {
+ if (!desk.mHasVisibleTasks && (desk.hasTasks() || shouldIncludeEmptyDesktops)) {
+ groupedTasks.add(desk.createDeskTaskInfo());
+ }
}
dumpGroupedTasks(groupedTasks, "Phase 5");
} else {
// Add the desktop tasks at the end of the list
- if (!desktopTasks.isEmpty()) {
- groupedTasks.add(
- GroupedTaskInfo.forFreeformTasks(desktopTasks, minimizedDesktopTasks));
+ for (var desk : mTmpDesks.values()) {
+ if (desk.hasTasks() || shouldIncludeEmptyDesktops) {
+ groupedTasks.add(desk.createDeskTaskInfo());
+ }
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java
index 743bd052995ebc9397d6e5999b76a441ca8b97bf..347dcff86529920890d3ba720d5f92069f7ceb08 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java
@@ -40,7 +40,6 @@ import android.window.WindowContainerToken;
import android.window.WindowContainerTransaction;
import com.android.internal.protolog.ProtoLog;
-import com.android.window.flags.Flags;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.activityembedding.ActivityEmbeddingController;
import com.android.wm.shell.common.ComponentUtils;
@@ -439,9 +438,6 @@ public class DefaultMixedHandler implements MixedTransitionHandler,
for (int i = 0; i < info.getRootCount(); ++i) {
out.addRoot(info.getRoot(i));
}
- if (!Flags.moveAnimationOptionsToChange()) {
- out.setAnimationOptions(info.getAnimationOptions());
- }
return out;
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
index 01428e60582e38f132a8e71898425a2e5a91bd44..e9c6adec75d7c21cfbed491363f32032f6ae6797 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
@@ -539,7 +539,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
cornerRadius = 0;
}
- backgroundColorForTransition = getTransitionBackgroundColorIfSet(info, change, a,
+ backgroundColorForTransition = getTransitionBackgroundColorIfSet(change, a,
backgroundColorForTransition);
if (!isTask && a.getExtensionEdges() != 0x0) {
@@ -606,12 +606,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
mTransactionPool, mMainExecutor, animRelOffset, cornerRadius,
clipRect);
- final TransitionInfo.AnimationOptions options;
- if (Flags.moveAnimationOptionsToChange()) {
- options = change.getAnimationOptions();
- } else {
- options = info.getAnimationOptions();
- }
+ final TransitionInfo.AnimationOptions options = change.getAnimationOptions();
if (options != null) {
attachThumbnail(animations, onAnimFinish, change, options, cornerRadius);
}
@@ -834,12 +829,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
final boolean isOpeningType = TransitionUtil.isOpeningType(type);
final boolean enter = TransitionUtil.isOpeningType(changeMode);
final boolean isTask = change.getTaskInfo() != null;
- final TransitionInfo.AnimationOptions options;
- if (Flags.moveAnimationOptionsToChange()) {
- options = change.getAnimationOptions();
- } else {
- options = info.getAnimationOptions();
- }
+ final TransitionInfo.AnimationOptions options = change.getAnimationOptions();
final int overrideType = options != null ? options.getType() : ANIM_NONE;
final int userId = options != null ? options.getUserId() : UserHandle.USER_CURRENT;
final Rect endBounds = TransitionUtil.isClosingType(changeMode)
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 1917996d48fb7d9c355b6e2ee921ee5f8ab5f15a..938885cc1684db5d92e7bed184cb97dcfd3a85f0 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
@@ -21,6 +21,7 @@ import static android.view.Display.DEFAULT_DISPLAY;
import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
import static com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP;
+import static com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE;
import static com.android.wm.shell.transition.Transitions.TransitionObserver;
import android.annotation.NonNull;
@@ -35,6 +36,7 @@ import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SingleInstanceRemoteListener;
import com.android.wm.shell.shared.IHomeTransitionListener;
import com.android.wm.shell.shared.TransitionUtil;
+import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper;
/**
* The {@link TransitionObserver} that observes for transitions involving the home
@@ -48,6 +50,8 @@ public class HomeTransitionObserver implements TransitionObserver,
private @NonNull final Context mContext;
private @NonNull final ShellExecutor mMainExecutor;
+ private Boolean mPendingHomeVisibilityUpdate;
+
public HomeTransitionObserver(@NonNull Context context,
@NonNull ShellExecutor mainExecutor) {
mContext = context;
@@ -59,28 +63,78 @@ public class HomeTransitionObserver implements TransitionObserver,
@NonNull TransitionInfo info,
@NonNull SurfaceControl.Transaction startTransaction,
@NonNull SurfaceControl.Transaction finishTransaction) {
+ if (BubbleAnythingFlagHelper.enableBubbleToFullscreen()) {
+ handleTransitionReadyWithBubbleAnything(info);
+ } else {
+ handleTransitionReady(info);
+ }
+ }
+
+ private void handleTransitionReady(@NonNull TransitionInfo info) {
for (TransitionInfo.Change change : info.getChanges()) {
final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
- if (info.getType() == TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP
- || taskInfo == null
+ if (taskInfo == null
+ || info.getType() == TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP
|| taskInfo.displayId != DEFAULT_DISPLAY
|| taskInfo.taskId == -1
|| !taskInfo.isRunning) {
continue;
}
+ Boolean homeVisibilityUpdate = getHomeVisibilityUpdate(info, change, taskInfo);
+ if (homeVisibilityUpdate != null) {
+ notifyHomeVisibilityChanged(homeVisibilityUpdate);
+ }
+ }
+ }
+
+ private void handleTransitionReadyWithBubbleAnything(@NonNull TransitionInfo info) {
+ Boolean homeVisibilityUpdate = null;
+ for (TransitionInfo.Change change : info.getChanges()) {
+ final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
+ if (taskInfo == null
+ || taskInfo.displayId != DEFAULT_DISPLAY
+ || taskInfo.taskId == -1
+ || !taskInfo.isRunning) {
+ continue;
+ }
+
+ Boolean update = getHomeVisibilityUpdate(info, change, taskInfo);
+ if (update != null) {
+ homeVisibilityUpdate = update;
+ }
+ }
+
+ if (info.getType() == TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP) {
+ // Do not apply at the start of desktop drag as that updates launcher UI visibility.
+ // Store the value and apply with a next transition if needed.
+ mPendingHomeVisibilityUpdate = homeVisibilityUpdate;
+ return;
+ }
+
+ if (info.getType() == TRANSIT_CONVERT_TO_BUBBLE && homeVisibilityUpdate == null) {
+ // We are converting to bubble and we did not get a change to home visibility in this
+ // transition. Apply the value from start of drag.
+ homeVisibilityUpdate = mPendingHomeVisibilityUpdate;
+ }
+ if (homeVisibilityUpdate != null) {
+ mPendingHomeVisibilityUpdate = null;
+ notifyHomeVisibilityChanged(homeVisibilityUpdate);
+ }
+ }
- final int mode = change.getMode();
- final boolean isBackGesture = change.hasFlags(FLAG_BACK_GESTURE_ANIMATED);
- if (taskInfo.getActivityType() == ACTIVITY_TYPE_HOME) {
- final boolean gestureToHomeTransition = isBackGesture
- && TransitionUtil.isClosingType(info.getType());
- if (gestureToHomeTransition || TransitionUtil.isClosingMode(mode)
- || (!isBackGesture && TransitionUtil.isOpeningMode(mode))) {
- notifyHomeVisibilityChanged(gestureToHomeTransition
- || TransitionUtil.isOpeningType(mode));
- }
+ private Boolean getHomeVisibilityUpdate(TransitionInfo info,
+ TransitionInfo.Change change, ActivityManager.RunningTaskInfo taskInfo) {
+ final int mode = change.getMode();
+ final boolean isBackGesture = change.hasFlags(FLAG_BACK_GESTURE_ANIMATED);
+ if (taskInfo.getActivityType() == ACTIVITY_TYPE_HOME) {
+ final boolean gestureToHomeTransition = isBackGesture
+ && TransitionUtil.isClosingType(info.getType());
+ if (gestureToHomeTransition || TransitionUtil.isClosingMode(mode)
+ || (!isBackGesture && TransitionUtil.isOpeningMode(mode))) {
+ return gestureToHomeTransition || TransitionUtil.isOpeningType(mode);
}
}
+ return null;
}
@Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java
index 4feb4753096ec4ea862bbda4dac1a167ea2b2e5a..7984bcedc4e55706ae7ba5dca09cc962800d4e95 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java
@@ -58,7 +58,6 @@ import android.window.TransitionInfo;
import com.android.internal.R;
import com.android.internal.policy.TransitionAnimation;
import com.android.internal.protolog.ProtoLog;
-import com.android.window.flags.Flags;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.shared.TransitionUtil;
@@ -78,12 +77,7 @@ public class TransitionAnimationHelper {
final boolean isFreeform = isTask && change.getTaskInfo().isFreeform();
final boolean isCoveredByOpaqueFullscreenChange =
isCoveredByOpaqueFullscreenChange(info, change);
- final TransitionInfo.AnimationOptions options;
- if (Flags.moveAnimationOptionsToChange()) {
- options = change.getAnimationOptions();
- } else {
- options = info.getAnimationOptions();
- }
+ final TransitionInfo.AnimationOptions options = change.getAnimationOptions();
final int overrideType = options != null ? options.getType() : ANIM_NONE;
int animAttr = 0;
boolean translucent = false;
@@ -279,16 +273,10 @@ public class TransitionAnimationHelper {
* the given transition animation.
*/
@ColorInt
- public static int getTransitionBackgroundColorIfSet(@NonNull TransitionInfo info,
- @NonNull TransitionInfo.Change change, @NonNull Animation a,
- @ColorInt int defaultColor) {
+ public static int getTransitionBackgroundColorIfSet(@NonNull TransitionInfo.Change change,
+ @NonNull Animation a, @ColorInt int defaultColor) {
if (!a.getShowBackdrop()) {
return defaultColor;
- }
- if (!Flags.moveAnimationOptionsToChange() && info.getAnimationOptions() != null
- && info.getAnimationOptions().getBackgroundColor() != 0) {
- // If available use the background color provided through AnimationOptions
- return info.getAnimationOptions().getBackgroundColor();
} else if (a.getBackdropColor() != 0) {
// Otherwise fallback on the background color provided through the animation
// definition.
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
index 94dc774a6737a9bb07f5ed1dee09c8fdef71ba96..d4d8d93abf7d567cf9cb3fad033e14483d490bb7 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
@@ -39,7 +39,6 @@ import android.animation.Animator;
import android.annotation.NonNull;
import android.graphics.Point;
import android.graphics.Rect;
-import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
@@ -77,7 +76,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
doNothing().when(mController).onAnimationFinished(any());
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testStartAnimation() {
final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
@@ -103,7 +101,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
verify(mController).onAnimationFinished(mTransition);
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testChangesBehindStartingWindow() {
final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
@@ -118,7 +115,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
assertEquals(0, animator.getDuration());
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testTransitionTypeDragResize() {
final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_TASK_FRAGMENT_DRAG_RESIZE, 0)
@@ -133,25 +129,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
assertEquals(0, animator.getDuration());
}
- @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
- @Test
- public void testInvalidCustomAnimation_disableAnimationOptionsPerChange() {
- final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
- .addChange(createChange(FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY, TRANSIT_OPEN))
- .build();
- info.setAnimationOptions(TransitionInfo.AnimationOptions
- .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */,
- 0 /* backgroundColor */, false /* overrideTaskTransition */));
- final Animator animator = mAnimRunner.createAnimator(
- info, mStartTransaction, mFinishTransaction,
- () -> mFinishCallback.onTransitionFinished(null /* wct */),
- new ArrayList<>());
-
- // An invalid custom animation is equivalent to jump-cut.
- assertEquals(0, animator.getDuration());
- }
-
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testInvalidCustomAnimation_enableAnimationOptionsPerChange() {
final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
@@ -169,36 +146,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
assertEquals(0, animator.getDuration());
}
- @DisableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG)
- @Test
- public void testCalculateParentBounds_flagDisabled() {
- final Rect parentBounds = new Rect(0, 0, 2000, 2000);
- final Rect primaryBounds = new Rect();
- final Rect secondaryBounds = new Rect();
- parentBounds.splitVertically(primaryBounds, secondaryBounds);
-
- final TransitionInfo.Change change = createChange(0 /* flags */);
- change.setStartAbsBounds(secondaryBounds);
-
- final TransitionInfo.Change boundsAnimationChange = createChange(0 /* flags */);
- boundsAnimationChange.setStartAbsBounds(primaryBounds);
- boundsAnimationChange.setEndAbsBounds(primaryBounds);
- final Rect actualParentBounds = new Rect();
-
- calculateParentBounds(change, boundsAnimationChange, actualParentBounds);
-
- assertEquals(parentBounds, actualParentBounds);
-
- actualParentBounds.setEmpty();
-
- boundsAnimationChange.setStartAbsBounds(secondaryBounds);
- boundsAnimationChange.setEndAbsBounds(primaryBounds);
-
- calculateParentBounds(boundsAnimationChange, boundsAnimationChange, actualParentBounds);
-
- assertEquals(parentBounds, actualParentBounds);
- }
-
// TODO(b/243518738): Rewrite with TestParameter
@EnableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG)
@Test
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java
index 9f29ef71930a93d8552d7007d4dc4a029738ee08..53a13d0d4ffd764b270a8d68f78a3cc48108c5ae 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java
@@ -32,8 +32,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.animation.Animator;
import android.animation.ValueAnimator;
import android.graphics.Rect;
-import android.platform.test.annotations.DisableFlags;
-import android.platform.test.annotations.EnableFlags;
import android.view.SurfaceControl;
import android.window.TransitionInfo;
@@ -41,7 +39,6 @@ import androidx.test.annotation.UiThreadTest;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
-import com.android.window.flags.Flags;
import com.android.wm.shell.transition.TransitionInfoBuilder;
import org.junit.Before;
@@ -69,13 +66,11 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
any());
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testInstantiate() {
verify(mShellInit).addInitCallback(any(), any());
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testOnInit() {
mController.onInit();
@@ -83,7 +78,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
verify(mTransitions).addHandler(mController);
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testSetAnimScaleSetting() {
mController.setAnimScaleSetting(1.0f);
@@ -92,7 +86,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
verify(mAnimSpec).setAnimScaleSetting(1.0f);
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testStartAnimation_containsNonActivityEmbeddingChange() {
final TransitionInfo.Change nonEmbeddedOpen = createChange(0 /* flags */);
@@ -129,7 +122,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
assertFalse(info2.getChanges().contains(nonEmbeddedClose));
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testStartAnimation_containsOnlyFillTaskActivityEmbeddingChange() {
final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
@@ -146,7 +138,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
verifyNoMoreInteractions(mFinishCallback);
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testStartAnimation_containsActivityEmbeddingSplitChange() {
// Change that occupies only part of the Task.
@@ -164,7 +155,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
verifyNoMoreInteractions(mFinishTransaction);
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testStartAnimation_containsChangeEnterActivityEmbeddingSplit() {
// Change that is entering ActivityEmbedding split.
@@ -181,7 +171,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
verifyNoMoreInteractions(mFinishTransaction);
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testStartAnimation_containsChangeExitActivityEmbeddingSplit() {
// Change that is exiting ActivityEmbedding split.
@@ -198,27 +187,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
verifyNoMoreInteractions(mFinishTransaction);
}
- @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
- @Test
- public void testShouldAnimate_containsAnimationOptions_disableAnimOptionsPerChange() {
- final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_CLOSE, 0)
- .addChange(createEmbeddedChange(EMBEDDED_RIGHT_BOUNDS, TASK_BOUNDS, TASK_BOUNDS))
- .build();
-
- info.setAnimationOptions(TransitionInfo.AnimationOptions
- .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */,
- 0 /* backgroundColor */, false /* overrideTaskTransition */));
- assertTrue(mController.shouldAnimate(info));
-
- info.setAnimationOptions(TransitionInfo.AnimationOptions
- .makeSceneTransitionAnimOptions());
- assertFalse(mController.shouldAnimate(info));
-
- info.setAnimationOptions(TransitionInfo.AnimationOptions.makeCrossProfileAnimOptions());
- assertFalse(mController.shouldAnimate(info));
- }
-
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testShouldAnimate_containsAnimationOptions_enableAnimOptionsPerChange() {
final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_CLOSE, 0)
@@ -239,7 +207,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
assertFalse(mController.shouldAnimate(info));
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@UiThreadTest
@Test
public void testMergeAnimation() {
@@ -278,7 +245,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation
verify(mFinishCallback).onTransitionFinished(any());
}
- @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
@Test
public void testOnAnimationFinished() {
// Should not call finish when there is no transition.
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt
index 4c3325d4d1de408ca324a65455a8f416be57f2f2..0d1c57221fb9ce515e028f361ab9a10b2f54a667 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt
@@ -21,6 +21,7 @@ import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD
import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
import android.app.WindowConfiguration.WindowingMode
+import android.os.Handler
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper.RunWithLooper
import android.view.SurfaceControl
@@ -56,7 +57,12 @@ class DesktopMinimizationTransitionHandlerTest : ShellTestCase() {
@Before
fun setUp() {
handler =
- DesktopMinimizationTransitionHandler(testExecutor, testExecutor, displayController)
+ DesktopMinimizationTransitionHandler(
+ testExecutor,
+ testExecutor,
+ displayController,
+ mock(),
+ )
whenever(displayController.getDisplayContext(any())).thenReturn(mContext)
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
index 2e63c4f51792a398a05c0934fdff395a80afadd5..9a73b022ebc37ce052ed02ee4f778b47fb372b83 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
@@ -2477,8 +2477,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
controller.moveTaskToFront(task.taskId, unminimizeReason = UnminimizeReason.UNKNOWN)
val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN)
- assertThat(wct.hierarchyOps).hasSize(1)
- wct.assertLaunchTaskAt(0, task.taskId, WINDOWING_MODE_FREEFORM)
+ wct.assertLaunchTask(task.taskId, WINDOWING_MODE_FREEFORM)
}
@Test
@@ -2810,6 +2809,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
// Should launch home
wct.assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+ wct.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
}
@Test
@@ -2970,9 +2970,13 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
val captor = argumentCaptor()
verify(freeformTaskTransitionStarter)
.startMinimizedModeTransition(captor.capture(), eq(task.taskId), eq(false))
- captor.firstValue.hierarchyOps.none { hop ->
- hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
- }
+ assertThat(
+ captor.firstValue.hierarchyOps.none { hop ->
+ hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+ hop.container == wallpaperToken.asBinder()
+ }
+ )
+ .isTrue()
}
@Test
@@ -3061,9 +3065,13 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
val captor = argumentCaptor()
verify(freeformTaskTransitionStarter).startPipTransition(captor.capture())
- captor.firstValue.hierarchyOps.none { hop ->
- hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
- }
+ assertThat(
+ captor.firstValue.hierarchyOps.none { hop ->
+ hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+ hop.container == wallpaperToken.asBinder()
+ }
+ )
+ .isTrue()
}
@Test
@@ -3084,7 +3092,12 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
val captor = argumentCaptor()
verify(freeformTaskTransitionStarter)
.startMinimizedModeTransition(captor.capture(), eq(task.taskId), eq(true))
- captor.firstValue.hierarchyOps.none { hop -> hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK }
+ assertThat(
+ captor.firstValue.hierarchyOps.none { hop ->
+ hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK
+ }
+ )
+ .isTrue()
}
@Test
@@ -3131,9 +3144,13 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
val captor = argumentCaptor()
verify(freeformTaskTransitionStarter)
.startMinimizedModeTransition(captor.capture(), eq(task.taskId), eq(false))
- captor.firstValue.hierarchyOps.none { hop ->
- hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
- }
+ assertThat(
+ captor.firstValue.hierarchyOps.none { hop ->
+ hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+ hop.container == wallpaperToken.asBinder()
+ }
+ )
+ .isTrue()
}
@Test
@@ -3155,9 +3172,13 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
val captor = argumentCaptor()
verify(freeformTaskTransitionStarter)
.startMinimizedModeTransition(captor.capture(), eq(task1.taskId), eq(false))
- captor.firstValue.hierarchyOps.none { hop ->
- hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
- }
+ assertThat(
+ captor.firstValue.hierarchyOps.none { hop ->
+ hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+ hop.container == wallpaperToken.asBinder()
+ }
+ )
+ .isTrue()
}
@Test
@@ -3911,6 +3932,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
// Should launch home
assertNotNull(result, "Should handle request")
.assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+ result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
}
@Test
@@ -3937,6 +3959,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
// Should launch home
assertNotNull(result, "Should handle request")
.assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+ result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
}
@Test
@@ -4069,6 +4092,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
// Should launch home
assertNotNull(result, "Should handle request")
.assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+ result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
}
@Test
@@ -4085,6 +4109,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
// Should launch home
assertNotNull(result, "Should handle request")
.assertPendingIntentAt(0, launchHomeIntent(SECOND_DISPLAY))
+ result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, SECOND_DISPLAY)
}
@Test
@@ -6306,6 +6331,61 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase()
assertThat(taskRepository.getNumberOfDesks(DEFAULT_DISPLAY)).isEqualTo(currentDeskCount + 1)
}
+ @Test
+ @EnableFlags(
+ Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
+ Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER,
+ )
+ fun startLaunchTransition_desktopNotShowing_movesWallpaperToFront() {
+ val launchingTask = createFreeformTask()
+ val wct = WindowContainerTransaction()
+ wct.reorder(launchingTask.token, /* onTop= */ true)
+ whenever(
+ desktopMixedTransitionHandler.startLaunchTransition(
+ eq(TRANSIT_OPEN),
+ any(),
+ anyOrNull(),
+ anyOrNull(),
+ anyOrNull(),
+ )
+ )
+ .thenReturn(Binder())
+
+ controller.startLaunchTransition(TRANSIT_OPEN, wct, launchingTaskId = null)
+
+ val latestWct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN)
+ val launchingTaskReorderIndex = latestWct.indexOfReorder(launchingTask, toTop = true)
+ val wallpaperReorderIndex = latestWct.indexOfReorder(wallpaperToken, toTop = true)
+ assertThat(launchingTaskReorderIndex).isNotEqualTo(-1)
+ assertThat(wallpaperReorderIndex).isNotEqualTo(-1)
+ assertThat(launchingTaskReorderIndex).isGreaterThan(wallpaperReorderIndex)
+ }
+
+ @Test
+ @EnableFlags(
+ Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
+ Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER,
+ )
+ fun startLaunchTransition_desktopShowing_doesNotReorderWallpaper() {
+ val wct = WindowContainerTransaction()
+ whenever(
+ desktopMixedTransitionHandler.startLaunchTransition(
+ eq(TRANSIT_OPEN),
+ any(),
+ anyOrNull(),
+ anyOrNull(),
+ anyOrNull(),
+ )
+ )
+ .thenReturn(Binder())
+
+ setUpFreeformTask()
+ controller.startLaunchTransition(TRANSIT_OPEN, wct, launchingTaskId = null)
+
+ val latestWct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN)
+ assertNull(latestWct.hierarchyOps.find { op -> op.container == wallpaperToken.asBinder() })
+ }
+
private class RunOnStartTransitionCallback : ((IBinder) -> Unit) {
var invocations = 0
private set
@@ -6692,13 +6772,20 @@ private fun WindowContainerTransaction.assertWithoutHop(
}
private fun WindowContainerTransaction.indexOfReorder(
- task: RunningTaskInfo,
+ token: WindowContainerToken,
toTop: Boolean? = null,
): Int {
- val hop = hierarchyOps.singleOrNull(ReorderPredicate(task.token, toTop)) ?: return -1
+ val hop = hierarchyOps.singleOrNull(ReorderPredicate(token, toTop)) ?: return -1
return hierarchyOps.indexOf(hop)
}
+private fun WindowContainerTransaction.indexOfReorder(
+ task: RunningTaskInfo,
+ toTop: Boolean? = null,
+): Int {
+ return indexOfReorder(task.token, toTop)
+}
+
private class ReorderPredicate(val token: WindowContainerToken, val toTop: Boolean? = null) :
((WindowContainerTransaction.HierarchyOp) -> Boolean) {
override fun invoke(hop: WindowContainerTransaction.HierarchyOp): Boolean =
@@ -6816,6 +6903,29 @@ private fun WindowContainerTransaction.assertPendingIntentAt(index: Int, intent:
assertThat(op.pendingIntent?.intent?.categories).isEqualTo(intent.categories)
}
+private fun WindowContainerTransaction.assertPendingIntentActivityOptionsLaunchDisplayIdAt(
+ index: Int,
+ displayId: Int,
+) {
+ assertIndexInBounds(index)
+ val op = hierarchyOps[index]
+ if (op.launchOptions != null) {
+ val options = ActivityOptions(op.launchOptions)
+ assertThat(options.launchDisplayId).isEqualTo(displayId)
+ }
+}
+
+private fun WindowContainerTransaction.assertLaunchTask(taskId: Int, windowingMode: Int) {
+ val keyLaunchWindowingMode = "android.activity.windowingMode"
+
+ assertHop { hop ->
+ hop.type == HIERARCHY_OP_TYPE_LAUNCH_TASK &&
+ hop.launchOptions?.getInt(LAUNCH_KEY_TASK_ID) == taskId &&
+ hop.launchOptions?.getInt(keyLaunchWindowingMode, WINDOWING_MODE_UNDEFINED) ==
+ windowingMode
+ }
+}
+
private fun WindowContainerTransaction.assertLaunchTaskAt(
index: Int,
taskId: Int,
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
index d33209dbc30e4a7512c52ed4927e18923312b607..62e3c544e3907dfb26793ba01f966d9684349d2d 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
@@ -37,7 +37,6 @@ import androidx.test.filters.SmallTest
import com.android.dx.mockito.inline.extended.ExtendedMockito
import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn
import com.android.dx.mockito.inline.extended.StaticMockitoSession
-import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
import com.android.internal.jank.InteractionJankMonitor
import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION
import com.android.wm.shell.ShellTaskOrganizer
@@ -72,8 +71,6 @@ import org.mockito.Mockito.any
import org.mockito.Mockito.mock
import org.mockito.Mockito.spy
import org.mockito.Mockito.`when`
-import org.mockito.kotlin.eq
-import org.mockito.kotlin.verify
import org.mockito.quality.Strictness
/**
@@ -520,85 +517,6 @@ class DesktopTasksLimiterTest : ShellTestCase() {
assertThat(minimizedTask).isEqualTo(tasks.last().taskId)
}
- @Test
- fun minimizeTransitionReadyAndFinished_logsJankInstrumentationBeginAndEnd() {
- desktopTaskRepo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
- desktopTaskRepo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
- (1.. setUpFreeformTask() }
- val transition = Binder()
- val task = setUpFreeformTask()
- addPendingMinimizeChange(transition, taskId = task.taskId)
-
- callOnTransitionReady(
- transition,
- TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
- )
-
- desktopTasksLimiter.getTransitionObserver().onTransitionStarting(transition)
-
- verify(interactionJankMonitor)
- .begin(any(), eq(mContext), eq(handler), eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-
- desktopTasksLimiter
- .getTransitionObserver()
- .onTransitionFinished(transition, /* aborted= */ false)
-
- verify(interactionJankMonitor).end(eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
- }
-
- @Test
- fun minimizeTransitionReadyAndAborted_logsJankInstrumentationBeginAndCancel() {
- desktopTaskRepo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
- desktopTaskRepo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
- (1.. setUpFreeformTask() }
- val transition = Binder()
- val task = setUpFreeformTask()
- addPendingMinimizeChange(transition, taskId = task.taskId)
-
- callOnTransitionReady(
- transition,
- TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
- )
-
- desktopTasksLimiter.getTransitionObserver().onTransitionStarting(transition)
-
- verify(interactionJankMonitor)
- .begin(any(), eq(mContext), eq(handler), eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-
- desktopTasksLimiter
- .getTransitionObserver()
- .onTransitionFinished(transition, /* aborted= */ true)
-
- verify(interactionJankMonitor).cancel(eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
- }
-
- @Test
- fun minimizeTransitionReadyAndMerged_logsJankInstrumentationBeginAndEnd() {
- desktopTaskRepo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
- desktopTaskRepo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
- (1.. setUpFreeformTask() }
- val mergedTransition = Binder()
- val newTransition = Binder()
- val task = setUpFreeformTask()
- addPendingMinimizeChange(mergedTransition, taskId = task.taskId)
-
- callOnTransitionReady(
- mergedTransition,
- TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
- )
-
- desktopTasksLimiter.getTransitionObserver().onTransitionStarting(mergedTransition)
-
- verify(interactionJankMonitor)
- .begin(any(), eq(mContext), eq(handler), eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-
- desktopTasksLimiter
- .getTransitionObserver()
- .onTransitionMerged(mergedTransition, newTransition)
-
- verify(interactionJankMonitor).end(eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
- }
-
@Test
fun getMinimizingTask_noPendingTransition_returnsNull() {
val transition = Binder()
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt
index 32096645aea77c3df7fef7bf5eb41d24fe8422df..6ecebd76a9510eeea7cc5048b7b7e0ac36f92322 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt
@@ -26,7 +26,7 @@ import android.window.WindowContainerToken
import androidx.test.filters.SmallTest
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.shared.GroupedTaskInfo
-import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FREEFORM
+import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_DESK
import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FULLSCREEN
import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_SPLIT
import com.android.wm.shell.shared.split.SplitBounds
@@ -87,14 +87,14 @@ class GroupedTaskInfoTest : ShellTestCase() {
}
@Test
- fun testFreeformTasks_hasCorrectType() {
- assertThat(freeformTasksGroupInfo(freeformTaskIds = arrayOf(1)).isBaseType(TYPE_FREEFORM))
+ fun testDeskTasks_hasCorrectType() {
+ assertThat(deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(1)).isBaseType(TYPE_DESK))
.isTrue()
}
@Test
- fun testCreateFreeformTasks_hasCorrectNumberOfTasks() {
- val list = freeformTasksGroupInfo(freeformTaskIds = arrayOf(1, 2, 3)).taskInfoList
+ fun testCreateDeskTasks_hasCorrectNumberOfTasks() {
+ val list = deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(1, 2, 3)).taskInfoList
assertThat(list).hasSize(3)
assertThat(list[0].taskId).isEqualTo(1)
assertThat(list[1].taskId).isEqualTo(2)
@@ -102,9 +102,9 @@ class GroupedTaskInfoTest : ShellTestCase() {
}
@Test
- fun testCreateFreeformTasks_nonExistentMinimizedTaskId_throwsException() {
+ fun testCreateDeskTasks_nonExistentMinimizedTaskId_throwsException() {
assertThrows(IllegalArgumentException::class.java) {
- freeformTasksGroupInfo(
+ deskTasksGroupInfo(deskId = 0,
freeformTaskIds = arrayOf(1, 2, 3),
minimizedTaskIds = arrayOf(1, 4)
)
@@ -122,8 +122,8 @@ class GroupedTaskInfoTest : ShellTestCase() {
}
@Test
- fun testMixedWithFreeformBase_hasCorrectType() {
- assertThat(mixedTaskGroupInfoWithFreeformBase().isBaseType(TYPE_FREEFORM)).isTrue()
+ fun testMixedWithDeskBase_hasCorrectType() {
+ assertThat(mixedTaskGroupInfoWithDeskBase().isBaseType(TYPE_DESK)).isTrue()
}
@Test
@@ -190,15 +190,16 @@ class GroupedTaskInfoTest : ShellTestCase() {
}
@Test
- fun testParcelling_freeformTasks() {
- val taskInfo = freeformTasksGroupInfo(freeformTaskIds = arrayOf(1, 2, 3))
+ fun testParcelling_DeskTasks() {
+ val taskInfo = deskTasksGroupInfo(deskId = 50, freeformTaskIds = arrayOf(1, 2, 3))
val parcel = Parcel.obtain()
taskInfo.writeToParcel(parcel, 0)
parcel.setDataPosition(0)
// Read the object back from the parcel
val taskInfoFromParcel: GroupedTaskInfo =
GroupedTaskInfo.CREATOR.createFromParcel(parcel)
- assertThat(taskInfoFromParcel.isBaseType(TYPE_FREEFORM)).isTrue()
+ assertThat(taskInfoFromParcel.deskId).isEqualTo(taskInfo.deskId)
+ assertThat(taskInfoFromParcel.isBaseType(TYPE_DESK)).isTrue()
assertThat(taskInfoFromParcel.taskInfoList).hasSize(3)
// Only compare task ids
val taskIdComparator = Correspondence.transforming(
@@ -209,8 +210,8 @@ class GroupedTaskInfoTest : ShellTestCase() {
}
@Test
- fun testParcelling_freeformTasks_minimizedTasks() {
- val taskInfo = freeformTasksGroupInfo(
+ fun testParcelling_DeskTasks_minimizedTasks() {
+ val taskInfo = deskTasksGroupInfo(deskId = 0,
freeformTaskIds = arrayOf(1, 2, 3), minimizedTaskIds = arrayOf(2))
val parcel = Parcel.obtain()
@@ -220,14 +221,14 @@ class GroupedTaskInfoTest : ShellTestCase() {
// Read the object back from the parcel
val taskInfoFromParcel: GroupedTaskInfo =
GroupedTaskInfo.CREATOR.createFromParcel(parcel)
- assertThat(taskInfoFromParcel.isBaseType(TYPE_FREEFORM)).isTrue()
+ assertThat(taskInfoFromParcel.isBaseType(TYPE_DESK)).isTrue()
assertThat(taskInfoFromParcel.minimizedTaskIds).isEqualTo(arrayOf(2).toIntArray())
}
@Test
fun testParcelling_mixedTasks() {
val taskInfo = GroupedTaskInfo.forMixed(listOf(
- freeformTasksGroupInfo(freeformTaskIds = arrayOf(4, 5, 6),
+ deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(4, 5, 6),
minimizedTaskIds = arrayOf(5)),
splitTasksGroupInfo(firstId = 2, secondId = 3),
singleTaskGroupInfo(id = 1)))
@@ -239,7 +240,7 @@ class GroupedTaskInfoTest : ShellTestCase() {
// Read the object back from the parcel
val taskInfoFromParcel: GroupedTaskInfo =
GroupedTaskInfo.CREATOR.createFromParcel(parcel)
- assertThat(taskInfoFromParcel.isBaseType(TYPE_FREEFORM)).isTrue()
+ assertThat(taskInfoFromParcel.isBaseType(TYPE_DESK)).isTrue()
assertThat(taskInfoFromParcel.baseGroupedTask.minimizedTaskIds).isEqualTo(
arrayOf(5).toIntArray())
for (i in 1..6) {
@@ -275,12 +276,14 @@ class GroupedTaskInfoTest : ShellTestCase() {
}
@Test
- fun testTaskProperties_freeformTasks() {
+ fun testTaskProperties_DeskTasks() {
val task1 = createTaskInfo(id = 1)
val task2 = createTaskInfo(id = 2)
- val taskInfo = GroupedTaskInfo.forFreeformTasks(listOf(task1, task2), setOf())
+ val taskInfo = GroupedTaskInfo.forDeskTasks(
+ /* deskId = */ 500, listOf(task1, task2), setOf())
+ assertThat(taskInfo.deskId).isEqualTo(500)
assertThat(taskInfo.getTaskById(1)).isEqualTo(task1)
assertThat(taskInfo.getTaskById(2)).isEqualTo(task2)
assertThat(taskInfo.containsTask(1)).isTrue()
@@ -325,11 +328,13 @@ class GroupedTaskInfoTest : ShellTestCase() {
return GroupedTaskInfo.forSplitTasks(task1, task2, splitBounds)
}
- private fun freeformTasksGroupInfo(
+ private fun deskTasksGroupInfo(
+ deskId: Int,
freeformTaskIds: Array,
minimizedTaskIds: Array = emptyArray()
): GroupedTaskInfo {
- return GroupedTaskInfo.forFreeformTasks(
+ return GroupedTaskInfo.forDeskTasks(
+ deskId,
freeformTaskIds.map { createTaskInfo(it) }.toList(),
minimizedTaskIds.toSet())
}
@@ -346,9 +351,9 @@ class GroupedTaskInfoTest : ShellTestCase() {
singleTaskGroupInfo(id = 1)))
}
- private fun mixedTaskGroupInfoWithFreeformBase(): GroupedTaskInfo {
+ private fun mixedTaskGroupInfoWithDeskBase(): GroupedTaskInfo {
return GroupedTaskInfo.forMixed(listOf(
- freeformTasksGroupInfo(freeformTaskIds = arrayOf(2, 3, 4)),
+ deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(2, 3, 4)),
singleTaskGroupInfo(id = 1)))
}
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java
index a546b3ea7d8f17df62ff9aa5c6b6e417b56a2339..bf65caec88c78dc9c0c8e6ae6e666022224b7f2c 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java
@@ -24,7 +24,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_PERSISTENCE;
-import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FREEFORM;
+import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_DESK;
import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FULLSCREEN;
import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_SPLIT;
import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_50_50;
@@ -349,7 +349,7 @@ public class RecentTasksControllerTest extends ShellTestCase {
GroupedTaskInfo freeformGroup = recentTasks.get(2);
// Check that groups have expected types
- assertTrue(freeformGroup.isBaseType(TYPE_FREEFORM));
+ assertTrue(freeformGroup.isBaseType(TYPE_DESK));
assertTrue(singleGroup1.isBaseType(TYPE_FULLSCREEN));
assertTrue(singleGroup2.isBaseType(TYPE_FULLSCREEN));
@@ -389,7 +389,7 @@ public class RecentTasksControllerTest extends ShellTestCase {
// Check that groups have expected types
assertTrue(splitGroup.isBaseType(TYPE_SPLIT));
- assertTrue(freeformGroup.isBaseType(TYPE_FREEFORM));
+ assertTrue(freeformGroup.isBaseType(TYPE_DESK));
assertTrue(singleGroup.isBaseType(TYPE_FULLSCREEN));
// Check freeform group entries
@@ -460,7 +460,7 @@ public class RecentTasksControllerTest extends ShellTestCase {
GroupedTaskInfo freeformGroup = recentTasks.get(2);
// Check that groups have expected types
- assertTrue(freeformGroup.isBaseType(TYPE_FREEFORM));
+ assertTrue(freeformGroup.isBaseType(TYPE_DESK));
assertTrue(singleGroup1.isBaseType(TYPE_FULLSCREEN));
assertTrue(singleGroup2.isBaseType(TYPE_FULLSCREEN));
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/animation/MinimizeAnimatorTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/animation/MinimizeAnimatorTest.kt
new file mode 100644
index 0000000000000000000000000000000000000000..ba609d4322fc61b3ae49db1ffc275016d8e04114
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/animation/MinimizeAnimatorTest.kt
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.wm.shell.shared.animation
+
+import android.animation.Animator
+import android.animation.AnimatorSet
+import android.animation.ValueAnimator
+import android.content.Context
+import android.content.res.Resources
+import android.os.Handler
+import android.util.DisplayMetrics
+import android.view.SurfaceControl
+import android.view.SurfaceControl.Transaction
+import android.window.TransitionInfo
+import android.window.WindowContainerToken
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
+import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
+import com.android.internal.jank.InteractionJankMonitor
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.any
+import org.mockito.ArgumentMatchers.anyFloat
+import org.mockito.ArgumentMatchers.anyLong
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class MinimizeAnimatorTest {
+ private val context = mock()
+ private val resources = mock()
+ private val transaction = mock()
+ private val leash = mock()
+ private val interactionJankMonitor = mock()
+ private val animationHandler = mock()
+
+ private val displayMetrics = DisplayMetrics().apply { density = 1f }
+
+ @Before
+ fun setup() {
+ whenever(context.resources).thenReturn(resources)
+ whenever(resources.displayMetrics).thenReturn(displayMetrics)
+ whenever(transaction.setAlpha(any(), anyFloat())).thenReturn(transaction)
+ whenever(transaction.setPosition(any(), anyFloat(), anyFloat())).thenReturn(transaction)
+ whenever(transaction.setScale(any(), anyFloat(), anyFloat())).thenReturn(transaction)
+ whenever(transaction.setFrameTimeline(anyLong())).thenReturn(transaction)
+ }
+
+ @Test
+ fun create_returnsBoundsAndAlphaAnimators() {
+ val change = TransitionInfo.Change(mock(), leash)
+
+ val animator = createAnimator(change)
+
+ assertThat(animator).isInstanceOf(AnimatorSet::class.java)
+ val animatorSet = animator as AnimatorSet
+ assertThat(animatorSet.childAnimations).hasSize(2)
+ assertIsBoundsAnimator(animatorSet.childAnimations[0])
+ assertIsAlphaAnimator(animatorSet.childAnimations[1])
+ }
+
+ @Test
+ fun create_doesNotlogJankInstrumentation() = runOnUiThread {
+ val change = TransitionInfo.Change(mock(), leash)
+
+ createAnimator(change)
+
+ verify(interactionJankMonitor, never()).begin(
+ leash, context, animationHandler, CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+ }
+
+ @Test
+ fun onAnimationStart_logsJankInstrumentation() = runOnUiThread {
+ val change = TransitionInfo.Change(mock(), leash)
+
+ createAnimator(change).start()
+
+ verify(interactionJankMonitor).begin(
+ leash, context, animationHandler, CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+ }
+
+ private fun createAnimator(change: TransitionInfo.Change): Animator =
+ MinimizeAnimator.create(context, change, transaction, {}, interactionJankMonitor,
+ animationHandler)
+
+ private fun assertIsBoundsAnimator(animator: Animator) {
+ assertThat(animator).isInstanceOf(ValueAnimator::class.java)
+ assertThat(animator.duration).isEqualTo(200)
+ assertThat(animator.interpolator).isEqualTo(Interpolators.STANDARD_ACCELERATE)
+ }
+
+ private fun assertIsAlphaAnimator(animator: Animator) {
+ assertThat(animator).isInstanceOf(ValueAnimator::class.java)
+ assertThat(animator.duration).isEqualTo(100)
+ assertThat(animator.interpolator).isEqualTo(Interpolators.LINEAR)
+ }
+}
+
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 6f28e656d060d881acf324f76dbb43c3d013b330..3099b0f5cf66e4c0bf7f7b785f393b80e01815a0 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
@@ -17,36 +17,44 @@
package com.android.wm.shell.transition;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.view.WindowManager.TRANSIT_CHANGE;
import static android.view.WindowManager.TRANSIT_OPEN;
import static android.view.WindowManager.TRANSIT_PREPARE_BACK_NAVIGATION;
import static android.view.WindowManager.TRANSIT_TO_BACK;
+import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP;
+import static com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when;
import android.app.ActivityManager;
import android.app.WindowConfiguration.ActivityType;
import android.content.Context;
+import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException;
+import android.platform.test.annotations.EnableFlags;
import android.view.SurfaceControl;
import android.window.TransitionInfo;
import android.window.TransitionInfo.TransitionMode;
+import android.window.WindowContainerToken;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import androidx.test.platform.app.InstrumentationRegistry;
+import com.android.wm.shell.Flags;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.ShellTestCase;
import com.android.wm.shell.TestShellExecutor;
@@ -187,6 +195,72 @@ public class HomeTransitionObserverTest extends ShellTestCase {
verify(mListener, times(0)).onHomeVisibilityChanged(anyBoolean());
}
+ @Test
+ @EnableFlags({Flags.FLAG_ENABLE_BUBBLE_TO_FULLSCREEN, Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE})
+ public void testDragTaskToBubbleOverHome_notifiesHomeIsVisible() throws RemoteException {
+ ActivityManager.RunningTaskInfo homeTask = createTaskInfo(1, ACTIVITY_TYPE_HOME);
+ ActivityManager.RunningTaskInfo bubbleTask = createTaskInfo(2, ACTIVITY_TYPE_STANDARD);
+
+ TransitionInfo startDragTransition =
+ new TransitionInfoBuilder(TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP)
+ .addChange(TRANSIT_TO_FRONT, homeTask)
+ .addChange(TRANSIT_TO_BACK, bubbleTask)
+ .build();
+
+ // Start drag to desktop which brings home to front
+ mHomeTransitionObserver.onTransitionReady(new Binder(), startDragTransition,
+ MockTransactionPool.create(), MockTransactionPool.create());
+ // Does not notify home visibility yet
+ verify(mListener, never()).onHomeVisibilityChanged(anyBoolean());
+
+ TransitionInfo convertToBubbleTransition =
+ new TransitionInfoBuilder(TRANSIT_CONVERT_TO_BUBBLE)
+ .addChange(TRANSIT_TO_FRONT, bubbleTask)
+ .build();
+
+ // Convert to bubble. Transition does not include changes for home task
+ mHomeTransitionObserver.onTransitionReady(new Binder(), convertToBubbleTransition,
+ MockTransactionPool.create(), MockTransactionPool.create());
+
+ // Notifies home visibility change that was pending from the start of drag
+ verify(mListener).onHomeVisibilityChanged(true);
+ }
+
+ @Test
+ @EnableFlags({Flags.FLAG_ENABLE_BUBBLE_TO_FULLSCREEN, Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE})
+ public void testDragTaskToBubbleOverOtherTask_notifiesHomeIsNotVisible()
+ throws RemoteException {
+ ActivityManager.RunningTaskInfo homeTask = createTaskInfo(1, ACTIVITY_TYPE_HOME);
+ ActivityManager.RunningTaskInfo bubbleTask = createTaskInfo(2, ACTIVITY_TYPE_STANDARD);
+ ActivityManager.RunningTaskInfo otherTask = createTaskInfo(3, ACTIVITY_TYPE_STANDARD);
+
+ TransitionInfo startDragTransition =
+ new TransitionInfoBuilder(TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP)
+ .addChange(TRANSIT_TO_FRONT, homeTask)
+ .addChange(TRANSIT_TO_BACK, bubbleTask)
+ .build();
+
+ // Start drag to desktop which brings home to front
+ mHomeTransitionObserver.onTransitionReady(new Binder(), startDragTransition,
+ MockTransactionPool.create(), MockTransactionPool.create());
+ // Does not notify home visibility yet
+ verify(mListener, never()).onHomeVisibilityChanged(anyBoolean());
+
+ TransitionInfo convertToBubbleTransition =
+ new TransitionInfoBuilder(TRANSIT_CONVERT_TO_BUBBLE)
+ .addChange(TRANSIT_TO_FRONT, bubbleTask)
+ .addChange(TRANSIT_TO_FRONT, otherTask)
+ .addChange(TRANSIT_TO_BACK, homeTask)
+ .build();
+
+ // Convert to bubble. Transition includes home task to back which updates home visibility
+ mHomeTransitionObserver.onTransitionReady(new Binder(), convertToBubbleTransition,
+ MockTransactionPool.create(), MockTransactionPool.create());
+
+ // Notifies home visibility change due to home moving to back in the second transition
+ verify(mListener).onHomeVisibilityChanged(false);
+ }
+
@Test
public void testHomeActivityWithBackGestureNotifiesHomeIsVisibleAfterClose()
throws RemoteException {
@@ -227,4 +301,14 @@ public class HomeTransitionObserverTest extends ShellTestCase {
when(change.getMode()).thenReturn(mode);
taskInfo.isRunning = isRunning;
}
+
+ private static ActivityManager.RunningTaskInfo createTaskInfo(int taskId, int activityType) {
+ ActivityManager.RunningTaskInfo taskInfo = new ActivityManager.RunningTaskInfo();
+ taskInfo.taskId = taskId;
+ taskInfo.topActivityType = activityType;
+ taskInfo.configuration.windowConfiguration.setActivityType(activityType);
+ taskInfo.token = mock(WindowContainerToken.class);
+ taskInfo.isRunning = true;
+ return taskInfo;
+ }
}
diff --git a/libs/androidfw/AssetManager2.cpp b/libs/androidfw/AssetManager2.cpp
index 2833dcdb275de593ed50a3258e5ba1a26eaed48b..7a51c20f76723b19abbd919bb748c48caa252d81 100644
--- a/libs/androidfw/AssetManager2.cpp
+++ b/libs/androidfw/AssetManager2.cpp
@@ -44,6 +44,9 @@ namespace android {
namespace {
+constexpr int32_t kDefaultDisplayId = 0;
+constexpr int32_t kDefaultDeviceId = 0;
+
using EntryValue = std::variant>;
/* NOTE: table_entry has been verified in LoadedPackage::GetEntryFromOffset(),
@@ -61,7 +64,7 @@ base::expected GetEntryValue(
return table_entry->value();
}
-} // namespace
+} // namespace
struct FindEntryResult {
// The cookie representing the ApkAssets in which the value resides.
@@ -99,14 +102,15 @@ struct Theme::Entry {
Res_value value;
};
-AssetManager2::AssetManager2(ApkAssetsList apk_assets, const ResTable_config& configuration) {
+AssetManager2::AssetManager2(ApkAssetsList apk_assets, const ResTable_config& configuration)
+ : display_id_(kDefaultDisplayId), device_id_(kDefaultDeviceId) {
configurations_.push_back(configuration);
// Don't invalidate caches here as there's nothing cached yet.
SetApkAssets(apk_assets, false);
}
-AssetManager2::AssetManager2() {
+AssetManager2::AssetManager2() : display_id_(kDefaultDisplayId), device_id_(kDefaultDeviceId) {
configurations_.emplace_back();
}
@@ -172,8 +176,7 @@ void AssetManager2::BuildDynamicRefTable(ApkAssetsList apk_assets) {
// to take effect.
auto iter = target_assets_package_ids.find(loaded_idmap->TargetApkPath());
if (iter == target_assets_package_ids.end()) {
- LOG(INFO) << "failed to find target package for overlay "
- << loaded_idmap->OverlayApkPath();
+ LOG(INFO) << "failed to find target package for overlay " << loaded_idmap->OverlayApkPath();
} else {
uint8_t target_package_id = iter->second;
@@ -189,10 +192,11 @@ void AssetManager2::BuildDynamicRefTable(ApkAssetsList apk_assets) {
<< " assigned package group";
PackageGroup& target_package_group = package_groups_[target_idx];
- target_package_group.overlays_.push_back(
- ConfiguredOverlay{loaded_idmap->GetTargetResourcesMap(target_package_id,
- overlay_ref_table.get()),
- apk_assets_cookies[apk_assets]});
+ target_package_group.overlays_.push_back(ConfiguredOverlay{
+ loaded_idmap->GetTargetResourcesMap(target_package_id, overlay_ref_table.get()),
+ apk_assets_cookies[apk_assets],
+ IsAnyOverlayConstraintSatisfied(loaded_idmap->GetConstraints())
+ });
}
}
@@ -291,7 +295,7 @@ void AssetManager2::DumpToLog() const {
}
LOG(INFO) << "Package ID map: " << list;
- for (const auto& package_group: package_groups_) {
+ for (const auto& package_group : package_groups_) {
list = "";
for (const auto& package : package_group.packages_) {
const LoadedPackage* loaded_package = package.loaded_package_;
@@ -347,7 +351,6 @@ std::shared_ptr AssetManager2::GetDynamicRefTableForCooki
const std::unordered_map*
AssetManager2::GetOverlayableMapForPackage(uint32_t package_id) const {
-
if (package_id >= package_ids_.size()) {
return nullptr;
}
@@ -462,6 +465,28 @@ void AssetManager2::SetConfigurations(std::span configura
}
}
+void AssetManager2::SetOverlayConstraints(int32_t display_id, int32_t device_id) {
+ bool changed = false;
+ if (display_id_ != display_id) {
+ display_id_ = display_id;
+ changed = true;
+ }
+ if (device_id_ != device_id) {
+ device_id_ = device_id;
+ changed = true;
+ }
+ if (changed) {
+ // Enable/disable overlays based on current constraints
+ for (PackageGroup& group : package_groups_) {
+ for (auto &overlay: group.overlays_) {
+ overlay.enabled = IsAnyOverlayConstraintSatisfied(
+ overlay.overlay_res_maps_.GetConstraints());
+ }
+ }
+ InvalidateCaches(static_cast(-1));
+ }
+}
+
std::set AssetManager2::GetNonSystemOverlays() const {
std::set non_system_overlays;
for (const PackageGroup& package_group : package_groups_) {
@@ -475,6 +500,8 @@ std::set AssetManager2::GetNonSystemOverlays() cons
if (!found_system_package) {
auto op = StartOperation();
+ // Return all overlays, including the disabled ones as this is used for static info
+ // collection only.
for (const ConfiguredOverlay& overlay : package_group.overlays_) {
if (const auto& asset = GetApkAssets(overlay.cookie)) {
non_system_overlays.insert(std::move(asset));
@@ -651,7 +678,6 @@ base::expected AssetManager2::FindEntry(
auto op = StartOperation();
-
// Retrieve the package group from the package id of the resource id.
if (UNLIKELY(!is_valid_resid(resid))) {
LOG(ERROR) << base::StringPrintf("Invalid resource ID 0x%08x.", resid);
@@ -672,7 +698,7 @@ base::expected AssetManager2::FindEntry(
std::optional final_result;
bool final_has_locale = false;
bool final_overlaid = false;
- for (auto & config : configurations_) {
+ for (auto& config : configurations_) {
// Might use this if density_override != 0.
ResTable_config density_override_config;
@@ -698,7 +724,8 @@ base::expected AssetManager2::FindEntry(
}
if (!assets->IsLoader()) {
for (const auto& id_map : package_group.overlays_) {
- auto overlay_entry = id_map.overlay_res_maps_.Lookup(resid);
+ auto overlay_entry = id_map.enabled ?
+ id_map.overlay_res_maps_.Lookup(resid) : IdmapResMap::Result();
if (!overlay_entry) {
// No id map entry exists for this target resource.
continue;
@@ -708,7 +735,7 @@ base::expected AssetManager2::FindEntry(
ConfigDescription best_frro_config;
Res_value best_frro_value;
bool frro_found = false;
- for( const auto& [config, value] : overlay_entry.GetInlineValue()) {
+ for (const auto& [config, value] : overlay_entry.GetInlineValue()) {
if ((!frro_found || config.isBetterThan(best_frro_config, desired_config))
&& config.match(*desired_config)) {
frro_found = true;
@@ -1011,7 +1038,7 @@ std::string AssetManager2::GetLastResourceResolution() const {
resid, resource_name_string.c_str(), conf.toString().c_str());
char str[40];
str[0] = '\0';
- for(auto iter = configurations_.begin(); iter < configurations_.end(); iter++) {
+ for (auto iter = configurations_.begin(); iter < configurations_.end(); iter++) {
iter->getBcp47Locale(str);
log_stream << base::StringPrintf(" %s%s", str, iter < configurations_.end() ? "," : "");
}
@@ -1478,7 +1505,7 @@ base::expected AssetManager2::GetResourceId(
base::expected resid = package->FindEntryByName(type16, entry16);
if (UNLIKELY(IsIOError(resid))) {
return base::unexpected(resid.error());
- }
+ }
if (!resid.has_value() && kAttr16 == type16) {
// Private attributes in libraries (such as the framework) are sometimes encoded
@@ -1504,7 +1531,7 @@ void AssetManager2::RebuildFilterList() {
package.loaded_package_->ForEachTypeSpec([&](const TypeSpec& type_spec, uint8_t type_id) {
FilteredConfigGroup* group = nullptr;
for (const auto& type_entry : type_spec.type_entries) {
- for (auto & config : configurations_) {
+ for (auto& config : configurations_) {
if (type_entry.config.match(config)) {
if (!group) {
group = &package.filtered_configs_.editItemAt(type_id - 1);
@@ -1521,6 +1548,27 @@ void AssetManager2::RebuildFilterList() {
}
}
+bool AssetManager2::IsAnyOverlayConstraintSatisfied(const Idmap_constraints& constraints) const {
+ if (constraints.constraint_count == 0) {
+ // There are no constraints, return true.
+ return true;
+ }
+
+ for (uint32_t i = 0; i < constraints.constraint_count; i++) {
+ auto constraint = constraints.constraint_entries[i];
+ if (constraint.constraint_type == kOverlayConstraintTypeDisplayId &&
+ constraint.constraint_value == display_id_) {
+ return true;
+ }
+ if (constraint.constraint_type == kOverlayConstraintTypeDeviceId &&
+ constraint.constraint_value == device_id_) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
void AssetManager2::InvalidateCaches(uint32_t diff) {
cached_resolved_values_.clear();
diff --git a/libs/androidfw/Idmap.cpp b/libs/androidfw/Idmap.cpp
index 262e7df185b799e3be84b254d91de29fe4134b0e..8d1de1af56d2a9c3c2b290733e3882dca6ed8c67 100644
--- a/libs/androidfw/Idmap.cpp
+++ b/libs/androidfw/Idmap.cpp
@@ -141,12 +141,13 @@ status_t OverlayDynamicRefTable::lookupResourceIdNoRewrite(uint32_t* resId) cons
return DynamicRefTable::lookupResourceId(resId);
}
-IdmapResMap::IdmapResMap(const Idmap_data_header* data_header, Idmap_target_entries entries,
- Idmap_target_inline_entries inline_entries,
+IdmapResMap::IdmapResMap(const Idmap_data_header* data_header, const Idmap_constraints& constraints,
+ Idmap_target_entries entries, Idmap_target_inline_entries inline_entries,
const Idmap_target_entry_inline_value* inline_entry_values,
const ConfigDescription* configs, uint8_t target_assigned_package_id,
const OverlayDynamicRefTable* overlay_ref_table)
: data_header_(data_header),
+ constraints_(constraints),
entries_(entries),
inline_entries_(inline_entries),
inline_entry_values_(inline_entry_values),
@@ -247,7 +248,7 @@ std::optional ReadString(const uint8_t** in_out_data_ptr, size
}
return std::string_view(data, *len);
}
-} // namespace
+} // namespace
// O_PATH is a lightweight way of creating an FD, only exists on Linux
#ifndef O_PATH
@@ -255,7 +256,8 @@ std::optional ReadString(const uint8_t** in_out_data_ptr, size
#endif
LoadedIdmap::LoadedIdmap(const std::string& idmap_path, const Idmap_header* header,
- const Idmap_data_header* data_header, Idmap_target_entries target_entries,
+ const Idmap_data_header* data_header, const Idmap_constraints& constraints,
+ Idmap_target_entries target_entries,
Idmap_target_inline_entries target_inline_entries,
const Idmap_target_entry_inline_value* inline_entry_values,
const ConfigDescription* configs, Idmap_overlay_entries overlay_entries,
@@ -263,6 +265,7 @@ LoadedIdmap::LoadedIdmap(const std::string& idmap_path, const Idmap_header* head
std::string_view overlay_apk_path, std::string_view target_apk_path)
: header_(header),
data_header_(data_header),
+ constraints_(constraints),
target_entries_(target_entries),
target_inline_entries_(target_inline_entries),
inline_entry_values_(inline_entry_values),
@@ -304,9 +307,9 @@ std::unique_ptr LoadedIdmap::Load(StringPiece idmap_path, StringPie
return {};
}
std::optional target_path = ReadString(&data_ptr, &data_size, "target path");
- if (!target_path) {
- return {};
- }
+ if (!target_path) {
+ return {};
+ }
std::optional overlay_path = ReadString(&data_ptr, &data_size, "overlay path");
if (!overlay_path) {
return {};
@@ -316,6 +319,21 @@ std::unique_ptr LoadedIdmap::Load(StringPiece idmap_path, StringPie
return {};
}
+ auto constraint_count = ReadType(&data_ptr, &data_size, "constraint count");
+ if (!constraint_count) {
+ LOG(ERROR) << "idmap doesn't have constraint count";
+ return {};
+ }
+ auto constraint_entries = *constraint_count > 0 ?
+ ReadType(&data_ptr, &data_size, "constraints", dtohl(*constraint_count))
+ : nullptr;
+ if (*constraint_count > 0 && !constraint_entries) {
+ LOG(ERROR) << "no constraint entries in idmap with non-zero constraints";
+ return {};
+ }
+ Idmap_constraints constraints{.constraint_count = *constraint_count,
+ .constraint_entries = constraint_entries};
+
// Parse the idmap data blocks. Currently idmap2 can only generate one data block.
auto data_header = ReadType(&data_ptr, &data_size, "data header");
if (data_header == nullptr) {
@@ -382,7 +400,7 @@ std::unique_ptr LoadedIdmap::Load(StringPiece idmap_path, StringPie
// Can't use make_unique because LoadedIdmap constructor is private.
return std::unique_ptr(
- new LoadedIdmap(std::string(idmap_path), header, data_header, target_entries,
+ new LoadedIdmap(std::string(idmap_path), header, data_header, constraints, target_entries,
target_inline_entries, target_inline_entry_values, configurations,
overlay_entries, std::move(idmap_string_pool), *overlay_path, *target_path));
}
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index a8eb062a2ecee5d3a6d7dd1f71df923c8fb863da..a18c5f5f92f62f9d1809185eed07b7d5aa661df2 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -289,11 +289,11 @@ static bool assertIdmapHeader(const void* idmap, size_t size) {
}
const uint32_t version = htodl(*(reinterpret_cast(idmap) + 1));
- if (version != ResTable::IDMAP_CURRENT_VERSION) {
+ if (version != kIdmapCurrentVersion) {
// We are strict about versions because files with this format are
// auto-generated and don't need backwards compatibility.
ALOGW("idmap: version mismatch in header (is 0x%08x, expected 0x%08x)",
- version, ResTable::IDMAP_CURRENT_VERSION);
+ version, kIdmapCurrentVersion);
return false;
}
return true;
@@ -399,14 +399,18 @@ status_t parseIdmap(const void* idmap, size_t size, uint8_t* outPackageId, Keyed
return UNKNOWN_ERROR;
}
- size -= ResTable::IDMAP_HEADER_SIZE_BYTES;
+ size_t sizeOfHeaderAndConstraints = ResTable::IDMAP_HEADER_SIZE_BYTES +
+ // This accounts for zero constraints, and hence takes only 4 bytes for
+ // the constraints count.
+ ResTable::IDMAP_CONSTRAINTS_COUNT_SIZE_BYTES;
+ size -= sizeOfHeaderAndConstraints;
if (size < sizeof(uint16_t) * 2) {
ALOGE("idmap: too small to contain any mapping");
return UNKNOWN_ERROR;
}
const uint16_t* data = reinterpret_cast(
- reinterpret_cast(idmap) + ResTable::IDMAP_HEADER_SIZE_BYTES);
+ reinterpret_cast(idmap) + sizeOfHeaderAndConstraints);
uint16_t targetPackageId = dtohs(*(data++));
if (targetPackageId == 0 || targetPackageId > 255) {
@@ -7480,7 +7484,7 @@ status_t ResTable::createIdmap(const ResTable& targetResTable,
// write idmap header
uint32_t* data = reinterpret_cast(*outData);
*data++ = htodl(IDMAP_MAGIC); // write: magic
- *data++ = htodl(ResTable::IDMAP_CURRENT_VERSION); // write: version
+ *data++ = htodl(kIdmapCurrentVersion); // write: version
*data++ = htodl(targetCrc); // write: target crc
*data++ = htodl(overlayCrc); // write: overlay crc
@@ -7495,6 +7499,9 @@ status_t ResTable::createIdmap(const ResTable& targetResTable,
}
data += (2 * 256) / sizeof(uint32_t);
+ // write zero constraints count (no constraints)
+ *data++ = htodl(0);
+
// write idmap data header
uint16_t* typeData = reinterpret_cast(data);
*typeData++ = htods(targetPackageStruct->id); // write: target package id
diff --git a/libs/androidfw/include/androidfw/AssetManager2.h b/libs/androidfw/include/androidfw/AssetManager2.h
index 0fdeefa09e2669e94009b20b2b40b8adf3a604b8..a47fe6a7f50d174518be64875b5e9a999d476e4a 100644
--- a/libs/androidfw/include/androidfw/AssetManager2.h
+++ b/libs/androidfw/include/androidfw/AssetManager2.h
@@ -171,6 +171,8 @@ class AssetManager2 {
default_locale_ = default_locale;
}
+ void SetOverlayConstraints(int32_t display_id, int32_t device_id);
+
// Returns all configurations for which there are resources defined, or an I/O error if reading
// resource data failed.
//
@@ -389,6 +391,9 @@ class AssetManager2 {
// The cookie of the overlay assets.
ApkAssetsCookie cookie;
+
+ // Enable/disable status of the overlay based on current constraints of AssetManager.
+ bool enabled;
};
// Represents a logical package, which can be made up of many individual packages. Each package
@@ -457,6 +462,8 @@ class AssetManager2 {
// promoted apk assets when the last operation ends.
void FinishOperation() const;
+ bool IsAnyOverlayConstraintSatisfied(const Idmap_constraints& constraints) const;
+
// The ordered list of ApkAssets to search. These are not owned by the AssetManager, and must
// have a longer lifetime.
// The second pair element is the promoted version of the assets, that is held for the duration
@@ -480,6 +487,9 @@ class AssetManager2 {
// may need to be purged.
ftl::SmallVector configurations_;
+ int32_t display_id_;
+ int32_t device_id_;
+
// Cached set of bags. These are cached because they can inherit keys from parent bags,
// which involves some calculation.
mutable std::unordered_map> cached_bags_;
diff --git a/libs/androidfw/include/androidfw/Idmap.h b/libs/androidfw/include/androidfw/Idmap.h
index 87f3c9df9a91a8149f7ac90d6fb6eaabc0bb2c91..939b62462560bd140abe929d66779041ec2e252d 100644
--- a/libs/androidfw/include/androidfw/Idmap.h
+++ b/libs/androidfw/include/androidfw/Idmap.h
@@ -59,12 +59,25 @@ inline UpToDate fromBool(bool value) {
class LoadedIdmap;
class IdmapResMap;
struct Idmap_header;
+struct Idmap_constraints;
struct Idmap_data_header;
-struct Idmap_target_entry;
struct Idmap_target_entry_inline;
struct Idmap_target_entry_inline_value;
-struct Idmap_overlay_entry;
+// LINT.IfChange
+constexpr int32_t kOverlayConstraintTypeDisplayId = 0;
+constexpr int32_t kOverlayConstraintTypeDeviceId = 1;
+// LINT.ThenChange(../../../../core/java/android/content/om/OverlayConstraint.java)
+
+struct Idmap_constraint {
+ // Constraint type can be kOverlayConstraintTypeDisplayId or kOverlayConstraintTypeDeviceId
+ const uint32_t constraint_type;
+ const uint32_t constraint_value;
+};
+struct Idmap_constraints {
+ const uint32_t constraint_count = 0;
+ const Idmap_constraint* constraint_entries = nullptr;
+};
struct Idmap_target_entries {
const uint32_t* target_id = nullptr;
const uint32_t* overlay_id = nullptr;
@@ -168,14 +181,19 @@ class IdmapResMap {
return overlay_ref_table_;
}
+ inline Idmap_constraints GetConstraints() const {
+ return constraints_;
+ }
+
private:
- explicit IdmapResMap(const Idmap_data_header* data_header, Idmap_target_entries entries,
- Idmap_target_inline_entries inline_entries,
+ explicit IdmapResMap(const Idmap_data_header* data_header, const Idmap_constraints& constraints,
+ Idmap_target_entries entries, Idmap_target_inline_entries inline_entries,
const Idmap_target_entry_inline_value* inline_entry_values,
const ConfigDescription* configs, uint8_t target_assigned_package_id,
const OverlayDynamicRefTable* overlay_ref_table);
const Idmap_data_header* data_header_;
+ Idmap_constraints constraints_;
Idmap_target_entries entries_;
Idmap_target_inline_entries inline_entries_;
const Idmap_target_entry_inline_value* inline_entry_values_;
@@ -209,8 +227,9 @@ class LoadedIdmap {
// Returns a mapping from target resource ids to overlay values.
IdmapResMap GetTargetResourcesMap(uint8_t target_assigned_package_id,
const OverlayDynamicRefTable* overlay_ref_table) const {
- return IdmapResMap(data_header_, target_entries_, target_inline_entries_, inline_entry_values_,
- configurations_, target_assigned_package_id, overlay_ref_table);
+ return IdmapResMap(data_header_, constraints_, target_entries_, target_inline_entries_,
+ inline_entry_values_, configurations_, target_assigned_package_id,
+ overlay_ref_table);
}
// Returns a dynamic reference table for a loaded overlay package.
@@ -222,12 +241,17 @@ class LoadedIdmap {
// LoadedIdmap.
UpToDate IsUpToDate() const;
+ inline const Idmap_constraints GetConstraints() const {
+ return constraints_;
+ }
+
protected:
// Exposed as protected so that tests can subclass and mock this class out.
LoadedIdmap() = default;
const Idmap_header* header_;
const Idmap_data_header* data_header_;
+ Idmap_constraints constraints_;
Idmap_target_entries target_entries_;
Idmap_target_inline_entries target_inline_entries_;
const Idmap_target_entry_inline_value* inline_entry_values_;
@@ -244,7 +268,8 @@ class LoadedIdmap {
DISALLOW_COPY_AND_ASSIGN(LoadedIdmap);
explicit LoadedIdmap(const std::string& idmap_path, const Idmap_header* header,
- const Idmap_data_header* data_header, Idmap_target_entries target_entries,
+ const Idmap_data_header* data_header, const Idmap_constraints& constraints,
+ Idmap_target_entries target_entries,
Idmap_target_inline_entries target_inline_entries,
const Idmap_target_entry_inline_value* inline_entry_values_,
const ConfigDescription* configs, Idmap_overlay_entries overlay_entries,
diff --git a/libs/androidfw/include/androidfw/ResourceTypes.h b/libs/androidfw/include/androidfw/ResourceTypes.h
index 819fe4b38c87e3b76a2962fd2c142327b20c58b1..30594dcfa9394642bdb1ea9c1522dd95cfe42670 100644
--- a/libs/androidfw/include/androidfw/ResourceTypes.h
+++ b/libs/androidfw/include/androidfw/ResourceTypes.h
@@ -50,7 +50,7 @@ namespace android {
constexpr const bool kDeviceEndiannessSame = dtohs(0x1001) == 0x1001;
constexpr const uint32_t kIdmapMagic = 0x504D4449u;
-constexpr const uint32_t kIdmapCurrentVersion = 0x0000000Au;
+constexpr const uint32_t kIdmapCurrentVersion = 0x0000000Bu;
// This must never change.
constexpr const uint32_t kFabricatedOverlayMagic = 0x4f525246; // FRRO (big endian)
@@ -2303,7 +2303,7 @@ public:
void** outData, size_t* outSize) const;
static const size_t IDMAP_HEADER_SIZE_BYTES = 4 * sizeof(uint32_t) + 2 * 256;
- static const uint32_t IDMAP_CURRENT_VERSION = 0x00000001;
+ static const size_t IDMAP_CONSTRAINTS_COUNT_SIZE_BYTES = sizeof(uint32_t);
// Retrieve idmap meta-data.
//
diff --git a/libs/androidfw/tests/data/overlay/overlay.idmap b/libs/androidfw/tests/data/overlay/overlay.idmap
index 7e4b261cf10945aa2c7afd89e600e25ba6ea8ffb..6bd57c8d517ce3a0d140009f9787f32f838ed97f 100644
Binary files a/libs/androidfw/tests/data/overlay/overlay.idmap and b/libs/androidfw/tests/data/overlay/overlay.idmap differ
diff --git a/libs/hostgraphics/Fence.cpp b/libs/hostgraphics/Fence.cpp
index 4383bf02a00e5265ba437c9fff8ef41114191704..938a9384768db2cefbe34c749a2585bb209d9ed2 100644
--- a/libs/hostgraphics/Fence.cpp
+++ b/libs/hostgraphics/Fence.cpp
@@ -18,6 +18,6 @@
namespace android {
-const sp Fence::NO_FENCE = sp(new Fence);
+const sp Fence::NO_FENCE = sp::make();
} // namespace android
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp
index bb2a53bc04d6bac2ad972f023bdd6e7fe3966390..38ac8ab7135e3f23be011b9c770d194a2c3c043c 100644
--- a/libs/hwui/Android.bp
+++ b/libs/hwui/Android.bp
@@ -232,6 +232,14 @@ java_sdk_library {
unsafe_ignore_missing_latest_api: true,
}
+filegroup {
+ name: "framework-graphics-ravenwood-policies",
+ srcs: [
+ "framework-graphics-ravenwood-policies.txt",
+ ],
+ visibility: ["//frameworks/base/ravenwood"],
+}
+
filegroup {
name: "framework-graphics-srcs",
srcs: [
@@ -461,6 +469,10 @@ cc_defaults {
},
linux: {
srcs: ["platform/linux/utils/SharedLib.cpp"],
+ shared_libs: [
+ "libbinder",
+ "libbinder_ndk",
+ ],
},
darwin: {
srcs: ["platform/darwin/utils/SharedLib.cpp"],
diff --git a/libs/hwui/framework-graphics-ravenwood-policies.txt b/libs/hwui/framework-graphics-ravenwood-policies.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7296225ccfe8bd5f807a5d6bb453d223a896592d
--- /dev/null
+++ b/libs/hwui/framework-graphics-ravenwood-policies.txt
@@ -0,0 +1 @@
+class android.graphics.ColorMatrix keepclass
diff --git a/libs/hwui/jni/Bitmap.cpp b/libs/hwui/jni/Bitmap.cpp
index cfde0b28c0d58ccc0c22e7086f6ecb485e509a8f..27d4ac7cef4b2ffce99543b481000e8f757120e1 100644
--- a/libs/hwui/jni/Bitmap.cpp
+++ b/libs/hwui/jni/Bitmap.cpp
@@ -613,7 +613,7 @@ static void Bitmap_setHasMipMap(JNIEnv* env, jobject, jlong bitmapHandle,
///////////////////////////////////////////////////////////////////////////////
// TODO: Move somewhere else
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
#define ON_ERROR_RETURN(X) \
if ((error = (X)) != STATUS_OK) return error
@@ -717,7 +717,7 @@ static binder_status_t writeBlob(AParcel* parcel, uint64_t bitmapId, const SkBit
#undef ON_ERROR_RETURN
-#endif // __ANDROID__ // Layoutlib does not support parcel
+#endif // __linux__ // Only Linux support parcel
// This is the maximum possible size because the SkColorSpace must be
// representable (and therefore serializable) using a matrix and numerical
@@ -733,7 +733,7 @@ static bool validateImageInfo(const SkImageInfo& info, int32_t rowBytes) {
}
static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) {
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
if (parcel == NULL) {
jniThrowNullPointerException(env, "parcel cannot be null");
return NULL;
@@ -836,14 +836,14 @@ static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) {
return createBitmap(env, nativeBitmap.release(), getPremulBitmapCreateFlags(isMutable), nullptr,
nullptr, density, sourceId);
#else
- jniThrowRuntimeException(env, "Cannot use parcels outside of Android");
+ jniThrowRuntimeException(env, "Cannot use parcels outside of Linux");
return NULL;
#endif
}
static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject, jlong bitmapHandle, jint density,
jobject parcel) {
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
if (parcel == NULL) {
ALOGD("------- writeToParcel null parcel\n");
return JNI_FALSE;
@@ -901,7 +901,7 @@ static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject, jlong bitmapHandle, j
}
return JNI_TRUE;
#else
- doThrowRE(env, "Cannot use parcels outside of Android");
+ doThrowRE(env, "Cannot use parcels outside of Linux");
return JNI_FALSE;
#endif
}
diff --git a/libs/hwui/jni/Region.cpp b/libs/hwui/jni/Region.cpp
index 1e064b8205916c2d58726969354a82d04fe2e388..76986eeb079dd9646f3d5200dc1395ba757f885b 100644
--- a/libs/hwui/jni/Region.cpp
+++ b/libs/hwui/jni/Region.cpp
@@ -18,7 +18,7 @@
#include "SkPath.h"
#include "GraphicsJNI.h"
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
#include
#include
#include
@@ -202,7 +202,7 @@ static jstring Region_toString(JNIEnv* env, jobject clazz, jlong regionHandle) {
static jlong Region_createFromParcel(JNIEnv* env, jobject clazz, jobject parcel)
{
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
if (parcel == nullptr) {
return 0;
}
@@ -230,7 +230,7 @@ static jlong Region_createFromParcel(JNIEnv* env, jobject clazz, jobject parcel)
static jboolean Region_writeToParcel(JNIEnv* env, jobject clazz, jlong regionHandle, jobject parcel)
{
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
const SkRegion* region = reinterpret_cast(regionHandle);
if (parcel == nullptr) {
return JNI_FALSE;
diff --git a/libs/hwui/jni/ScopedParcel.cpp b/libs/hwui/jni/ScopedParcel.cpp
index 95e4e01d8df850e4a3365a195e6d69c85215c4d4..52cd988344b0eef40f6e4d72a71f1d98cf2e560d 100644
--- a/libs/hwui/jni/ScopedParcel.cpp
+++ b/libs/hwui/jni/ScopedParcel.cpp
@@ -15,7 +15,7 @@
*/
#include "ScopedParcel.h"
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
using namespace android;
@@ -92,4 +92,4 @@ void ScopedParcel::writeData(const std::optional>& optData) {
AParcel_writeByteArray(mParcel, nullptr, -1);
}
}
-#endif // __ANDROID__ // Layoutlib does not support parcel
+#endif // __linux__ // Only Linux support parcel
diff --git a/libs/hwui/jni/ScopedParcel.h b/libs/hwui/jni/ScopedParcel.h
index f2f138fda43cb8530adbfc07d5bb6a7116e14c58..f2b793a354d75e488e4b3563a8002b6d93728abe 100644
--- a/libs/hwui/jni/ScopedParcel.h
+++ b/libs/hwui/jni/ScopedParcel.h
@@ -15,7 +15,7 @@
*/
#include "SkData.h"
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
#include
#include
#include
@@ -64,4 +64,4 @@ enum class BlobType : int32_t {
ASHMEM,
};
-#endif // __ANDROID__ // Layoutlib does not support parcel
\ No newline at end of file
+#endif // __linux__ // Only Linux support parcel
diff --git a/libs/hwui/jni/graphics_jni_helpers.h b/libs/hwui/jni/graphics_jni_helpers.h
index 91db134af18f9f75b61752ae98d449845e323599..ff26ec1771bd062aabd021d10ec117e1f127b084 100644
--- a/libs/hwui/jni/graphics_jni_helpers.h
+++ b/libs/hwui/jni/graphics_jni_helpers.h
@@ -21,6 +21,7 @@
#include
#include
#include
+#include
#include
// Host targets (layoutlib) do not differentiate between regular and critical native methods,
diff --git a/media/java/android/media/AudioDeviceVolumeManager.java b/media/java/android/media/AudioDeviceVolumeManager.java
index 892a8612d74afa476639ab943a0c41031c2a67b0..56d3df3b2555c56fe1e10bd2698f4d52227fad37 100644
--- a/media/java/android/media/AudioDeviceVolumeManager.java
+++ b/media/java/android/media/AudioDeviceVolumeManager.java
@@ -16,6 +16,9 @@
package android.media;
+import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;
+import static android.media.audio.Flags.FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT;
+
import static com.android.media.flags.Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL;
import android.Manifest;
@@ -91,6 +94,8 @@ public class AudioDeviceVolumeManager {
* @see #setDeviceAbsoluteVolumeBehavior(AudioDeviceAttributes, VolumeInfo, boolean, Executor,
* OnAudioDeviceVolumeChangedListener)
*/
+ @SystemApi(client = MODULE_LIBRARIES)
+ @FlaggedApi(FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT)
public interface OnAudioDeviceVolumeChangedListener {
/**
* Called the device for the given audio device has changed.
@@ -197,6 +202,30 @@ public class AudioDeviceVolumeManager {
}
}
+ /**
+ * @hide
+ * Configures a device to use absolute volume model, and registers a listener for receiving
+ * volume updates to apply on that device
+ * @param device the audio device set to absolute volume mode
+ * @param volume the type of volume this device responds to
+ * @param executor the Executor used for receiving volume updates through the listener
+ * @param vclistener the callback for volume updates
+ */
+ @SystemApi(client = MODULE_LIBRARIES)
+ @RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
+ android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED,
+ android.Manifest.permission.BLUETOOTH_PRIVILEGED,
+ android.Manifest.permission.BLUETOOTH_STACK})
+ @FlaggedApi(FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT)
+ public void setDeviceAbsoluteVolumeBehavior(
+ @NonNull AudioDeviceAttributes device,
+ @NonNull VolumeInfo volume,
+ @NonNull @CallbackExecutor Executor executor,
+ @NonNull OnAudioDeviceVolumeChangedListener vclistener) {
+ setDeviceAbsoluteVolumeBehavior(device, volume, /*handlesVolumeAdjustment=*/false, executor,
+ vclistener);
+ }
+
/**
* @hide
* Configures a device to use absolute volume model, and registers a listener for receiving
@@ -210,7 +239,7 @@ public class AudioDeviceVolumeManager {
* @param vclistener the callback for volume updates
*/
@RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
- android.Manifest.permission.BLUETOOTH_PRIVILEGED })
+ android.Manifest.permission.BLUETOOTH_PRIVILEGED})
public void setDeviceAbsoluteVolumeBehavior(
@NonNull AudioDeviceAttributes device,
@NonNull VolumeInfo volume,
@@ -223,6 +252,30 @@ public class AudioDeviceVolumeManager {
vclistener);
}
+ /**
+ * @hide
+ * Configures a device to use absolute volume model applied to different volume types, and
+ * registers a listener for receiving volume updates to apply on that device
+ * @param device the audio device set to absolute multi-volume mode
+ * @param volumes the list of volumes the given device responds to
+ * @param executor the Executor used for receiving volume updates through the listener
+ * @param vclistener the callback for volume updates
+ */
+ @SystemApi(client = MODULE_LIBRARIES)
+ @RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
+ android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED,
+ android.Manifest.permission.BLUETOOTH_PRIVILEGED,
+ android.Manifest.permission.BLUETOOTH_STACK})
+ @FlaggedApi(FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT)
+ public void setDeviceAbsoluteMultiVolumeBehavior(
+ @NonNull AudioDeviceAttributes device,
+ @NonNull List volumes,
+ @NonNull @CallbackExecutor Executor executor,
+ @NonNull OnAudioDeviceVolumeChangedListener vclistener) {
+ setDeviceAbsoluteMultiVolumeBehavior(device, volumes, /*handlesVolumeAdjustment=*/false,
+ executor, vclistener);
+ }
+
/**
* @hide
* Configures a device to use absolute volume model applied to different volume types, and
@@ -236,7 +289,7 @@ public class AudioDeviceVolumeManager {
* @param vclistener the callback for volume updates
*/
@RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
- android.Manifest.permission.BLUETOOTH_PRIVILEGED })
+ android.Manifest.permission.BLUETOOTH_PRIVILEGED})
public void setDeviceAbsoluteMultiVolumeBehavior(
@NonNull AudioDeviceAttributes device,
@NonNull List volumes,
diff --git a/packages/InputDevices/res/values-af/strings.xml b/packages/InputDevices/res/values-af/strings.xml
index 273cfa003c08ab54d94cb6fff6cbe1e7ce7d8d19..0fc0c0505ad41bf44dd1261a0d2b4448a0a88342 100644
--- a/packages/InputDevices/res/values-af/strings.xml
+++ b/packages/InputDevices/res/values-af/strings.xml
@@ -57,6 +57,5 @@
"Serwies (Cyrillies)""Montenegryns (Cyrillies)""Roemeens"
-
-
+ "Engels (Indië)"
diff --git a/packages/InputDevices/res/values-am/strings.xml b/packages/InputDevices/res/values-am/strings.xml
index 859325387dff6be0ba61397ac15cb7ed65e429a0..722d949f7d8f0e9790fb6d747b93d545a72514c1 100644
--- a/packages/InputDevices/res/values-am/strings.xml
+++ b/packages/InputDevices/res/values-am/strings.xml
@@ -57,6 +57,5 @@
"ሰርቢያኛ (ሲሪሊክኛ)""ሞንቴኔግሮኛ (ሲሪሊክኛ)""ሮማኒያኛ"
-
-
+ "እንግሊዝኛ (ሕንድ)"
diff --git a/packages/InputDevices/res/values-as/strings.xml b/packages/InputDevices/res/values-as/strings.xml
index e6540e4860552ab96ece84a955ed8238dd7c7583..acff29d4057fdf415af281e01ea279de26444044 100644
--- a/packages/InputDevices/res/values-as/strings.xml
+++ b/packages/InputDevices/res/values-as/strings.xml
@@ -57,6 +57,5 @@
"ছাৰ্বিয়ান (চিৰিলিক)""মণ্টেনেগ্ৰিণ (চিৰিলিক)""ৰোমানিয়ান"
-
-
+ "ইংৰাজী (ভাৰত)"
diff --git a/packages/InputDevices/res/values-az/strings.xml b/packages/InputDevices/res/values-az/strings.xml
index aa93a92b994eb8744b5d9ca5239653eac52c05f3..c0fe764ac161cec27dd9180fa3f00dbd3b44d7da 100644
--- a/packages/InputDevices/res/values-az/strings.xml
+++ b/packages/InputDevices/res/values-az/strings.xml
@@ -57,6 +57,5 @@
"Serb dili (Kiril)""Monteneqro dili (Kiril)""Rumın dili"
-
-
+ "İngilis dili (Hindistan)"
diff --git a/packages/InputDevices/res/values-bg/strings.xml b/packages/InputDevices/res/values-bg/strings.xml
index ceb7e376280f71c70d8325b2a4b48ee336cdf828..78b93dad963504ac227983b07de9715e3858256b 100644
--- a/packages/InputDevices/res/values-bg/strings.xml
+++ b/packages/InputDevices/res/values-bg/strings.xml
@@ -57,6 +57,5 @@
"сръбски (кирилица)""черногорски (кирилица)""румънски"
-
-
+ "английски (Индия)"
diff --git a/packages/InputDevices/res/values-bn/strings.xml b/packages/InputDevices/res/values-bn/strings.xml
index 369a8035dab8d7fde9ed86868eb472e7abdf84a5..da529e1fffadd80471ab719392caf7dd0d516ec1 100644
--- a/packages/InputDevices/res/values-bn/strings.xml
+++ b/packages/InputDevices/res/values-bn/strings.xml
@@ -57,6 +57,5 @@
"সার্বিয়ান (সিরিলিক)""মন্টেনেগ্রিন (সিরিলিক)""রোমানিয়ান"
-
-
+ "ইংরাজি (ভারত)"
diff --git a/packages/InputDevices/res/values-ca/strings.xml b/packages/InputDevices/res/values-ca/strings.xml
index bbf39467284f29824e0dee1420835a461f2a7f73..8b05b49b995ccb88b3c6789027129e5deb21f262 100644
--- a/packages/InputDevices/res/values-ca/strings.xml
+++ b/packages/InputDevices/res/values-ca/strings.xml
@@ -57,6 +57,5 @@
"Serbi (ciríl·lic)""Montenegrí (ciríl·lic)""Romanès"
-
-
+ "Anglès (Índia)"
diff --git a/packages/InputDevices/res/values-da/strings.xml b/packages/InputDevices/res/values-da/strings.xml
index 00a2a62091af5dd756f736315bcb872476b6038b..a9925add45f14f86f7613b7b55ffe29cf30a7a0c 100644
--- a/packages/InputDevices/res/values-da/strings.xml
+++ b/packages/InputDevices/res/values-da/strings.xml
@@ -57,6 +57,5 @@
"Serbisk (kyrillisk)""Montenegrinsk (kyrillisk)""Rumænsk"
-
-
+ "Engelsk (Indien)"
diff --git a/packages/InputDevices/res/values-de/strings.xml b/packages/InputDevices/res/values-de/strings.xml
index 717c5975a75f5f0bf9e0487c3c41dfba160aa006..9bd23eba8de37ebda7ddf49c22a51f36f3b5ef32 100644
--- a/packages/InputDevices/res/values-de/strings.xml
+++ b/packages/InputDevices/res/values-de/strings.xml
@@ -57,6 +57,5 @@
"Serbisch (kyrillisch)""Montenegrinisch (kyrillisch)""Rumänisch"
-
-
+ "Englisch (Indien)"
diff --git a/packages/InputDevices/res/values-el/strings.xml b/packages/InputDevices/res/values-el/strings.xml
index 02b7f1f8a9fd82fdce56f96758a7bb026d62b917..cf49339b7ef2671755265e84f6c3051f047e81f5 100644
--- a/packages/InputDevices/res/values-el/strings.xml
+++ b/packages/InputDevices/res/values-el/strings.xml
@@ -57,6 +57,5 @@
"Σερβικά (Κυριλλικά)""Μαυροβουνιακά (Κυριλλικά)""Ρουμανικά"
-
-
+ "Αγγλικά (Ινδίας)"
diff --git a/packages/InputDevices/res/values-en-rAU/strings.xml b/packages/InputDevices/res/values-en-rAU/strings.xml
index 1cdcc552d5eef8c6dc65b87d1d3e16ae0fdc8a5f..3b8c50da6f117a806104a119195ce187b37e5df2 100644
--- a/packages/InputDevices/res/values-en-rAU/strings.xml
+++ b/packages/InputDevices/res/values-en-rAU/strings.xml
@@ -57,6 +57,5 @@
"Serbian (Cyrillic)""Montenegrin (Cyrillic)""Romanian"
-
-
+ "English (India)"
diff --git a/packages/InputDevices/res/values-en-rGB/strings.xml b/packages/InputDevices/res/values-en-rGB/strings.xml
index 1cdcc552d5eef8c6dc65b87d1d3e16ae0fdc8a5f..3b8c50da6f117a806104a119195ce187b37e5df2 100644
--- a/packages/InputDevices/res/values-en-rGB/strings.xml
+++ b/packages/InputDevices/res/values-en-rGB/strings.xml
@@ -57,6 +57,5 @@
"Serbian (Cyrillic)""Montenegrin (Cyrillic)""Romanian"
-
-
+ "English (India)"
diff --git a/packages/InputDevices/res/values-en-rIN/strings.xml b/packages/InputDevices/res/values-en-rIN/strings.xml
index 1cdcc552d5eef8c6dc65b87d1d3e16ae0fdc8a5f..3b8c50da6f117a806104a119195ce187b37e5df2 100644
--- a/packages/InputDevices/res/values-en-rIN/strings.xml
+++ b/packages/InputDevices/res/values-en-rIN/strings.xml
@@ -57,6 +57,5 @@
"Serbian (Cyrillic)""Montenegrin (Cyrillic)""Romanian"
-
-
+ "English (India)"
diff --git a/packages/InputDevices/res/values-es-rUS/strings.xml b/packages/InputDevices/res/values-es-rUS/strings.xml
index edd76575215e8c56a167be1d4f3b6451b1ab6e59..48ccb8de8d233a52389ab2a5c9075dfb0196cb70 100644
--- a/packages/InputDevices/res/values-es-rUS/strings.xml
+++ b/packages/InputDevices/res/values-es-rUS/strings.xml
@@ -57,6 +57,5 @@
"Serbio (cirílico)""Montenegrino (cirílico)""Rumano"
-
-
+ "Inglés (India)"
diff --git a/packages/InputDevices/res/values-es/strings.xml b/packages/InputDevices/res/values-es/strings.xml
index b522845ebacb8ebb776f218cd6ce78e55e9f6837..ef7362515f9aa4d515075fe73a8f3c157bdfcff9 100644
--- a/packages/InputDevices/res/values-es/strings.xml
+++ b/packages/InputDevices/res/values-es/strings.xml
@@ -57,6 +57,5 @@
"Serbio (cirílico)""Montenegrino (cirílico)""Rumano"
-
-
+ "Inglés (India)"
diff --git a/packages/InputDevices/res/values-et/strings.xml b/packages/InputDevices/res/values-et/strings.xml
index 82670ddd339e7071fdd2a3d5cc340953e9d3f785..22891976a02eab22946cfe1764369b3b450dcfc0 100644
--- a/packages/InputDevices/res/values-et/strings.xml
+++ b/packages/InputDevices/res/values-et/strings.xml
@@ -57,6 +57,5 @@
"serbia (kirillitsa)""montenegro (kirillitsa)""rumeenia"
-
-
+ "inglise (India)"
diff --git a/packages/InputDevices/res/values-eu/strings.xml b/packages/InputDevices/res/values-eu/strings.xml
index b777b8c21ad9d55ba0f0279c49ee72b597810db9..0fe3b5756b3053479c6603cbc2f9630b44328663 100644
--- a/packages/InputDevices/res/values-eu/strings.xml
+++ b/packages/InputDevices/res/values-eu/strings.xml
@@ -57,6 +57,5 @@
"Serbiarra (zirilikoa)""Montenegroarra (zirilikoa)""Errumaniera"
-
-
+ "Ingelesa (India)"
diff --git a/packages/InputDevices/res/values-fa/strings.xml b/packages/InputDevices/res/values-fa/strings.xml
index 9ec7a34193bcf029567df90c14940493321ffef5..16b9ad4c1880bac72410ca21a197096d49b43dc2 100644
--- a/packages/InputDevices/res/values-fa/strings.xml
+++ b/packages/InputDevices/res/values-fa/strings.xml
@@ -57,6 +57,5 @@
"صربی (سیریلیک)""مونتهنگرویی (سیریلیک)""رومانیایی"
-
-
+ "انگلیسی (هند)"
diff --git a/packages/InputDevices/res/values-fi/strings.xml b/packages/InputDevices/res/values-fi/strings.xml
index 6825ea9396bf821863959a510bbaa926a8bb7fcc..0d8bd06eeb0df0816a2bbebcbfe0d35b834329fc 100644
--- a/packages/InputDevices/res/values-fi/strings.xml
+++ b/packages/InputDevices/res/values-fi/strings.xml
@@ -57,6 +57,5 @@
"serbia (kyrillinen)""montenegro (kyrillinen)""romania"
-
-
+ "englanti (Intia)"
diff --git a/packages/InputDevices/res/values-fr/strings.xml b/packages/InputDevices/res/values-fr/strings.xml
index fb4d1442d71f9be1a1b0d85d910cdfa4fc3ca6b8..bdb0d0285502993464be34c0a65e928e34625744 100644
--- a/packages/InputDevices/res/values-fr/strings.xml
+++ b/packages/InputDevices/res/values-fr/strings.xml
@@ -57,6 +57,5 @@
"Serbe (cyrillique)""Monténégrin (cyrillique)""Roumain"
-
-
+ "Anglais (Inde)"
diff --git a/packages/InputDevices/res/values-gl/strings.xml b/packages/InputDevices/res/values-gl/strings.xml
index 925adf9466f9f1fe8ab1a11402ea632f80ef1eaa..c62abba0f1d0b58ed03ead3f53d3f9f5eb06a307 100644
--- a/packages/InputDevices/res/values-gl/strings.xml
+++ b/packages/InputDevices/res/values-gl/strings.xml
@@ -57,6 +57,5 @@
"Serbio (cirílico)""Montenegrino (cirílico)""Romanés"
-
-
+ "Inglés (India)"
diff --git a/packages/InputDevices/res/values-hi/strings.xml b/packages/InputDevices/res/values-hi/strings.xml
index 175197905af19b7d6fae0779bdefdb25610dce43..bf3bd9a36437de104bd8a87d966d0786314b76cb 100644
--- a/packages/InputDevices/res/values-hi/strings.xml
+++ b/packages/InputDevices/res/values-hi/strings.xml
@@ -57,6 +57,5 @@
"सर्बियन (सिरिलिक)""मोंटेनेग्रिन (सिरिलिक)""रोमेनियन"
-
-
+ "अंग्रेज़ी (भारत)"
diff --git a/packages/InputDevices/res/values-hu/strings.xml b/packages/InputDevices/res/values-hu/strings.xml
index c83ba841653b26da06df71f339b3a4c67398a8e5..6b4259a358116c136f76972430f1fb6d802b3870 100644
--- a/packages/InputDevices/res/values-hu/strings.xml
+++ b/packages/InputDevices/res/values-hu/strings.xml
@@ -57,6 +57,5 @@
"szerb (cirill betűs)""montenegrói (cirill betűs)""román"
-
-
+ "angol (India)"
diff --git a/packages/InputDevices/res/values-hy/strings.xml b/packages/InputDevices/res/values-hy/strings.xml
index 718f8d1fede13d59f7205327f69b98e702af7ea7..43153fab95eb4d471e0f0b1e2a7d1ced5bac63c4 100644
--- a/packages/InputDevices/res/values-hy/strings.xml
+++ b/packages/InputDevices/res/values-hy/strings.xml
@@ -57,6 +57,5 @@
"սերբերեն (կյուրեղատառ)""չեռնոգորերեն (կյուրեղատառ)""Ռումիներեն"
-
-
+ "անգլերեն (Հնդկաստան)"
diff --git a/packages/InputDevices/res/values-in/strings.xml b/packages/InputDevices/res/values-in/strings.xml
index ba2e5bd38b9a20933b849384a5de71c558c76a13..1aa1b2bb1e8aae0831277a1a7452798dbba9f2e1 100644
--- a/packages/InputDevices/res/values-in/strings.xml
+++ b/packages/InputDevices/res/values-in/strings.xml
@@ -57,6 +57,5 @@
"Serbia (Sirilik)""Montenegro (Sirilik)""Rumania"
-
-
+ "Inggris (India)"
diff --git a/packages/InputDevices/res/values-is/strings.xml b/packages/InputDevices/res/values-is/strings.xml
index 842119d0ee543ca24065e5a1002430d397b93d06..9547882f65baab10313a1531eb3321a8f5726e81 100644
--- a/packages/InputDevices/res/values-is/strings.xml
+++ b/packages/InputDevices/res/values-is/strings.xml
@@ -57,6 +57,5 @@
"Serbneska (kyrillískt)""Svartfellska (kyrillískt)""rúmenska"
-
-
+ "Enska (Indland)"
diff --git a/packages/InputDevices/res/values-it/strings.xml b/packages/InputDevices/res/values-it/strings.xml
index f7f76e0a64be773f256a0dd10c093e5e47f25d81..090397de169ca8d4d0597587fd22b36f17d6c727 100644
--- a/packages/InputDevices/res/values-it/strings.xml
+++ b/packages/InputDevices/res/values-it/strings.xml
@@ -57,6 +57,5 @@
"Serbo (cirillico)""Montenegrino (cirillico)""Rumeno"
-
-
+ "Inglese (India)"
diff --git a/packages/InputDevices/res/values-iw/strings.xml b/packages/InputDevices/res/values-iw/strings.xml
index 0df5d20e351b52854edc6b2c23b352e3160342c3..b0faa6ef0fa2f8373c633cb3b558b65f58c5dc17 100644
--- a/packages/InputDevices/res/values-iw/strings.xml
+++ b/packages/InputDevices/res/values-iw/strings.xml
@@ -57,6 +57,5 @@
"סרבית (אותיות קיריליות)""מונטנגרית (אותיות קיריליות)""רומנית"
-
-
+ "אנגלית (הודו)"
diff --git a/packages/InputDevices/res/values-kk/strings.xml b/packages/InputDevices/res/values-kk/strings.xml
index 60ad838930a72791f398dc4b4f4fc80061a6ec04..05f9243e89a61ee86eb34da8cfe8d9834b5cc55c 100644
--- a/packages/InputDevices/res/values-kk/strings.xml
+++ b/packages/InputDevices/res/values-kk/strings.xml
@@ -57,6 +57,5 @@
"Сербия (кириллица)""Черногория (кириллица)""Румын"
-
-
+ "Ағылшын (Үндістан)"
diff --git a/packages/InputDevices/res/values-km/strings.xml b/packages/InputDevices/res/values-km/strings.xml
index 936c925ab89b8af7bc28123e41d514042fb135ed..03a3a439d3334dc190be3f31316881263a818087 100644
--- a/packages/InputDevices/res/values-km/strings.xml
+++ b/packages/InputDevices/res/values-km/strings.xml
@@ -57,6 +57,5 @@
"សែប៊ី (ស៊ីរីលីក)""ម៉ុងតេណេហ្គ្រោ (ស៊ីរីលីក)""រ៉ូម៉ានី"
-
-
+ "អង់គ្លេស (ឥណ្ឌា)"
diff --git a/packages/InputDevices/res/values-kn/strings.xml b/packages/InputDevices/res/values-kn/strings.xml
index 24539519f1555fba467ae0d05f7e602f8584e24e..f4f4fa4aeaf714ee459e3490f7d568f69baf1fc7 100644
--- a/packages/InputDevices/res/values-kn/strings.xml
+++ b/packages/InputDevices/res/values-kn/strings.xml
@@ -57,6 +57,5 @@
"ಸೆರ್ಬಿಯನ್ (ಸಿರಿಲಿಕ್)""ಮೊಂಟೆನೆಗ್ರಿನ್ (ಸಿರಿಲಿಕ್)""ರೊಮೇನಿಯನ್"
-
-
+ "ಇಂಗ್ಲಿಷ್ (ಭಾರತ)"
diff --git a/packages/InputDevices/res/values-ky/strings.xml b/packages/InputDevices/res/values-ky/strings.xml
index f6d018ec7f01ab20928ac1a4b8e9d662a5417a8b..2222900b4c3b024a986d6bc08494ac90211f322e 100644
--- a/packages/InputDevices/res/values-ky/strings.xml
+++ b/packages/InputDevices/res/values-ky/strings.xml
@@ -57,6 +57,5 @@
"Сербче (Кирилл)""Черногориялыкча (Кирилл)""Румынча"
-
-
+ "Англисче (Индия)"
diff --git a/packages/InputDevices/res/values-lo/strings.xml b/packages/InputDevices/res/values-lo/strings.xml
index 61f8f71cf073bcc69008e20c80896a683f98a54e..44380b0ba76038c6291c0fef45c77fefe1b137ea 100644
--- a/packages/InputDevices/res/values-lo/strings.xml
+++ b/packages/InputDevices/res/values-lo/strings.xml
@@ -57,6 +57,5 @@
"ເຊີບຽນ (ຊີຣິວລິກ)""ມອນເທເນກຣິນ (ຊີຣິວລິກ)""ໂຣມານຽນ"
-
-
+ "ອັງກິດ (ອິນເດຍ)"
diff --git a/packages/InputDevices/res/values-lv/strings.xml b/packages/InputDevices/res/values-lv/strings.xml
index cc2c94c1811fb2be8f04e89d73ecbfd9f1b2b0d5..3a55b6af7037a964732f3b073e98066bcf653c12 100644
--- a/packages/InputDevices/res/values-lv/strings.xml
+++ b/packages/InputDevices/res/values-lv/strings.xml
@@ -57,6 +57,5 @@
"Serbu (kirilica)""Melnkalniešu (kirilica)""Rumāņu"
-
-
+ "Angļu (Indija)"
diff --git a/packages/InputDevices/res/values-mk/strings.xml b/packages/InputDevices/res/values-mk/strings.xml
index 60981d65a4849eb6879628a0889c43b7bc17f414..351ac947c491fe65a11fe575ad1ecffdd630892d 100644
--- a/packages/InputDevices/res/values-mk/strings.xml
+++ b/packages/InputDevices/res/values-mk/strings.xml
@@ -57,6 +57,5 @@
"српски (кирилица)""црногорски (кирилица)""романски"
-
-
+ "англиски (Индија)"
diff --git a/packages/InputDevices/res/values-ml/strings.xml b/packages/InputDevices/res/values-ml/strings.xml
index 8064c74c7b61405dc3065635c8f3faf2ba981aec..ed6cb8b70c967d05a8b8b4b09ceeb0ecf4688de0 100644
--- a/packages/InputDevices/res/values-ml/strings.xml
+++ b/packages/InputDevices/res/values-ml/strings.xml
@@ -57,6 +57,5 @@
"സെർബിയൻ (സിറിലിക്)""മോണ്ടിനെഗ്രിൻ (സിറിലിക്)""റൊമേനിയൻ"
-
-
+ "ഇംഗ്ലീഷ് (ഇന്ത്യ)"
diff --git a/packages/InputDevices/res/values-mn/strings.xml b/packages/InputDevices/res/values-mn/strings.xml
index 547ce49fc658478762f990da9ac61626b76ff79b..e77551e1a1237abd17e5a019ab835a2eb09a8b3b 100644
--- a/packages/InputDevices/res/values-mn/strings.xml
+++ b/packages/InputDevices/res/values-mn/strings.xml
@@ -57,6 +57,5 @@
"Серби (кирилл)""Монтенегро (кирилл)""Румын"
-
-
+ "Англи хэл (Энэтхэг)"
diff --git a/packages/InputDevices/res/values-mr/strings.xml b/packages/InputDevices/res/values-mr/strings.xml
index 25bdfab5a5842cf80b56c1811db9b62126d9a658..9483a47aef33be6a706010424824e66f7f76c2a1 100644
--- a/packages/InputDevices/res/values-mr/strings.xml
+++ b/packages/InputDevices/res/values-mr/strings.xml
@@ -57,6 +57,5 @@
"सर्बियन (सिरिलिक)""मॉन्टेनेग्रिन (सिरिलिक)""रोमानियन"
-
-
+ "इंग्रजी (भारत)"
diff --git a/packages/InputDevices/res/values-my/strings.xml b/packages/InputDevices/res/values-my/strings.xml
index 4ef5aab9bec6a48a94f6232569f6309d19da3a40..1325470d68c63fb9cf4624e84ac29b05fb85f069 100644
--- a/packages/InputDevices/res/values-my/strings.xml
+++ b/packages/InputDevices/res/values-my/strings.xml
@@ -57,6 +57,5 @@
"ဆားဘီးယား (စီရီလစ်)""မွန်တီနီဂရင်း (စီရီလစ်)""ရိုမေးနီးယား"
-
-
+ "အင်္ဂလိပ် (အိန္ဒိယ)"
diff --git a/packages/InputDevices/res/values-nb/strings.xml b/packages/InputDevices/res/values-nb/strings.xml
index 837e24645e63f92d7a9ed0eb96aa2483e4b45ea3..e6c082607b62b41689bbc63707f0717b19c31b31 100644
--- a/packages/InputDevices/res/values-nb/strings.xml
+++ b/packages/InputDevices/res/values-nb/strings.xml
@@ -57,6 +57,5 @@
"Serbisk (kyrillisk)""Montenegrisk (kyrillisk)""Rumensk"
-
-
+ "Engelsk (India)"
diff --git a/packages/InputDevices/res/values-ne/strings.xml b/packages/InputDevices/res/values-ne/strings.xml
index 0ab1ea6db71f30ab3952118697701e54e710da22..bc2d0bfa27467dee8b6b8265da4adf226c26a3a4 100644
--- a/packages/InputDevices/res/values-ne/strings.xml
+++ b/packages/InputDevices/res/values-ne/strings.xml
@@ -57,6 +57,5 @@
"सर्बियाली (सिरिलिक)""मोन्टेनिग्रिन (सिरिलिक)""रोमानियाली"
-
-
+ "अङ्ग्रेजी (भारत)"
diff --git a/packages/InputDevices/res/values-or/strings.xml b/packages/InputDevices/res/values-or/strings.xml
index 97f9088ceb333a7739b88ef724b119967c8dd69a..7606b6fc26d9fc101ce29d1e9a8f6fae4529a401 100644
--- a/packages/InputDevices/res/values-or/strings.xml
+++ b/packages/InputDevices/res/values-or/strings.xml
@@ -57,6 +57,5 @@
"ସର୍ବିଆନ (ସିରିଲିକ)""ମଣ୍ଟେନେଗ୍ରିନ (ସିରିଲିକ)""ରୋମାନିଆନ"
-
-
+ "ଇଂରାଜୀ (ଭାରତ)"
diff --git a/packages/InputDevices/res/values-pl/strings.xml b/packages/InputDevices/res/values-pl/strings.xml
index 0fd962b46e9b2de1a3a46fc6381d162aaed55186..7f4b58fa9d1afeeef9fa81cb65c8c918ccf7309c 100644
--- a/packages/InputDevices/res/values-pl/strings.xml
+++ b/packages/InputDevices/res/values-pl/strings.xml
@@ -57,6 +57,5 @@
"serbski (cyrylica)""czarnogórski (cyrylica)""rumuński"
-
-
+ "Angielski (Indie)"
diff --git a/packages/InputDevices/res/values-ro/strings.xml b/packages/InputDevices/res/values-ro/strings.xml
index 169378de0e88e038d376b9543dc6a5f749567ebf..a416a482da8c85fdf2d02aef463c4d5fad17d868 100644
--- a/packages/InputDevices/res/values-ro/strings.xml
+++ b/packages/InputDevices/res/values-ro/strings.xml
@@ -57,6 +57,5 @@
"Sârbă (caractere chirilice)""Muntenegreană (Chirilică)""Română"
-
-
+ "Engleză (India)"
diff --git a/packages/InputDevices/res/values-si/strings.xml b/packages/InputDevices/res/values-si/strings.xml
index ba27136317d99535a0332242dbd04907240c5aa4..2d5ffc3a5a252d4d8f19565a884c39f9a8976547 100644
--- a/packages/InputDevices/res/values-si/strings.xml
+++ b/packages/InputDevices/res/values-si/strings.xml
@@ -57,6 +57,5 @@
"සර්බියානු (සිරිලික්)""මොන්ටෙනේග්රීන් (සිරිලික්)""රුමේනියානු"
-
-
+ "ඉංග්රීසි (ඉන්දියාව)"
diff --git a/packages/InputDevices/res/values-sq/strings.xml b/packages/InputDevices/res/values-sq/strings.xml
index c77de92f9cdf7f3868d0aa6d84451b93df7b8428..97ab5f9ac3f78ed6e9d2e0fdc588032267b0337c 100644
--- a/packages/InputDevices/res/values-sq/strings.xml
+++ b/packages/InputDevices/res/values-sq/strings.xml
@@ -57,6 +57,5 @@
"Serbisht (cirilike)""Malazisht (cirilike)""Rumanisht"
-
-
+ "Anglisht (Indi)"
diff --git a/packages/InputDevices/res/values-sw/strings.xml b/packages/InputDevices/res/values-sw/strings.xml
index d9ac91f860f1b6c399832c747470a547a1a427a7..fd8b84577dd80242f0e5f81264343f3804c200a2 100644
--- a/packages/InputDevices/res/values-sw/strings.xml
+++ b/packages/InputDevices/res/values-sw/strings.xml
@@ -57,6 +57,5 @@
"Kiserbia (Kisiriliki)""Kimontenegri (Kisiriliki)""Kiromania"
-
-
+ "Kiingereza (India)"
diff --git a/packages/InputDevices/res/values-ta/strings.xml b/packages/InputDevices/res/values-ta/strings.xml
index fc91d696f575141c411ec1efe1a60c960502117f..0bf41fe7ededb1af59c037dae2ce60e03a9ff3e0 100644
--- a/packages/InputDevices/res/values-ta/strings.xml
+++ b/packages/InputDevices/res/values-ta/strings.xml
@@ -57,6 +57,5 @@
"செர்பியன் (சிரிலிக்)""மாண்டினெக்ரன் (சிரிலிக்)""ரோமானியன்"
-
-
+ "ஆங்கிலம் (இந்தியா)"
diff --git a/packages/InputDevices/res/values-tl/strings.xml b/packages/InputDevices/res/values-tl/strings.xml
index ea815d5cbd8d455991a5d83e7bee7e41b469da49..270331d4776c35d01b87116203ac8057901144a2 100644
--- a/packages/InputDevices/res/values-tl/strings.xml
+++ b/packages/InputDevices/res/values-tl/strings.xml
@@ -57,6 +57,5 @@
"Serbian (Cyrillic)""Montenegrin (Cyrillic)""Romanian"
-
-
+ "English (India)"
diff --git a/packages/InputDevices/res/values-tr/strings.xml b/packages/InputDevices/res/values-tr/strings.xml
index 3a40c84c71d3c44c675c98a70a97ffc73b175738..1d1d4e1e73bdef10c5e69c55baa1b980a7b80441 100644
--- a/packages/InputDevices/res/values-tr/strings.xml
+++ b/packages/InputDevices/res/values-tr/strings.xml
@@ -57,6 +57,5 @@
"Sırpça (Kiril)""Karadağca (Kiril)""Rumence"
-
-
+ "İngilizce (Hindistan)"
diff --git a/packages/InputDevices/res/values-uk/strings.xml b/packages/InputDevices/res/values-uk/strings.xml
index 0e0d562e0b738b7fd43f4c810eb9f3db4f61b379..70f731d3be819aec39d4a6de39c4d0759082286f 100644
--- a/packages/InputDevices/res/values-uk/strings.xml
+++ b/packages/InputDevices/res/values-uk/strings.xml
@@ -57,6 +57,5 @@
"Сербська (кирилиця)""Чорногорська (кирилиця)""Румунська"
-
-
+ "Англійська (Індія)"
diff --git a/packages/InputDevices/res/values-ur/strings.xml b/packages/InputDevices/res/values-ur/strings.xml
index 44721b8eb7ac2e53ab60d78599650f4a85663f49..07e38357d01da7c94b16b355330e6c72daa9c997 100644
--- a/packages/InputDevices/res/values-ur/strings.xml
+++ b/packages/InputDevices/res/values-ur/strings.xml
@@ -57,6 +57,5 @@
"سربیائی (سیریلک)""مونٹے نیگریائی (سیریلک)""رومانیائی"
-
-
+ "انگریزی (ہندوستان)"
diff --git a/packages/InputDevices/res/values-uz/strings.xml b/packages/InputDevices/res/values-uz/strings.xml
index 776c1c71a256545e7e775ce2ec26f530bea5d4e1..b44820a5ef74d1e128533ad499fd4e40d9083df8 100644
--- a/packages/InputDevices/res/values-uz/strings.xml
+++ b/packages/InputDevices/res/values-uz/strings.xml
@@ -57,6 +57,5 @@
"Serb (kirill)""Chernogor (kirill)""Rumin"
-
-
+ "Ingliz (Hindiston)"
diff --git a/packages/InputDevices/res/values-vi/strings.xml b/packages/InputDevices/res/values-vi/strings.xml
index 1fcba4269748b347e2d4e3f14ec97ae6f9b68651..3f9de673135f62346b9d77b0f2d44feebe90bf2b 100644
--- a/packages/InputDevices/res/values-vi/strings.xml
+++ b/packages/InputDevices/res/values-vi/strings.xml
@@ -57,6 +57,5 @@
"Tiếng Serbia (Chữ Kirin)""Tiếng Montenegro (Chữ Kirin)""Tiếng Romania"
-
-
+ "Tiếng Anh (Ấn Độ)"
diff --git a/packages/InputDevices/res/values-zh-rCN/strings.xml b/packages/InputDevices/res/values-zh-rCN/strings.xml
index cb7f6cb895dc0e8bec8df3914933d1d5c9130054..bf37dc5b8ab6eec5a76c96b288ad6318f161130e 100644
--- a/packages/InputDevices/res/values-zh-rCN/strings.xml
+++ b/packages/InputDevices/res/values-zh-rCN/strings.xml
@@ -57,6 +57,5 @@
"塞尔维亚语(西里尔字母)""黑山语(西里尔字母)""罗马尼亚语"
-
-
+ "英语(印度)"
diff --git a/packages/InputDevices/res/values-zh-rHK/strings.xml b/packages/InputDevices/res/values-zh-rHK/strings.xml
index c718760a618e85129b2d364cf445753a4b1fb261..c30c9723f8fae8985be071cec55d2ce14bfacc52 100644
--- a/packages/InputDevices/res/values-zh-rHK/strings.xml
+++ b/packages/InputDevices/res/values-zh-rHK/strings.xml
@@ -57,6 +57,5 @@
"塞爾維亞文 (西里爾字母)""蒙特內哥羅文 (西里爾字母)""羅馬尼亞文"
-
-
+ "英文 (印度)"
diff --git a/packages/InputDevices/res/values-zh-rTW/strings.xml b/packages/InputDevices/res/values-zh-rTW/strings.xml
index 68cf9b0e6b207367885fbc838527074f8e16743c..b840b1c502118895a9f0e98a8911996826891808 100644
--- a/packages/InputDevices/res/values-zh-rTW/strings.xml
+++ b/packages/InputDevices/res/values-zh-rTW/strings.xml
@@ -57,6 +57,5 @@
"塞爾維亞文 (西里爾字母)""蒙特內哥羅文 (西里爾字母)""羅馬尼亞文"
-
-
+ "英文 (印度)"
diff --git a/packages/InputDevices/res/values-zu/strings.xml b/packages/InputDevices/res/values-zu/strings.xml
index 4ae9e47fdf9147f46a3a6837bf4969406d11e977..bc79dbd5e89848eab77124961446cbe1fad5c03e 100644
--- a/packages/InputDevices/res/values-zu/strings.xml
+++ b/packages/InputDevices/res/values-zu/strings.xml
@@ -57,6 +57,5 @@
"Serbian (Cyrillic)""Montenegrin (Cyrillic)""IsiRomanian"
-
-
+ "IsiNgisi (India)"
diff --git a/packages/SettingsLib/ActionButtonsPreference/res/layout-v35/settingslib_expressive_action_buttons.xml b/packages/SettingsLib/ActionButtonsPreference/res/layout-v36/settingslib_expressive_action_buttons.xml
similarity index 100%
rename from packages/SettingsLib/ActionButtonsPreference/res/layout-v35/settingslib_expressive_action_buttons.xml
rename to packages/SettingsLib/ActionButtonsPreference/res/layout-v36/settingslib_expressive_action_buttons.xml
diff --git a/packages/SettingsLib/ActionButtonsPreference/res/values-v35/styles_expressive.xml b/packages/SettingsLib/ActionButtonsPreference/res/values-v36/styles_expressive.xml
similarity index 100%
rename from packages/SettingsLib/ActionButtonsPreference/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/ActionButtonsPreference/res/values-v36/styles_expressive.xml
diff --git a/packages/SettingsLib/BannerMessagePreference/res/drawable-v35/settingslib_expressive_card_background.xml b/packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_expressive_card_background.xml
similarity index 100%
rename from packages/SettingsLib/BannerMessagePreference/res/drawable-v35/settingslib_expressive_card_background.xml
rename to packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_expressive_card_background.xml
diff --git a/packages/SettingsLib/BannerMessagePreference/res/drawable-v35/settingslib_resolved_banner_avd.xml b/packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_resolved_banner_avd.xml
similarity index 100%
rename from packages/SettingsLib/BannerMessagePreference/res/drawable-v35/settingslib_resolved_banner_avd.xml
rename to packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_resolved_banner_avd.xml
diff --git a/packages/SettingsLib/BannerMessagePreference/res/layout-v35/settingslib_expressive_banner_message.xml b/packages/SettingsLib/BannerMessagePreference/res/layout-v36/settingslib_expressive_banner_message.xml
similarity index 100%
rename from packages/SettingsLib/BannerMessagePreference/res/layout-v35/settingslib_expressive_banner_message.xml
rename to packages/SettingsLib/BannerMessagePreference/res/layout-v36/settingslib_expressive_banner_message.xml
diff --git a/packages/SettingsLib/BannerMessagePreference/res/values-v35/styles_expressive.xml b/packages/SettingsLib/BannerMessagePreference/res/values-v36/styles_expressive.xml
similarity index 100%
rename from packages/SettingsLib/BannerMessagePreference/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/BannerMessagePreference/res/values-v36/styles_expressive.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_extra.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_extra.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_extra.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_extra.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_large.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_large.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_large.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_large.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_extra.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_extra.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_extra.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_extra.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_large.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_large.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_large.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_large.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_extra.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_extra.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_extra.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_extra.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_large.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_large.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_large.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_large.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v35/settingslib_expressive_icon_back.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v36/settingslib_expressive_icon_back.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v35/settingslib_expressive_icon_back.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v36/settingslib_expressive_icon_back.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_base_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_base_layout.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_base_layout.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_base_layout.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_content_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_content_layout.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_content_layout.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_content_layout.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v35/themes.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v36/themes.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v35/themes.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v36/themes.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles_expressive.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles_expressive.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles_expressive.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes_expressive.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes_expressive.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes_expressive.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes_expressive.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/color-night-v35/settingslib_main_switch_text_color.xml b/packages/SettingsLib/MainSwitchPreference/res/color-night-v36/settingslib_main_switch_text_color.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/color-night-v35/settingslib_main_switch_text_color.xml
rename to packages/SettingsLib/MainSwitchPreference/res/color-night-v36/settingslib_main_switch_text_color.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/color-v35/settingslib_main_switch_text_color.xml b/packages/SettingsLib/MainSwitchPreference/res/color-v36/settingslib_main_switch_text_color.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/color-v35/settingslib_main_switch_text_color.xml
rename to packages/SettingsLib/MainSwitchPreference/res/color-v36/settingslib_main_switch_text_color.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/drawable-v35/settingslib_expressive_switch_bar_bg.xml b/packages/SettingsLib/MainSwitchPreference/res/drawable-v36/settingslib_expressive_switch_bar_bg.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/drawable-v35/settingslib_expressive_switch_bar_bg.xml
rename to packages/SettingsLib/MainSwitchPreference/res/drawable-v36/settingslib_expressive_switch_bar_bg.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_bar.xml b/packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_bar.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_bar.xml
rename to packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_bar.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_layout.xml b/packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_layout.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_layout.xml
rename to packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_layout.xml
diff --git a/packages/SettingsLib/ProfileSelector/res/color-night-v35/settingslib_tabs_indicator_color.xml b/packages/SettingsLib/ProfileSelector/res/color-night-v36/settingslib_tabs_indicator_color.xml
similarity index 100%
rename from packages/SettingsLib/ProfileSelector/res/color-night-v35/settingslib_tabs_indicator_color.xml
rename to packages/SettingsLib/ProfileSelector/res/color-night-v36/settingslib_tabs_indicator_color.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-night-v35/settingslib_switch_track_outline_color.xml b/packages/SettingsLib/SettingsTheme/res/color-night-v36/settingslib_switch_track_outline_color.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-night-v35/settingslib_switch_track_outline_color.xml
rename to packages/SettingsLib/SettingsTheme/res/color-night-v36/settingslib_switch_track_outline_color.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_expressive_color_main_switch_track.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_expressive_color_main_switch_track.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_expressive_color_main_switch_track.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_expressive_color_main_switch_track.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_preference_bg_color.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_preference_bg_color.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_preference_bg_color.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_preference_bg_color.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_switch_track_outline_color.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_switch_track_outline_color.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_switch_track_outline_color.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_switch_track_outline_color.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_primary.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_primary.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_primary.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_primary.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_secondary.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_secondary.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_secondary.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_secondary.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_arrow_drop_down.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_arrow_drop_down.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_arrow_drop_down.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_arrow_drop_down.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_list_divider.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_list_divider.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_list_divider.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_list_divider.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_progress_horizontal.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_progress_horizontal.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_progress_horizontal.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_progress_horizontal.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_background.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_background.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_background.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_background.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_dropdown_background.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_dropdown_background.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_dropdown_background.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_dropdown_background.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_icon_frame.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_icon_frame.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_icon_frame.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_icon_frame.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_switch.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_switch.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_switch.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_switch.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_two_target_divider.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_two_target_divider.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_two_target_divider.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_two_target_divider.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-night-v35/colors.xml b/packages/SettingsLib/SettingsTheme/res/values-night-v36/colors.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-night-v35/colors.xml
rename to packages/SettingsLib/SettingsTheme/res/values-night-v36/colors.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/colors.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/colors.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/colors.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/colors.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/dimens.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/dimens.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/dimens.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/dimens.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/styles_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/styles_expressive.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_preference_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/styles_preference_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/styles_preference_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/styles_preference_expressive.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/themes.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/themes.xml
similarity index 95%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/themes.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/themes.xml
index b6e80c784f10f85673a460aba877cb78b5638959..1c45ff6ca6cf2ede4d0c96308ac144c902697239 100644
--- a/packages/SettingsLib/SettingsTheme/res/values-v35/themes.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values-v36/themes.xml
@@ -16,7 +16,7 @@
-->
-
-
+
\ No newline at end of file
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/themes_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/themes_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/themes_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/themes_expressive.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/themes_preference_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/themes_preference_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/themes_preference_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/themes_preference_expressive.xml
diff --git a/packages/SettingsLib/TwoTargetPreference/res/layout-v35/settingslib_expressive_preference_two_target.xml b/packages/SettingsLib/TwoTargetPreference/res/layout-v36/settingslib_expressive_preference_two_target.xml
similarity index 100%
rename from packages/SettingsLib/TwoTargetPreference/res/layout-v35/settingslib_expressive_preference_two_target.xml
rename to packages/SettingsLib/TwoTargetPreference/res/layout-v36/settingslib_expressive_preference_two_target.xml
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index dbc4e5a2b1db278cfe5e177b30f22584ca55fbb8..dcad7356508d05d07bd5e2f822eeb1b47e272aa4 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -113,33 +113,23 @@
"Kon nie omgewing opdateer nie""Aktief (net media). %1$s battery.""Aktiewe (net media). L: %1$s, R: %2$s battery"
-
-
-
-
-
-
-
-
+ "Gastetoestel. %1$s battery."
+ "Gastetoestel. L: %1$s, R: %2$s battery."
+ "Gastetoestel (net media). %1$s battery."
+ "Gastetoestel (net media). L: %1$s, R: %2$s battery.""Gekoppel (steun oudiodeling). %1$s battery""Gekoppel (steun oudiodeling). L: %1$s, R: %2$s battery.""Gekoppel (steun oudiodeling). Links: %1$s battery.""Gekoppel (steun oudiodeling). Regs: %1$s battery.""Gekoppel (steun oudiodeling)"
-
-
-
-
-
-
+ "Gastetoestel (steun oudiodeling). %1$s battery."
+ "Gastetoestel (steun oudiodeling). L: %1$s, R: %2$s battery."
+ "Gastetoestel (steun oudiodeling)""Aktief (net media)"
-
-
-
-
+ "Gastetoestel"
+ "Gastetoestel (net media)""Steun oudiodeling"
-
-
+ "Gastetoestel. Steun oudiodeling""Aktief (net media), net linkerkant""Aktief (net media), net regterkant""Aktief (net media), linker- en regterkant"
@@ -396,8 +386,7 @@
"Hardeware-versnelde lewering""Media""Monitering"
-
-
+ "Vensterbestuur""Strengmodus geaktiveer""Flits skerm as apps lang bewerkings uitvoer op die hoofdraad""Wyserligging"
@@ -492,12 +481,9 @@
"WebView-implementering""Stel WebView-implementering""Hierdie keuse is nie meer geldig nie. Probeer weer."
-
-
-
-
-
-
+ "Webaansig-Ontwikkelaarnutsgoed"
+ "Webaansigpakket nie gevind nie."
+ "Kon nie Ontwikkelaarnutsgoed begin nie.""Fotokleurmodus""Gebruik sRGB""Gedeaktiveer"
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index bfe60068ff6d7acd012918ff389883c1aa73216a..dc6bd0fb06c8418eff5025fda7185dda7a33ace6 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -113,33 +113,23 @@
"በዙሪያ ያሉትን ማዘመን አልተቻለም""ገቢር (ሚዲያ ብቻ)። %1$s ባትሪ።""ገቢር (ሚዲያ ብቻ)። ግ፦ %1$s፣ ቀ፦ %2$s ባትሪ።"
-
-
-
-
-
-
-
-
+ "የእንግዳ መሣሪያ። %1$s ባትሪ።"
+ "የእንግዳ መሣሪያ። ግ፦ %1$s፣ ቀ፦ %2$s ባትሪ።"
+ "የእንግዳ መሣሪያ (ሚዲያ ብቻ)። %1$s ባትሪ።"
+ "የእንግዳ መሣሪያ (ሚዲያ ብቻ)። ግ፦ %1$s፣ ቀ፦ %2$s ባትሪ።""ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)፣ %1$s ባትሪ።""ተገናኝቷል (የድምፅ ማጋራት ይደግፋል) ግ፦ %1$s፣ ቀ፦ %2$s ባትሪ።""ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)። ግራ፦%1$s ባትሪ።""ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)። ቀኝ፦ %1$s ባትሪ።""ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)"
-
-
-
-
-
-
+ "የእንግዳ መሣሪያ (የድምፅ ማጋራትን ይደግፋል)። %1$s ባትሪ።"
+ "የእንግዳ መሣሪያ (የድምፅ ማጋራትን ይደግፋል)። ግ፦ %1$s፣ ቀ፦ %2$s ባትሪ።"
+ "የእንግዳ መሣሪያ (የድምፅ ማጋራትን ይደግፋል)""ገቢር (ሚዲያ ብቻ)"
-
-
-
-
+ "የእንግዳ መሣሪያ"
+ "የእንግዳ መሣሪያ (ሚዲያ ብቻ)""ድምፅ ማጋራትን ይደግፋል"
-
-
+ "የእንግዳ መሣሪያ። የድምፅ ማጋራትን ይደግፋል""ገቢር (ሚዲያ ብቻ)፣ ግራ ብቻ""ገቢር (ሚዲያ ብቻ) ቀኝ ብቻ""ገቢር (ሚዲያ ብቻ)፣ ግራ እና ቀኝ"
@@ -396,8 +386,7 @@
"የተፋጠነ የሃርድዌር አሰጣጥ""ማህደረመረጃ""ቁጥጥር"
-
-
+ "የመስኮት አስተዳደር""ጥብቅ ሁነታ ነቅቷል""መተግበሪያዎች ረጅም ክንውኖች ወደ ዋና ክሮች ሲያካሂዱ ማያላይ ብልጭ አድርግ።""የአመልካች ሥፍራ"
@@ -492,12 +481,9 @@
"የWebView ትግበራ""የWebView ትግበራን ያዘጋጁ""ይህ ምርጫ ከአሁን በኋላ የሚሰራ አይደለም። እንደገና ይሞክሩ።"
-
-
-
-
-
-
+ "የድር ዕይታ DevTools"
+ "የድር ዕይታ ጥቅል አልተገኘም።"
+ "DevToolsን ማስጀመር አልተቻለም።""የስዕል ቀለም ሁነታ""sRGB ይጠቀሙ""ተሰናክሏል"
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 64a021d1b8a75895d11cae26a74901edf71e1aff..e2487d7ec7b4a563fcacdd1d731935fcf8dc8594 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -113,33 +113,23 @@
"تعذَّر تعديل حالة الأصوات المحيطة""البلوتوث نشِط (للوسائط فقط). مستوى شحن البطارية: %1$s""البلوتوث نشِط (للوسائط فقط)، مستوى الشحن في سماعة الرأس اليسرى: %1$s، مستوى الشحن في سماعة الرأس اليمنى: %2$s"
-
-
-
-
-
-
-
-
+ "جهاز ضيف. مستوى شحن البطارية: %1$s"
+ "جهاز ضيف. اليسرى: %1$s، اليمنى: %2$s من البطارية"
+ "جهاز ضيف (للوسائط فقط). مستوى شحن البطارية: %1$s"
+ "جهاز ضيف (للوسائط فقط). اليسرى: %1$s، اليمنى: %2$s من البطارية""البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى شحن البطارية: %1$s""البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى الشحن في سماعة الرأس اليسرى: %1$s، مستوى الشحن في سماعة الرأس اليمنى: %2$s""البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى الشحن في سماعة الرأس اليسرى: %1$s""البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى الشحن في سماعة الرأس اليمنى: %1$s""البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة)"
-
-
-
-
-
-
+ "جهاز ضيف (يوفِّر ميزة \"مشاركة الصوت\"). مستوى شحن البطارية: %1$s"
+ "جهاز ضيف (يوفِّر ميزة \"مشاركة الصوت\"). اليسرى: %1$s، اليمنى: %2$s من البطارية"
+ "جهاز ضيف (يوفِّر ميزة \"مشاركة الصوت\")""البلوتوث مفعَّل (للوسائط فقط)"
-
-
-
-
+ "جهاز ضيف"
+ "جهاز ضيف (للوسائط فقط)""تتوفّر ميزة \"مشاركة الصوت\""
-
-
+ "جهاز ضيف. يوفِّر ميزة \"مشاركة الصوت\"""السماعة اليسرى فقط مشغَّلة (للوسائط فقط)""السماعة اليمنى فقط مشغَّلة (للوسائط فقط)""السماعتان اليسرى واليمنى مشغَّلتان (للوسائط فقط)"
@@ -492,12 +482,9 @@
"تطبيق WebView""تعيين تطبيق WebView""لم يعد هذا الاختيار صالحًا. أعد المحاولة."
-
-
-
-
-
-
+ "أدوات مطوري البرامج في WebView"
+ "تعذَّر العثور على حزمة WebView."
+ "تعذَّر تشغيل \"أدوات مطوري البرامج\".""نمط لون الصورة""استخدام sRGB""غير مفعّل"
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index 82ee7f3ab28935cc54bb9bdf736800da46d4d04a..f95a66befec130a3c210a22251bbbb40f4458a2f 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -113,33 +113,23 @@
"আশ-পাশ আপডে’ট কৰিব পৰা নগ’ল""সক্ৰিয় হৈ আছে (কেৱল মিডিয়া)। %1$s বেটাৰী।""সক্ৰিয় হৈ আছে (কেৱল মিডিয়া)। বাওঁ: %1$s, সোঁ: %2$s বেটাৰী।"
-
-
-
-
-
-
-
-
+ "অতিথিৰ ডিভাইচ। %1$s বেটাৰী।"
+ "অতিথিৰ ডিভাইচ। বাওঁ: %1$s, সোঁ: %2$s বেটাৰী।"
+ "অতিথিৰ ডিভাইচ (কেৱল মিডিয়া)। %1$s বেটাৰী।"
+ "অতিথিৰ ডিভাইচ (কেৱল মিডিয়া)। বাওঁ: %1$s, সোঁ: %2$s বেটাৰী।""সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে), %1$s বেটাৰী।""সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে), বাওঁ: %1$s, সোঁ: %2$s বেটাৰী""সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। বাকী আছে: %1$s বেটাৰী।""সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। সোঁ: %1$s বেটাৰী।""সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)"
-
-
-
-
-
-
+ "অতিথিৰ ডিভাইচ (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। %1$s বেটাৰী।"
+ "অতিথিৰ ডিভাইচ (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। বাওঁ: %1$s, সোঁ: %2$s বেটাৰী।"
+ "অতিথিৰ ডিভাইচ (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)""সক্ৰিয় হৈ আছে (কেৱল মিডিয়া)"
-
-
-
-
+ "অতিথিৰ ডিভাইচ"
+ "অতিথিৰ ডিভাইচ (কেৱল মিডিয়া)""অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে"
-
-
+ "অতিথিৰ ডিভাইচ। অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে""সক্ৰিয় হৈ আছে (কেৱল মিডিয়া), কেৱল বাওঁ""সক্ৰিয় হৈ আছে (কেৱল মিডিয়া), কেৱল সোঁ""সক্ৰিয় হৈ আছে (কেৱল মিডিয়া), বাওঁ আৰু সোঁ"
@@ -396,8 +386,7 @@
"হাৰ্ডৱেৰৰদ্বাৰা ত্বৰিত ৰেণ্ডাৰিং""মিডিয়া""নিৰীক্ষণ কৰি থকা হৈছে"
-
-
+ "ৱিণ্ড’ পৰিচালনা""কঠোৰ ম’ড সক্ষম কৰা হৈছে""যেতিয়া এপ্সমূহে মুখ্য থ্ৰেডত দীঘলীয়া কাৰ্যকলাপ চলায়, তেতিয়া স্ক্ৰীন ফ্লাশ্ব কৰক""পইণ্টাৰৰ অৱস্থান"
@@ -492,12 +481,9 @@
"ৱেবভিউ প্ৰয়োগ""ৱেবভিউ প্ৰয়োগ ছেট কৰক""বাছনিটো এতিয়া আৰু মান্য় নহয়। আকৌ চেষ্টা কৰক।"
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView পেকেজ বিচাৰি পোৱা নগ’ল।"
+ "DevTools লঞ্চ কৰিব পৰা নগ’ল।""চিত্ৰৰ ৰং ম’ড""এছআৰজিবি ব্যৱহাৰ কৰক""নিষ্ক্ৰিয় হৈ আছে"
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index aa939646c31901bfef5c938e8309114d0a993e85..5e47ff955125e8e0280a93ceb6f46844c322c48c 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -113,33 +113,23 @@
"Ətraf mühit güncəllənmədi""Aktiv (yalnız media). %1$s batareya.""Aktiv (yalnız media). Sol: %1$s, Sağ: %2$s batareya."
-
-
-
-
-
-
-
-
+ "Qonaq cihaz. %1$s batareya."
+ "Qonaq cihaz. Sol: %1$s, Sağ: %2$s batareya."
+ "Qonaq cihaz (yalnız media). %1$s batareya."
+ "Qonaq cihaz (yalnız media). Sol: %1$s, Sağ: %2$s batareya.""Qoşulub (audio paylaşma dəstəklənir). %1$s batareya.""Qoşulub (audio paylaşma dəstəklənir). Sol: %1$s, Sağ: %2$s batareya.""Qoşulub (audio paylaşma dəstəklənir). Sol: %1$s batareya.""Qoşulub (audio paylaşma dəstəklənir). Sağ: %1$s batareya.""Qoşulub (audio paylaşma dəstəklənir)"
-
-
-
-
-
-
+ "Qonaq cihaz (auido paylaşma dəstəklənir). %1$s batareya."
+ "Qonaq cihaz (auido paylaşma dəstəklənir). Sol: %1$s, Sağ: %2$s batareya."
+ "Qonaq cihaz (audio paylaşma dəstəklənir)""Aktiv (yalnız media)"
-
-
-
-
+ "Qonaq cihaz"
+ "Qonaq cihaz (yalnız media)""Audio paylaşma dəstəklənir"
-
-
+ "Qonaq cihaz. Audio paylaşma dəstəklənir""Aktiv (yalnız media), yalnız sol""Aktiv (yalnız media), yalnız sağ""Aktiv (yalnız media), sol və sağ"
@@ -396,8 +386,7 @@
"Renderinq aparat sürətlənməsi""Media""Monitorinq"
-
-
+ "Pəncərə idarəetməsi""Ciddi rejim""Uzun əməliyyatlar ərzində ekran işıqlandırılsın""Kursor yeri"
@@ -492,12 +481,9 @@
"WebView servisi""WebView servisini ayarlayın""Bu seçim artıq etibarlı deyil. Yenidən cəhd edin."
-
-
-
-
-
-
+ "WebGörüntü üzrə DevTools"
+ "WebGörüntü paketi tapılmadı."
+ "DevTools-u başlatmaq mümkün olmadı.""Şəkil rəng rejimi""sRGB istifadə edin""Deaktiv"
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 7f605006771f13436afb73b271056b6b886c0a2d..cb623991538d1cef32b1f865874e1348ce5adae9 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -113,33 +113,23 @@
"Ažuriranje okruženja nije uspelo""Aktivno (samo za medije). %1$s baterije.""Aktivno (samo za medije). Levo: %1$s, desno: %2$s baterije."
-
-
-
-
-
-
-
-
+ "Uređaj gosta. %1$s baterije."
+ "Uređaj gosta. Levo: %1$s, desno: %2$s baterije."
+ "Uređaj gosta (samo za medije). %1$s baterije."
+ "Uređaj gosta (samo za medije). Levo: %1$s, desno: %2$s baterije.""Povezano (podržava deljenje zvuka), %1$s baterije.""Povezano (podržava deljenje zvuka), levo: %1$s, desno: %2$s baterije.""Povezano (podržava deljenje zvuka). Levo: %1$s baterije""Povezano (podržava deljenje zvuka). Desno: %1$s baterije.""Povezano (podržava deljenje zvuka)"
-
-
-
-
-
-
+ "Uređaj gosta (podržava deljenje zvuka). %1$s baterije."
+ "Uređaj gosta (podržava deljenje zvuka). Levo: %1$s, desno: %2$s baterije."
+ "Uređaj gosta (podržava deljenje zvuka)""Aktivan (samo za medije)"
-
-
-
-
+ "Uređaj gosta"
+ "Uređaj gosta (samo za medije)""Podržava deljenje zvuka"
-
-
+ "Uređaj gosta. Podržava deljenje zvuka""Aktivan (samo za medije), samo levo""Aktivan (samo za medije), samo desno""Aktivan (samo za medije), levo i desno"
@@ -396,8 +386,7 @@
"Hardverski ubrzano prikazivanje""Mediji""Nadgledanje"
-
-
+ "Upravljanje prozorima""Omogućen je strogi režim""Ekran treperi kada aplikacije obavljaju duge operacije na glavnoj niti""Lokacija pokazivača"
@@ -492,12 +481,9 @@
"Primena WebView-a""Podesite primenu WebView-a""Ovaj izbor više nije važeći. Probajte ponovo."
-
-
-
-
-
-
+ "WebView alatke za programere"
+ "Paket za WebView nije pronađen."
+ "Pokretanje alatki za programere nije uspelo.""Režim boja slika""Koristi sRGB""Onemogućeno je"
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index 50de9248baf2fcd2ae1dace7d6bc922172710e57..ef66fb32d844d2124675c7820ccb0a7bef656120 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -113,33 +113,23 @@
"Не ўдалося абнавіць стан навакольных гукаў""Выкарыстоўваецца (толькі для мультымедыя). Зарад акумулятара: %1$s.""Выкарыстоўваецца (толькі для мультымедыя). Зарад акумулятара: %1$s (левы навушнік), %2$s (правы навушнік)."
-
-
-
-
-
-
-
-
+ "Гасцявая прылада. Зарад акумулятара: %1$s."
+ "Гасцявая прылада. Зарад акумулятара: %1$s (левы навушнік), %2$s (правы навушнік)."
+ "Гасцявая прылада (толькі мультымедыя). Зарад акумулятара: %1$s."
+ "Гасцявая прылада (толькі мультымедыя). Зарад акумулятара: %1$s (левы навушнік), %2$s (правы навушнік).""Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: %1$s.""Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: %1$s (левы навушнік), %2$s (правы навушнік).""Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: %1$s (левы навушнік).""Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: %1$s (правы навушнік).""Падключана (падтрымліваецца абагульванне аўдыя)"
-
-
-
-
-
-
+ "Гасцявая прылада (падтрымлівае абагульванне аўдыя). Зарад акумулятара: %1$s."
+ "Гасцявая прылада (падтрымлівае абагульванне аўдыя). Зарад акумулятара: %1$s (левы навушнік), %2$s (правы навушнік)."
+ "Гасцявая прылада (падтрымлівае абагульванне аўдыя)""Выкарыстоўваецца (толькі для мультымедыя)"
-
-
-
-
+ "Гасцявая прылада"
+ "Гасцявая прылада (толькі мультымедыя)""Падтрымліваецца абагульванне аўдыя"
-
-
+ "Гасцявая прылада. Падтрымлівае абагульванне аўдыя.""Выкарыстоўваецца (толькі для мультымедыя), толькі левы навушнік""Выкарыстоўваецца (толькі для мультымедыя), толькі правы навушнік""Выкарыстоўваецца (толькі для мультымедыя), левы і правы навушнікі"
@@ -396,8 +386,7 @@
"Апаратнае паскарэнне рэндэрынгу""Медыя""Маніторынг"
-
-
+ "Кіраванне вокнамі""Уключаны строгі рэжым""Падсвечваць экран падчас доўгіх аперацый""Пазіцыя ўказальніка"
@@ -492,12 +481,9 @@
"Рэалізацыя WebView""Наладзіць рэалізацыю WebView""Гэты варыянт больш не даступны. Паспрабуйце яшчэ раз."
-
-
-
-
-
-
+ "Інструменты распрацоўшчыка WebView"
+ "Пакет WebView не знойдзены."
+ "Не ўдалося запусціць інструменты распрацоўшчыка.""Каляровы рэжым выявы""Выкарыстоўваць sRGB""Выключана"
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index c3c17833ea29283ae3598c9468e866279a11fc10..69d68662b8c558b89ea4924bf5f1e379b97a780c 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -113,33 +113,23 @@
"Данните за околните звуци не бяха актуализирани""Активно (само за мултимедия). Батерия – %1$s.""Активно (само за мултимедия). Л: батерия – %1$s, Д: батерия – %2$s."
-
-
-
-
-
-
-
-
+ "Устройство на гост. Батерия – %1$s."
+ "Устройство на гост. Л: батерия – %1$s, Д: батерия – %2$s."
+ "Устройство на гост (само за мултимедия). Батерия – %1$s."
+ "Устройство на гост (само за мултимедия). Л: батерия – %1$s, Д: батерия – %2$s.""Свързано (поддържа споделяне на звука). Батерия – %1$s.""Свързано (поддържа споделяне на звука). Л: батерия – %1$s, Д: батерия – %2$s.""Свързано (поддържа споделяне на звука). За ляво ухо. Батерия: %1$s.""Свързано (поддържа споделяне на звука). За дясно ухо. Батерия: %1$s.""Свързано (поддържа споделяне на звука)"
-
-
-
-
-
-
+ "Устройство на гост (поддържа споделяне на звука). Батерия – %1$s."
+ "Устройство на гост (поддържа споделяне на звука). Л: батерия – %1$s, Д: батерия – %2$s."
+ "Устройство на гост (поддържа споделяне на звука)""Активно (само за мултимедия)"
-
-
-
-
+ "Устройство на гост"
+ "Устройство на гост (само за мултимедия)""Поддържа споделяне на звука"
-
-
+ "Устройство на гост. Поддържа споделяне на звука""Активно (само за мултимедия), само лявата""Активно (само за мултимедия), само дясната""Активно (само за мултимедия), лявата и дясната"
@@ -396,8 +386,7 @@
"Хардуерно ускорено изобразяване""Мултимедия""Наблюдение"
-
-
+ "Управление на прозорците""Активиран строг режим""Примигване на екрана при дълги операции в главната нишка""Mестопол. на показалеца"
@@ -492,12 +481,9 @@
"Внедряване на WebView""Задаване на внедряването на WebView""Този избор вече не е валиден. Опитайте отново."
-
-
-
-
-
-
+ "DevTools за WebView"
+ "Пакетът на WebView не е намерен."
+ "DevTools не се стартира.""Цветови режим за снимките""Използване на sRGB""Деактивирано"
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index 93b652124d8a41fc64f3ff6d522f8c99690bd342..7e8e3fe3de70efbc8f9130945f3edd7d12d3ebc7 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -113,33 +113,23 @@
"সারাউন্ডিং আপডেট করা যায়নি""চালু আছে (শুধুমাত্র মিডিয়া)। %1$s ব্যাটারি।""চালু আছে (শুধুমাত্র মিডিয়া), বাঁদিক: %1$s, ডানদিক: %2$s ব্যাটারি।"
-
-
-
-
-
-
-
-
+ "অতিথি ডিভাইস। %1$s ব্যাটারি।"
+ "অতিথি ডিভাইস। বাঁদিক: %1$s, ডানদিক: %2$s ব্যাটারি।"
+ "অতিথি ডিভাইস (শুধুমাত্র মিডিয়া)। %1$s ব্যাটারি।"
+ "অতিথি ডিভাইস (শুধুমাত্র মিডিয়া)। বাঁদিক: %1$s, ডানদিক: %2$s ব্যাটারি।""কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে), %1$s ব্যাটারি।""কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে), বাঁদিক: %1$s, ডানদিক: %2$s ব্যাটারি।""কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে)। বাঁদিক: %1$s ব্যাটারি।""কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে)। ডানদিকে: %1$s ব্যাটারি।""কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে)"
-
-
-
-
-
-
+ "অতিথি ডিভাইস (অডিও শেয়ারিং কাজ করে)। %1$s ব্যাটারি।"
+ "অতিথি ডিভাইস (অডিও শেয়ারিং কাজ করে)। বাঁদিক: %1$s, ডানদিক: %2$s ব্যাটারি।"
+ "অতিথি ডিভাইস (অডিও শেয়ারিং কাজ করে)""চালু আছে (শুধুমাত্র মিডিয়া)"
-
-
-
-
+ "অতিথি ডিভাইস"
+ "অতিথি ডিভাইস (শুধুমাত্র মিডিয়া)""অডিও শেয়ারিংয়ে কাজ করে"
-
-
+ "অতিথি ডিভাইস। অডিও শেয়ারিং কাজ করে""চালু আছে (শুধুমাত্র মিডিয়া), শুধুমাত্র বাঁদিক""চালু আছে (শুধুমাত্র মিডিয়া), শুধুমাত্র ডানদিক""চালু আছে (শুধুমাত্র মিডিয়া), বাঁদিক ও ডানদিক"
@@ -396,8 +386,7 @@
"হার্ডওয়্যার দ্বারা চালিত রেন্ডারিং""মিডিয়া""পর্যবেক্ষণে রাখা"
-
-
+ "উইন্ডো ম্যানেজমেন্ট""স্ট্রিক্ট মোড চালু আছে""মুখ্য থ্রেডে অ্যাপগুলির দীর্ঘ কার্যকলাপের ক্ষেত্রে স্ক্রিন ফ্ল্যাশ করে""পয়েন্টারের লোকেশন"
@@ -492,12 +481,9 @@
"ওয়েবভিউ প্রয়োগ""ওয়েবভিউ প্রয়োগ সেট করুন""এই পছন্দটি আর বৈধ নেই৷ আবার চেষ্টা করুন৷"
-
-
-
-
-
-
+ "WebView প্রদানকারীর DevTools"
+ "WebView প্যাকেজ পাওয়া যায়নি।"
+ "DevTools চালু করা যায়নি।""ছবি রঙ মোড""sRGB ব্যবহার করুন""অক্ষম হয়েছে"
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index abb0775eb9ab756628654f0b2868bbde260a4d53..d0b15d9e67683800b3aaf191812ff93664d3db21 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -113,33 +113,23 @@
"Ažuriranje okruženja nije uspjelo""Aktivno (samo za medijski sadržaj). %1$s baterije.""Aktivno (samo za medijski sadržaj). L: %1$s baterije, D: %2$s baterije."
-
-
-
-
-
-
-
-
+ "Gostujući uređaj. %1$s baterije."
+ "Gostujući uređaj. L: %1$s baterije, D: %2$s baterije."
+ "Gostujući uređaj (samo za medijski sadržaj). %1$s baterije."
+ "Gostujući uređaj (samo za medijski sadržaj). L: %1$s baterije, D: %2$s baterije.""Povezano (podržava dijeljenje zvuka). %1$s baterije.""Povezano (podržava dijeljenje zvuka). L: %1$s baterije, D: %2$s baterije.""Povezano (podržava dijeljenje zvuka). Lijevo: %1$s baterije.""Povezano (podržava dijeljenje zvuka). Desno: %1$s baterije.""Povezano (podržava dijeljenje zvuka)"
-
-
-
-
-
-
+ "Gostujući uređaj (podržava dijeljenje zvuka). %1$s baterije."
+ "Gostujući uređaj (podržava dijeljenje zvuka). L: %1$s baterije, D: %2$s baterije."
+ "Gostujući uređaj (podržava dijeljenje zvuka)""Aktivno (samo za medijski sadržaj)"
-
-
-
-
+ "Gostujući uređaj"
+ "Gostujući uređaj (samo za medijski sadržaj)""Podržava dijeljenje zvuka"
-
-
+ "Gostujući uređaj. Podržava dijeljenje zvuka""Aktivno (samo za medijski sadržaj), samo lijevo""Aktivno (samo za medijski sadržaj), samo desno""Aktivno (samo za medijski sadržaj), lijevo i desno"
@@ -396,8 +386,7 @@
"Hardverski ubrzano prikazivanje""Mediji""Praćenje"
-
-
+ "Upravljanje prozorima""Omogući strogi način rada""Ekran bljeska kada aplikacije vrše duge operacije u glavnoj niti""Lokacija pokazivača"
@@ -492,12 +481,9 @@
"Postavljanje WebViewa""Podesi WebView""Ovaj izbor više ne vrijedi. Pokušajte ponovo."
-
-
-
-
-
-
+ "Alati za programere za WebView"
+ "Paket WebViewa nije pronađen."
+ "Pokretanje alata za programere nije uspjelo.""Način rada boja slika""Koristi sRGB""Onemogućeno"
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index ed49307c409310e02053eca319d21c6b09196a40..283182c7219d7810c69b364e68c08a088fb02a78 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -113,33 +113,23 @@
"No s\'ha pogut actualitzar l\'entorn""Actiu (només contingut multimèdia). %1$s de bateria.""Actiu (només contingut multimèdia), E: %1$s de bateria, D: %2$s de bateria."
-
-
-
-
-
-
-
-
+ "Dispositiu convidat. %1$s de bateria."
+ "Dispositiu convidat. E: %1$s de bateria, D: %2$s de bateria."
+ "Dispositiu convidat (només contingut multimèdia). %1$s de bateria."
+ "Dispositiu convidat (només contingut multimèdia). E: %1$s de bateria, D: %2$s de bateria.""Connectat (admet compartició d\'àudio). %1$s de bateria.""Connectat (admet compartició d\'àudio), E: %1$s de bateria, D: %2$s de bateria.""Connectat (admet compartició d\'àudio). Esquerre: %1$s de bateria.""Connectat (admet compartició d\'àudio). Dret: %1$s de bateria.""Connectat (admet compartició d\'àudio)"
-
-
-
-
-
-
+ "Dispositiu convidat (admet compartició d\'àudio). %1$s de bateria."
+ "Dispositiu convidat (admet compartició d\'àudio). E: %1$s de bateria, D: %2$s de bateria."
+ "Dispositiu convidat (admet compartició d\'àudio)""Actiu (només contingut multimèdia)"
-
-
-
-
+ "Dispositiu convidat"
+ "Dispositiu convidat (només contingut multimèdia)""Admet compartició d\'àudio"
-
-
+ "Dispositiu convidat. Admet compartició d\'àudio""Actiu (només contingut multimèdia), només esquerre""Actiu (només contingut multimèdia), només dret""Actiu (només contingut multimèdia), esquerre i dret"
@@ -396,8 +386,7 @@
"Renderització accelerada per maquinari""Multimèdia""Supervisió"
-
-
+ "Gestió de finestres""Mode estricte activat""Il·lumina la pantalla quan les aplicacions facin operacions llargues al fil principal""Ubicació del punter"
@@ -492,12 +481,9 @@
"Implementació de WebView""Estableix implementació de WebView""Aquesta opció ja no és vàlida. Torna-ho a provar."
-
-
-
-
-
-
+ "DevTools de WebView"
+ "No s\'ha trobat el paquet de WebView."
+ "No s\'ha pogut iniciar DevTools.""Mode de color de la imatge""Utilitza sRGB""Desactivat"
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 7ea6e430cb09a3db2fefa62266e31d4dc2c0719e..bc00d47af14f59800ae6e7ff421a7f60e026cb9b 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -113,33 +113,23 @@
"Okolí se nepodařilo aktualizovat""Aktivní (pouze média). Baterie: %1$s.""Aktivní (pouze média), baterie: L %1$s, P %2$s."
-
-
-
-
-
-
-
-
+ "Zařízení hosta. Baterie: %1$s."
+ "Zařízení hosta. Baterie: L %1$s, P %2$s."
+ "Zařízení hosta (jen média). Baterie: %1$s."
+ "Zařízení hosta (jen média). Baterie: L %1$s, P %2$s.""Připojeno (podporuje sdílení zvuku), baterie: %1$s.""Připojeno (podporuje sdílení zvuku), baterie: L %1$s, P %2$s.""Připojeno (podporuje sdílení zvuku). Levá strana: %1$s baterie""Připojeno (podporuje sdílení zvuku). Pravá strana: %1$s baterie.""Připojeno (podporuje sdílení zvuku)"
-
-
-
-
-
-
+ "Zařízení hosta (podporuje sdílení zvuku). Baterie: %1$s."
+ "Zařízení hosta (podporuje sdílení zvuku). Baterie: L %1$s, P %2$s."
+ "Zařízení hosta (podporuje sdílení zvuku)""Aktivní (pouze média)"
-
-
-
-
+ "Zařízení hosta"
+ "Zařízení hosta (jen media)""Podporuje sdílení zvuku"
-
-
+ "Zařízení hosta. Podporuje sdílení zvuku""Aktivní (pouze média), pouze levé""Aktivní (pouze média), pouze pravé""Aktivní (pouze média), levé a pravé"
@@ -396,8 +386,7 @@
"Hardwarově urychlené vykreslování""Média""Sledování"
-
-
+ "Správa oken""Přísný režim aktivován""Rozblikat obrazovku při dlouhých operacích hlavního vlákna""Umístění ukazatele"
@@ -492,12 +481,9 @@
"Implementace WebView""Nastavte implementaci WebView""Tato volba již není platná. Zkuste to znovu."
-
-
-
-
-
-
+ "Nástroje pro vývojáře WebView"
+ "Balíček WebView nebyl nalezen."
+ "Nástroje pro vývojáře nelze spustit.""Režim barev obrázku""Použije se barevný prostor sRGB""Vypnuto"
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 4aad2a2b8ac67aff6126b90aca748d8e5d6198ca..986c40f26df7cc50a17f32ca153444ab5d9d983c 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -113,33 +113,23 @@
"Omgivelserne kunne ikke opdateres""Aktiveret (kun for medier). %1$s batteri.""Aktiveret (kun for medier), V: %1$s, H: %2$s batteri."
-
-
-
-
-
-
-
-
+ "Gæsteenhed. %1$s batteri."
+ "Gæsteenhed. V: %1$s, H: %2$s batteri."
+ "Gæsteenhed (kun medier). %1$s batteri."
+ "Gæsteenhed (kun medier). V: %1$s, H: %2$s batteri.""Forbundet (understøtter lyddeling). %1$s batteri.""Forbundet (understøtter lyddeling), V: %1$s, H: %2$s batteri.""Forbundet (understøtter lyddeling). Venstre: %1$s batteri.""Forbundet (understøtter lyddeling). Højre: %1$s batteri.""Forbundet (understøtter lyddeling)"
-
-
-
-
-
-
+ "Gæsteenhed (understøtter lyddeling). %1$s batteri."
+ "Gæsteenhed (understøtter lyddeling). V: %1$s, H: %2$s batteri."
+ "Gæsteenhed (understøtter lyddeling)""Aktiveret (kun for medier)"
-
-
-
-
+ "Gæsteenhed"
+ "Gæsteenhed (kun medier)""Understøtter lyddeling"
-
-
+ "Gæsteenhed. Understøtter lyddeling""Aktiveret (kun for medier), kun venstre""Aktiveret (kun for medier), kun højre""Aktiveret (kun for medier), venstre og højre"
@@ -396,8 +386,7 @@
"Hardware-accelereret gengivelse""Medie""Overvågning"
-
-
+ "Administration af vinduer""Striks tilstand aktiveret""Blink med skærmen, når apps foretager handlinger på hovedtråd""Markørens lokation"
@@ -492,12 +481,9 @@
"WebView-implementering""Konfigurer WebView-implementering""Dette valg er ikke længere gyldigt. Prøv igen."
-
-
-
-
-
-
+ "Udviklerværktøjer til Webvisning"
+ "Pakken Webvisning blev ikke fundet."
+ "Udviklerværktøjer kunne ikke åbnes.""Farvetilstand for billeder""Brug sRGB""Deaktiveret"
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 55cae9699b47ff9c79a573af24431787e952dfde..e7ffaa4f60482d3c373706c8127342a70e6aefdc 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -113,33 +113,23 @@
"Status der Umgebungsgeräusche konnte nicht aktualisiert werden""Aktiv (nur Medien). Akku: %1$s.""Aktiv (nur Medien). Akku links: %1$s, Akku rechts: %2$s."
-
-
-
-
-
-
-
-
+ "Gastgerät. Akku: %1$s."
+ "Gastgerät. Akku links: %1$s, Akku rechts: %2$s."
+ "Gastgerät (nur Medien). Akku: %1$s."
+ "Gastgerät (nur Medien). Akku links: %1$s, Akku rechts: %2$s.""Verbunden (unterstützt Audiofreigabe). Akku: %1$s.""Verbunden (unterstützt Audiofreigabe). Akku links: %1$s, Akku rechts: %2$s.""Verbunden (unterstützt Audiofreigabe). Akku links: %1$s.""Verbunden (unterstützt Audiofreigabe). Akku rechts: %1$s.""Verbunden (unterstützt Audiofreigabe)"
-
-
-
-
-
-
+ "Gastgerät (unterstützt Audiofreigabe). Akku: %1$s."
+ "Gastgerät (unterstützt Audiofreigabe). Akku links: %1$s, Akku rechts: %2$s."
+ "Gastgerät (unterstützt Audiofreigabe)""Aktiv (nur Medien)"
-
-
-
-
+ "Gastgerät"
+ "Gastgerät (nur Medien)""Unterstützt Audiofreigabe"
-
-
+ "Gastgerät. Unterstützt Audiofreigabe.""Aktiv (nur Medien), nur links""Aktiv (nur Medien), nur rechts""Aktiv (nur Medien), links und rechts"
@@ -396,8 +386,7 @@
"Hardwarebeschleunigtes Rendering""Medien""Monitoring"
-
-
+ "Fensterverwaltung""Strikter Modus aktiviert""Bei langen App-Vorgängen im Hauptthread blinkt Bildschirm""Zeigerposition"
@@ -492,12 +481,9 @@
"WebView-Implementierung""WebView-Implementierung festlegen""Diese Auswahl ist nicht mehr gültig. Bitte versuche es noch einmal."
-
-
-
-
-
-
+ "WebView-Entwicklertools"
+ "Das WebView-Paket wurde nicht gefunden."
+ "Die Entwicklertools konnten nicht gestartet werden.""Farbmodus für Bilder""sRGB verwenden""Deaktiviert"
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 6b6b7fbcab93c81a4bb611c5fe0c3fe2471a3f2f..2fc0ff2fc1dbd94a2144bb97925b0850b73eda9a 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -113,33 +113,23 @@
"Δεν ήταν δυνατή η ενημέρωση των ήχων περιβάλλοντος""Ενεργό (μόνο για μέσα). %1$s μπαταρία.""Ενεργό (μόνο για μέσα). Α: %1$s, Δ: %2$s μπαταρία."
-
-
-
-
-
-
-
-
+ "Συσκευή επισκέπτη. %1$s μπαταρία."
+ "Συσκευή επισκέπτη. Α: %1$s, Δ: %2$s μπαταρία."
+ "Συσκευή επισκέπτη (μόνο για μέσα). %1$s μπαταρία."
+ "Συσκευή επισκέπτη (μόνο για μέσα). Α: %1$s, Δ: %2$s μπαταρία.""Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). %1$s μπαταρία.""Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). Α: %1$s, Δ: %2$s μπαταρία.""Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). Αριστερά: %1$s μπαταρία.""Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). Δεξιά: %1$s μπαταρία.""Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου)"
-
-
-
-
-
-
+ "Συσκευή επισκέπτη (υποστηρίζει κοινή χρήση ήχου). %1$s μπαταρία."
+ "Συσκευή επισκέπτη (υποστηρίζει κοινή χρήση ήχου). Α: %1$s, Δ: %2$s μπαταρία."
+ "Συσκευή επισκέπτη (υποστηρίζει κοινή χρήση ήχου)""Ενεργό (μόνο για μέσα)"
-
-
-
-
+ "Συσκευή επισκέπτη"
+ "Συσκευή επισκέπτη (μόνο μέσα)""Υποστηρίζει κοινή χρήση ήχου"
-
-
+ "Συσκευή επισκέπτη. Υποστηρίζει κοινή χρήση ήχου""Ενεργό (μόνο για μέσα), μόνο αριστερό""Ενεργό (μόνο για μέσα), μόνο δεξί""Ενεργό (μόνο για μέσα), αριστερό και δεξί"
@@ -396,8 +386,7 @@
"Απόδοση με επιτάχυνση από υλικό εξοπλισμό""Μέσα""Παρακολούθηση"
-
-
+ "Διαχείριση παραθύρων""Ενεργ. αυστηρής λειτουργ.""Αναβ. οθόνη σε εκτέλεση μεγάλων λειτ.σε κύριο νήμα""Θέση δείκτη"
@@ -492,12 +481,9 @@
"Υλοποίηση WebView""Ορισμός υλοποίησης WebView""Αυτή η επιλογή δεν είναι πια έγκυρη. Δοκιμάστε ξανά."
-
-
-
-
-
-
+ "Εργαλεία για προγραμματιστές Προβολής στον ιστό"
+ "Δεν βρέθηκε το πακέτο Προβολή στον ιστό."
+ "Αδύνατη εκκίνηση Εργαλείων για προγραμματιστές.""Λειτουργία χρώματος εικόνας""Χρήση sRGB""Απενεργοποιημένο"
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index a8119602b651f5c241449982596aaf8eb4f8498a..34d6bf7299f2f1acf59fb02079dd8fcf174123e5 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -113,33 +113,23 @@
"Couldn\'t update surroundings""Active (media only). %1$s battery.""Active (media only). L: %1$s, R: %2$s battery."
-
-
-
-
-
-
-
-
+ "Guest device. %1$s battery."
+ "Guest device. L: %1$s, R: %2$s battery."
+ "Guest device (media only). %1$s battery."
+ "Guest device (media only). L: %1$s, R: %2$s battery.""Connected (supports audio sharing). %1$s battery.""Connected (supports audio sharing). L: %1$s, R: %2$s battery.""Connected (supports audio sharing). Left: %1$s battery.""Connected (supports audio sharing). Right: %1$s battery.""Connected (supports audio sharing)"
-
-
-
-
-
-
+ "Guest device (supports audio sharing). %1$s battery."
+ "Guest device (supports audio sharing). L: %1$s, R: %2$s battery."
+ "Guest device (supports audio sharing)""Active (media only)"
-
-
-
-
+ "Guest device"
+ "Guest device (media only)""Supports audio sharing"
-
-
+ "Guest device. Supports audio sharing""Active (media only), left only""Active (media only), right only""Active (media only), left and right"
@@ -396,8 +386,7 @@
"Hardware accelerated rendering""Media""Monitoring"
-
-
+ "Window management""Strict mode enabled""Flash screen when apps do long operations on main thread""Pointer location"
@@ -492,12 +481,9 @@
"WebView implementation""Set WebView implementation""This choice is no longer valid. Try again."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView package not found."
+ "Could not launch DevTools.""Picture colour mode""Use sRGB""Disabled"
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index a12b46c06300dd323041a2b973f349a6cd33084f..1203437275934d8b952b418bb6ca344dbb9e2235 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -386,8 +386,7 @@
"Hardware accelerated rendering""Media""Monitoring"
-
-
+ "Window Management""Strict mode enabled""Flash screen when apps do long operations on main thread""Pointer location"
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index a8119602b651f5c241449982596aaf8eb4f8498a..34d6bf7299f2f1acf59fb02079dd8fcf174123e5 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -113,33 +113,23 @@
"Couldn\'t update surroundings""Active (media only). %1$s battery.""Active (media only). L: %1$s, R: %2$s battery."
-
-
-
-
-
-
-
-
+ "Guest device. %1$s battery."
+ "Guest device. L: %1$s, R: %2$s battery."
+ "Guest device (media only). %1$s battery."
+ "Guest device (media only). L: %1$s, R: %2$s battery.""Connected (supports audio sharing). %1$s battery.""Connected (supports audio sharing). L: %1$s, R: %2$s battery.""Connected (supports audio sharing). Left: %1$s battery.""Connected (supports audio sharing). Right: %1$s battery.""Connected (supports audio sharing)"
-
-
-
-
-
-
+ "Guest device (supports audio sharing). %1$s battery."
+ "Guest device (supports audio sharing). L: %1$s, R: %2$s battery."
+ "Guest device (supports audio sharing)""Active (media only)"
-
-
-
-
+ "Guest device"
+ "Guest device (media only)""Supports audio sharing"
-
-
+ "Guest device. Supports audio sharing""Active (media only), left only""Active (media only), right only""Active (media only), left and right"
@@ -396,8 +386,7 @@
"Hardware accelerated rendering""Media""Monitoring"
-
-
+ "Window management""Strict mode enabled""Flash screen when apps do long operations on main thread""Pointer location"
@@ -492,12 +481,9 @@
"WebView implementation""Set WebView implementation""This choice is no longer valid. Try again."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView package not found."
+ "Could not launch DevTools.""Picture colour mode""Use sRGB""Disabled"
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index a8119602b651f5c241449982596aaf8eb4f8498a..34d6bf7299f2f1acf59fb02079dd8fcf174123e5 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -113,33 +113,23 @@
"Couldn\'t update surroundings""Active (media only). %1$s battery.""Active (media only). L: %1$s, R: %2$s battery."
-
-
-
-
-
-
-
-
+ "Guest device. %1$s battery."
+ "Guest device. L: %1$s, R: %2$s battery."
+ "Guest device (media only). %1$s battery."
+ "Guest device (media only). L: %1$s, R: %2$s battery.""Connected (supports audio sharing). %1$s battery.""Connected (supports audio sharing). L: %1$s, R: %2$s battery.""Connected (supports audio sharing). Left: %1$s battery.""Connected (supports audio sharing). Right: %1$s battery.""Connected (supports audio sharing)"
-
-
-
-
-
-
+ "Guest device (supports audio sharing). %1$s battery."
+ "Guest device (supports audio sharing). L: %1$s, R: %2$s battery."
+ "Guest device (supports audio sharing)""Active (media only)"
-
-
-
-
+ "Guest device"
+ "Guest device (media only)""Supports audio sharing"
-
-
+ "Guest device. Supports audio sharing""Active (media only), left only""Active (media only), right only""Active (media only), left and right"
@@ -396,8 +386,7 @@
"Hardware accelerated rendering""Media""Monitoring"
-
-
+ "Window management""Strict mode enabled""Flash screen when apps do long operations on main thread""Pointer location"
@@ -492,12 +481,9 @@
"WebView implementation""Set WebView implementation""This choice is no longer valid. Try again."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView package not found."
+ "Could not launch DevTools.""Picture colour mode""Use sRGB""Disabled"
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 6c3c98aa5702f491c559995522f84410ade19f6c..ca17178b0db04309e1fa071b9f33adb5485db4e8 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -113,33 +113,23 @@
"No se pudo actualizar el sonido envolvente""Activado (solo para contenido multimedia). %1$s de batería.""Activo (solo para contenido multimedia); I: %1$s; D: %2$s de batería."
-
-
-
-
-
-
-
-
+ "Dispositivo de invitado. %1$s de batería."
+ "Dispositivo de invitado. I: %1$s; D: %2$s de batería."
+ "Dispositivo de invitado (solo para contenido multimedia). %1$s de batería."
+ "Dispositivo de invitado (solo para contenido multimedia). I: %1$s; D: %2$s de batería.""Conectado (admite el uso compartido de audio); %1$s de batería.""Conectado (admite el uso compartido de audio); I: %1$s; D: %2$s de batería.""Conectado (admite el uso compartido de audio). Izquierdo: %1$s de batería.""Conectado (admite el uso compartido de audio). Derecho: %1$s de batería.""Conectado (admite el uso compartido de audio)"
-
-
-
-
-
-
+ "Dispositivo de invitado (admite el uso compartido de audio). %1$s de batería."
+ "Dispositivo de invitado (admite el uso compartido de audio). I: %1$s; D: %2$s de batería."
+ "Dispositivo de invitado (admite el uso compartido de audio)""Activo (solo para contenido multimedia)"
-
-
-
-
+ "Dispositivo de invitado"
+ "Dispositivo de invitado (solo para contenido multimedia)""Admite el uso compartido de audio"
-
-
+ "Dispositivo de invitado. Admite el uso compartido de audio""Activo (solo para contenido multimedia); solo izquierdo""Activo (solo para contenido multimedia); solo derecho""Activo (solo para contenido multimedia); izquierdo y derecho"
@@ -396,8 +386,7 @@
"Renderización acelerada por hardware""Multimedia""Supervisión"
-
-
+ "Administración de ventanas""Modo estricto""Parpadear si aplicaciones tardan en proceso principal""Ubicación del puntero"
@@ -492,12 +481,9 @@
"Implementación de WebView""Configurar la implementación de WebView""Esta opción ya no es válida. Vuelve a intentarlo."
-
-
-
-
-
-
+ "Herramientas para desarrolladores de WebView"
+ "No se encontró el paquete WebView."
+ "No se pudieron iniciar las Herramientas para desarrolladores.""Modo de color de la imagen""Usa sRGB""Inhabilitado"
@@ -667,7 +653,7 @@
"Los administradores tienen privilegios especiales que no tienen otros usuarios. Un administrador puede administrar a todos los usuarios, actualizar o restablecer el dispositivo, modificar parámetros de configuración, ver todas las apps instaladas y otorgar o revocar privilegios de administrador de otros usuarios.""Convertir en administrador""¿Configurar el usuario ahora?"
- "Asegúrate de que la persona pueda acceder al dispositivo y configurar su espacio."
+ "Asegúrate de que la persona pueda acceder al dispositivo y configurar su espacio""¿Quieres configurar tu perfil ahora?""Configurar ahora""Ahora no"
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index b91c9b420cf00d7e5d9b888c36961f98bbc74417..22e8b114f875dae0b1f1b84f6d6cbf0a95aade6c 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -113,33 +113,23 @@
"No se han podido actualizar los alrededores""Activo (solo multimedia). %1$s de batería.""Activo (solo multimedia). Izquierdo: %1$s de batería. Derecho: %2$s de batería."
-
-
-
-
-
-
-
-
+ "Dispositivo invitado. %1$s de batería."
+ "Dispositivo invitado. Izquierdo: %1$s de batería. Derecho: %2$s de batería."
+ "Dispositivo invitado (solo multimedia). %1$s de batería."
+ "Dispositivo invitado (solo multimedia). Izquierdo: %1$s de batería. Derecho: %2$s de batería.""Conectado (permite compartir audio). %1$s de batería.""Conectado (admite Compartir audio). Izquierdo: %1$s de batería. Derecho: %2$s de batería.""Conectado (admite Compartir audio). Izquierdo: %1$s de batería.""Conectado (admite Compartir audio). Derecho: %1$s de batería.""Conectado (admite Compartir audio)"
-
-
-
-
-
-
+ "Dispositivo invitado (admite Compartir audio). %1$s de batería."
+ "Dispositivo invitado (admite Compartir audio). Izquierdo: %1$s de batería. Derecho: %2$s de batería."
+ "Dispositivo invitado (admite Compartir audio)""Activo (solo multimedia)"
-
-
-
-
+ "Dispositivo invitado"
+ "Dispositivo invitado (solo multimedia)""Permite compartir audio"
-
-
+ "Dispositivo invitado. Admite Compartir audio.""Activo (solo multimedia), solo el izquierdo""Activo (solo multimedia), solo el derecho""Activo (solo multimedia), izquierdo y derecho"
@@ -396,8 +386,7 @@
"Renderización acelerada por hardware""Multimedia""Supervisión"
-
-
+ "Gestión de ventanas""Modo Estricto habilitado""Hace parpadear la pantalla si las aplicaciones tardan mucho en el subproceso principal""Ubicación del puntero"
@@ -492,12 +481,9 @@
"Implementación de WebView""Establecer implementación de WebView""Esta opción ya no está disponible. Vuelve a intentarlo."
-
-
-
-
-
-
+ "DevTools de WebView"
+ "No se ha encontrado el paquete WebView."
+ "No se ha podido iniciar DevTools.""Modo de color de imagen""Utiliza sRGB""Inhabilitado"
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index 8c5d7fe4a96b8789d4bd0e3e3e87d9c076c58927..0de0197945284e6e1caedbbfe0047cd11957bfd0 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -113,33 +113,23 @@
"Ümbritsevate helide seadeid ei saanud värskendada""Aktiivne (ainult meedia). Aku %1$s.""Aktiivne (ainult meedia). Aku: V: %1$s, P: %2$s."
-
-
-
-
-
-
-
-
+ "Külalisseade. Aku: %1$s."
+ "Külalisseade. Aku: V: %1$s, P: %2$s."
+ "Külalisseade (ainult meedia). Aku: %1$s."
+ "Külalisseade (ainult meedia). Aku: V: %1$s, P: %2$s.""Ühendatud (toetab heli jagamist). Aku %1$s.""Ühendatud (toetab heli jagamist). Aku: V: %1$s, P: %2$s.""Ühendatud (toetab heli jagamist). Vasak: aku %1$s.""Ühendatud (toetab heli jagamist). Parem: aku %1$s.""Ühendatud (toetab heli jagamist)"
-
-
-
-
-
-
+ "Külalisseade (toetab heli jagamist). Aku: %1$s."
+ "Külalisseade (toetab heli jagamist). Aku: V: %1$s, P: %2$s."
+ "Külalisseade (toetab heli jagamist)""Aktiivne (ainult meedia)"
-
-
-
-
+ "Külalisseade"
+ "Külalisseade (ainult meedia)""Toetab heli jagamist"
-
-
+ "Külalisseade. Toetab heli jagamist.""Aktiivne (ainult meedia), ainult vasak""Aktiivne (ainult meedia), ainult parem""Aktiivne (ainult meedia), vasak ja parem"
@@ -396,8 +386,7 @@
"Riistvarakiirendusega renderdamine""Meedia""Jälgimine"
-
-
+ "Akende haldamine""Range režiim on lubatud""Ekraan vilgub, kui rakendused teevad pealõimes pikki toiminguid""Kursori asukoht"
@@ -492,12 +481,9 @@
"WebView\' rakendamine""WebView\' rakendamise seadistamine""See valik ei kehti enam. Proovige uuesti."
-
-
-
-
-
-
+ "WebView\' arendaja tööriistad"
+ "WebView\' paketti ei leitud."
+ "Ei saanud arendaja tööriistu käivitada.""Pildi värvirežiim""sRGB kasutamine""Keelatud"
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index a1e46649c3cf98d631302c6a83d32ecf97ac6eab..7a8bf56841b67b2fec7b9c8cfc4901e5f31edb4e 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -113,33 +113,23 @@
"Ezin izan da eguneratu ingurunea""Aktibo (multimedia-edukia soilik). Bateria: %1$s.""Aktibo (multimedia-edukia soilik). L aldearen bateria: %1$s. R aldearen bateria: %2$s."
-
-
-
-
-
-
-
-
+ "Gailu gonbidatua. Bateria: %1$s."
+ "Gailu gonbidatua. L aldearen bateria: %1$s. R aldearen bateria: %2$s."
+ "Gailu gonbidatua (multimedia-edukia soilik). Bateria: %1$s."
+ "Gailu gonbidatua (multimedia-edukia soilik). L aldearen bateria: %1$s. R aldearen bateria: %2$s.""Konektatuta (audioa partekatzeko eginbidea onartzen du). Bateria: %1$s.""Konektatuta (audioa partekatzeko eginbidea onartzen du). L aldearen bateria: %1$s. R aldearen bateria: %2$s.""Konektatuta (audioa partekatzeko eginbidea onartzen du). Ezkerreko aldearen bateria: %1$s.""Konektatuta (audioa partekatzeko eginbidea onartzen du). Eskuineko aldearen bateria: %1$s.""Konektatuta (audioa partekatzeko eginbidea onartzen du)"
-
-
-
-
-
-
+ "Gailu gonbidatua (audioa partekatzeko eginbidea onartzen du). Bateria: %1$s."
+ "Gailu gonbidatua (audioa partekatzeko eginbidea onartzen du). L aldearen bateria: %1$s. R aldearen bateria: %2$s."
+ "Gailu gonbidatua (audioa partekatzeko eginbidea onartzen du)""Aktibo (multimedia-edukia soilik)"
-
-
-
-
+ "Gailu gonbidatua"
+ "Gailu gonbidatua (multimedia-edukia soilik)""Audioa partekatzeko eginbidea onartzen du"
-
-
+ "Gailu gonbidatua. Audioa partekatzeko eginbidea onartzen du.""Aktibo (multimedia-edukia soilik); ezkerreko aldea soilik""Aktibo (multimedia-edukia soilik); eskuineko aldea soilik""Aktibo (multimedia-edukia soilik); ezkerreko eta eskuineko aldeak"
@@ -396,8 +386,7 @@
"Hardware bidez azeleratutako errendatzea""Multimedia-edukia""Kontrola"
-
-
+ "Leihoen kudeaketa""Modu zorrotza gaituta""Distirarazi hari nagusian eragiketa luzeak egitean""Erakuslearen kokapena"
@@ -492,12 +481,9 @@
"WebView inplementazioa""Ezarri WebView inplementazioa""Jada ez dago erabilgarri aukera hori. Saiatu berriro."
-
-
-
-
-
-
+ "WebView-ren garatzaileentzako tresnak"
+ "Ez da aurkitu WebView-ko paketea."
+ "Ezin izan dira abiarazi garatzaileentzako tresnak.""Irudiaren kolore modua""Erabili sRGB""Desgaituta"
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index c939180e6f5af05332617a462c4e7713cb8ed897..9ba2f35109801fe4d9043347a8f9fb06142b91db 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -113,33 +113,23 @@
"پیرامون بهروز نشد""فعال (فقط رسانه). باتری: %1$s.""فعال (فقط رسانه). باتری چپ: %1$s، باتری راست: %2$s."
-
-
-
-
-
-
-
-
+ "دستگاه مهمان. سطح باتری: %1$s."
+ "دستگاه مهمان. سطح باتری چپ: %1$s، سطح باتری راست: %2$s."
+ "دستگاه مهمان (فقط رسانه). سطح باتری: %1$s."
+ "دستگاه مهمان (فقط رسانه). سطح باتری چپ: %1$s، سطح باتری راست: %2$s.""متصل (از اشتراک صدا پشتیبانی میکند)، باتری: %1$s.""متصل (از اشتراک صدا پشتیبانی میکند)، باتری چپ: %1$s، باتری راست: %2$s.""متصل (از اشتراک صدا پشتیبانی میکند). باتری چپ: %1$s.""متصل (از اشتراک صدا پشتیبانی میکند). باتری راست: %1$s.""متصل (از اشتراک صدا پشتیبانی میکند)"
-
-
-
-
-
-
+ "دستگاه مهمان (از «اشتراک صدا» پشتیبانی میکند). سطح باتری: %1$s."
+ "دستگاه مهمان (از «اشتراک صدا» پشتیبانی میکند). سطح باتری چپ: %1$s، سطح باتری راست: %2$s."
+ "دستگاه مهمان (از «اشتراک صدا» پشتیبانی میکند)""فعال (فقط رسانه)"
-
-
-
-
+ "دستگاه مهمان"
+ "دستگاه مهمان (فقط رسانه)""از اشتراک صدا پشتیبانی میکند"
-
-
+ "دستگاه مهمان. از «اشتراک صدا» پشتیبانی میکند""فعال (فقط رسانه)، فقط چپ""فعال (فقط رسانه)، فقط راست""فعال (فقط رسانه)، چپ و راست"
@@ -157,7 +147,7 @@
"صدای HD""سمعک""صدای کممصرف"
- "متصل به سمعک"
+ "به سمعک وصلشده""به «صدای کممصرف» وصل است""به رسانه صوتی متصل شد""به تلفن صوتی متصل شد"
@@ -396,8 +386,7 @@
"پردازش سختافزاری سریع""رسانه""نظارت"
-
-
+ "مدیریت پنجره""حالت شدید فعال شد""چشمک زدن صفحه هنگام انجام عملیات طولانی توسط برنامهها در رشته اصلی""محل اشارهگر"
@@ -492,12 +481,9 @@
"اجرای وبنما""تنظیم اجرای وبنما""این انتخاب دیگر معتبر نیست. دوباره امتحان کنید."
-
-
-
-
-
-
+ "DevTools وبنما"
+ "بسته وبنما پیدا نشد."
+ "DevTools راهاندازی نشد.""حالت رنگ عکس""استفاده از sRGB""غیر فعال"
@@ -620,7 +606,7 @@
"این تلویزیون""بلندگوی پایه اتصال""دستگاه خارجی"
- "دستگاه متصل"
+ "دستگاه وصلشده""این تلفن""S/PDIF""آنالوگ"
@@ -632,7 +618,7 @@
"برای پخش در اینجا، دستگاه را بیدار کنید""دستگاه برای پخش تأیید نشده است""نمیتوان این رسانه را اینجا پخش کرد"
- "متصل"
+ "وصلشده""HDMI ARC""HDMI eARC""متصل ازطریق ARC"
@@ -667,7 +653,7 @@
"سرپرستان امتیازهای ویژهای دارند که کاربران دیگر ندارند. سرپرست میتواند همه کاربران را مدیریت کند، این دستگاه را بهروز یا بازنشانی کند، تنظیمات را تغییر دهد، همه برنامههای نصبشده را ببیند، و امتیازهای سرپرست را به دیگران اعطا کند یا از آنها بگیرد.""انتخاب بهعنوان سرپرست""هم اکنون کاربر تنظیم شود؟"
- "مطمئن شوید شخص در دسترس است تا دستگاه را بگیرد و فضایش را تنظیم کند"
+ "مطمئن شوید آن شخص دردسترس است تا دستگاه را بگیرد و فضای خود را تنظیم کند""اکنون نمایه را تنظیم میکنید؟""اکنون تنظیم شود""حالا نه"
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index d2228824cd04675f7f9ba6999be5814b9a044180..d1cc76cab9aa6d806e3557067922501d04935a06 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -113,33 +113,23 @@
"Ympäristön päivittäminen epäonnistui""Aktiivinen (vain media). %1$s virtaa.""Aktiivinen (vain media). V: %1$s, O: %2$s virtaa."
-
-
-
-
-
-
-
-
+ "Vieraslaite. %1$s virtaa."
+ "Vieraslaite. V: %1$s, O: %2$s virtaa."
+ "Vieraslaite (vain media). %1$s virtaa."
+ "Vieraslaite (vain media). V: %1$s, O: %2$s virtaa.""Yhdistetty (tukee audionjakoa). %1$s virtaa.""Yhdistetty (tukee audionjakoa). V: %1$s virtaa, O: %2$s virtaa.""Yhdistetty (tukee audionjakoa). Vasen: %1$s virtaa.""Yhdistetty (tukee audionjakoa). Oikea: %1$s virtaa.""Yhdistetty (tukee audionjakoa)"
-
-
-
-
-
-
+ "Vieraslaite (tukee audionjakoa). %1$s virtaa."
+ "Vieraslaite (tukee audionjakoa). V: %1$s, O: %2$s virtaa."
+ "Vieraslaite (tukee audionjakoa)""Aktiivinen (vain media)"
-
-
-
-
+ "Vieraslaite"
+ "Vieraslaite (vain media)""Tukee audionjakoa"
-
-
+ "Vieraslaite. Tukee audionjakoa""Aktiivinen (vain media), vain vasen""Aktiivinen (vain media), vain oikea""Aktiivinen (vain media), vasen ja oikea"
@@ -396,8 +386,7 @@
"Laitteistokiihdytetty hahmonnus""Media""Valvonta"
-
-
+ "Ikkunoiden hallinnointi""Tiukka tila käytössä""Vilkuta näyttöä sovellusten tehdessä pitkiä toimia""Osoittimen sijainti"
@@ -492,12 +481,9 @@
"WebView-käyttöönotto""Määritä WebView-käyttöönotto""Tämä valinta ei ole enää saatavilla. Yritä uudestaan."
-
-
-
-
-
-
+ "WebView\'n DevTools"
+ "WebView-pakettia ei löydy."
+ "DevToolsia ei voitu käynnistää.""Kuvien värit""Ota sRGB käyttöön""Poistettu käytöstä"
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index b03e6cb372e2eb6b5dccbb66c250b1f813fa20bf..d83389261c71b2f82faf9251dcb161b2b5ad2940 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -113,33 +113,23 @@
"Impossible de mettre à jour les sons de l\'environnement""Actif (contenu multimédia uniquement). Pile à %1$s.""Actif (contenu multimédia uniquement). G. : pile à %1$s, D. : pile à %2$s."
-
-
-
-
-
-
-
-
+ "Appareil invité. Pile à %1$s."
+ "Appareil invité. G. : pile à %1$s, D. : pile à %2$s."
+ "Appareil invité (contenu multimédia seulement). Pile à %1$s."
+ "Appareil invité (contenu multimédia seulement). G. : pile à %1$s, D. : pile à %2$s.""Connecté (prise en charge du partage audio). Pile à %1$s.""Connecté (prise en charge du partage audio). G. : pile à %1$s, D. : pile à %2$s.""Connecté (prise en charge du partage audio). Gauche : pile à %1$s.""Connecté (prise en charge du partage audio). Droite : pile à %1$s.""Connecté (prise en charge du partage audio)"
-
-
-
-
-
-
+ "Appareil invité (prend en charge le partage audio). Pile à %1$s."
+ "Appareil invité (prend en charge le partage audio). G. : pile à %1$s, D. : pile à %2$s."
+ "Appareil invité (prend en charge le partage audio)""Actif (contenu multimédia uniquement)"
-
-
-
-
+ "Appareil invité"
+ "Appareil invité (contenu multimédia seulement)""Prise en charge du partage audio"
-
-
+ "Appareil invité. Prend en charge le partage audio""Actif (contenu multimédia uniquement), côté gauche seulement""Actif (contenu multimédia uniquement), côté droit seulement""Actif (contenu multimédia uniquement), côtés gauche et droit"
@@ -396,8 +386,7 @@
"Accélération matérielle""Médias""Surveillance"
-
-
+ "Gestion des fenêtres""Mode Strict activé""Afficher un cadre rouge si le fil principal reste occupé""Emplacement du curseur"
@@ -492,12 +481,9 @@
"Mise en œuvre WebView""Définir la mise en œuvre WebView""Ce choix n\'est plus valide. Réessayez."
-
-
-
-
-
-
+ "Outils pour les développeurs WebView"
+ "Impossible de trouver l\'ensemble WebView."
+ "Impossible de lancer les outils pour développeurs.""Mode couleur des images""Utiliser sRGB""Désactivé"
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 4440126078fdc6d0d5d66ed094d2551898012a6a..2fc946b9ed9fc7138afb1bc32a9917fde6bc6fe3 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -113,33 +113,23 @@
"Impossible de mettre à jour le mode Sons environnants""Actif (multimédia uniquement). %1$s de batterie.""Actif (multimédia uniquement). Gauche : %1$s de batterie, droit : %2$s de batterie."
-
-
-
-
-
-
-
-
+ "Appareil invité. %1$s de batterie."
+ "Appareil invité. Gauche : %1$s de batterie, droit : %2$s de batterie."
+ "Appareil invité (multimédia uniquement). %1$s de batterie."
+ "Appareil invité (multimédia uniquement). Gauche : %1$s de batterie, droit : %2$s de batterie.""Connecté (compatible avec le partage audio). %1$s de batterie.""Connecté (compatible avec le partage audio). Gauche : %1$s de batterie, droit : %2$s de batterie.""Connecté (compatible avec le partage audio). Gauche : %1$s de batterie.""Connecté (compatible avec le partage audio). Droit : %1$s de batterie.""Connecté (compatible avec le partage audio)"
-
-
-
-
-
-
+ "Appareil invité (compatible avec le partage audio). %1$s de batterie."
+ "Appareil invité (compatible avec le partage audio). Gauche : %1$s de batterie, droit : %2$s de batterie."
+ "Appareil invité (compatible avec le partage audio)""Activé (multimédia uniquement)"
-
-
-
-
+ "Appareil invité"
+ "Appareil invité (multimédia uniquement)""Compatible avec le partage audio"
-
-
+ "Appareil invité. Compatible avec le partage audio""Activé (multimédia uniquement), gauche uniquement""Activé (multimédia uniquement), droit uniquement""Activé (multimédia uniquement), gauche et droit"
@@ -396,8 +386,7 @@
"Rendu accéléré par le matériel""Multimédia""Suivi"
-
-
+ "Gestion des fenêtres""Mode Strict activé""Faire clignoter l\'écran si le thread principal reste occupé""Emplacement du curseur"
@@ -492,12 +481,9 @@
"Implémentation WebView""Définir la mise en œuvre WebView""Ce choix n\'est plus valide. Réessayez."
-
-
-
-
-
-
+ "Outils de développement WebView"
+ "Package WebView introuvable."
+ "Impossible de lancer les outils de développement.""Mode de couleur des images""Utiliser sRGB""Désactivé"
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 536b91816bc47ffe5230e4d26f3509e36b4406c5..b6eacfc332938e4a0d65117cfd65e9997dd052df 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -113,33 +113,23 @@
"Non se puido actualizar o ambiente""Activo (só contido multimedia). %1$s de batería.""Activo (só contido multimedia). Esquerdo: %1$s de batería. Dereito: %2$s de batería."
-
-
-
-
-
-
-
-
+ "Dispositivo convidado. %1$s de batería."
+ "Dispositivo convidado. Esquerdo: %1$s de batería. Dereito: %2$s de batería."
+ "Dispositivo convidado (só contido multimedia). %1$s de batería."
+ "Dispositivo convidado (só contido multimedia). Esquerdo: %1$s de batería. Dereito: %2$s de batería.""Conectado (compatible con audio compartido). %1$s de batería.""Conectado (compatible con audio compartido). Esquerdo: %1$s de batería. Dereito: %2$s de batería.""Conectado (compatible con audio compartido). Esquerdo: %1$s de batería.""Conectado (compatible con audio compartido). Dereito: %1$s de batería.""Conectado (compatible con audio compartido)"
-
-
-
-
-
-
+ "Dispositivo convidado (compatible con audio compartido). %1$s de batería."
+ "Dispositivo convidado (compatible con audio compartido). Esquerdo: %1$s de batería. Dereito: %2$s de batería."
+ "Dispositivo convidado (compatible con audio compartido)""Activo (só contido multimedia)"
-
-
-
-
+ "Dispositivo convidado"
+ "Dispositivo convidado (só contido multimedia)""Compatible con audio compartido"
-
-
+ "Dispositivo convidado. Compatible con audio compartido""Activo (só contido multimedia), só esquerdo""Activo (só contido multimedia), só dereito""Activo (só contido multimedia), esquerdo e dereito"
@@ -396,8 +386,7 @@
"Procesamento acelerado mediante hardware""Multimedia""Supervisión"
-
-
+ "Xestión de ventás""Modo estrito activado""A pantalla ilumínase se as aplicacións tardan moito no proceso principal""Localización do punteiro"
@@ -492,12 +481,9 @@
"Implementación de WebView""Definir implementación de WebView""Esta opción xa non é válida. Téntao de novo."
-
-
-
-
-
-
+ "DevTools de WebView"
+ "Non se atopou o paquete de WebView."
+ "Non se puido activar DevTools.""Modo de cor da imaxe""Utiliza sRGB""Desactivado"
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 1b4bad3835896dd929659f319b81cdf1091e7408..57f898210efd7fe86ccfd772895b53bcdca773fd 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -113,33 +113,23 @@
"આસપાસના અવાજો અપડેટ કરી શક્યા નથી""સક્રિય (માત્ર મીડિયા માટે). %1$s બૅટરી.""સક્રિય (માત્ર મીડિયા માટે). ડાબી બાજુ: %1$s, જમણી બાજુ: %2$s બૅટરી."
-
-
-
-
-
-
-
-
+ "અતિથિ ડિવાઇસ. %1$s બૅટરી."
+ "અતિથિ ડિવાઇસ. ડાબી બાજુ: %1$s, જમણી બાજુ: %2$s બૅટરી."
+ "અતિથિ ડિવાઇસ (માત્ર મીડિયા માટે). %1$s બૅટરી."
+ "અતિથિ ડિવાઇસ (માત્ર મીડિયા માટે). ડાબી બાજુ: %1$s, જમણી બાજુ: %2$s બૅટરી.""કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). %1$s બૅટરી.""કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). ડાબી બાજુ: %1$s, જમણી બાજુ: %2$s બૅટરી.""કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). ડાબી બાજુ: %1$s બૅટરી.""કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). જમણી બાજુ: %1$s બૅટરી.""કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે)"
-
-
-
-
-
-
+ "અતિથિ ડિવાઇસ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). %1$s બૅટરી."
+ "અતિથિ ડિવાઇસ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). ડાબી બાજુ: %1$s, જમણી બાજુ: %2$s બૅટરી."
+ "અતિથિ ડિવાઇસ (ઑડિયો શેરિંગને સપોર્ટ કરે છે)""સક્રિય છે (માત્ર મીડિયા માટે)"
-
-
-
-
+ "અતિથિ ડિવાઇસ"
+ "અતિથિ ડિવાઇસ (માત્ર મીડિયા માટે)""ઑડિયો શેરિંગને સપોર્ટ કરે છે"
-
-
+ "અતિથિ ડિવાઇસ. ઑડિયો શેરિંગને સપોર્ટ કરે છે""સક્રિય છે (માત્ર મીડિયા માટે), માત્ર ડાબી બાજુ""સક્રિય છે (માત્ર મીડિયા માટે), માત્ર જમણી બાજુ""સક્રિય છે (માત્ર મીડિયા માટે), ડાબી અને જમણી બાજુ"
@@ -177,7 +167,7 @@
"ઇનપુટ માટે ઉપયોગ કરો""સાંભળવામાં મદદ આપતા યંત્રો માટે ઉપયોગ કરો""LE_AUDIO માટે ઉપયોગ કરો"
- "જોડી કરો"
+ "જોડાણ કરો""જોડી કરો""રદ કરો""એ કનેક્ટ કરેલ હોય ત્યારે જોડાણ બનાવવાથી તમારા સંપર્કો અને કૉલ ઇતિહાસનો અૅક્સેસ મળે છે."
@@ -396,8 +386,7 @@
"હાર્ડવેર પ્રવેગક રેન્ડરિંગ""મીડિયા""નિરિક્ષણ કરી રહ્યું છે"
-
-
+ "વિન્ડો મેનેજમેન્ટ""સ્ટ્રિક્ટ મોડ ચાલુ કરેલો છે""જ્યારે મુખ્ય થ્રેડ પર ઍપ લાંબી કામગીરીઓ કરે ત્યારે સ્ક્રીનને ફ્લેશ કરો""પૉઇન્ટર લોકેશન"
@@ -492,12 +481,9 @@
"WebView અમલીકરણ""WebView અમલીકરણ સેટ કરો""આ વિકલ્પ હવે માન્ય નથી. ફરી પ્રયાસ કરો."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView પૅકેજ મળ્યું નથી."
+ "DevTools લૉન્ચ કરી શક્યા નથી.""ચિત્ર રંગ મોડ""sRGB નો ઉપયોગ કરો""બંધ"
@@ -666,20 +652,20 @@
"આ વપરાશકર્તાને ઍડમિન બનાવવા છે?""ઍડમિન પાસે વિશિષ્ટ વિશેષાધિકારો હોય છે જે અન્ય વપરાશકર્તાઓ પાસે હોતા નથી. ઍડમિન બધા વપરાશકર્તાઓને મેનેજ કરી શકે, આ ડિવાઇસને અપડેટ અથવા રીસેટ કરી શકે, સેટિંગમાં ફેરફાર કરી શકે, ઇન્સ્ટૉલ કરેલી બધી ઍપ જોઈ શકે અને અન્ય લોકોને ઍડમિનના અધિકારો આપી શકે અથવા તેમને રદબાતલ કરી શકે.""ઍડમિન બનાવો"
- "અત્યારે જ વપરાશકર્તાને સેટ અપ કરીએ?"
+ "વપરાશકર્તાને હમણાં જ સેટ અપ કરીએ?""ખાતરી કરો કે વ્યક્તિ ડિવાઇસ લેવા અને તેમના સ્થાનનું સેટ અપ કરવા માટે ઉપલબ્ધ છે""હવે પ્રોફાઇલ સેટ કરીએ?"
- "હવે સેટ કરો"
+ "હમણાં જ સેટ અપ કરો""હમણાં નહીં""ઉમેરો""નવો વપરાશકર્તા""નવી પ્રોફાઇલ"
- "વપરાશકર્તા માહિતી"
+ "વપરાશકર્તાની માહિતી""પ્રોફાઇલ માહિતી""તમે પ્રતિબંધિત પ્રોફાઇલ બનાવી શકો તે પહેલાં, તમારે તમારી ઍપ્લિકેશનો અને વ્યક્તિગત ડેટાની સુરક્ષા માટે એક લૉક સ્ક્રીન સેટ કરવાની જરૂર પડશે.""લૉક સેટ કરો""%s પર સ્વિચ કરો"
- "નવા વપરાશકર્તા બનાવી રહ્યાં છીએ…"
+ "નવો વપરાશકર્તા બનાવી રહ્યાં છીએ…""નવા અતિથિની પ્રોફાઇલ બનાવી રહ્યાં છીએ…""નવો વપરાશકર્તા બનાવવામાં નિષ્ફળ""નવી અતિથિ બનાવવામાં નિષ્ફળ રહ્યાં"
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 55d425fa7b384b4670078e2da5062587d89c38d7..02bc92be8899129977bc6511712eaa8a4a1afc2c 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -113,33 +113,23 @@
"वॉल्यूम को मैनेज करने की सेटिंग नहीं बदली जा सकी""चालू है (सिर्फ़ मीडिया के लिए). %1$s बैटरी.""चालू है (सिर्फ़ मीडिया के लिए). बायां हेडसेट: %1$s, दायां हेडसेट: %2$s बैटरी."
-
-
-
-
-
-
-
-
+ "मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस. %1$s बैटरी."
+ "मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस. बायां हेडसेट: %1$s बैटरी, दायां हेडसेट:%2$s बैटरी."
+ "मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस के पास सिर्फ़ मीडिया का ऐक्सेस होता है. %1$s बैटरी."
+ "मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस के पास सिर्फ़ मीडिया का ऐक्सेस होता है. बायां हेडसेट: %1$s बैटरी, दायां हेडसेट:%2$s बैटरी.""कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). %1$s बैटरी.""कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). बायां हेडसेट: %1$s, दायां हेडसेट: %2$s बैटरी.""कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). बायां हेडसेट: %1$s बैटरी.""कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). दायां हेडसेट: %1$s बैटरी.""कनेक्ट है (ऑडियो शेयर करने की सुविधा काम करती है)"
-
-
-
-
-
-
+ "मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस में ऑडियो शेयर करने की सुविधा काम करती है. %1$s बैटरी."
+ "मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस में ऑडियो शेयर करने की सुविधा काम करती है. बायां हेडसेट: %1$s बैटरी, दायां हेडसेट:%2$s बैटरी."
+ "मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस में ऑडियो शेयर करने की सुविधा काम करती है""चालू है (सिर्फ़ मीडिया के लिए)"
-
-
-
-
+ "मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस"
+ "मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस के पास सिर्फ़ मीडिया का ऐक्सेस होता है""ऑडियो शेयर करने की सुविधा काम करती है"
-
-
+ "मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस. ऑडियो शेयर करने की सुविधा काम करती है""चालू है (सिर्फ़ मीडिया के लिए), सिर्फ़ बाएं कान की मशीन""चालू है (सिर्फ़ मीडिया के लिए), सिर्फ़ दाएं कान की मशीन""चालू है (सिर्फ़ मीडिया के लिए), बाएं और दाएं कान की मशीन"
@@ -396,8 +386,7 @@
"हार्डवेयर ऐक्सेलरेटेड रेंडरिंग""मीडिया""निगरानी"
-
-
+ "Window Management""स्ट्रिक्ट मोड चालू रखें""थ्रेड पर लंबा प्रोसेस होने पर स्क्रीन फ़्लैश करें""पॉइंटर की जगह"
@@ -492,12 +481,9 @@
"वेबव्यू लागू करें""वेबव्यू सेट करें""यह चुनाव अब मान्य नहीं है. दोबारा कोशिश करें."
-
-
-
-
-
-
+ "वेबव्यू DevTools"
+ "वेबव्यू पैकेज नहीं मिला."
+ "DevTools लॉन्च नहीं किया जा सका.""चित्र रंग मोड""sRGB का उपयोग करें""बंद"
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 97f2df6a7632ef1abc476baeadcc6e1796fb140e..15eb4710cbf83f1b768d8167d47166bba692130f 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -113,33 +113,23 @@
"Ažuriranje okruženja nije uspjelo""Aktivno (samo medijski sadržaji). %1$s baterije.""Aktivno (samo medijski sadržaji), L: %1$s, D: %2$s baterije."
-
-
-
-
-
-
-
-
+ "Gostujući uređaj. %1$s baterije."
+ "Gostujući uređaj. L: %1$s, D: %2$s baterije."
+ "Gostujući uređaj (samo medijski sadržaji). %1$s baterije."
+ "Gostujući uređaj (samo medijski sadržaji). L: %1$s, D: %2$s baterije.""Povezano (podržava zajedničko slušanje). %1$s baterije.""Povezano (podržava zajedničko slušanje), L: %1$s, D: %2$s baterije.""Povezano (podržava zajedničko slušanje). Lijeva strana: %1$s baterije""Povezano (podržava zajedničko slušanje). Desna strana: %1$s baterije.""Povezano (podržava zajedničko slušanje)"
-
-
-
-
-
-
+ "Gostujući uređaj (podržava zajedničko slušanje). %1$s baterije."
+ "Gostujući uređaj (podržava zajedničko slušanje). L: %1$s, D: %2$s baterije."
+ "Gostujući uređaj (podržava zajedničko slušanje)""Aktivno (samo medijski sadržaji)"
-
-
-
-
+ "Gostujući uređaj"
+ "Gostujući uređaj (samo medijski sadržaji)""Podržava zajedničko slušanje"
-
-
+ "Gostujući uređaj. Podržava zajedničko slušanje""Aktivno (samo medijski sadržaji), samo lijeva""Aktivno (samo medijski sadržaji), samo desna""Aktivno (samo medijski sadržaji), lijeva i desna"
@@ -396,8 +386,7 @@
"Hardverski ubrzano renderiranje""Mediji""Nadzor"
-
-
+ "Upravljanje prozorima""Omogućen strogi način""Zaslon bljeska kada operacije aplikacija u glavnoj niti dugo traju""Mjesto pokazivača"
@@ -492,12 +481,9 @@
"Implementacija WebViewa""Postavi implementaciju WebViewa""Taj izbor više nije važeći. Pokušajte ponovo."
-
-
-
-
-
-
+ "WebView razvojni alati"
+ "WebView paket nije pronađen."
+ "Nije moguće pokrenuti razvojne alate.""Način boje slike""Upotrijebi sRGB""Onemogućeno"
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 5e97cff03a79c3d148972ca46fa8c7a4a74ea7eb..08ae0f870a9e343dcf9434c21d3f7f1f0ea86bc2 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -113,33 +113,23 @@
"Nem sikerült módosítani a környezetet""Aktív (csak médiatartalom lejátszása esetén). Akkumulátor töltöttségi szintje: %1$s.""Aktív (csak médiatartalom lejátszása esetén). Akkumulátorok töltöttségi szintje: %1$s (bal) és %2$s (jobb)."
-
-
-
-
-
-
-
-
+ "Vendégeszköz. Akkumulátor töltöttségi szintje: %1$s."
+ "Vendégeszköz. Akkumulátorok töltöttségi szintje: %1$s (bal) és %2$s (jobb)."
+ "Vendégeszköz (csak médiatartalom lejátszása esetén). Akkumulátor töltöttségi szintje: %1$s."
+ "Vendégeszköz (csak médiatartalom lejátszása esetén). Akkumulátorok töltöttségi szintje: %1$s (bal) és %2$s (jobb).""Csatlakoztatva (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: %1$s.""Csatlakoztatva (támogatja a hang megosztását). Akkumulátorok töltöttségi szintje: %1$s (bal) és %2$s (jobb).""Csatlakoztatva (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: %1$s (bal).""Csatlakoztatva (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: %1$s (jobb).""Csatlakoztatva (támogatja a hang megosztását)."
-
-
-
-
-
-
+ "Vendégeszköz (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: %1$s."
+ "Vendégeszköz (támogatja a hang megosztását). Akkumulátorok töltöttségi szintje: %1$s (bal) és %2$s (jobb)."
+ "Vendégeszköz (támogatja a hang megosztását)""Aktív (csak médiatartalom lejátszása)"
-
-
-
-
+ "Vendégeszköz"
+ "Vendégeszköz (csak médiatartalom lejátszása esetén)""Támogatja a hang megosztását"
-
-
+ "Vendégeszköz. Támogatja a hang megosztását""Aktív (csak médiatartalom lejátszása), csak a bal""Aktív (csak médiatartalom lejátszása), csak a jobb""Aktív (csak médiatartalom lejátszása), bal és jobb"
@@ -396,8 +386,7 @@
"Hardveres gyorsítású megjelenítés""Média""Figyelés"
-
-
+ "Ablakkezelés""Szigorú mód engedélyezve""Képernyővillogás a fő szál hosszú műveleteinél""Mutató helye"
@@ -492,12 +481,9 @@
"WebView-megvalósítás""WebView-megvalósítás beállítása""Ez a választás már nem érvényes. Próbálkozzon újra."
-
-
-
-
-
-
+ "WebView DevTools"
+ "A WebView-csomag nem található."
+ "Nem sikerült elindítani a DevTools eszközt.""Kép színe mód""sRGB használata""Letiltva"
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index d3427172c74c790d651535ca18e5ddb64dd5c198..347101354a3bc71d0b9a1825f058a22e4481fdcb 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -113,33 +113,23 @@
"Չհաջողվեց թարմացնել շրջակայքի կարգավիճակը""Ակտիվ է (միայն մեդիա)։ Մարտկոցի լիցքը՝ %1$s։""Ակտիվ է (միայն մեդիա)։ Ձախ ականջակալի լիցքը՝ %1$s, աջ ականջակալի լիցքը՝ %2$s։"
-
-
-
-
-
-
-
-
+ "Հյուրի սարք։ Մարտկոցի լիցքը՝ %1$s։"
+ "Հյուրի սարք։ Ձախ ականջակալի լիցքը՝ %1$s, աջ ականջակալի լիցքը՝ %2$s։"
+ "Հյուրի սարք (միայն մուլտիմեդիա)։ Մարտկոցի լիցքը՝ %1$s։"
+ "Հյուրի սարք (միայն մուլտիմեդիա)։ Ձախ ականջակալի լիցքը՝ %1$s, աջ ականջակալի լիցքը՝ %2$s։""Միացված է (աջակցում է աուդիոյի փոխանցում)։ Մարտկոցի լիցքը՝ %1$s։""Միացված է (աջակցում է աուդիոյի փոխանցում)։ Ձախ ականջակալի լիցքը՝ %1$s, աջ ականջակալի լիցքը՝ %2$s։""Միացված է (աջակցում է աուդիոյի փոխանցում)։ Ձախ ականջակալի լիցքը՝ %1$s։""Միացված է (աջակցում է աուդիոյի փոխանցում)։ Աջ ականջակալի լիցքը՝ %1$s։""Միացված է (աջակցում է աուդիոյի փոխանցում)"
-
-
-
-
-
-
+ "Հյուրի սարք (աջակցում է աուդիոյի փոխանցում)։ Մարտկոցի լիցքը՝ %1$s։"
+ "Հյուրի սարք (աջակցում է աուդիոյի փոխանցում)։ Ձախ ականջակալի լիցքը՝ %1$s, աջ ականջակալի լիցքը՝ %2$s։"
+ "Հյուրի սարք (աջակցում է աուդիոյի փոխանցում)""Ակտիվ է (միայն մեդիա)"
-
-
-
-
+ "Հյուրի սարք"
+ "Հյուրի սարք (միայն մուլտիմեդիա)""Աջակցում է աուդիոյի փոխանցում"
-
-
+ "Հյուրի սարք։ Աջակցում է աուդիոյի փոխանցում։""Ակտիվ է (միայն մեդիա), միայն ձախ""Ակտիվ է (միայն մեդիա), միայն աջ""Ակտիվ է (միայն մեդիա), աջ և ձախ"
@@ -396,8 +386,7 @@
"Սարքաշարի արագացված նյութավորում""Մեդիա""Մշտադիտարկում"
-
-
+ "Պատուհանների կառավարում""Խիստ ռեժիմն ակտիվացված է""Լուսավորել էկրանը` ծրագրի գլխավոր շղթայի վրա երկար աշխատելիս""Նշորդի տեղադրությունը"
@@ -492,12 +481,9 @@
"WebView ծառայություն""Ընտրեք WebView-ի իրականացումը""Այս ընտրանքն այլևս վավեր չէ: Փորձեք նորից:"
-
-
-
-
-
-
+ "WebView-ի ծրագրավորողի գործիքներ"
+ "WebView փաթեթը չի գտնվել։"
+ "Չհաջողվեց գործարկել ծրագրավորողի գործիքները։""Նկարի գունային ռեժիմ""Օգտագործել sRGB""Կասեցված է"
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 649ee0bb9f47aaa0ea4083c311605c39d3f22f10..85109fcf1677cc575b4120b899133124863c4046 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -113,33 +113,23 @@
"Tidak dapat memperbarui suara sekitar""Aktif (hanya media). Baterai %1$s.""Aktif (hanya media). Baterai L: %1$s, R: %2$s."
-
-
-
-
-
-
-
-
+ "Perangkat tamu. Baterai %1$s."
+ "Perangkat tamu. Baterai L: %1$s, R: %2$s."
+ "Perangkat tamu (hanya media). Baterai %1$s."
+ "Perangkat tamu (hanya media). Baterai L: %1$s, R: %2$s.""Terhubung (mendukung berbagi audio). Baterai %1$s.""Terhubung (mendukung berbagi audio). Baterai L: %1$s, R: %2$s.""Terhubung (mendukung berbagi audio). Kiri: Baterai %1$s.""Terhubung (mendukung berbagi audio). Kanan: Baterai %1$s.""Terhubung (mendukung berbagi audio)"
-
-
-
-
-
-
+ "Perangkat tamu (mendukung berbagi audio). Baterai %1$s."
+ "Perangkat tamu (mendukung berbagi audio). Baterai L: %1$s, R: %2$s."
+ "Perangkat tamu (mendukung berbagi audio)""Aktif (hanya media)"
-
-
-
-
+ "Perangkat tamu"
+ "Perangkat tamu (hanya media)""Mendukung berbagi audio"
-
-
+ "Perangkat tamu. Mendukung berbagi audio""Aktif (hanya media), hanya kiri""Aktif (hanya media), hanya kanan""Aktif (hanya media), kiri dan kanan"
@@ -396,8 +386,7 @@
"Render yang dipercepat hardware""Media""Pemantauan"
-
-
+ "Pengelolaan Jendela""Mode ketat diaktifkan""Buat layar berkedip saat aplikasi berlama-lama menjalankan operasi di thread utama""Lokasi kursor"
@@ -492,12 +481,9 @@
"Penerapan WebView""Setel penerapan WebView""Pilihan ini tidak valid lagi. Coba lagi."
-
-
-
-
-
-
+ "DevTools WebView"
+ "Paket WebView tidak ditemukan."
+ "Tidak dapat meluncurkan DevTools.""Mode warna gambar""Gunakan sRGB""Dinonaktifkan"
@@ -679,7 +665,7 @@
"Sebelum dapat membuat profil yang dibatasi, Anda perlu menyiapkan kunci layar untuk melindungi aplikasi dan data pribadi Anda.""Setel kunci""Beralih ke %s"
- "Membuat pengguna baru …"
+ "Membuat pengguna baru…""Membuat tamu baru…""Gagal membuat pengguna baru""Gagal membuat tamu baru"
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index d36115729889b4981f9c91980a4c309da5fdf1a7..3041151c617e16d6f2ab0a29de847e42e34c8f15 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -113,33 +113,23 @@
"Ekki var hægt að uppfæra umhverfi""Virkt (eingöngu margmiðlunarefni). %1$s rafhlöðuhleðsla.""Virkt (eingöngu margmiðlunarefni), V: %1$s, H: %2$s rafhlöðuhleðsla."
-
-
-
-
-
-
-
-
+ "Gestatæki. %1$s rafhlöðuhleðsla."
+ "Gestatæki. V: %1$s, H: %2$s rafhlöðuhleðsla."
+ "Gestatæki (aðeins margmiðlunarefni). %1$s rafhlöðuhleðsla."
+ "Gestatæki (aðeins margmiðlunarefni). V: %1$s, H: %2$s rafhlöðuhleðsla.""Tengt (styður hljóðdeilingu), %1$s rafhlöðuhleðsla.""Tengt (styður hljóðdeilingu), V: %1$s, H: %2$s rafhlöðuhleðsla.""Tengt (styður hljóðdeilingu). Vinstri: %1$s rafhlöðuhleðsla.""Tengt (styður hljóðdeilingu). Hægri: %1$s rafhlöðuhleðsla.""Tengt (styður hljóðdeilingu)"
-
-
-
-
-
-
+ "Gestatæki (styður hljóðdeilingu). %1$s rafhlöðuhleðsla."
+ "Gestatæki (styður hljóðdeilingu). V: %1$s, H: %2$s rafhlöðuhleðsla."
+ "Gestatæki (styður hljóðdeilingu)""Virkt (eingöngu margmiðlunarefni)"
-
-
-
-
+ "Gestatæki"
+ "Gestatæki (aðeins margmiðlunarefni)""Styður hljóðdeilingu"
-
-
+ "Gestatæki. Styður hljóðdeilingu""Virkt (eingöngu margmiðlunarefni), eingöngu vinstri""Virkt (eingöngu margmiðlunarefni), eingöngu hægri""Virkt (eingöngu margmiðlunarefni), vinstri og hægri"
@@ -396,8 +386,7 @@
"Myndþýðing með vélbúnaðarhröðun""Margmiðlun""Eftirlit"
-
-
+ "Gluggastjórnun""Kveikt á strangri stillingu""Blikka skjá ef forrit gera tímafreka hluti á aðalþræði""Staðsetning bendils"
@@ -492,12 +481,9 @@
"Innleiðing WebView""Stilla innleiðingu WebView""Þetta val er ekki lengur gilt. Reyndu aftur."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView-pakki fannst ekki."
+ "Ekki tókst að ræsa DevTools.""Litastilling mynda""Nota sRGB""Óvirkt"
@@ -667,7 +653,7 @@
"Stjórnendur hafa tiltekin réttindi sem aðrir notendur hafa ekki. Stjórnandi getur stjórnað öllum notendum, uppfært eða endurstillt þetta tæki, breytt stillingum, séð öll uppsett forrit og veitt eða afturkallað stjórnandaheimildir annarra.""Gera að stjórnanda""Setja notanda upp núna?"
- "Gakktu úr skugga um að notandinn geti tekið tækið og sett upp sitt svæði"
+ "Sjáðu til þess að notandinn geti tekið tækið og sett upp sitt svæði""Setja upp snið núna?""Setja upp núna""Ekki núna"
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 98e415b7c6efaccacc16b69e041a9fcb386e7ae7..c42cab36f30d0556ae9536f068e35ecde3423e76 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -113,33 +113,23 @@
"Impossibile aggiornare audio ambientale""Attivo (solo contenuti multimediali). %1$s di batteria.""Attivo (solo contenuti multimediali). S: %1$s di batteria. D: %2$s di batteria."
-
-
-
-
-
-
-
-
+ "Dispositivo ospite. %1$s di batteria."
+ "Dispositivo ospite. S: %1$s di batteria. D: %2$s di batteria."
+ "Dispositivo ospite (solo contenuti multimediali). %1$s di batteria."
+ "Dispositivo ospite (solo contenuti multimediali). S: %1$s di batteria. D: %2$s di batteria.""Connesso (supporta la condivisione audio). %1$s di batteria.""Connesso (supporta la condivisione audio). S: %1$s di batteria. D: %2$s di batteria.""Connesso (supporta la condivisione audio). Sinistro: %1$s di batteria.""Connesso (supporta la condivisione audio). Destro: %1$s di batteria.""Connesso (supporta la condivisione audio)"
-
-
-
-
-
-
+ "Dispositivo ospite (supporta la condivisione audio). %1$s di batteria."
+ "Dispositivo ospite (supporta la condivisione audio). S: %1$s di batteria. D: %2$s di batteria."
+ "Dispositivo ospite (supporta la condivisione audio)""Attivo (solo contenuti multimediali)"
-
-
-
-
+ "Dispositivo ospite"
+ "Dispositivo ospite (solo contenuti multimediali)""Supporta la condivisione audio"
-
-
+ "Dispositivo ospite. Supporta la condivisione audio""Attivo (solo contenuti multimediali), solo sinistro""Attivo (solo contenuti multimediali), solo destro""Attivo (solo contenuti multimediali), sinistro e destro"
@@ -396,8 +386,7 @@
"Rendering con accelerazione hardware""Contenuti multimediali""Monitoraggio"
-
-
+ "Gestione delle finestre""Attiva StrictMode""Fai lampeggiare lo schermo per operazioni lunghe sul thread principale""Posizione puntatore"
@@ -492,12 +481,9 @@
"Implementazione di WebView""Imposta l\'implementazione di WebView""La selezione non è più valida. Riprova."
-
-
-
-
-
-
+ "WebView di DevTools"
+ "Pacchetto WebView non trovato."
+ "Impossibile avviare DevTools.""Modalità colori immagini""Usa sRGB""Disattivato"
@@ -521,7 +507,7 @@
"Ora stimata esaurimento batteria in base al tuo utilizzo: %1$s circa""Ora stimata esaurimento batteria: %1$s circa (%2$s)""Ora stimata esaurimento batteria: %1$s circa"
- "Fino a: %1$s"
+ "Fino alle ore: %1$s""La batteria potrebbe esaurirsi entro le %1$s""Carica residua: meno di %1$s""Carica residua: meno di %1$s (%2$s)"
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index b341c4d199fbe1c4010cf7950643ba5e807ecb5b..d4c0773ae5f0bb0c567fdb4a67403a9a202ea8ed 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -113,33 +113,23 @@
"לא ניתן לעדכן את עוצמת הרעשים בסביבה""פעיל (מדיה בלבד). סוללה: %1$s.""פעיל (מדיה בלבד). סוללה בצד שמאל: %1$s, סוללה בצד ימין: %2$s."
-
-
-
-
-
-
-
-
+ "מכשיר אורח. סוללה: %1$s."
+ "מכשיר אורח. סוללה בצד שמאל: %1$s. סוללה בצד ימין: %2$s."
+ "מכשיר אורח (מדיה בלבד). סוללה: %1$s."
+ "מכשיר אורח (מדיה בלבד). סוללה בצד שמאל: %1$s. סוללה בצד ימין: %2$s.""מחובר (תמיכה בשיתוף אודיו). סוללה: %1$s.""מחובר (תמיכה בשיתוף אודיו). סוללה בצד שמאל: %1$s, סוללה בצד ימין: %2$s.""מחובר (תמיכה בשיתוף אודיו). סוללה בצד שמאל: %1$s.""מחובר (תמיכה בשיתוף אודיו). סוללה בצד ימין: %1$s.""מחובר (תמיכה בשיתוף אודיו)"
-
-
-
-
-
-
+ "מכשיר אורח (תומך בשיתוף אודיו). סוללה: %1$s."
+ "מכשיר אורח (תומך בשיתוף אודיו). סוללה בצד שמאל: %1$s. סוללה בצד ימין: %2$s."
+ "מכשיר אורח (תומך בשיתוף אודיו)""פעיל (מדיה בלבד)"
-
-
-
-
+ "מכשיר אורח"
+ "מכשיר אורח (מדיה בלבד)""תמיכה בשיתוף אודיו"
-
-
+ "מכשיר אורח. תומך בשיתוף אודיו.""פעיל (מדיה בלבד), שמאל בלבד""פעיל (מדיה בלבד), ימין בלבד""פעיל (מדיה בלבד), שמאל וימין"
@@ -492,12 +482,9 @@
"יישום WebView""הגדרת יישום WebView""אפשרות זו כבר אינה תקפה. אפשר לנסות שוב."
-
-
-
-
-
-
+ "כלי פיתוח של WebView"
+ "לא נמצאה חבילת WebView."
+ "לא ניתן היה להפעיל את כלי הפיתוח.""מצב צבע התמונה""שימוש ב-sRGB""מושבת"
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 2e36d6a3d291346f77f1a81682335e9a61184d3a..bb997ff6294d8dc4a22051c6e221d595a0afd2b5 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -113,33 +113,23 @@
"周囲の音を更新できませんでした""有効(メディアのみ)。バッテリー残量 %1$s。""有効(メディアのみ)。左: バッテリー残量 %1$s、右: バッテリー残量 %2$s。"
-
-
-
-
-
-
-
-
+ "ゲストデバイス。バッテリー残量 %1$s。"
+ "ゲストデバイス。左: バッテリー残量 %1$s、右: バッテリー残量 %2$s。"
+ "ゲストデバイス(メディアのみ)。バッテリー残量 %1$s。"
+ "ゲストデバイス(メディアのみ)。左: バッテリー残量 %1$s、右: バッテリー残量 %2$s。""接続済み(音声の共有をサポート)。バッテリー残量 %1$s。""接続済み(音声の共有をサポート)。左: バッテリー残量 %1$s、右: バッテリー残量 %2$s。""接続済み(音声の共有をサポート)。左: バッテリー残量 %1$s。""接続済み(音声の共有をサポート)。右: バッテリー残量 %1$s。""接続済み(音声の共有をサポート)"
-
-
-
-
-
-
+ "ゲストデバイス(音声の共有をサポート)。バッテリー残量 %1$s。"
+ "ゲストデバイス(音声の共有をサポート)。左: バッテリー残量 %1$s、右: バッテリー残量 %2$s。"
+ "ゲストデバイス(音声の共有をサポート)""有効(メディアのみ)"
-
-
-
-
+ "ゲストデバイス"
+ "ゲストデバイス(メディアのみ)""音声の共有をサポートしています"
-
-
+ "ゲストデバイス。音声の共有をサポートしています""有効(メディアのみ)、左のみ""有効(メディアのみ)、右のみ""有効(メディアのみ)、左右"
@@ -396,8 +386,7 @@
"ハードウェアアクセラレーテッドレンダリング""メディア""モニタリング"
-
-
+ "ウィンドウ管理""厳格モードを有効にする""メインスレッドの処理が長引く場合は画面を点滅させる""ポインタの位置"
@@ -492,12 +481,9 @@
"WebView の実装""WebView の実装の設定""この選択は無効になりました。もう一度お試しください。"
-
-
-
-
-
-
+ "WebView の DevTools"
+ "WebView パッケージが見つかりません。"
+ "DevTools を起動できませんでした。""画像の色モード""sRGBを使用""無効"
diff --git a/packages/SettingsLib/res/values-ka/arrays.xml b/packages/SettingsLib/res/values-ka/arrays.xml
index 3ecf9d86e2b3e823852d49895b86843428036071..1e80d4238f50b90ab533b32fea94b1a9664f5086 100644
--- a/packages/SettingsLib/res/values-ka/arrays.xml
+++ b/packages/SettingsLib/res/values-ka/arrays.xml
@@ -297,13 +297,13 @@
"ჩრდილის ჩვენება მხოლოდ მოწყობილობის ეკრანზე""ჩრდილის ჩვენება ერთ გარე ეკრანზე"
- "ეკრანზე ჩრდილის ჩვენება, რომლის სტატუსის ზოლთანაც მოხდა ბოლო ინტერაქცია"
+ "ეკრანის ბოლო ინტერაქციის მქონე სტატუსის ზოლით დაჩრდილვა""ჩრდილის ჩვენება ბოლო ფოკუსირებულ ეკრანზე""default_display""any_external_display""status_bar_latest_touch"
- "ფოკუსირებული_ეკრანი"
+ "focused_display"
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index e627b794d9a5478eb4e95e2d01fd68eca05494a3..91e8889acfa5727269221085f2055290de9dd17c 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -113,33 +113,23 @@
"გარემოცვის განახლება ვერ მოხერხდა""აქტიური (მხოლოდ მედია). %1$s%% ბატარეა.""აქტიური (მხოლოდ მედია), მარცხენა: %1$s, მარჯვენა:%2$s ბატარეა."
-
-
-
-
-
-
-
-
+ "სტუმარი მოწყობილობა. %1$s ბატარეა."
+ "სტუმარი მოწყობილობა. მარცხენა: %1$s, მარჯვენა: %2$s ბატარეა."
+ "სტუმარი მოწყობილობა (მხოლოდ მედია). %1$s ბატარეა."
+ "სტუმარი მოწყობილობა (მხოლოდ მედია). მარცხენა: %1$s, მარჯვენა: %2$s ბატარეა.""დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). ბატარეა %1$s.""დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). მარცხენა: ბატარეა %1$s, მარჯვენა: ბატარეა %2$s""დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). მარცხენა: %1$s ბატარეა.""დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). მარჯვენა: %1$s ბატარეა.""დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია)"
-
-
-
-
-
-
+ "სტუმარი მოწყობილობა (აუდიოს გაზიარება მხარდაჭერილია). %1$s ბატარეა."
+ "სტუმარი მოწყობილობა (აუდიოს გაზიარება მხარდაჭერილია). მარცხენა: %1$s, მარჯვენა: %2$s ბატარეა."
+ "სტუმარი მოწყობილობა (აუდიოს გაზიარება მხარდაჭერილია)""აქტიური (მხოლოდ მედია)"
-
-
-
-
+ "სტუმარი მოწყობილობა"
+ "სტუმარი მოწყობილობა (მხოლოდ მედია)""აუდიოს გაზიარება მხარდაჭერილია"
-
-
+ "სტუმარი მოწყობილობა. აუდიოს გაზიარება მხარდაჭერილია""აქტიური (მხოლოდ მედია), მხოლოდ მარცხენა""აქტიური (მხოლოდ მედია), მხოლოდ მარჯვენა""აქტიური (მხოლოდ მედია), მარცხენა და მარჯვენა"
@@ -396,8 +386,7 @@
"აპარატურით დაჩქარებული გამოსახულება""მედია""მონიტორინგი"
-
-
+ "ფანჯრების მართვა""მკაცრი რეჟიმი ჩართულია""ეკრანის აციმციმება, როცა აპები ახორციელებენ ხანგრძლივ ოპერაციებს მთავარ ნაკადზე""მაჩვენებლის მდებარეობა"
@@ -492,12 +481,9 @@
"WebView რეალიზაცია""WebView რეალიზაციის დაყენება""თქვენი არჩევანი აღარ მოქმედებს. ცადეთ ხელახლა."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView-ის პაკეტი ვერ მოიძებნა"
+ "DevTools-ის გაშვება ვერ მოხერხდა""გამოსახულების ფერების რეჟიმი""sRGB-ს გამოყენება""გამორთულია"
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index a85e6245fa60534321858df63dd009faffe792fd..25c92de406570178a18f99042902f5e0cd320e11 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -113,33 +113,23 @@
"Айналаны жаңарту мүмкін болмады.""Істеп тұр (тек мультимедиа). Батарея зарядының деңгейі – %1$s""Істеп тұр (тек мультимедиа). Сол жақ: батарея зарядының деңгейі — %1$s. Оң жақ: батарея зарядының деңгейі — %2$s."
-
-
-
-
-
-
-
-
+ "Қонақ құрылғы. Батарея зарядының деңгейі – %1$s."
+ "Қонақ құрылғы. Сол жақ: батарея зарядының деңгейі – %1$s. Оң жақ: батарея зарядының деңгейі — %2$s."
+ "Қонақ құрылғы (тек медиафайл). Батарея зарядының деңгейі – %1$s."
+ "Қонақ құрылғы (тек медиафайл). Сол жақ: батарея зарядының деңгейі – %1$s. Оң жақ: батарея зарядының деңгейі — %2$s.""Жалғанып тұр (аудио бөлісу мүмкіндігі бар). Батарея зарядының деңгейі – %1$s.""Қосылды (аудио бөлісуге мүмкіндік береді). Сол жақ: батарея зарядының деңгейі — %1$s. Оң жақ: батарея зарядының деңгейі — %2$s.""Қосылды (аудио бөлісуге мүмкіндік береді). Сол жақ: батарея зарядының деңгейі – %1$s.""Қосылды (аудио бөлісуге мүмкіндік береді). Оң жақ: батарея зарядының деңгейі – %1$s.""Жалғанды (аудио бөлісу мүмкіндігі бар)."
-
-
-
-
-
-
+ "Қонақ құрылғы (аудио бөлісуге мүмкіндік береді). Батарея зарядының деңгейі – %1$s."
+ "Қонақ құрылғы (аудио бөлісуге мүмкіндік береді). Сол жақ: батарея зарядының деңгейі – %1$s. Оң жақ: батарея зарядының деңгейі — %2$s."
+ "Қонақ құрылғы (аудио бөлісуге мүмкіндік береді)""Істеп тұр (тек мультимедиа)."
-
-
-
-
+ "Қонақ құрылғы"
+ "Қонақ құрылғы (тек медиафайл)""Аудио бөлісуге мүмкіндік береді."
-
-
+ "Қонақ құрылғы. Аудио бөлісуге мүмкіндік береді.""Тек сол жақ істеп тұр (мультимедиа ғана).""Тек оң жақ істеп тұр (мультимедиа ғана).""Сол және оң жақ істеп тұр (мультимедиа ғана)."
@@ -396,8 +386,7 @@
"Бейнелеуді аппаратпен жеделдету""Mультимeдиа""Бақылау"
-
-
+ "Терезелерді басқару""Қатаң режим қосылған""Қолданбалар ұзақ операцияларды орындағанда экранды жыпылықтату""Меңзер орны"
@@ -492,12 +481,9 @@
"WebView қызметі""WebView ендіруін орнату""Бұл таңдау енді жарамды емес. Әрекетті қайталаңыз."
-
-
-
-
-
-
+ "WebView әзірлеуші құралдары"
+ "WebView пакеті табылмады."
+ "Әзірлеуші құралдары іске қосылмады.""Сурет түс режимі""sRGB пайдалану""Өшірулі"
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index d2d5893c969ba343385cea1f7c825e73298faed7..9dadee1d34b35cfb86f928f914473eb3b194b6e8 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -113,33 +113,23 @@
"មិនអាចប្ដូរមជ្ឈដ្ឋានជុំវិញបានទេ""សកម្ម (តែមេឌៀប៉ុណ្ណោះ)។ ថ្ម %1$s។""សកម្ម (តែមេឌៀប៉ុណ្ណោះ)។ ឆ្វេង៖ ថ្ម %1$s ស្ដាំ៖ ថ្ម %2$s។"
-
-
-
-
-
-
-
-
+ "ឧបករណ៍ភ្ញៀវ។ ថ្ម %1$s។"
+ "ឧបករណ៍ភ្ញៀវ។ ឆ្វេង៖ ថ្ម %1$s ស្ដាំ៖ ថ្ម %2$s។"
+ "ឧបករណ៍ភ្ញៀវ (មេឌៀតែប៉ុណ្ណោះ)។ ថ្ម %1$s។"
+ "ឧបករណ៍ភ្ញៀវ (មេឌៀតែប៉ុណ្ណោះ)។ ឆ្វេង៖ ថ្ម %1$s ស្ដាំ៖ ថ្ម %2$s។""បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ថ្ម %1$s។""បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ឆ្វេង៖ ថ្ម %1$s ស្ដាំ៖ ថ្ម %2$s។""បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ឆ្វេង៖ ថ្ម %1$s។""បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ស្ដាំ៖ ថ្ម %1$s។""បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)"
-
-
-
-
-
-
+ "ឧបករណ៍ភ្ញៀវ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ថ្ម %1$s។"
+ "ឧបករណ៍ភ្ញៀវ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ឆ្វេង៖ ថ្ម %1$s ស្ដាំ៖ ថ្ម %2$s។"
+ "ឧបករណ៍ភ្ញៀវ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)""សកម្ម (តែមេឌៀប៉ុណ្ណោះ)"
-
-
-
-
+ "ឧបករណ៍ភ្ញៀវ"
+ "ឧបករណ៍ភ្ញៀវ (មេឌៀតែប៉ុណ្ណោះ)""អាចប្រើការស្ដាប់សំឡេងរួមគ្នា"
-
-
+ "ឧបករណ៍ភ្ញៀវ។ អាចប្រើការស្ដាប់សំឡេងរួមគ្នា""សកម្ម (តែមេឌៀប៉ុណ្ណោះ) តែខាងឆ្វេងប៉ុណ្ណោះ""សកម្ម (តែមេឌៀប៉ុណ្ណោះ) តែខាងស្ដាំប៉ុណ្ណោះ""សកម្ម (តែមេឌៀប៉ុណ្ណោះ) ឆ្វេង និងស្ដាំ"
@@ -396,8 +386,7 @@
"ការបំប្លែងដែលពន្លឿនដោយប្រើហាតវែរ""មេឌៀ""តាមដាន"
-
-
+ "ការគ្រប់គ្រងវិនដូ""បានបើកមុខងារតឹងរ៉ឹង""បញ្ចេញពន្លឺអេក្រង់ពេលកម្មវិធីធ្វើប្រតិបត្តិការយូរលើសែស្រឡាយមេ""ទីតាំងទ្រនិច"
@@ -492,12 +481,9 @@
"ការអនុវត្ត WebView""កំណត់ការប្រតិបត្តិ WebView""ជម្រើសនេះលែងមានសុពលភាពទៀតហើយ ព្យាយាមម្តងទៀត"
-
-
-
-
-
-
+ "ឧបករណ៍អ្នកអភិវឌ្ឍន៍ WebView"
+ "រកមិនឃើញកញ្ចប់ WebView ទេ។"
+ "មិនអាចបើកឧបករណ៍អ្នកអភិវឌ្ឍន៍បានទេ។""របៀបនៃពណ៌រូបភាព""ប្រើ sRGB""បានបិទ"
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 87f2cdf9e34093a34fdb013da1716b1a7cdf39c3..72056bb1ed7d206aff8bf18e4abfb7aa821136b3 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -113,33 +113,23 @@
"ಆ್ಯಂಬಿಯೆಂಟ್ ಸ್ಥಿತಿಯನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ""ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ). %1$s ಬ್ಯಾಟರಿ ಮಟ್ಟ.""ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ). ಎಡ: %1$s, ಬಲ: %2$s ಬ್ಯಾಟರಿ ಮಟ್ಟ."
-
-
-
-
-
-
-
-
+ "ಅತಿಥಿ ಸಾಧನ. %1$s ಬ್ಯಾಟರಿ ಮಟ್ಟ."
+ "ಅತಿಥಿ ಸಾಧನ. ಎಡ: %1$s, ಬಲ: %2$s ಬ್ಯಾಟರಿ ಮಟ್ಟ."
+ "ಅತಿಥಿ ಸಾಧನ (ಮಾಧ್ಯಮ ಮಾತ್ರ). %1$s ಬ್ಯಾಟರಿ ಮಟ್ಟ."
+ "ಅತಿಥಿ ಸಾಧನ (ಮಾಧ್ಯಮ ಮಾತ್ರ). ಎಡ: %1$s, ಬಲ: %2$s ಬ್ಯಾಟರಿ ಮಟ್ಟ.""ಕನೆಕ್ಟ್ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). %1$s ಬ್ಯಾಟರಿ ಮಟ್ಟ.""ಕನೆಕ್ಟ್ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಎಡ: %1$s, ಬಲ: %2$s ಬ್ಯಾಟರಿ ಮಟ್ಟ.""ಕನೆಕ್ಟ್ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಎಡ: %1$s ಬ್ಯಾಟರಿ ಮಟ್ಟ.""ಕನೆಕ್ಟ್ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಬಲ: %1$s ಬ್ಯಾಟರಿ ಮಟ್ಟ.""ಕನೆಕ್ಟ್ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ)"
-
-
-
-
-
-
+ "ಅತಿಥಿ ಸಾಧನ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). %1$s ಬ್ಯಾಟರಿ ಮಟ್ಟ."
+ "ಅತಿಥಿ ಸಾಧನ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಎಡ: %1$s, ಬಲ: %2$s ಬ್ಯಾಟರಿ ಮಟ್ಟ."
+ "ಅತಿಥಿ ಸಾಧನ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ)""ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ)"
-
-
-
-
+ "ಅತಿಥಿ ಸಾಧನ"
+ "ಅತಿಥಿ ಸಾಧನ (ಮಾಧ್ಯಮ ಮಾತ್ರ)""ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ"
-
-
+ "ಅತಿಥಿ ಸಾಧನ. ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ""ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ), ಎಡ ಭಾಗದ ಮಾತ್ರ""ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ), ಬಲ ಭಾಗದ ಮಾತ್ರ""ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ), ಎಡ ಮತ್ತು ಬಲ ಭಾಗದ"
@@ -396,8 +386,7 @@
"ಹಾರ್ಡ್ವೇರ್ ವೇಗವರ್ಧಿತ ರೆಂಡರಿಂಗ್""ಮಾಧ್ಯಮ""ಪರಿವೀಕ್ಷಣೆ ಮಾಡುವಿಕೆ"
-
-
+ "ವಿಂಡೋ ನಿರ್ವಹಣೆ""ಸ್ಟ್ರಿಕ್ಟ್ ಮೋಡ್ ಸಕ್ರಿಯ""ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮುಖ್ಯ ಥ್ರೆಡ್ನಲ್ಲಿ ದೀರ್ಘ ಕಾರ್ಯಾಚರಣೆ ನಿರ್ವಹಿಸಿದಾಗ ಪರದೆಯನ್ನು ಫ್ಲ್ಯಾಶ್ ಮಾಡು""ಪಾಯಿಂಟರ್ ಸ್ಥಳ"
@@ -492,12 +481,9 @@
"WebView ಹೊಂದಿಸಿ""WebView ಅನುಷ್ಠಾನಗೊಳಿಸುವಿಕೆಯನ್ನು ಸೆಟ್ ಮಾಡಿ""ಈ ಆಯ್ಕೆಯು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿರುವುದಿಲ್ಲ. ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView ಪ್ಯಾಕೇಜ್ ಕಂಡುಬಂದಿಲ್ಲ."
+ "DevTools ಅನ್ನು ಲಾಂಚ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.""ಚಿತ್ರ ಬಣ್ಣದ ಮೋಡ್""sRGB ಬಳಸಿ""ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 669d8ef896553f14ade160031abaf6d252e836d3..3b965e54e1453bf2296410e876dfec13842fc13c 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -113,33 +113,23 @@
"주변 소리를 업데이트할 수 없음""사용 중입니다(미디어 전용). 배터리는 %1$s입니다.""사용 중입니다(미디어 전용). 배터리는 왼쪽 %1$s, 오른쪽 %2$s입니다."
-
-
-
-
-
-
-
-
+ "게스트 기기입니다. 배터리는 %1$s입니다."
+ "게스트 기기입니다. 배터리는 왼쪽 %1$s, 오른쪽 %2$s입니다."
+ "게스트 기기(미디어 전용)입니다. 배터리는 %1$s입니다."
+ "게스트 기기(미디어 전용)입니다. 배터리는 왼쪽 %1$s, 오른쪽 %2$s입니다.""연결되었습니다(오디오 공유 지원). 배터리는 %1$s입니다.""연결되었습니다(오디오 공유 지원). 배터리는 왼쪽 %1$s, 오른쪽 %2$s입니다.""연결되었습니다(오디오 공유 지원). 왼쪽 배터리는 %1$s입니다.""연결되었습니다(오디오 공유 지원). 오른쪽 배터리는 %1$s입니다.""연결됨(오디오 공유 지원)"
-
-
-
-
-
-
+ "게스트 기기(오디오 공유 지원)입니다. 배터리는 %1$s입니다."
+ "게스트 기기(오디오 공유 지원)입니다. 배터리는 왼쪽 %1$s, 오른쪽 %2$s입니다."
+ "게스트 기기(오디오 공유 지원)""사용 중(미디어 전용)"
-
-
-
-
+ "게스트 기기"
+ "게스트 기기(미디어 전용)""오디오 공유 지원"
-
-
+ "게스트 기기입니다. 오디오 공유를 지원합니다.""사용 중(미디어 전용), 왼쪽만""사용 중(미디어 전용), 오른쪽만""사용 중(미디어 전용), 왼쪽 및 오른쪽"
@@ -396,8 +386,7 @@
"하드웨어 가속 렌더링""미디어""모니터링"
-
-
+ "창 관리""엄격 모드 사용""앱이 기본 스레드에서 오래 작업하면 화면 깜박이기""포인터 위치"
@@ -492,12 +481,9 @@
"WebView 구현""WebView 구현 설정""선택이 더 이상 유효하지 않습니다. 다시 시도하세요."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView 패키지를 찾을 수 없습니다."
+ "DevTools를 실행할 수 없습니다.""사진 색상 모드""sRGB 사용""사용 중지됨"
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index c69325b2dc434d7ff783b0914639ba5887237240..3eee360ed220d42e2ba36f7b6663158078a196ed 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -113,33 +113,23 @@
"Айланадагы абал жаңыртылган жок""Жигердүү (медиа үчүн гана). Батарея: %1$s.""Жигердүү (медиа үчүн гана). Батарея: L: %1$s, R: %2$s."
-
-
-
-
-
-
-
-
+ "Конок түзмөк. Батарея: %1$s."
+ "Конок түзмөк. Батарея: L: %1$s, R: %2$s."
+ "Конок түзмөк (медиа гана). Батарея: %1$s."
+ "Конок түзмөк (медиа гана). Батарея: L: %1$s, R: %2$s.""Туташып турат (чогуу уксаңыз болот). Батарея: %1$s.""Туташып турат (чогуу уксаңыз болот). Батарея: L: %1$s, R: %2$s.""Туташып турат (чогуу уксаңыз болот). Сол кулак – батареянын деңгээли: %1$s.""Туташып турат (чогуу уксаңыз болот). Оң кулак – батареянын деңгээли: %1$s.""Туташып турат (чогуу уксаңыз болот)"
-
-
-
-
-
-
+ "Конок түзмөк (чогуу угуу колдоого алынат). Батарея: %1$s."
+ "Конок түзмөк (чогуу угуу колдоого алынат). Батарея: L: %1$s, R: %2$s."
+ "Конок түзмөк (чогуу угуу колдоого алынат)""Активдүү (медиа үчүн гана)"
-
-
-
-
+ "Конок түзмөк"
+ "Конок түзмөк (медиа гана)""Чогуу уксаңыз болот"
-
-
+ "Конок түзмөк. Чогуу угуу колдоого алынат""Активдүү (медиа үчүн гана), сол кулакчын гана""Активдүү (медиа үчүн гана), оң кулакчын гана""Активдүү (медиа үчүн гана), сол жана оң кулакчын"
@@ -396,8 +386,7 @@
"Визуалдаштырууну аппарат менен ылдамдатуу""Медиа""Мониторинг"
-
-
+ "Терезени тескөө""Катаал режим иштетилди""Узак операцияларда экран күйүп-өчүп турат""Көрсөткүчтүн турган жери"
@@ -492,12 +481,9 @@
"WebView кызматы""WebView аткарылышын коюу""Тандалган нерсе жараксыз болуп калган. Кайталап көрүңүз."
-
-
-
-
-
-
+ "WebView сунуштаган иштеп чыгуучунун куралдары"
+ "WebView топтому табылган жок."
+ "Иштеп чыгуучунун куралдары иштетилген жок.""Сүрөт түсү режими""sRGB колдонуңуз""Өчүк"
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index d1f1344fd50608d7fbea5a918bfadadb43c518af..8044cce18edbcd897b8991fbd72ee67c07c92acf 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -113,33 +113,23 @@
"ບໍ່ສາມາດອັບເດດສຽງແວດລ້ອມໄດ້""ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ). ແບັດເຕີຣີ %1$s.""ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ). ຊ: ແບັດເຕີຣີ %1$s, ຂ: ແບັດເຕີຣີ %2$s."
-
-
-
-
-
-
-
-
+ "ອຸປະກອນແຂກ. ແບັດເຕີຣີ %1$s."
+ "ອຸປະກອນແຂກ. ແບັດເຕີຣີ L: %1$s, R: %2$s."
+ "ອຸປະກອນແຂກ (ສື່ເທົ່ານັ້ນ). ແບັດເຕີຣີ %1$s."
+ "ອຸປະກອນແຂກ (ສື່ເທົ່ານັ້ນ). ແບັດເຕີຣີ L: %1$s, R: %2$s.""ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ແບັດເຕີຣີ %1$s.""ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ຊ: ແບັດເຕີຣີ %1$s, ຂ: ແບັດເຕີຣີ %2$s.""ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ຊ້າຍ: ແບັດເຕີຣີ %1$s.""ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ຂວາ: ແບັດເຕີຣີ %1$s.""ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ)"
-
-
-
-
-
-
+ "ອຸປະກອນແຂກ (ຮອງຮັບການແບ່ງປັນສຽງ). ແບັດເຕີຣີ %1$s."
+ "ອຸປະກອນແຂກ (ຮອງຮັບການແບ່ງປັນສຽງ). ແບັດເຕີຣີ L: %1$s, R: %2$s."
+ "ອຸປະກອນແຂກ (ຮອງຮັບການແບ່ງປັນສຽງ)""ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ)"
-
-
-
-
+ "ອຸປະກອນແຂກ"
+ "ອຸປະກອນແຂກ (ສື່ເທົ່ານັ້ນ)""ຮອງຮັບການແບ່ງປັນສຽງ"
-
-
+ "ອຸປະກອນແຂກ. ຮອງຮັບການແບ່ງປັນສຽງ""ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ), ຊ້າຍເທົ່ານັ້ນ""ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ), ຂວາເທົ່ານັ້ນ""ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ), ຊ້າຍ ແລະ ຂວາ"
@@ -396,8 +386,7 @@
"ການສະແດງຜົນໂດຍໃຊ້ຮາດແວຊ່ວຍ""ມີເດຍ""ກຳລັງກວດສອບ"
-
-
+ "ການຈັດການໜ້າຈໍ""ເປີດໃຊ້ໂໝດເຄັ່ງຄັດ""ກະພິບໜ້າຈໍເມື່ອມີແອັບເຮັດວຽກດົນເກີນໄປໃນເທຣດຫຼັກ""ຕຳແໜ່ງໂຕຊີ້"
@@ -492,12 +481,9 @@
"ການຈັດຕັ້ງປະຕິບັດ WebView""ຕັ້ງການຈັດຕັ້ງປະຕິບັດ WebView""ບໍ່ສາມາດໃຊ້ການເລືອກນີ້ໄດ້ອີກຕໍ່ໄປແລ້ວ. ກະລຸນາລອງໃໝ່."
-
-
-
-
-
-
+ "WebView DevTools"
+ "ບໍ່ພົບແພັກເກດ WebView."
+ "ບໍ່ສາມາດເປີດໃຊ້ DevTools.""ໂໝດສີຮູບ""ໃຊ້ sRGB""ປິດນຳໃຊ້ແລ້ວ"
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 7f940109e867aa53cc093c6b58ae4ac028f3b09c..aec236a55d41e9f982ad1fcecc062723c08ab4bd 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -113,33 +113,23 @@
"Nepavyko atnaujinti aplinkos""Aktyvus (tik medija). Akumuliatorius lygis: %1$s.""Aktyvus (tik medija), akumuliatoriaus lygis kairėje: %1$s, dešinėje: %2$s."
-
-
-
-
-
-
-
-
+ "Svečio įrenginys. Akumuliatorius lygis: %1$s."
+ "Svečio įrenginys. Akumuliatoriaus lygis kairėje: %1$s, dešinėje: %2$s."
+ "Svečio įrenginys (tik medija). Akumuliatorius lygis: %1$s."
+ "Svečio įrenginys (tik medija). Akumuliatoriaus lygis kairėje: %1$s, dešinėje: %2$s.""Prijungta (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis: %1$s.""Prijungta (palaikomas garso įrašų bendrinimas), akumuliatoriaus lygis kairėje: %1$s, dešinėje: %2$s.""Prijungta (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis kairėje: %1$s.""Prijungta (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis dešinėje: %1$s.""Prijungta (palaikomas garso įrašų bendrinimas)"
-
-
-
-
-
-
+ "Svečio įrenginys (palaikomas garso įrašų bendrinimas). Akumuliatorius lygis: %1$s."
+ "Svečio įrenginys (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis kairėje: %1$s, dešinėje: %2$s."
+ "Svečio įrenginys (palaikomas garso įrašų bendrinimas)""Aktyvus (tik medija)"
-
-
-
-
+ "Svečio įrenginys"
+ "Svečio įrenginys (tik medija)""Palaikomas garso įrašų bendrinimas"
-
-
+ "Svečio įrenginys. Palaikomas garso įrašų bendrinimas""Aktyvus (tik medija), tik kairė""Aktyvus (tik medija), tik dešinė""Aktyvus (tik medija), kairė ir dešinė"
@@ -396,8 +386,7 @@
"Aparatinės įrangos paspartintas pateikimas""Medija""Stebėjimas"
-
-
+ "Langų tvarkymas""Įgal. griežtas režimas""Ekr. blyksės, kai pr. atl. ilgus proc. pgr. gijoje""Žymiklio vieta"
@@ -492,12 +481,9 @@
"„WebView“ diegimas""„WebView“ diegimo nustatymas""Šios parinkties nebegalima pasirinkti. Bandykite dar kartą."
-
-
-
-
-
-
+ "„WebView“ kūrėjo įrankiai"
+ "Žiniatinklio rodinio paketas nerastas."
+ "Nepavyko paleisti kūrėjo įrankių.""Nuotraukos spalvos režimas""Naudoti sRGB""Išjungtas"
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 50a56d4c956f3d7536c79dcebcd2e6bac2eef889..5716f8f4194c052a8301e38ba28f5f479f208eb9 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -113,33 +113,23 @@
"Nevarēja atjaunināt apkārtnes skaņas""Aktīvs (tikai multividei). Akumulatora uzlādes līmenis: %1$s.""Aktīvs (tikai multividei). Akumulatora uzlādes līmenis kreisajā austiņā: %1$s, labajā austiņā: %2$s."
-
-
-
-
-
-
-
-
+ "Viesa ierīce. Akumulatora uzlādes līmenis: %1$s."
+ "Viesa ierīce. Akumulatora uzlādes līmenis kreisajā austiņā: %1$s, labajā austiņā: %2$s."
+ "Viesa ierīce (tikai multividei). Akumulatora uzlādes līmenis: %1$s."
+ "Viesa ierīce (tikai multividei). Akumulatora uzlādes līmenis kreisajā austiņā: %1$s, labajā austiņā: %2$s.""Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis: %1$s.""Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis kreisajā austiņā: %1$s, labajā austiņā: %2$s.""Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis kreisajā austiņā: %1$s.""Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis labajā austiņā: %1$s.""Izveidots savienojums (atbalsta audio kopīgošanu)"
-
-
-
-
-
-
+ "Viesa ierīce (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis: %1$s."
+ "Viesa ierīce (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis kreisajā austiņā: %1$s, labajā austiņā: %2$s."
+ "Viesa ierīce (atbalsta audio kopīgošanu)""Aktīvs (tikai multividei)"
-
-
-
-
+ "Viesa ierīce"
+ "Viesa ierīce (tikai multividei)""Atbalsta audio kopīgošanu"
-
-
+ "Viesa ierīce. Atbalsta audio kopīgošanu""Aktīvs (tikai multivide), tikai kreisās puses aparāts""Aktīvs (tikai multivide), tikai labās puses aparāts""Aktīvs (tikai multivide), kreisās un labās puses aparāts"
@@ -396,8 +386,7 @@
"Aparatūras paātrinātā atveidošana""Multivide""Pārraudzība"
-
-
+ "Logu pārvaldība""Precīzais rež. ir iespēj.""Zibsnīt ekrānu, ja liet. ilgi darbojas galv. pav.""Rādītāja atrašanās vieta"
@@ -492,12 +481,9 @@
"WebView ieviešana""Iestatīt WebView ieviešanu""Šī iespēja vairs nav derīga. Mēģiniet vēlreiz."
-
-
-
-
-
-
+ "WebView izstrādātāja rīki"
+ "WebView pakotne netika atrasta."
+ "Nevarēja palaist izstrādātāja rīkus.""Attēla krāsu režīms""Izmantot sRGB""Atspējota"
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index e86a6cee62497060f68f87561d1f30e695550363..bc6409da8e1281d02d6a8fdd4b87b9435f65b88f 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -113,33 +113,23 @@
"Не можеше да се ажурира опкружувањето""Активно (само аудиовизуелни содржини). %1$s батерија.""Активно (само аудиовизуелни содржини). Л: %1$s батерија, Д: %2$s батерија."
-
-
-
-
-
-
-
-
+ "Гостински уред. %1$s батерија."
+ "Гостински уред. Л: %1$s батерија, Д: %2$s батерија."
+ "Гостински уред (само аудиовизуелни содржини). %1$s батерија."
+ "Гостински уред (само аудиовизуелни содржини). Л: %1$s батерија, Д: %2$s батерија.""Поврзано (поддржува споделување аудио). %1$s батерија.""Поврзано (поддржува споделување аудио). Л: %1$s батерија, Д: %2$s батерија.""Поврзано (поддржува споделување аудио). Лево: %1$s батерија.""Поврзано (поддржува споделување аудио). Десно: %1$s батерија.""Поврзано (поддржува споделување аудио)"
-
-
-
-
-
-
+ "Гостински уред (поддржува споделување аудио). %1$s батерија."
+ "Гостински уред (поддржува споделување аудио). Л: %1$s батерија, Д: %2$s батерија."
+ "Гостински уред (поддржува споделување аудио)""Активно (само аудиовизуелни содржини)"
-
-
-
-
+ "Гостински уред"
+ "Гостински уред (само аудиовизуелни содржини)""Поддржува споделување аудио"
-
-
+ "Гостински уред. Поддржува споделување аудио""Активно (само аудиовизуелни содржини), само лево""Активно (само аудиовизуелни содржини), само десно""Активно (само аудиовизуелни содржини), лево и десно"
@@ -396,8 +386,7 @@
"Хардверско забрзување""Аудиовизуелни содржини""Следење"
-
-
+ "Управување со прозорци""Овозможен е строг режим""Трепкај со екранот при долги операции на главна нишка""Локација на покажувач"
@@ -492,12 +481,9 @@
"Примена на WebView""Поставете воведување WebView""Овој избор веќе не важи. Обидете се повторно."
-
-
-
-
-
-
+ "WebView DevTools"
+ "Пакетот на WebView не е најден."
+ "Не можеше да се стартува DevTools.""Режим на боја на слика""Користи sRGB""Оневозможено"
@@ -666,7 +652,7 @@
"Да се постави корисников како администратор?""Администраторите имаат посебни привилегии што другите корисници ги немаат. Администраторот може да управува со сите корисници, да го ажурира или ресетира уредов, да ги менува поставките, да ги прегледува сите инсталирани апликации и да доделува или одзема администраторски привилегии на другите корисници.""Постави како администратор"
- "Ќе поставите корисник сега?"
+ "Да се постави корисник?""Проверете дали лицето е достапно да го земе уредот и да го постави својот простор""Постави профил сега?""Постави сега"
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index f7ab232ff0feb5eb3540499288f074cc5c7ad444..bcadd7d88059629b747ef163192e63706aa4dd2e 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -113,33 +113,23 @@
"സറൗണ്ടിംഗ്സ് അപ്ഡേറ്റ് ചെയ്യാനായില്ല""സജീവം (മീഡിയ മാത്രം). %1$s ബാറ്ററി.""സജീവം (മീഡിയ മാത്രം). ഇടതുവശത്ത്: %1$s ബാറ്ററി, വലതുവശത്ത്: %2$s ബാറ്ററി."
-
-
-
-
-
-
-
-
+ "അതിഥി ഉപകരണം. %1$s ബാറ്ററി."
+ "അതിഥി ഉപകരണം. ഇടതുവശത്ത്: %1$s, വലതുവശത്ത്: %2$s ബാറ്ററി."
+ "അതിഥി ഉപകരണം (മീഡിയ മാത്രം). %1$s ബാറ്ററി."
+ "അതിഥി ഉപകരണം (മീഡിയ മാത്രം). ഇടതുവശത്ത്: %1$s, വലതുവശത്ത്: %2$s ബാറ്ററി.""കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). %1$s ബാറ്ററി.""കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). ഇടതുവശത്ത്: %1$s ബാറ്ററി, വലതുവശത്ത്: %2$s ബാറ്ററി.""കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). ഇടത് വശത്ത്: %1$s ബാറ്ററി.""കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). വലത് വശത്ത്: %1$s ബാറ്ററി.""കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു)."
-
-
-
-
-
-
+ "അതിഥി ഉപകരണം (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). %1$s ബാറ്ററി."
+ "അതിഥി ഉപകരണം (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). ഇടതുവശത്ത്: %1$s, വലതുവശത്ത്: %2$s ബാറ്ററി."
+ "അതിഥി ഉപകരണം (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു)""സജീവം (മീഡിയ മാത്രം)"
-
-
-
-
+ "അതിഥി ഉപകരണം"
+ "അതിഥി ഉപകരണം (മീഡിയ മാത്രം)""ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു"
-
-
+ "അതിഥി ഉപകരണം. ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു""സജീവം (മീഡിയ മാത്രം), ഇടതുവശത്ത് മാത്രം""സജീവം (മീഡിയ മാത്രം), വലതുവശത്ത് മാത്രം""സജീവം (മീഡിയ മാത്രം), ഇടതുവശത്തെയും വലതുവശത്തെയും"
@@ -396,8 +386,7 @@
"ഹാർഡ്വെയർ ത്വരിതപ്പെടുത്തിയ റെൻഡറിംഗ്""മീഡിയ""മോണിറ്ററിംഗ്"
-
-
+ "വിൻഡോ മാനേജ്മെന്റ്""ഫോഴ്സ്മോഡ് സജീവമാക്കി""പ്രധാന ത്രെഡിൽ ആപ്പുകൾ ദൈർഘ്യമേറിയ പ്രവർത്തനങ്ങൾ നടത്തുമ്പോൾ സ്ക്രീൻ ഫ്ലാഷ് ചെയ്യുക""പോയിന്റർ ലൊക്കേഷൻ"
@@ -492,12 +481,9 @@
"WebView നടപ്പാക്കൽ""WebView നടപ്പാക്കൽ സജ്ജമാക്കുക""ഈ തിരഞ്ഞെടുപ്പിന് തുടർന്നങ്ങോട്ട് സാധുതയില്ല. വീണ്ടും ശ്രമിക്കുക."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView പാക്കേജ് കണ്ടെത്തിയില്ല."
+ "DevTools ലോഞ്ച് ചെയ്യാനായില്ല.""ചിത്ര വർണ്ണ മോഡ്""sRGB ഉപയോഗിക്കുക""പ്രവർത്തനരഹിതമാക്കി"
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index 4dc754e9f3786847c6ddbfabffc2f8b9eecb68fc..2b45e85a2995c9faf1d4bf49162d9c19abf78be7 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -113,33 +113,23 @@
"Орчин тойрныг шинэчилж чадсангүй""Идэвхтэй (зөвхөн медиа). %1$s батарей.""Идэвхтэй (зөвхөн медиа). З: %1$s, Б: %2$s батарей."
-
-
-
-
-
-
-
-
+ "Зочин төхөөрөмж. %1$s батарейн цэнэгтэй."
+ "Зочин төхөөрөмж. З: %1$s, Б: %2$s батарейн цэнэгтэй."
+ "Зочин төхөөрөмж (зөвхөн медиа). %1$s батарейн цэнэгтэй."
+ "Зочин төхөөрөмж (зөвхөн медиа). З: %1$s, Б: %2$s батарейн цэнэгтэй.""Холбогдсон (аудио хуваалцахыг дэмждэг). %1$s батарей.""Холбогдсон (аудио хуваалцахыг дэмждэг). З: %1$s, Б: %2$s батарей.""Холбогдсон (аудио хуваалцахыг дэмждэг). Зүүн: %1$s батарей.""Холбогдсон (аудио хуваалцахыг дэмждэг). Баруун: %1$s батарей.""Холбогдсон (аудио хуваалцахыг дэмждэг)"
-
-
-
-
-
-
+ "Зочин төхөөрөмж (аудио хуваалцахыг дэмждэг). %1$s батарейн цэнэгтэй."
+ "Зочин төхөөрөмж (аудио хуваалцахыг дэмждэг). З: %1$s, Б: %2$s батарейн цэнэгтэй."
+ "Зочин төхөөрөмж (аудио хуваалцахыг дэмждэг)""Идэвхтэй (зөвхөн медиа)"
-
-
-
-
+ "Зочин төхөөрөмж"
+ "Зочин төхөөрөмж (зөвхөн медиа)""Аудио хуваалцахыг дэмждэг"
-
-
+ "Зочин төхөөрөмж. Аудио хуваалцахыг дэмждэг""Идэвхтэй (зөвхөн медиа), зөвхөн зүүн""Идэвхтэй (зөвхөн медиа), зөвхөн баруун""Идэвхтэй (зөвхөн медиа), зүүн болон баруун"
@@ -396,8 +386,7 @@
"Техник хангамжийн хурдасгасан үзүүлэлт""Медиа""Мониторинг"
-
-
+ "Цонхны удирдлага""Хатуу горимыг идэвхжүүлсэн""Аппууд үндсэн хэлхээс дээр удаан хугацаанд үйлдлүүд хийх үед дэлгэцийг анивчуулах""Чиглүүлэгчийн байршил"
@@ -492,12 +481,9 @@
"WebView хэрэгжилт""WebView хэрэгжилтийг тохируулах""Энэ сонголт хүчингүй байна. Дахин оролдоно уу."
-
-
-
-
-
-
+ "WebView-н DevTools"
+ "WebView-н багц олдсонгүй."
+ "DevTools-г эхлүүлж чадсангүй.""\"Зургийн өнгө\" горим""sRGB-г ашиглах""Идэвхгүй болсон"
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index eef39c433d3285b8aee5c3d1b1579c9e823d74c7..826d6015fc49a1ec1aa9bde040a50d49d2b640f9 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -113,33 +113,23 @@
"जवळपासचे आवाज अपडेट करता आले नाहीत""अॅक्टिव्ह आहे (फक्त मीडिया). %1$s बॅटरी.""ॲक्टिव्ह आहे (फक्त मीडिया). डावीकडे: %1$s बॅटरी, उजवीकडे: %2$s बॅटरी."
-
-
-
-
-
-
-
-
+ "अतिथी डिव्हाइस. %1$s बॅटरी."
+ "अतिथी डिव्हाइस. डावीकडे: %1$s, उजवीकडे: %2$s बॅटरी."
+ "अतिथी डिव्हाइस (फक्त मीडिया). %1$s बॅटरी."
+ "अतिथी डिव्हाइस (फक्त मीडिया). डावीकडे: %1$s, उजवीकडे: %2$s बॅटरी.""कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). %1$s बॅटरी.""कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). डावीकडे: %1$s, उजवीकडे: %2$s बॅटरी.""कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). डावीकडे: %1$s बॅटरी.""कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). उजवीकडे: %1$s बॅटरी.""कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते)"
-
-
-
-
-
-
+ "अतिथी डिव्हाइस (ऑडिओ शेअरिंगला सपोर्ट करते). %1$s बॅटरी."
+ "अतिथी डिव्हाइस (ऑडिओ शेअरिंगला सपोर्ट करते). डावीकडे: %1$s, उजवीकडे: %2$s बॅटरी."
+ "अतिथी डिव्हाइस (ऑडिओ शेअरिंगला सपोर्ट करते)""अॅक्टिव्ह आहे (फक्त मीडिया)"
-
-
-
-
+ "अतिथी डिव्हाइस"
+ "अतिथी डिव्हाइस (फक्त मीडिया)""ऑडिओ शेअरिंगला सपोर्ट करते"
-
-
+ "अतिथी डिव्हाइस. ऑडिओ शेअरिंगला सपोर्ट करते""अॅक्टिव्ह आहे (फक्त मीडिया), फक्त डावे""अॅक्टिव्ह आहे (फक्त मीडिया), फक्त उजवे""अॅक्टिव्ह आहे (फक्त मीडिया), डावे आणि उजवे"
@@ -396,8 +386,7 @@
"हार्डवेअर अॅक्सिलरेटेड रेंडरिंग""मीडिया""परीक्षण"
-
-
+ "विंडो व्यवस्थापन""कठोर मोड सुरू""मुख्य थ्रेडवर अॅप्स मोठी कार्ये करतात तेव्हा स्क्रीन फ्लॅश करा""पॉइंटर स्थान"
@@ -492,12 +481,9 @@
"वेबदृश्य अंमलबजावणी""वेबदृश्य अंमलबजावणी सेट करा""ही निवड यापुढे वैध असणार नाही. पुन्हा प्रयत्न करा."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView पॅकेज आढळले नाही."
+ "DevTools लाँच करता आले नाही.""चित्र रंग मोड""sRGB वापरा""बंद केले"
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index ca4649ccd88838a43dd5d92729780571db0e9d84..a2f95628a6a1689470c01c411abaf6e9ba3ceec2 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -113,33 +113,23 @@
"Tidak dapat mengemaskinikan persekitaran""Aktif (media sahaja). Bateri %1$s.""Aktif (media sahaja), L: Bateri %1$s, R: Bateri %2$s."
-
-
-
-
-
-
-
-
+ "Peranti tetamu. Bateri %1$s."
+ "Peranti tetamu. L: %1$s, R: Bateri %2$s."
+ "Peranti tetamu (media sahaja). Bateri %1$s."
+ "Peranti tetamu (media sahaja). L: %1$s, R: Bateri %2$s.""Disambungkan (menyokong perkongsian audio). Bateri %1$s.""Disambungkan (menyokong perkongsian audio). L: Bateri %1$s, R: Bateri %2$s.""Disambungkan (menyokong perkongsian audio). Kiri: Bateri %1$s.""Disambungkan (menyokong perkongsian audio). Kanan: Bateri %1$s.""Disambungkan (menyokong perkongsian audio)"
-
-
-
-
-
-
+ "Peranti tetamu (menyokong perkongsian audio). Bateri %1$s."
+ "Peranti tetamu (menyokong perkongsian audio). L: %1$s, R: Bateri %2$s."
+ "Peranti tetamu (menyokong perkongsian audio)""Aktif (media sahaja)"
-
-
-
-
+ "Peranti tetamu"
+ "Peranti tetamu (media sahaja)""Menyokong perkongsian audio"
-
-
+ "Peranti tetamu. Menyokong perkongsian audio""Aktif (media sahaja), kiri sahaja""Aktif (media sahaja), kanan sahaja""Aktif (media sahaja), kiri dan kanan"
@@ -396,8 +386,7 @@
"Pemaparan dipercepat perkakasan""Media""Memantau"
-
-
+ "Pengurusan Tetingkap""Mod tegas didayakan""Kelip skrin apabila apl beroperasi lama pada urutan utama""Lokasi penuding"
@@ -492,12 +481,9 @@
"Pelaksanaan WebView""Tetapkan pelaksanaan WebView""Pilihan ini tidak lagi sah. Cuba lagi."
-
-
-
-
-
-
+ "Alatan Pembangun Paparan Web"
+ "Pakej Paparan Web tidak ditemukan."
+ "Tidak dapat melancarkan Alatan Pembangun.""Mod warna gambar""Gunakan sRGB""Dilumpuhkan"
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index 1225e4c3e8a37083caf0037e3a0c0fe4d10a8d57..b0d86afe9a6c752364c24738d35845a4b51290e9 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -113,33 +113,23 @@
"ဝန်းကျင်အသံ အပ်ဒိတ်လုပ်၍ မရလိုက်ပါ""အသုံးပြုနေသည် (မီဒီယာသီးသန့်)။ ဘက်ထရီ %1$s။""အသုံးပြုနေသည် (မီဒီယာသီးသန့်)။ ဘက်ထရီ L- %1$s၊ R- %2$s။"
-
-
-
-
-
-
-
-
+ "ဧည့်သည်စက်ပစ္စည်း။ ဘက်ထရီ %1$s။"
+ "ဧည့်သည်စက်ပစ္စည်း။ ဘက်ထရီ L- %1$s၊ R- %2$s။"
+ "ဧည့်သည်စက်ပစ္စည်း (မီဒီယာသီးသန့်)။ ဘက်ထရီ %1$s။"
+ "ဧည့်သည်စက်ပစ္စည်း (မီဒီယာသီးသန့်)။ ဘက်ထရီ L- %1$s၊ R- %2$s။""ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ %1$s။""ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ L- %1$s၊ R- %2$s။""ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘယ်- ဘက်ထရီ %1$s။""ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ညာ- ဘက်ထရီ %1$s။""ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)"
-
-
-
-
-
-
+ "ဧည့်သည်စက်ပစ္စည်း (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ %1$s။"
+ "ဧည့်သည်စက်ပစ္စည်း (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ L- %1$s၊ R- %2$s။"
+ "ဧည့်သည်စက်ပစ္စည်း (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)""သုံးနေသည် (မီဒီယာသီးသန့်)"
-
-
-
-
+ "ဧည့်သည်စက်ပစ္စည်း"
+ "ဧည့်သည်စက်ပစ္စည်း (မီဒီယာသီးသန့်)""အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်"
-
-
+ "ဧည့်သည်စက်ပစ္စည်း။ အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်""သုံးနေသည် (မီဒီယာသီးသန့်)၊ ဘယ်သီးသန့်""သုံးနေသည် (မီဒီယာသီးသန့်)၊ ညာသီးသန့်""သုံးနေသည် (မီဒီယာသီးသန့်)၊ ဘယ်နှင့် ညာ"
@@ -396,8 +386,7 @@
"ဟာ့ဒ်ဝဲ အရှိန်မြှင့် ပုံဖော်ခြင်း""မီဒီယာ""စောင့်ကြည့်စစ်ဆေးခြင်း"
-
-
+ "ဝင်းဒိုး စီမံခန့်ခွဲမှု""တင်းကြပ်သောစနစ် ဖွင့်ရန်""အက်ပ်လုပ်ဆောင်မှု ရှည်ကြာလျှင် စကရင်ပြန်စသည်""မြား၏တည်နေရာ"
@@ -492,12 +481,9 @@
"WebView အကောင်အထည်ဖော်မှု""WebView အကောင်အထည်ဖော်မှု သတ်မှတ်ပါ""ဤရွေးချယ်မှု မှန်ကန်မှု မရှိတော့ပါ။ ထပ်စမ်းကြည့်ပါ။"
-
-
-
-
-
-
+ "ဝဘ်မြင်ကွင်း ဆောဖ့်ဝဲတူးလ်များ"
+ "ဝဘ်မြင်ကွင်း ပက်ကေ့ဂျ် မတွေ့ပါ။"
+ "ဆောဖ့်ဝဲတူးလ်များ စတင်၍ မရလိုက်ပါ။""ဓာတ်ပုံအရောင်မုဒ်""sRGB ကို အသုံးပြုပါ""ပိတ်ထားသည်"
@@ -667,7 +653,7 @@
"စီမံခန့်ခွဲသူများ၌ အခြားအသုံးပြုသူများတွင်မရှိသော အထူးဆောင်ရွက်ခွင့်များရှိသည်။ စီမံခန့်ခွဲသူက အသုံးပြုသူအားလုံးကို စီမံခြင်း၊ ဤစက်ပစ္စည်းကို အပ်ဒိတ်လုပ်ခြင်း (သို့) ပြင်ဆင်သတ်မှတ်ခြင်း၊ ဆက်တင်များပြင်ဆင်ခြင်း၊ ထည့်သွင်းထားသောအက်ပ်အားလုံးကို ကြည့်ခြင်းနှင့် အခြားသူများအတွက် စီမံခန့်ခွဲသူ ဆောင်ရွက်ခွင့်များပေးခြင်း (သို့) ရုပ်သိမ်းခြင်းတို့ လုပ်နိုင်သည်။""စီမံခန့်ခွဲသူအဖြစ် သတ်မှတ်ရန်""အသုံးပြုသူကို ယခုသတ်မှတ်မလား။"
- "ထိုသူသည် ကိရိယာကိုယူ၍ ၎င်းတို့၏နေရာများကို ယခုသတ်မှတ်နိုင်ရမည်"
+ "သူသည် ကိရိယာကိုယူ၍ သူ၏နေရာကို ယခုသတ်မှတ်နိုင်ရမည်""ယခု ကိုယ်ရေးအချက်အလက်ကို အစီအမံလုပ်မည်လား?""ယခု သတ်မှတ်ပါမည်""ယခုမလုပ်ပါ"
@@ -679,7 +665,7 @@
"ကန့်သတ်ကိုယ်ရေးအချက်အလက်တစ်ခုကို မပြုလုပ်မီ သင်၏ အပလီကေးရှင်းများနှင့် ကိုယ်ပိုင်အချက်အလက်များကို ကာကွယ်ရန် မျက်နှာပြင်သော့ချခြင်းကို စီမံရန် လိုအပ်လိမ့်မည်""သော့ချရန် သတ်မှတ်ပါ""%s သို့ ပြောင်းရန်"
- "အသုံးပြုသူအသစ် ပြုလုပ်နေသည်…"
+ "အသုံးပြုသူအသစ်အတွက် ပြင်ဆင်နေသည်…""ဧည့်သည်သစ် ပြုလုပ်နေသည်…""အသုံးပြုသူအသစ် ပြုလုပ်၍မရပါ""ဧည့်သည်သစ် ပြုလုပ်၍မရပါ"
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 7c9b10f002678a92b4a5578a7d5582386e3f4088..755df5100e5ab0b6f45aa7be9723e7e80a815236 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -113,33 +113,23 @@
"Kunne ikke oppdatere omgivelsene""Aktiv (bare medieinnhold) %1$s batteri.""Aktiv (bare medieinnhold). V: %1$s batteri, H: %2$s batteri."
-
-
-
-
-
-
-
-
+ "Gjesteenhet. %1$s batteri."
+ "Gjesteenhet. V: %1$s, H: %2$s batteri."
+ "Gjesteenhet (bare medieinnhold). %1$s batteri."
+ "Gjesteenhet (bare medieinnhold). V: %1$s, H: %2$s batteri.""Tilkoblet (støtter lyddeling). %1$s batteri.""Tilkoblet (støtter lyddeling). V: %1$s batteri, H: %2$s batteri.""Tilkoblet (støtter lyddeling). Venstre: %1$s batteri.""Tilkoblet (støtter lyddeling). Høyre: %1$s batteri.""Tilkoblet (støtter lyddeling)"
-
-
-
-
-
-
+ "Gjesteenhet (støtter lyddeling). %1$s batteri."
+ "Gjesteenhet (støtter lyddeling). V: %1$s, H: %2$s batteri."
+ "Gjesteenhet (støtter lyddeling)""Aktiv (bare medieinnhold)"
-
-
-
-
+ "Gjesteenhet"
+ "Gjesteenhet (bare medieinnhold)""Støtter lyddeling"
-
-
+ "Gjesteenhet. Støtter lyddeling""Aktiv (bare medieinnhold), bare venstre""Aktiv (bare medieinnhold), bare høyre""Aktiv (bare medieinnhold), høyre og venstre"
@@ -396,8 +386,7 @@
"Maskinvareakselerert gjengivelse""Medier""Overvåking"
-
-
+ "Vindusadministrering""Slå på streng modus""Skjermblink ved lange apphandlinger på hovedtråd""Pekerplassering"
@@ -492,12 +481,9 @@
"WebView-implementering""Angi WebView-implementering""Dette valget er ikke gyldig lenger. Prøv på nytt."
-
-
-
-
-
-
+ "Utviklerverktøy for WebView"
+ "Fant ikke WebView-pakken."
+ "Kunne ikke starte utviklerverktøyene.""Fargemodus for bilder""Bruk sRGB""Slått av"
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index e2e7a8f48c76f72af01974749a630d8bc3d22897..0a9ac17708961473e2507465380da3a56f0b82d9 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -113,33 +113,23 @@
"वरपरका आवाजसम्बन्धी सेटिङ अपडेट गर्न सकिएन""सक्रिय छ (मिडिया मात्र)। %1$s ब्याट्री।""सक्रिय छ (मिडिया मात्र)। बायाँ: %1$s, दायाँ: %2$s ब्याट्री।"
-
-
-
-
-
-
-
-
+ "अतिथि डिभाइस। %1$s ब्याट्री।"
+ "अतिथि डिभाइस। बायाँ: %1$s, दायाँ: %2$s ब्याट्री।"
+ "अतिथि डिभाइस (मिडिया मात्र)। %1$s ब्याट्री।"
+ "अतिथि डिभाइस (मिडिया मात्र)। बायाँ: %1$s, दायाँ: %2$s ब्याट्री।""कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। %1$s ब्याट्री।""कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। बायाँ: %1$s, दायाँ: %2$s ब्याट्री।""कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। बायाँ: %1$s ब्याट्री।""कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। दायाँ: %1$s ब्याट्री।""कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)"
-
-
-
-
-
-
+ "अतिथि डिभाइस (अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ)। %1$s ब्याट्री।"
+ "अतिथि डिभाइस (अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ)। बायाँ: %1$s, दायाँ: %2$s ब्याट्री।"
+ "अतिथि डिभाइस (अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ)""सक्रिय छ (मिडिया मात्र)"
-
-
-
-
+ "अतिथि डिभाइस"
+ "अतिथि डिभाइस (मिडिया मात्र)""अडियो सेयर गर्न मिल्छ"
-
-
+ "अतिथि डिभाइस। अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ""सक्रिय छ (मिडिया मात्र), बायाँ मात्र""सक्रिय छ (मिडिया मात्र), दायाँ मात्र""सक्रिय छ (मिडिया मात्र), बायाँ र दायाँ"
@@ -396,8 +386,7 @@
"हार्डवेयरले बढाएको रेन्डरिङ""मिडिया""अनुगमन गरिँदै छ"
-
-
+ "विन्डो व्यवस्थापन""स्ट्रिक्ट मोड अन गर्नुहोस्""एपले मुख्य थ्रेडमा लामा गतिविधि गर्दा स्क्रिन फ्ल्यास गर्नुहोस्""पोइन्टरको स्थान"
@@ -492,12 +481,9 @@
"WebView कार्यान्वयन""WebView कार्यान्वयन सेट गर्नुहोस्""यो छनोट अब मान्य छैन। फेरि प्रयास गर्नुहोस्।"
-
-
-
-
-
-
+ "WebView सम्बन्धी विकासकर्ता टुलहरू"
+ "WebView प्याकेज भेटिएन।"
+ "विकासकर्ताका टुलहरू लन्च गर्न सकिएन।""चित्र रङ्ग मोड""sRGB प्रयोग गर्नुहोस्""अफ गरिएको छ"
@@ -678,7 +664,7 @@
"प्रोफाइलको जानकारी""निषेधयुक्त प्रोफाइल बनाउनु अघि तपाईँको एप र व्यक्तिगत डेटा सुरक्षा गर्नाका लागि तपाईँले स्क्रिन लक सेटअप गर्नु पर्दछ ।""लक सेट गर्नुहोस्"
- "प्रयोगकर्ता बदलेर %s बनाउनुहोस्"
+ "%s प्रयोग गर्नुहोस्""नयाँ प्रयोगकर्ता बनाइँदै छ…""नयाँ अतिथि बनाइँदै छ…""नयाँ प्रयोगकर्ता सिर्जना गर्न सकिएन"
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 6dfcc7b0b40cdab3358ad28e62d44d5e42ee0a10..f71f3abfaf2b51d07d5bdfc98d239ce4df784af2 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -113,33 +113,23 @@
"Kan omgeving niet updaten""Actief (alleen media). Batterijniveau %1$s.""Actief (alleen media), L: batterijniveau %1$s, R: batterijniveau %2$s."
-
-
-
-
-
-
-
-
+ "Gastapparaat. Batterijniveau %1$s."
+ "Gastapparaat. L: batterijniveau %1$s, R: batterijniveau %2$s."
+ "Gastapparaat (alleen media). Batterijniveau %1$s."
+ "Gastapparaat (alleen media). L: batterijniveau %1$s, R: batterijniveau %2$s.""Verbonden (ondersteunt audio delen), batterijniveau %1$s.""Verbonden (ondersteunt audio delen), L: batterijniveau %1$s, R: batterijniveau %2$s.""Verbonden (ondersteunt audio delen). Links: batterijniveau %1$s.""Verbonden (ondersteunt audio delen). Rechts: batterijniveau %1$s.""Verbonden (ondersteunt audio delen)"
-
-
-
-
-
-
+ "Gastapparaat (ondersteunt audio delen). Batterijniveau %1$s."
+ "Gastapparaat (ondersteunt audio delen). L: batterijniveau %1$s, R: batterijniveau %2$s."
+ "Gastapparaat (ondersteunt audio delen)""Actief (alleen media)"
-
-
-
-
+ "Gastapparaat"
+ "Gastapparaat (alleen media)""Ondersteunt audio delen"
-
-
+ "Gastapparaat. Ondersteunt audio delen.""Actief (alleen media), alleen links""Actief (alleen media), alleen rechts""Actief (alleen media), links en rechts"
@@ -396,8 +386,7 @@
"Rendering met hardwareversnelling""Media""Controle"
-
-
+ "Vensterbeheer""Strikte modus staat aan""Knipperend scherm bij lange bewerkingen door apps""Cursorlocatie"
@@ -492,12 +481,9 @@
"WebView-implementatie""WebView-implementatie instellen""Deze keuze is niet meer geldig. Probeer het opnieuw."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView-pakket niet gevonden."
+ "Kan DevTools niet starten.""Kleurenmodus voor afbeeldingen""sRGB gebruiken""Uitgezet"
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index 44c819cbb9b8bd6f92a75fe43f95b32a32696d73..f30ae3d94d42168a56f021b18fb332cb7ea17492 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -113,33 +113,23 @@
"ପରିପାର୍ଶ୍ୱକୁ ଅପଡେଟ କରାଯାଇପାରିଲା ନାହିଁ""ସକ୍ରିୟ (କେବଳ ମିଡିଆ)। %1$s ବେଟେରୀ।""ସକ୍ରିୟ (କେବଳ ମିଡିଆ)। ବାମ: %1$s, ଡାହାଣ: %2$s ବେଟେରୀ।"
-
-
-
-
-
-
-
-
+ "ଅତିଥି ଡିଭାଇସ। %1$s ବେଟେରୀ।"
+ "ଅତିଥି ଡିଭାଇସ। ବାମ: %1$s, ଡାହାଣ: %2$s ବେଟେରୀ।"
+ "ଅତିଥି ଡିଭାଇସ (କେବଳ ମିଡିଆ)। %1$s ବେଟେରୀ।"
+ "ଅତିଥି ଡିଭାଇସ (କେବଳ ମିଡିଆ)। ବାମ: %1$s, ଡାହାଣ: %2$s ବେଟେରୀ।""କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। %1$s ବେଟେରୀ।""କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସମର୍ଥନ କରେ)। ବାମ: %1$s, ଡାହାଣ: %2$s ବେଟେରୀ।""କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସମର୍ଥନ କରେ)। ବାମ: %1$s ବେଟେରୀ।""କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। ଡାହାଣ: %1$s ବେଟେରୀ।""କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସମର୍ଥନ କରେ)"
-
-
-
-
-
-
+ "ଅତିଥି ଡିଭାଇସ (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। %1$s ବେଟେରୀ।"
+ "ଅତିଥି ଡିଭାଇସ (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। ବାମ: %1$s, ଡାହାଣ: %2$s ବେଟେରୀ।"
+ "ଅତିଥି ଡିଭାଇସ (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)""ସକ୍ରିୟ (କେବଳ ମିଡିଆ)"
-
-
-
-
+ "ଅତିଥି ଡିଭାଇସ"
+ "ଅତିଥି ଡିଭାଇସ (କେବଳ ମିଡିଆ)""ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ"
-
-
+ "ଅତିଥି ଡିଭାଇସ। ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ""ସକ୍ରିୟ (କେବଳ ମିଡିଆ), କେବଳ ବାମ""ସକ୍ରିୟ (କେବଳ ମିଡିଆ), କେବଳ ଡାହାଣ""ସକ୍ରିୟ (କେବଳ ମିଡିଆ), ବାମ ଏବଂ ଡାହାଣ"
@@ -396,8 +386,7 @@
"ହାର୍ଡୱେର୍ ଆକ୍ସଲରେଟେଡ୍ ରେଣ୍ଡରିଙ୍ଗ""ମିଡିଆ""ମନିଟରିଙ୍ଗ"
-
-
+ "ୱିଣ୍ଡୋ ପରିଚାଳନା""କଡ଼ା ମୋଡ୍ ସକ୍ଷମ କରାଯାଇଛି""ମୁଖ୍ୟ ଥ୍ରେଡ୍ରେ ଆପ୍ ଦୀର୍ଘ ସମୟ କାର୍ଯ୍ୟ କଲେ ସ୍କ୍ରୀନ୍ ଫ୍ଲାଶ୍ କରନ୍ତୁ""ପଏଣ୍ଟର୍ ଲୋକେସନ୍"
@@ -492,12 +481,9 @@
"ୱେବ୍ଭ୍ୟୁ ପ୍ରୟୋଗ""WebView କାର୍ଯ୍ୟକାରିତାକୁ ସେଟ୍ କରନ୍ତୁ""ଏହି ପସନ୍ଦ ଆଉ ମାନ୍ୟ ନାହିଁ। ପୁଣିଥରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView ମିଳିଲା ନାହିଁ।"
+ "DevTools ଲଞ୍ଚ କରାଯାଇପାରିଲା ନାହିଁ।""ପିକ୍ଚର୍ ରଙ୍ଗ ମୋଡ୍""sRGB ବ୍ୟବହାର କରନ୍ତୁ""ଅକ୍ଷମ ହୋଇଛି"
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 731c195065af32ac25fc643ab952db368bd23014..2c2eab2fa8713a86e6354a8de4eb99ce897e9f77 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -113,33 +113,23 @@
"ਆਲੇ-ਦੁਆਲੇ ਨੂੰ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ""ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ)। %1$s ਬੈਟਰੀ।""ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ)। ਖੱਬੇ ਪਾਸੇ: %1$s, ਸੱਜੇ ਪਾਸੇ: %2$s ਬੈਟਰੀ।"
-
-
-
-
-
-
-
-
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ। %1$s ਬੈਟਰੀ।"
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ। ਖੱਬੇ ਪਾਸੇ: %1$s, ਸੱਜੇ ਪਾਸੇ: %2$s ਬੈਟਰੀ।"
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਸਿਰਫ਼ ਮੀਡੀਆ)। %1$s ਬੈਟਰੀ।"
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਸਿਰਫ਼ ਮੀਡੀਆ)। ਖੱਬੇ ਪਾਸੇ: %1$s, ਸੱਜੇ ਪਾਸੇ: %2$s ਬੈਟਰੀ।""ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। %1$s ਬੈਟਰੀ।""ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਖੱਬੇ ਪਾਸੇ: %1$s, ਸੱਜੇ ਪਾਸੇ: %2$s ਬੈਟਰੀ।""ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਖੱਬੇ ਪਾਸੇ: %1$s ਬੈਟਰੀ।""ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਸੱਜੇ ਪਾਸੇ: %1$s ਬੈਟਰੀ।""ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)"
-
-
-
-
-
-
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। %1$s ਬੈਟਰੀ।"
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਖੱਬੇ ਪਾਸੇ: %1$s, ਸੱਜੇ ਪਾਸੇ: %2$s ਬੈਟਰੀ।"
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)""ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ)"
-
-
-
-
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ"
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਸਿਰਫ਼ ਮੀਡੀਆ)""ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ"
-
-
+ "ਮਹਿਮਾਨ ਡੀਵਾਈਸ। ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ""ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ), ਸਿਰਫ਼ ਖੱਬਾ""ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ), ਸਿਰਫ਼ ਸੱਜਾ""ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ), ਖੱਬਾ ਅਤੇ ਸੱਜਾ"
@@ -396,8 +386,7 @@
"ਹਾਰਡਵੇਅਰ ਐਕਸੈੱਲਰੇਟਿਡ ਰੈਂਡਰਿੰਗ""ਮੀਡੀਆ""ਨਿਰੀਖਣ ਕਰਨਾ"
-
-
+ "ਵਿੰਡੋ ਪ੍ਰਬੰਧਨ""ਸਟ੍ਰਿਕਟ ਮੋਡ ਚਾਲੂ ਹੈ""ਐਪਾਂ ਵੱਲੋਂ ਮੁੱਖ ਥ੍ਰੈੱਡ \'ਤੇ ਲੰਬੀਆਂ ਕਾਰਵਾਈਆਂ ਕਰਨ \'ਤੇ ਸਕ੍ਰੀਨ ਫਲੈਸ਼ ਕਰੋ""ਪੁਆਇੰਟਰ ਟਿਕਾਣਾ"
@@ -492,12 +481,9 @@
"WebView ਅਮਲੀਕਰਨ""WebView ਅਮਲੀਕਰਨ ਸੈੱਟ ਕਰੋ""ਇਹ ਚੋਣ ਹੁਣ ਵੈਧ ਨਹੀਂ ਹੈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView ਪੈਕੇਜ ਨਹੀਂ ਮਿਲਿਆ।"
+ "DevTools ਨੂੰ ਲਾਂਚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।""ਤਸਵੀਰ ਰੰਗ ਮੋਡ""sRGB ਵਰਤੋਂ ਕਰੋ""ਬੰਦ ਹੈ"
@@ -666,8 +652,8 @@
"ਕੀ ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਪ੍ਰਸ਼ਾਸਕ ਬਣਾਉਣਾ ਹੈ?""ਪ੍ਰਸ਼ਾਸਕਾਂ ਕੋਲ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਹੁੰਦੇ ਹਨ ਜੋ ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਕੋਲ ਨਹੀਂ ਹੁੰਦੇ। ਇੱਕ ਪ੍ਰਸ਼ਾਸਕ ਸਾਰੇ ਵਰਤੋਂਕਾਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਡੀਵਾਈਸ ਨੂੰ ਅੱਪਡੇਟ ਜਾਂ ਰੀਸੈੱਟ ਕਰ ਸਕਦਾ ਹੈ, ਸੈਟਿੰਗਾਂ ਨੂੰ ਸੋਧ ਸਕਦਾ ਹੈ, ਸਾਰੀਆਂ ਸਥਾਪਤ ਐਪਾਂ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ, ਅਤੇ ਦੂਜਿਆਂ ਲਈ ਪ੍ਰਸ਼ਾਸਕ ਦੇ ਅਧਿਕਾਰਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਜਾਂ ਰੱਦ ਕਰ ਸਕਦਾ ਹੈ।""ਪ੍ਰਸ਼ਾਸਕ ਬਣਾਓ"
- "ਕੀ ਹੁਣ ਵਰਤੋਂਕਾਰ ਸੈੱਟ ਅੱਪ ਕਰਨਾ ਹੈ?"
- "ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਵਿਅਕਤੀ ਡੀਵਾਈਸ ਵਰਤਣ ਅਤੇ ਆਪਣੀ ਜਗ੍ਹਾ ਦੇ ਸੈੱਟ ਅੱਪ ਲਈ ਉਪਲਬਧ ਹੈ"
+ "ਕੀ ਹੁਣ ਵਰਤੋਂਕਾਰ ਸੈੱਟਅੱਪ ਕਰਨਾ ਹੈ?"
+ "ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਵਿਅਕਤੀ ਡੀਵਾਈਸ ਵਰਤਣ ਅਤੇ ਆਪਣੀ ਜਗ੍ਹਾ ਦੇ ਸੈੱਟਅੱਪ ਲਈ ਉਪਲਬਧ ਹੈ""ਕੀ ਹੁਣ ਪ੍ਰੋਫਾਈਲ ਸੈੱਟ ਅੱਪ ਕਰਨੀ ਹੈ?""ਹੁਣੇ ਸੈੱਟ ਅੱਪ ਕਰੋ""ਅਜੇ ਨਹੀਂ"
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index b9adae26df7e17ea83d98fbdc00b45b01b6453d7..79be6b314ef87f235f9c9908efe5cd2cda7a4c4c 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -113,33 +113,23 @@
"Nie udało się zaktualizować otoczenia""Aktywne (tylko multimedia). %1$s naładowania baterii.""Aktywne (tylko multimedia), lewa: %1$s, prawa: %2$s naładowania baterii."
-
-
-
-
-
-
-
-
+ "Urządzenie gościa. %1$s naładowania baterii."
+ "Urządzenie gościa. Lewa: %1$s, prawa: %2$s naładowania baterii."
+ "Urządzenie gościa (tylko multimedia). %1$s naładowania baterii."
+ "Urządzenie gościa (tylko multimedia). Lewa: %1$s, prawa: %2$s naładowania baterii.""Połączone (obsługa udostępniania dźwięku), %1$s naładowania baterii.""Połączone (obsługa udostępniania dźwięku), lewa: %1$s, prawa: %2$s naładowania baterii.""Połączone (obsługa udostępniania dźwięku). Lewa: %1$s naładowania baterii.""Połączone (obsługa udostępniania dźwięku). Prawa: %1$s naładowania baterii.""Połączone (obsługa udostępniania dźwięku)"
-
-
-
-
-
-
+ "Urządzenie gościa (obsługuje udostępnianie dźwięku). %1$s naładowania baterii."
+ "Urządzenie gościa (obsługuje udostępnianie dźwięku). Lewa: %1$s, prawa: %2$s naładowania baterii."
+ "Urządzenie gościa (obsługuje udostępnianie dźwięku)""Aktywne (tylko multimedia)"
-
-
-
-
+ "Urządzenie gościa"
+ "Urządzenie gościa (tylko multimedia)""Obsługa udostępniania dźwięku"
-
-
+ "Urządzenie gościa. Obsługuje udostępnianie dźwięku""Aktywne (tylko multimedia), tylko lewa""Aktywne (tylko multimedia), tylko prawa""Aktywne (tylko multimedia), lewa i prawa"
@@ -396,8 +386,7 @@
"Sprzętowa akceleracja renderowania""Multimedia""Monitorowanie"
-
-
+ "Zarządzanie oknami""Tryb ścisły włączony""Miganie ekranu podczas długich operacji w wątku głównym""Lokalizacja wskaźnika"
@@ -492,12 +481,9 @@
"Implementacja WebView""Ustaw implementację WebView""Ta opcja nie jest już obsługiwana. Spróbuj ponownie."
-
-
-
-
-
-
+ "Narzędzia deweloperskie WebView"
+ "Nie znaleziono pakietu WebView."
+ "Nie udało się uruchomić Narzędzi deweloperskich.""Tryb kolorów obrazu""Użyj sRGB""Wyłączone"
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 5b3bb0600eb9dc5f62985b7b9d443ad07f2a0366..e16e3557dc38f2173e48ee3ab1555ca829b0055e 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -113,33 +113,23 @@
"Não foi possível atualizar o som ambiente""Ativo (apenas mídia). %1$s de bateria.""Ativo (apenas mídia). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria."
-
-
-
-
-
-
-
-
+ "Dispositivo convidado. %1$s de bateria."
+ "Dispositivo convidado. Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria."
+ "Dispositivo convidado (somente mídia). %1$s de bateria."
+ "Dispositivo convidado (somente mídia). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria.""Conectado (aceita compartilhamento de áudio). %1$s de bateria.""Conectado (aceita compartilhamento de áudio). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria.""Conectado (aceita compartilhamento de áudio). Lado esquerdo: %1$s de bateria.""Conectado (aceita compartilhamento de áudio). Lado direito: %1$s de bateria.""Conectado (aceita compartilhamento de áudio)"
-
-
-
-
-
-
+ "Dispositivo convidado (aceita compartilhamento de áudio). %1$s de bateria."
+ "Dispositivo convidado (aceita compartilhamento de áudio). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria."
+ "Dispositivo convidado (aceita compartilhamento de áudio)""Ativo (apenas mídia)"
-
-
-
-
+ "Dispositivo convidado"
+ "Dispositivo convidado (somente mídia)""Com suporte ao compartilhamento de áudio"
-
-
+ "Dispositivo convidado. Aceita compartilhamento de áudio""Ativo (apenas mídia), apenas esquerdo""Ativo (apenas mídia), somente direito""Ativo (apenas mídia), esquerdo e direito"
@@ -396,8 +386,7 @@
"Renderização acelerada por hardware""Mídia""Monitoramento"
-
-
+ "Gerenciamento de janelas""Modo restrito ativado""Piscar tela se apps demorarem no processo principal""Localização do cursor"
@@ -492,12 +481,9 @@
"Implementação do WebView""Configurar implementação do WebView""Esta opção não é mais válida. Tente novamente."
-
-
-
-
-
-
+ "DevTools do WebView"
+ "O pacote WebView não foi encontrado."
+ "Não foi possível abrir o DevTools.""Modo de cor da imagem""Usar sRGB""Desativado"
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index e6b343ab945723d2f3d97941a365ef36d0961741..e4381d6131e78d74ddea12489f0d3d0a49e79538 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -113,33 +113,23 @@
"Não foi possível atualizar o ambiente""Ativo (apenas para multimédia). %1$s de bateria.""Ativo (apenas para multimédia). E: %1$s de bateria. D: %2$s de bateria."
-
-
-
-
-
-
-
-
+ "Dispositivo convidado. %1$s de bateria."
+ "Dispositivo convidado. E: %1$s. D: %2$s de bateria."
+ "Dispositivo convidado (apenas para multimédia). %1$s de bateria."
+ "Dispositivo convidado (apenas para multimédia). E: %1$s. D: %2$s de bateria.""Ligado (suporta partilha de áudio). %1$s de bateria.""Ligado (suporta partilha de áudio). E: %1$s de bateria. D: %2$s de bateria.""Ligado (suporta a partilha de áudio). Esquerdo: %1$s de bateria.""Ligado (suporta a partilha de áudio). Direito: %1$s de bateria.""Ligado (suporta a partilha de áudio)"
-
-
-
-
-
-
+ "Dispositivo convidado (compatível com partilha de áudio). %1$s de bateria."
+ "Dispositivo convidado (compatível com partilha de áudio). E: %1$s. D: %2$s de bateria."
+ "Dispositivo convidado (compatível com partilha de áudio)""Ativo (apenas para multimédia)"
-
-
-
-
+ "Dispositivo convidado"
+ "Dispositivo convidado (apenas para multimédia)""Suporta partilha de áudio"
-
-
+ "Dispositivo convidado. Compatível com partilha de áudio""Ativo (apenas para multimédia), apenas esquerdo""Ativo (apenas para multimédia), apenas direito""Ativo (apenas para multimédia), esquerdo e direito"
@@ -149,7 +139,7 @@
"Dispositivo de entrada""Acesso à internet""Acesso a contactos e histórico de chamadas"
- "As informações são usadas para anúncios por chamadas e outros"
+ "As informações são usadas para anunciar chamadas e outros""Partilha da ligação à internet""Mensagens de texto""Acesso ao SIM"
@@ -396,8 +386,7 @@
"Conversão acelerada de hardware""Multimédia""Monitorização"
-
-
+ "Gestão de janelas""Modo rigoroso ativado""Piscar ecrã se app fazem oper. prolong. no tópico princ.""Localização do ponteiro"
@@ -492,12 +481,9 @@
"Implementação WebView""Definir implementação WebView""Esta opção já não é válida. Tente novamente."
-
-
-
-
-
-
+ "DevTools do WebView"
+ "Pacote WebView não encontrado."
+ "Não foi possível iniciar as DevTools.""Modo de cor da imagem""Usar sRGB""Desativado"
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 5b3bb0600eb9dc5f62985b7b9d443ad07f2a0366..e16e3557dc38f2173e48ee3ab1555ca829b0055e 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -113,33 +113,23 @@
"Não foi possível atualizar o som ambiente""Ativo (apenas mídia). %1$s de bateria.""Ativo (apenas mídia). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria."
-
-
-
-
-
-
-
-
+ "Dispositivo convidado. %1$s de bateria."
+ "Dispositivo convidado. Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria."
+ "Dispositivo convidado (somente mídia). %1$s de bateria."
+ "Dispositivo convidado (somente mídia). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria.""Conectado (aceita compartilhamento de áudio). %1$s de bateria.""Conectado (aceita compartilhamento de áudio). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria.""Conectado (aceita compartilhamento de áudio). Lado esquerdo: %1$s de bateria.""Conectado (aceita compartilhamento de áudio). Lado direito: %1$s de bateria.""Conectado (aceita compartilhamento de áudio)"
-
-
-
-
-
-
+ "Dispositivo convidado (aceita compartilhamento de áudio). %1$s de bateria."
+ "Dispositivo convidado (aceita compartilhamento de áudio). Lado esquerdo: %1$s de bateria. Lado direito: %2$s de bateria."
+ "Dispositivo convidado (aceita compartilhamento de áudio)""Ativo (apenas mídia)"
-
-
-
-
+ "Dispositivo convidado"
+ "Dispositivo convidado (somente mídia)""Com suporte ao compartilhamento de áudio"
-
-
+ "Dispositivo convidado. Aceita compartilhamento de áudio""Ativo (apenas mídia), apenas esquerdo""Ativo (apenas mídia), somente direito""Ativo (apenas mídia), esquerdo e direito"
@@ -396,8 +386,7 @@
"Renderização acelerada por hardware""Mídia""Monitoramento"
-
-
+ "Gerenciamento de janelas""Modo restrito ativado""Piscar tela se apps demorarem no processo principal""Localização do cursor"
@@ -492,12 +481,9 @@
"Implementação do WebView""Configurar implementação do WebView""Esta opção não é mais válida. Tente novamente."
-
-
-
-
-
-
+ "DevTools do WebView"
+ "O pacote WebView não foi encontrado."
+ "Não foi possível abrir o DevTools.""Modo de cor da imagem""Usar sRGB""Desativado"
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 13c9032603ca31f33ded5ca2d44ea48ea31d681e..83a6e68b36b4fa5463321582aff9109400faa450 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -113,33 +113,23 @@
"Nu s-a putut actualiza zona din jur""Activ (numai pentru conținut media). Nivelul bateriei %1$s.""Activ (numai pentru conținut media): nivelul bateriei din stânga: %1$s, nivelul bateriei din dreapta: %2$s"
-
-
-
-
-
-
-
-
+ "Dispozitiv invitat. Nivelul bateriei: %1$s."
+ "Dispozitiv invitat. Nivelul bateriei din stânga: %1$s, dreapta: %2$s."
+ "Dispozitiv invitat (numai pentru conținut media). Nivelul bateriei: %1$s."
+ "Dispozitiv invitat (numai pentru conținut media). Nivelul bateriei din stânga: %1$s, dreapta: %2$s.""Conectat (acceptă permiterea accesului la audio). Nivelul bateriei: %1$s.""Conectat (acceptă permiterea accesului la audio), nivelul bateriei din stânga: %1$s, nivelul bateriei din dreapta: %2$s""Conectat (acceptă permiterea accesului la audio). Nivelul bateriei din stânga: %1$s""Conectat (acceptă permiterea accesului la audio). Nivelul bateriei din dreapta: %1$s""Conectat (acceptă permiterea accesului la audio)"
-
-
-
-
-
-
+ "Dispozitiv invitat (acceptă permiterea accesului la audio). Nivelul bateriei: %1$s."
+ "Dispozitiv invitat (acceptă permiterea accesului la audio). Nivelul bateriei din stânga: %1$s, dreapta: %2$s."
+ "Dispozitiv invitat (acceptă permiterea accesului la audio)""Activ (numai pentru conținut media)"
-
-
-
-
+ "Dispozitiv invitat"
+ "Dispozitiv invitat (numai pentru conținut media)""Acceptă permiterea accesului la audio"
-
-
+ "Dispozitiv invitat. Acceptă permiterea accesului la audio""Activ (numai pentru conținut media), numai stânga""Activ (numai pentru conținut media), numai dreapta""Activ (numai pentru conținut media), stânga și dreapta"
@@ -396,8 +386,7 @@
"Redare accelerată hardware""Media""Monitorizare"
-
-
+ "Gestionarea ferestrelor""Modul Strict activat""Iluminare intermitentă la operații lungi pe firul principal""Locația indicatorului"
@@ -492,12 +481,9 @@
"Implementare WebView""Setează implementarea WebView""Această opțiune nu mai este validă. Încearcă din nou."
-
-
-
-
-
-
+ "DevTools WebView"
+ "Pachetul WebView nu a fost găsit."
+ "Nu s-a putut lansa DevTools.""Modul de culori pentru imagini""Folosește sRGB""Dezactivat"
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 831623d6c80b597d7313d71e2de1dae0db76c9f2..1ed7c3623acc2ab873cceb3cec50c2163317850c 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -113,33 +113,23 @@
"Не удалось отрегулировать окружающие звуки.""Используется (только для медиа), заряд: %1$s.""Используется (только для медиа), заряд: %1$s (Л), %2$s (П)."
-
-
-
-
-
-
-
-
+ "Гостевое устройство. Заряд батареи: %1$s."
+ "Гостевое устройство. Заряд батареи: %1$s (Л), %2$s (П)."
+ "Гостевое устройство (только медиафайлы). Заряд батареи: %1$s."
+ "Гостевое устройство (только медиафайлы). Заряд батареи: %1$s (Л), %2$s (П).""Подключено (поддерживается отправка аудио), заряд: %1$s.""Подключено (поддерживается отправка аудио), заряд: %1$s (Л), %2$s (П).""Подключено (поддерживается отправка аудио), заряд: %1$s (Л).""Подключено (поддерживается отправка аудио), заряд: %1$s (П).""Подключено (поддерживается отправка аудио)."
-
-
-
-
-
-
+ "Гостевое устройство (поддерживает передачу аудио). Заряд батареи: %1$s."
+ "Гостевое устройство (поддерживает передачу аудио). Заряд батареи: %1$s (Л), %2$s (П)."
+ "Гостевое устройство (поддерживает передачу аудио)""Используется (только для медиа)"
-
-
-
-
+ "Гостевое устройство"
+ "Гостевое устройство (только медиафайлы)""Поддерживается отправка аудио"
-
-
+ "Гостевое устройство. Поддерживает передачу аудио.""Используется (только для медиа), только левый""Используется (только для медиа), правый наушник""Используется (только для медиа), левый и правый наушники"
@@ -396,8 +386,7 @@
"Аппаратное ускорение отрисовки""Мультимедиа""Мониторинг"
-
-
+ "Управление окнами""Строгий режим""Подсвечивать экран во время длительных операций""Место касания"
@@ -492,12 +481,9 @@
"Сервис WebView""Настройки сервиса WebView""Вариант недействителен. Повторите попытку."
-
-
-
-
-
-
+ "Инструменты разработчика от поставщика WebView"
+ "Пакет WebView не найден."
+ "Не удалось запустить инструменты разработчика.""Цветовой режим""Использовать sRGB""Отключено"
@@ -508,7 +494,7 @@
"Коррекция цвета""Используйте коррекцию цвета, чтобы:<br/> <ol> <li> Добиться нужной цветопередачи.</li> <li> Убрать цвета, которые мешают сосредоточиться.</li> </ol>""Новая настройка: %1$s"
- "Уровень заряда – %1$s. %2$s."
+ "%1$s - %2$s""%1$s, зарядка приостановлена для защиты батареи""%1$s, проверьте зарядное устройство""Заряда хватит примерно на %1$s"
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index dcfb914b6c863de7041b930b755c7d4562e67f46..dffa392c794796e9dbcf7eec5a76222136473923 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -113,33 +113,23 @@
"වටපිටාව යාවත්කාලීන කළ නොහැකි විය""ක්රියාත්මකයි (මාධ්ය පමණයි). බැටරිය %1$s.""ක්රියාත්මකයි (මාධ්ය පමණයි), බැටරිය ව: %1$s, ද: %2$s."
-
-
-
-
-
-
-
-
+ "ආගන්තුක උපාංගය. බැටරිය %1$s."
+ "ආගන්තුක උපාංගය. බැටරිය ව: %1$s, ද: %2$s."
+ "ආගන්තුක උපාංගය (මාධ්ය පමණි). බැටරිය %1$s."
+ "ආගන්තුක උපාංගය (මාධ්ය පමණි). බැටරිය ව: %1$s, ද: %2$s.""සම්බන්ධයි (ශ්රව්ය බෙදා ගැනීමට සහය දක්වයි). බැටරිය %1$s.""සම්බන්ධයි (ශ්රව්ය බෙදා ගැනීමට සහය දක්වයි). බැටරිය ව: %1$s, ද: %2$s.""සම්බන්ධයි (ශ්රව්ය බෙදා ගැනීමට සහය දක්වයි). වම: බැටරිය %1$s.""සම්බන්ධයි (ශ්රව්ය බෙදා ගැනීමට සහය දක්වයි). දකුණ: බැටරිය %1$s.""සම්බන්ධයි (ශ්රව්ය බෙදා ගැනීමට සහය දක්වයි)"
-
-
-
-
-
-
+ "ආගන්තුක උපාංගය (ශ්රව්ය බෙදා ගැනීම සඳහා සහය දක්වයි). බැටරිය %1$s."
+ "ආගන්තුක උපාංගය (ශ්රව්ය බෙදා ගැනීම සඳහා සහය දක්වයි). බැටරිය ව: %1$s, ද: %2$s."
+ "ආගන්තුක උපාංගය (ශ්රව්ය බෙදා ගැනීම සඳහා සහය දක්වයි)""සක්රිය (මාධ්ය පමණි)"
-
-
-
-
+ "ආගන්තුක උපාංගය"
+ "ආගන්තුක උපාංගය (මාධ්ය පමණි)""ශ්රව්ය බෙදා ගැනීම සහය දක්වයි"
-
-
+ "ආගන්තුක උපාංගය. ශ්රව්ය බෙදා ගැනීම සහය දක්වයි""සක්රිය (මාධ්ය පමණි), වම පමණි""සක්රිය (මාධ්ය පමණි), දකුණ පමණි""සක්රිය (මාධ්ය පමණි), වම සහ දකුණ"
@@ -396,8 +386,7 @@
"දෘඩාංග වේගය වැඩි කළ පිරිනැමීම""මාධ්ය""නිරීක්ෂණය"
-
-
+ "කවුළු කළමනාකරණය""තදබල ආකාරය සබල කිරීම""මූලික පොටේ යෙදුම්, දිගු මෙහෙයුම් කරන විට තිරය ෆ්ලෑෂ් කරන්න""සූචක පිහිටීම"
@@ -492,12 +481,9 @@
"WebView ක්රියාත්මක කිරීම""WebView ක්රියාත්මක කිරීම සකසන්න""මෙම තෝරා ගැනීම තව දුරටත් වලංගු නැත. නැවත උත්සාහ කරන්න."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView පැකේජය හමු නොවුණි."
+ "DevTools දියත් කිරීමට නොහැකි විය.""පින්තූර වර්ණ ප්රකාරය""sRGB භාවිතා කරන්න""අබලයි"
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 86e827438e79517b88507b405ec22212ec01532d..0f4297aec6adc508a4fcc6434adf55ec228529d2 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -113,33 +113,23 @@
"Okolie sa nepodarilo aktualizovať""Aktívne (iba médiá). %1$s batérie.""Aktívne (iba médiá). Ľ: %1$s batérie, P: %2$s batérie."
-
-
-
-
-
-
-
-
+ "Zariadenie hosťa. %1$s batérie."
+ "Zariadenie hosťa. Ľ: %1$s, P: %2$s batérie."
+ "Zariadenie hosťa (iba médiá). %1$s batérie."
+ "Zariadenie hosťa (iba médiá). Ľ: %1$s, P: %2$s batérie.""Pripojené (podporuje zdieľanie zvuku). %1$s batérie.""Pripojené (podporuje zdieľanie zvuku). Ľ: %1$s, P: %2$s batérie.""Pripojené (podporuje zdieľanie zvuku). Ľavá strana: %1$s batérie.""Pripojené (podporuje zdieľanie zvuku). Pravá strana: %1$s batérie.""Pripojené (podporuje zdieľanie zvuku)"
-
-
-
-
-
-
+ "Zariadenie hosťa (podporuje zdieľanie zvuku). %1$s batérie."
+ "Zariadenie hosťa (podporuje zdieľanie zvuku). Ľ: %1$s, P: %2$s batérie."
+ "Zariadenie hosťa (podporuje zdieľanie zvuku)""Aktívne (iba médiá)"
-
-
-
-
+ "Zariadenie hosťa"
+ "Zariadenie hosťa (iba médiá)""Podporuje zdieľanie zvuku"
-
-
+ "Zariadenie hosťa. Podporuje zdieľanie zvuku.""Aktívne (iba médiá), iba ľavá strana""Aktívne (iba médiá), iba pravá strana""Aktívne (iba médiá), ľavá aj pravá strana"
@@ -396,8 +386,7 @@
"Hardvérom zrýchlené vykresľovanie""Médiá""Monitorovanie"
-
-
+ "Správa okien""Povoliť prísny režim""Blikať pri dlhých operáciách hlavného vlákna""Umiestnenie kurzora"
@@ -492,12 +481,9 @@
"Implementácia WebView""Nastaviť implementáciu WebView""Táto voľba už nie je platná. Skúste to znova."
-
-
-
-
-
-
+ "Nástroje pre vývojárov prvku WebView"
+ "Balík WebView sa nenašiel."
+ "Nástroje pre vývojárov sa nepodarilo spustiť.""Farebný režim obrázka""Použije sa sRGB""Vypnuté"
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 28ae8e14472dabb9e26a1bed9bf31091fa85565c..744b4da576ed26184c069cb5302731758e31d2a8 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -113,33 +113,23 @@
"Okolice ni bilo mogoče posodobiti""Aktivno (samo predstavnost). Baterija: %1$s.""Aktivno (samo predstavnost), baterija – L: %1$s, D: %2$s."
-
-
-
-
-
-
-
-
+ "Naprava gosta. Baterija: %1$s."
+ "Naprava gosta. Baterija – L: %1$s, D: %2$s."
+ "Naprava gosta (samo predstavnost). Baterija: %1$s."
+ "Naprava gosta (samo predstavnost). Baterija – L: %1$s, D: %2$s.""Povezano (podpira deljenje zvoka), baterija: %1$s.""Povezano (podpira deljenje zvoka), baterija – L: %1$s, D: %2$s.""Povezano (podpira deljenje zvoka). Levo – baterija: %1$s.""Povezano (podpira deljenje zvoka). Desno – baterija: %1$s.""Povezano (podpira deljenje zvoka)"
-
-
-
-
-
-
+ "Naprava gosta (podpira deljenje zvoka). Baterija: %1$s."
+ "Naprava gosta (podpira deljenje zvoka). Baterija – L: %1$s, D: %2$s."
+ "Naprava gosta (podpira deljenje zvoka)""Aktivno (samo predstavnost)"
-
-
-
-
+ "Naprava gosta"
+ "Naprava gosta (samo predstavnost)""Podpira deljenje zvoka"
-
-
+ "Naprava gosta. Podpira deljenje zvoka.""Aktivno (samo predstavnost), samo levo""Aktivno (samo predstavnost), samo desno""Aktivno (samo predstavnost), levo in desno"
@@ -396,8 +386,7 @@
"Upodabljanje s strojnim pospeševanjem""Predstavnost""Spremljanje"
-
-
+ "Upravljanje oken""Strog način je omogočen""Osveži zaslon pri dolgih postopkih v glavni niti.""Mesto kazalca"
@@ -492,12 +481,9 @@
"Izvedba spletnega pogleda""Nastavitev izvedbe spletnega pogleda""Ta izbira ni več veljavna. Poskusite znova."
-
-
-
-
-
-
+ "Orodja za razvijalce za WebView"
+ "Paketa WebView ni bilo mogoče najti."
+ "Orodij za razvijalce ni bilo mogoče zagnati.""Način barv slike""Uporaba sRGB-ja""Onemogočeno"
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index 4e6ec9f96284f0ce894d5c030eba670f0628d4fa..3d9622e063defa08b18f227277cb5fd114ed74ae 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -113,33 +113,23 @@
"Ambienti rrethues nuk mund të përditësohej""Aktiv (vetëm për media). %1$s bateri.""Aktiv (vetëm për media). Majtas: %1$s bateri, djathtas: %2$s bateri."
-
-
-
-
-
-
-
-
+ "Pajisja vizitore. %1$s bateri."
+ "Pajisja vizitore. Majtas: %1$s bateri, djathtas: %2$s bateri."
+ "Pajisja vizitore (vetëm media). %1$s bateri."
+ "Pajisja vizitore (vetëm media). Majtas: %1$s bateri, djathtas: %2$s bateri.""Lidhur (mbështet ndarjen e audios). %1$s bateri.""Lidhur (mbështet ndarjen e audios). Majtas: %1$s bateri, djathtas: %2$s bateri.""Lidhur (mbështet ndarjen e audios). Majtas: %1$s bateri.""Lidhur (mbështet ndarjen e audios). Djathtas: %1$s bateri.""Lidhur (mbështet ndarjen e audios)"
-
-
-
-
-
-
+ "Pajisja vizitore (mbështet ndarjen e audios). %1$s bateri."
+ "Pajisja vizitore (mbështet ndarjen e audios). Majtas: %1$s bateri, djathtas: %2$s bateri."
+ "Pajisja vizitore (mbështet ndarjen e audios)""Aktiv (vetëm për media)"
-
-
-
-
+ "Pajisja vizitore"
+ "Pajisja vizitore (vetëm media)""Mbështet ndarjen e audios"
-
-
+ "Pajisja vizitore. Mbështet ndarjen e audios""Aktiv (vetëm për media), vetëm majtas""Aktiv (vetëm për media), vetëm djathtas""Aktiv (vetëm për media), majtas dhe djathtas"
@@ -396,8 +386,7 @@
"Interpretimi i përshpejtuar i harduerit""Media""Monitorimi"
-
-
+ "Menaxhimi i dritareve""Aktivizo modalitetin e rreptë""Ndriço ekranin kur aplikacionet kryejnë operacione të gjata teksa bashkëveprojnë""Vendndodhja e treguesit"
@@ -492,12 +481,9 @@
"Zbatimi i WebView""Cakto zbatimin e WebView""Kjo zgjedhje nuk është më e vlefshme. Provo përsëri."
-
-
-
-
-
-
+ "DevTools e WebView"
+ "Paketa e WebView nuk u gjet."
+ "DevTools nuk mund të nisej.""Modalitti i ngjyrave të figurës""Përdor sRGB""Çaktivizuar"
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 96924b9e3cee2be6ab29d95612f700db79e7e10f..32ec5000bfd0597a912f5b6d3b2da2b1738f38ab 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -113,33 +113,23 @@
"Ажурирање окружења није успело""Активно (само за медије). %1$s батерије.""Активно (само за медије). Лево: %1$s, десно: %2$s батерије."
-
-
-
-
-
-
-
-
+ "Уређај госта. %1$s батерије."
+ "Уређај госта. Лево: %1$s, десно: %2$s батерије."
+ "Уређај госта (само за медије). %1$s батерије."
+ "Уређај госта (само за медије). Лево: %1$s, десно: %2$s батерије.""Повезано (подржава дељење звука), %1$s батерије.""Повезано (подржава дељење звука), лево: %1$s, десно: %2$s батерије.""Повезано (подржава дељење звука). Лево: %1$s батерије""Повезано (подржава дељење звука). Десно: %1$s батерије.""Повезано (подржава дељење звука)"
-
-
-
-
-
-
+ "Уређај госта (подржава дељење звука). %1$s батерије."
+ "Уређај госта (подржава дељење звука). Лево: %1$s, десно: %2$s батерије."
+ "Уређај госта (подржава дељење звука)""Активан (само за медије)"
-
-
-
-
+ "Уређај госта"
+ "Уређај госта (само за медије)""Подржава дељење звука"
-
-
+ "Уређај госта. Подржава дељење звука""Активан (само за медије), само лево""Активан (само за медије), само десно""Активан (само за медије), лево и десно"
@@ -396,8 +386,7 @@
"Хардверски убрзано приказивање""Медији""Надгледање"
-
-
+ "Управљање прозорима""Омогућен је строги режим""Екран трепери када апликације обављају дуге операције на главној нити""Локација показивача"
@@ -492,12 +481,9 @@
"Примена WebView-а""Подесите примену WebView-а""Овај избор више није важећи. Пробајте поново."
-
-
-
-
-
-
+ "WebView алатке за програмере"
+ "Пакет за WebView није пронађен."
+ "Покретање алатки за програмере није успело.""Режим боја слика""Користи sRGB""Онемогућено је"
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 3c7aff69fd732d103da199a499ee166c48700a3f..cf223f5b7bdbb81f3ad395507c4d7563e0c0b7e4 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -113,33 +113,23 @@
"Det gick inte att uppdatera omgivningsläget""Aktiv (endast media). %1$s batteri.""Aktiv (endast media). V: %1$s, H: %2$s batteri."
-
-
-
-
-
-
-
-
+ "Gästenhet. %1$s batteri."
+ "Gästenhet. V: %1$s, H: %2$s batteri."
+ "Gästenhet (endast media). %1$s batteri."
+ "Gästenhet (endast media). V: %1$s, H: %2$s batteri.""Ansluten (ljuddelning stöds). %1$s batteri.""Ansluten (ljuddelning stöds). V: %1$s, H: %2$s batteri.""Ansluten (ljuddelning stöds). Vänster: %1$s batteri.""Ansluten (ljuddelning stöds). Höger: %1$s batteri.""Ansluten (ljuddelning stöds)"
-
-
-
-
-
-
+ "Gästenhet (ljuddelning stöds). %1$s batteri."
+ "Gästenhet (ljuddelning stöds). V: %1$s, H: %2$s batteri."
+ "Gästenhet (ljuddelning stöds)""Aktiv (endast media)"
-
-
-
-
+ "Gästenhet"
+ "Gästenhet (endast media)""Ljuddelning stöds"
-
-
+ "Gästenhet. Ljuddelning stöds""Aktiv (endast media), endast vänster""Aktiv (endast media), endast höger""Aktiv (endast media), vänster och höger"
@@ -396,8 +386,7 @@
"Hårdvaruaccelererad rendering""Media""Övervakning"
-
-
+ "Fönsterhantering""Strikt läge aktiverat""Tänd skärm när app gör omfattande åtgärd på huvudtråd""Pekarens plats"
@@ -492,12 +481,9 @@
"WebView-implementering""Ange WebView-implementering""Det här alternativet är inte längre giltigt. Försök igen."
-
-
-
-
-
-
+ "Verktyg för programmerare för WebView"
+ "WebView-paketet hittades inte."
+ "Verktyg för programmerare kunde inte startas.""Färgläge för bilder""Använd sRGB""Inaktiverad"
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 4f520b499b85d38579a3becc663a7427f82f114f..26e0412b2893ce32b6f92092ef3ff1d50d8c77fb 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -113,33 +113,23 @@
"Imeshindwa kusasisha mazingira""Inatumika (maudhui pekee). Chaji ya betri imefika %1$s.""Inatumika (maudhui pekee), Kushoto: chaji ya betri imefika %1$s, Kulia: chaji ya betri imefika %2$s."
-
-
-
-
-
-
-
-
+ "Kifaa kingeni. Chaji ya betri imefika %1$s."
+ "Kifaa kingeni. Kushoto: chaji ya betri imefika %1$s, Kulia: chaji ya betri imefika %2$s."
+ "Kifaa kingeni (sauti/video/picha pekee). Chaji ya betri imefika %1$s."
+ "Kifaa kingeni (sauti/video/picha pekee). Kushoto: chaji ya betri imefika %1$s, Kulia: chaji ya betri imefika %2$s.""Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Chaji imefika %1$s.""Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Kushoto: chaji ya betri imefika %1$s, Kulia: chaji ya betri imefika %2$s.""Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Kushoto: chaji ya betri imefika %1$s.""Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Kulia: chaji ya betri imefika %1$s.""Imeunganishwa (inaweza kusikiliza pamoja)"
-
-
-
-
-
-
+ "Kifaa kingeni (kinatumia kipengele cha kusikiliza pamoja). Chaji ya betri imefika %1$s."
+ "Kifaa kingeni (kinatumia kipengele cha kusikiliza pamoja). Kushoto: chaji ya betri imefika %1$s, Kulia: chaji ya betri imefika %2$s."
+ "Kifaa kingeni (kinatumia kipengele cha kusikiliza pamoja)""Inatumika (maudhui pekee)"
-
-
-
-
+ "Kifaa kingeni"
+ "Kifaa kingeni (sauti/video/picha pekee)""Inaweza kutumia kipengele cha kusikiliza pamoja"
-
-
+ "Kifaa kingeni. Kinatumia kipengele cha kusikiliza pamoja""Inatumika (maudhui pekee), kushoto pekee""Inatumika (maudhui pekee), kulia pekee""Inatumika (maudhui pekee), kushoto na kulia"
@@ -396,8 +386,7 @@
"Utekelezaji wa maunzi ulioharakishwa""Maudhui""Ufuatiliaji"
-
-
+ "Udhibiti wa Dirisha""Hali makinifu imewashwa""Fanya skrini imemeteke programu zinapoendeleza shughuli ndefu kwenye skrini kuu""Mahali pa kiashiria"
@@ -492,12 +481,9 @@
"Utekelezaji wa WebView""Weka utekelezaji wa WebView""Chaguo hili halipo tena. Jaribu tena."
-
-
-
-
-
-
+ "Zana za Wasanidi Programu za Mwonekano wa Wavuti"
+ "Haijapata kifurushi cha Mwonekano wa Wavuti."
+ "Imeshindwa kuwasha Zana za Wasanidi Programu.""Hali ya rangi ya picha""Tumia sRGB""Imezimwa"
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index aa345842779ca6bc8ccef4f85497828a2132cdbc..c2e762f417e7ce3c2bc54b0c58eeb5cc09654772 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -113,33 +113,23 @@
"சுற்றுப்புறங்களைப் புதுப்பிக்க முடியவில்லை""செயலிலுள்ளது (மீடியா மட்டும்). %1$s பேட்டரி.""செயலிலுள்ளது (மீடியா மட்டும்). இடது பேட்டரி: %1$s, வலது பேட்டரி: %2$s."
-
-
-
-
-
-
-
-
+ "விருந்தினர் சாதனம். %1$s பேட்டரி."
+ "விருந்தினர் சாதனம். இடது பேட்டரி: %1$s, வலது பேட்டரி: %2$s."
+ "விருந்தினர் சாதனம் (மீடியா மட்டும்). %1$s பேட்டரி."
+ "விருந்தினர் சாதனம் (மீடியா மட்டும்). இடது பேட்டரி: %1$s, வலது பேட்டரி: %2$s.""இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). %1$s பேட்டரி.""இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). இடது பேட்டரி: %1$s, வலது பேட்டரி: %2$s.""இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). இடது: - %1$s பேட்டரி.""இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). வலது: %1$s பேட்டரி.""இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது)"
-
-
-
-
-
-
+ "விருந்தினர் சாதனம் (ஆடியோ பகிர்வை ஆதரிக்கிறது). %1$s பேட்டரி."
+ "விருந்தினர் சாதனம் (ஆடியோ பகிர்வை ஆதரிக்கிறது). இடது பேட்டரி: %1$s, வலது பேட்டரி: %2$s."
+ "விருந்தினர் சாதனம் (ஆடியோ பகிர்வை ஆதரிக்கிறது)""செயலிலுள்ளது (மீடியா மட்டும்)"
-
-
-
-
+ "விருந்தினர் சாதனம்"
+ "விருந்தினர் சாதனம் (மீடியா மட்டும்)""ஆடியோ பகிர்வை ஆதரிக்கிறது"
-
-
+ "விருந்தினர் சாதனம். ஆடியோ பகிர்வை ஆதரிக்கிறது.""செயலிலுள்ளது (மீடியா மட்டும்), இடதுபுறம் மட்டும்""செயலிலுள்ளது (மீடியா மட்டும்), வலதுபுறம் மட்டும்""செயலிலுள்ளது (மீடியா மட்டும்), இடதுபுறம் மற்றும் வலதுபுறம்"
@@ -396,8 +386,7 @@
"வன்பொருள் முடுக்கத்துடன் கூடிய காட்சியாக்கம்""மீடியா""கண்காணித்தல்"
-
-
+ "சாளர நிர்வாகம்""நிலையான பயன்முறை இயக்கப்பட்டது""முக்கியத் தொடரிழையில் நீண்ட நேரம் செயல்படும்போது திரையைக் காட்சிப்படுத்தும்""குறிப்பான் இடம்"
@@ -492,12 +481,9 @@
"WebView செயல்படுத்தல்""WebView செயல்படுத்தலை அமை""இனி இந்தத் தேர்வைப் பயன்படுத்த முடியாது. மீண்டும் முயலவும்."
-
-
-
-
-
-
+ "WebView டெவெலப்பர் கருவிகள்"
+ "WebView தொகுப்பு இல்லை."
+ "டெவெலப்பர் கருவிகளை இயக்க முடியவில்லை.""படத்தின் வண்ணப் பயன்முறை""sRGBஐப் பயன்படுத்தும்""முடக்கப்பட்டது"
@@ -667,7 +653,7 @@
"மற்ற பயனர்களுக்கு இல்லாத சிறப்புரிமைகள் நிர்வாகிகளுக்கு உண்டு. நிர்வாகி அனைத்துப் பயனர்களையும் நிர்வகிக்கலாம், இந்தச் சாதனத்தைப் புதுப்பிக்கலாம் அல்லது ரீசெட் செய்யலாம், அமைப்புகளை மாற்றலாம், நிறுவப்பட்ட அனைத்து ஆப்ஸையும் பார்க்கலாம், பிறருக்கு நிர்வாகி சிறப்புரிமைகளை வழங்கலாம் அல்லது அகற்றலாம்.""நிர்வாகியாக்கு""இப்போது பயனரை அமைக்கவா?"
- "இந்தச் சாதனத்தை இவர் பயன்படுத்தும் நிலையிலும், அவருக்கான அமைப்புகளை அவரே செய்து கொள்பவராகவும் இருக்க வேண்டும்."
+ "பயனர் இந்தச் சாதனத்தில் அவருக்கான அமைப்புகளை அமைக்கும் நிலையில் இப்போது இருக்க வேண்டும்""இப்போது சுயவிவரத்தை அமைக்கவா?""இப்போது அமை""இப்போது இல்லை"
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index cded034d5ab37a15e5655cf2b662ae3695e0b0eb..f4678f3d0dd5acda2306d944b1eac83754cb5e08 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -113,33 +113,23 @@
"పరిసరాలను అప్డేట్ చేయడం సాధ్యం కాలేదు""యాక్టివ్ (మీడియా మాత్రమే). %1$s బ్యాటరీ.""యాక్టివ్ (మీడియా మాత్రమే). ఎడమ వైపు: %1$s బ్యాటరీ, కుడివైపు: %2$s బ్యాటరీ."
-
-
-
-
-
-
-
-
+ "గెస్ట్ పరికరం. %1$s బ్యాటరీ."
+ "గెస్ట్ పరికరం. ఎడమ వైపు: %1$s, కుడివైపు: %2$s బ్యాటరీ."
+ "గెస్ట్ పరికరం (మీడియాకు మాత్రమే). %1$s బ్యాటరీ."
+ "గెస్ట్ పరికరం (మీడియాకు మాత్రమే). ఎడమ వైపు: %1$s, కుడివైపు: %2$s బ్యాటరీ.""కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది). %1$s బ్యాటరీ.""కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది). ఎడమ వైపు: %1$s బ్యాటరీ, కుడివైపు: %2$s బ్యాటరీ.""కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది). ఎడమ వైపు: %1$s బ్యాటరీ.""కనెక్ట్ అయింది (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది). కుడివైపు: %1$s బ్యాటరీ.""కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది)"
-
-
-
-
-
-
+ "గెస్ట్ పరికరం (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది). %1$s బ్యాటరీ."
+ "గెస్ట్ పరికరం (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది). ఎడమ వైపు: %1$s, కుడివైపు: %2$s బ్యాటరీ."
+ "గెస్ట్ పరికరం (ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది)""యాక్టివ్ (మీడియా మాత్రమే)"
-
-
-
-
+ "గెస్ట్ పరికరం"
+ "గెస్ట్ పరికరం (మీడియాకు మాత్రమే)""ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది"
-
-
+ "గెస్ట్ పరికరం. ఆడియో షేరింగ్కు సపోర్ట్ చేస్తుంది""యాక్టివ్ (మీడియా మాత్రమే), ఎడమ వైపు మాత్రమే""యాక్టివ్ (మీడియా మాత్రమే), కుడివైపు మాత్రమే""యాక్టివ్ (మీడియా మాత్రమే), ఎడమ, కుడివైపు మాత్రమే"
@@ -396,8 +386,7 @@
"హార్డ్వేర్ యాగ్జిలరేషన్ ఆధారిత రెండరింగ్""మీడియా""పర్యవేక్షణ"
-
-
+ "విండో మేనేజ్మెంట్""స్ట్రిక్ట్ మోడ్ ఎనేబుల్డ్""యాప్లు ప్రధాన థ్రెడ్లో సుదీర్ఘ చర్యలు చేసేటప్పుడు స్క్రీన్ను ఫ్లాష్ చేయండి""పాయింటర్ లొకేషన్"
@@ -492,12 +481,9 @@
"వెబ్ వీక్షణ అమలు""వెబ్ వీక్షణ అమలుని సెట్ చేయండి""ఈ ఎంపిక ఇప్పుడు లేదు. మళ్లీ ట్రై చేయండి."
-
-
-
-
-
-
+ "వెబ్ వీక్షణ DevTools"
+ "వెబ్ వీక్షణ ప్యాకేజీ కనుగొనబడలేదు."
+ "DevToolsను లాంచ్ చేయడం సాధ్యపడలేదు.""చిత్రం రంగు మోడ్""sRGB ఉపయోగిస్తుంది""డిజేబుల్ చేయబడింది"
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index eaf256d520df843f489f9becd5def06457de4aa8..e360ae6d52786798a9e82c0f907457461ef29ccc 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -113,33 +113,23 @@
"อัปเดตเสียงแวดล้อมไม่ได้""ใช้งานอยู่ (สื่อเท่านั้น) แบตเตอรี่ %1$s""ใช้งานอยู่ (สื่อเท่านั้น) แบตเตอรี่ข้างซ้าย: %1$s, ข้างขวา: %2$s"
-
-
-
-
-
-
-
-
+ "อุปกรณ์ของผู้มาเยือน แบตเตอรี่ %1$s"
+ "อุปกรณ์ของผู้มาเยือน L: แบตเตอรี่ %1$s, R: แบตเตอรี่ %2$s"
+ "อุปกรณ์ของผู้มาเยือน (สื่อเท่านั้น) แบตเตอรี่ %1$s"
+ "อุปกรณ์ของผู้มาเยือน (สื่อเท่านั้น) L: แบตเตอรี่ %1$s, R: แบตเตอรี่ %2$s""เชื่อมต่อแล้ว (รองรับการแชร์เสียง) แบตเตอรี่ %1$s""เชื่อมต่อแล้ว (รองรับการแชร์เสียง) แบตเตอรี่ข้างซ้าย: %1$s, ข้างขวา: %2$s""เชื่อมต่อแล้ว (รองรับการแชร์เสียง) ซ้าย: แบตเตอรี่ %1$s""เชื่อมต่อแล้ว (รองรับการแชร์เสียง) ขวา: แบตเตอรี่ %1$s""เชื่อมต่อแล้ว (รองรับการแชร์เสียง)"
-
-
-
-
-
-
+ "อุปกรณ์ของผู้มาเยือน (รองรับการแชร์เสียง) แบตเตอรี่ %1$s"
+ "อุปกรณ์ของผู้มาเยือน (รองรับการแชร์เสียง) L: แบตเตอรี่ %1$s, R: แบตเตอรี่ %2$s"
+ "อุปกรณ์ของผู้มาเยือน (รองรับการแชร์เสียง)""ใช้งานอยู่ (สื่อเท่านั้น)"
-
-
-
-
+ "อุปกรณ์ของผู้มาเยือน"
+ "อุปกรณ์ของผู้มาเยือน (สื่อเท่านั้น)""รองรับการแชร์เสียง"
-
-
+ "อุปกรณ์ของผู้มาเยือน รองรับการแชร์เสียง""ใช้งานอยู่ (สื่อเท่านั้น), ซ้ายเท่านั้น""ใช้งานอยู่ (สื่อเท่านั้น), ขวาเท่านั้น""ใช้งานอยู่ (สื่อเท่านั้น), ซ้ายและขวา"
@@ -396,8 +386,7 @@
"การแสดงผลที่มีการเร่งด้วยฮาร์ดแวร์""สื่อ""การตรวจสอบ"
-
-
+ "การจัดการหน้าต่าง""เปิดใช้งานโหมดเข้มงวด""กะพริบหน้าจอเมื่อแอปทำงานในเทรดหลักนาน""ตำแหน่งของตัวชี้"
@@ -492,12 +481,9 @@
"การใช้งาน WebView""ตั้งค่าการใช้งาน WebView""ตัวเลือกนี้ใช้ไม่ได้อีกต่อไป โปรดลองอีกครั้ง"
-
-
-
-
-
-
+ "เครื่องมือสำหรับนักพัฒนาเว็บของ WebView"
+ "ไม่พบแพ็กเกจ WebView"
+ "เปิดเครื่องมือสำหรับนักพัฒนาเว็บไม่ได้""โหมดสีของรูปภาพ""ใช้ sRGB""ปิดใช้"
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index b6d8d190d1ca0e9282bbe82e3aa1c343d589db58..09f40c761fdac0ac00b60de5595d4d6ddbc18b27 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -113,33 +113,23 @@
"Hindi ma-update ang paligid""Aktibo (media lang). %1$s baterya.""Aktibo (media lang). L: %1$s, R: %2$s baterya."
-
-
-
-
-
-
-
-
+ "Device ng bisita. %1$s baterya."
+ "Device ng bisita. L: %1$s, R: %2$s baterya."
+ "Device ng bisita (media lang). %1$s baterya."
+ "Device ng bisita (media lang). L: %1$s, R: %2$s baterya.""Nakakonekta (sinusuportahan ang pag-share ng audio), %1$s baterya.""Nakakonekta (sinusuportahan ang pag-share ng audio). L: %1$s, R: %2$s baterya.""Nakakonekta (sinusuportahan ang pag-share ng audio). Kaliwa: %1$s baterya.""Nakakonekta (sinusuportahan ang pag-share ng audio). Kanan: %1$s baterya.""Nakakonekta (sinusuportahan ang pag-share ng audio)"
-
-
-
-
-
-
+ "Device ng bisita (sinusuportahan ang pag-share ng audio). %1$s baterya."
+ "Device ng bisita (sinusuportahan ang pag-share ng audio). L: %1$s, R: %2$s baterya."
+ "Device ng bisita (sinusuportahan ang pag-share ng audio)""Aktibo (media lang)"
-
-
-
-
+ "Device ng bisita"
+ "Device ng bisita (media lang)""Sinusuportahan ang pag-share ng audio"
-
-
+ "Device ng bisita. Sinusuportahan ang pag-share ng audio""Aktibo (media lang), kaliwa lang""Aktibo (media lang), kanan lang""Aktibo (media lang), kaliwa at kanan"
@@ -396,8 +386,7 @@
"Pag-render na pinapabilis ng hardware""Media""Pagsubaybay"
-
-
+ "Pamamahala sa Window""Enabled ang strict mode""I-flash ang screen pag may long ops ang app sa main thread""Lokasyon ng pointer"
@@ -492,12 +481,9 @@
"Pagpapatupad sa WebView""Itakda ang pagpapatupad sa WebView""Wala nang bisa ang napiling ito. Subukang muli."
-
-
-
-
-
-
+ "DevTools ng WebView"
+ "Hindi nakita ang WebView package."
+ "Hindi mailunsad ang DevTools.""Mode ng kulay ng larawan""Gamitin ang sRGB""Naka-disable"
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index c4cbaf69b5a918b2222e891fa38d9c64e3ae26c3..19b3baf6c82dfb8b8ceb5b5b7593c100140ae4bb 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -113,33 +113,23 @@
"Çevredeki sesler güncellenemedi""Etkin (yalnızca medya). %1$s pil seviyesi.""Etkin (yalnızca medya). Sol: %1$s, Sağ: %2$s pil seviyesi."
-
-
-
-
-
-
-
-
+ "Misafir cihaz. %1$s pil seviyesi."
+ "Misafir cihaz. Sol: %1$s, Sağ: %2$s pil seviyesi."
+ "Misafir cihaz (yalnızca medya). %1$s pil seviyesi."
+ "Misafir cihaz (yalnızca medya). Sol: %1$s, Sağ: %2$s pil seviyesi.""Bağlı (ses paylaşımını destekler). %1$s pil seviyesi.""Bağlı (ses paylaşımını destekler). Sol: %1$s, Sağ: %2$s pil seviyesi.""Bağlı (ses paylaşımını destekler). Sol: %1$s pil seviyesi.""Bağlı (ses paylaşımını destekler). Sağ: %1$s pil seviyesi.""Bağlı (ses paylaşımını destekler)"
-
-
-
-
-
-
+ "Misafir cihaz (ses paylaşımını destekler). %1$s pil seviyesi."
+ "Misafir cihaz (ses paylaşımını destekler). Sol: %1$s, Sağ: %2$s pil seviyesi."
+ "Misafir cihaz (ses paylaşımını destekler)""Etkin (yalnızca medya)"
-
-
-
-
+ "Misafir cihaz"
+ "Misafir cihaz (yalnızca medya)""Ses paylaşımını destekler"
-
-
+ "Misafir cihaz. Ses paylaşımını destekler""Etkin (yalnızca medya), yalnızca sol""Etkin (yalnızca medya), yalnızca sağ""Etkin (yalnızca medya), sol ve sağ"
@@ -396,8 +386,7 @@
"Donanım hızlandırmalı oluşturma""Medya""İzleme"
-
-
+ "Pencere Yönetimi""Yüksek düzey modu etkin""Uygulamalar ana iş parçacığında uzun işlem yaparken ekranı yanıp söndür""İşaretçi konumu"
@@ -492,12 +481,9 @@
"Web Görünümü kullanımı""Web Görünümü kullanımını ayarla""Bu seçenek artık geçerli değil. Tekrar deneyin."
-
-
-
-
-
-
+ "WebView Geliştirici Araçları"
+ "WebView paketi bulunamadı."
+ "Geliştirici Araçları başlatılamadı.""Resim renk modu""sRGB\'yi kullan""Devre dışı"
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index ecff5722472c755b515255ebcf87a18f12897b36..ff18f5cf10a4918e7eccff516c1c6151a844c39f 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -113,33 +113,23 @@
"Не вдалось оновити стан оточення""Активне з’єднання (лише для мультимедіа). %1$s заряду акумулятора.""Активне з’єднання (лише для мультимедіа). Рівень заряду: лівий %1$s, правий: %2$s."
-
-
-
-
-
-
-
-
+ "Гостьовий пристрій. %1$s заряду акумулятора."
+ "Гостьовий пристрій. Лівий: %1$s, правий: %2$s заряду акумулятора."
+ "Гостьовий пристрій (лише для мультимедіа). %1$s заряду акумулятора."
+ "Гостьовий пристрій (лише для мультимедіа). Лівий: %1$s, правий: %2$s заряду акумулятора.""Підключено (підтримує надсилання аудіо). %1$s заряду акумулятора.""Підключено (підтримує надсилання аудіо). Лівий: %1$s, правий: %2$s заряду акумулятора.""Підключено (підтримує надсилання аудіо). Лівий: %1$s заряду акумулятора.""Підключено (підтримує надсилання аудіо). Правий: %1$s заряду акумулятора.""Підключено (підтримує надсилання аудіо)"
-
-
-
-
-
-
+ "Гостьовий пристрій (підтримує надсилання аудіо). %1$s заряду акумулятора."
+ "Гостьовий пристрій (підтримує надсилання аудіо). Лівий: %1$s, правий: %2$s заряду акумулятора."
+ "Гостьовий пристрій (підтримує надсилання аудіо)""Активно (лише для мультимедіа)"
-
-
-
-
+ "Гостьовий пристрій"
+ "Гостьовий пристрій (лише для мультимедіа)""Підтримує надсилання аудіо"
-
-
+ "Гостьовий пристрій. Підтримує надсилання аудіо.""Активно (лише для мультимедіа); лише лівий""Активно (лише для мультимедіа); лише правий""Активно (лише для мультимедіа); лівий і правий"
@@ -396,8 +386,7 @@
"Апаратне прискорення""Медіа""Моніторинг"
-
-
+ "Керування вікнами""Строгий режим увімкнено""Підсвічувати екран під час довгострокових операцій""Розташування курсора"
@@ -492,12 +481,9 @@
"Застосування WebView""Налаштувати застосування WebView""Ця опція більше не дійсна. Повторіть спробу."
-
-
-
-
-
-
+ "Інструменти розробника WebView"
+ "Пакет WebView не знайдено."
+ "Не вдалося запустити Інструменти розробника.""Режим кольору""Використовувати sRGB""Вимкнено"
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 34071147f5d9a8684a63683d4b6ecc7b6217f7a1..a07a341fd956d438943e88abb854f90ea69d8264 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -113,33 +113,23 @@
"اطراف کو اپ ڈیٹ نہیں کیا جا سکا""فعال (صرف میڈیا)۔ %1$s بیٹری۔""فعال (صرف میڈیا)۔ L: %1$s، R: %2$s بیٹری۔"
-
-
-
-
-
-
-
-
+ "مہمان آلہ۔ %1$s بیٹری۔"
+ "مہمان آلہ۔ بایاں: %1$s، دایاں: %2$s بیٹری۔"
+ "مہمان آلہ (صرف میڈیا)۔ %1$s بیٹری۔"
+ "مہمان آلہ (صرف میڈیا)۔ بایاں: %1$s، دایاں: %2$s بیٹری۔""منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ %1$s بیٹری۔""منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ L: %1$s، R: %2$s بیٹری۔""منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ بائيں: %1$s بیٹری۔""منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ دائيں: %1$s بیٹری۔""منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)"
-
-
-
-
-
-
+ "مہمان آلہ (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ %1$s بیٹری۔"
+ "مہمان آلہ (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ بایاں: %1$s، دایاں: %2$s بیٹری۔"
+ "مہمان آلہ (آڈیو کے اشتراک کو سپورٹ کرتا ہے)""فعال (صرف میڈیا)"
-
-
-
-
+ "مہمان آلہ"
+ "مہمان آلہ (صرف میڈیا)""آڈیو کے اشتراک کو سپورٹ کرتا ہے"
-
-
+ "مہمان آلہ۔ آڈیو کے اشتراک کو سپورٹ کرتا ہے""فعال (صرف میڈیا)، صرف بائیں""فعال (صرف میڈیا)، صرف دائیں""فعال (صرف میڈیا)، بائیں اور دائیں"
@@ -396,8 +386,7 @@
"ہارڈ ویئر کے ذریعے تیز کردہ رینڈرنگ""میڈیا""مانیٹر کرنا"
-
-
+ "ونڈو کا نظم و نسق""سخت وضع فعال ہے""ایپس کے اصل تھریڈ پر طویل اعمال انجام دیتے وقت اسکرین کو فلیش کریں""پوائنٹر مقام"
@@ -492,12 +481,9 @@
"WebView کا نفاذ""WebView کا نفاذ سیٹ کریں""یہ انتخاب اب درست نہیں رہا۔ دوبارہ کوشش کریں۔"
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView پیکیج نہیں ملا۔"
+ "DevTools کو شروع نہیں کیا جا سکا۔""تصویری رنگ موڈ""sRGB استعمال کریں""غیر فعال"
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index bff79933c10c9dd7f237ca101e978c38d9296e9d..3a10aa801797e42197207d4e3ccf2806534d5221 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -113,33 +113,23 @@
"Atrof-muhit yangilanmadi""Faol (faqat media uchun) Quvvat: %1$s.""Faol (faqat media uchun), quvvat: %1$s (L), %2$s (R)"
-
-
-
-
-
-
-
-
+ "Mehmon qurilma. Quvvat: %1$s."
+ "Mehmon qurilma. Quvvat: %1$s (L), %2$s (R)."
+ "Mehmon qurilma (faqat multimedia). Quvvat: %1$s."
+ "Mehmon qurilma (faqat multimedia). Quvvat: %1$s (L), %2$s (R).""Ulangan (audio yuborish mumkin), quvvat: %1$s""Ulangan (audio yuborish mumkin), quvvat: %1$s (L), %2$s (R)""Ulangan (audio yuborish mumkin). Quvvat: %1$s (chap).""Ulangan (audio yuborish mumkin). Quvvat: %1$s (oʻng).""Ulangan (audio yuborish mumkin)"
-
-
-
-
-
-
+ "Mehmon qurilma (audio ulashuvni dastaklaydi). Quvvat: %1$s."
+ "Mehmon qurilma (audio ulashuvni dastaklaydi). Quvvat: %1$s (L), %2$s (R)."
+ "Mehmon qurilma (audio ulashuvni dastaklaydi)""Faol (faqat media uchun)"
-
-
-
-
+ "Mehmon qurilma"
+ "Mehmon qurilma (faqat multimedia)""Audio yuborishi mumkin"
-
-
+ "Mehmon qurilma. Audio ulashishi mumkin""Faol (faqat media uchun), faqat chap""Faol (faqat media uchun), faqat oʻng""Faol (faqat media uchun), chap va oʻng"
@@ -148,7 +138,7 @@
"Fayl uzatish""Kiritish qurilmasi""Internetga ulanish"
- "Chaqiruv va kontaktlarga ruxsat berilsinmi?"
+ "Kontaktlar va chaqiruv tarixiga ruxsat berish""Maʼlumotlar chaqiruvlar haqida xabar berish uchun ishlatiladi""Internet aloqasi ulashmasi""SMS xabarlari"
@@ -396,8 +386,7 @@
"Vizualizatsiyani apparatli tezlatish""Multimedia""Monitoring"
-
-
+ "Oyna boshqaruvi""Qat’iy rejim yoqilgan""Uzun amallar vaqtida ekranni miltillatish""Kursor joylashuvi"
@@ -492,12 +481,9 @@
"WebView ta’minotchisi""WebView ta’minotchisini sozlash""Bu variant endi yaroqsiz. Qaytadan urining."
-
-
-
-
-
-
+ "WebView DevTools"
+ "WebView paketi topilmadi."
+ "DevTools ishga tushirilmadi.""Rang rejimi""sRGB ranglaridan foydalanish""Oʻchiq"
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index cb0a875a8d7a77da55ff1e4bd8f75fe54f7364e8..6095e8c2af4cd674f87c43a6412ee99d54e290c3 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -113,33 +113,23 @@
"Không cập nhật được âm lượng xung quanh""Đang hoạt động (chỉ phát nội dung đa phương tiện). Còn %1$s pin.""Đang hoạt động (chỉ phát nội dung đa phương tiện). Bên trái: Còn %1$s pin. Bên phải: Còn %2$s pin."
-
-
-
-
-
-
-
-
+ "Thiết bị khách. Còn %1$s pin."
+ "Thiết bị khách. Bên trái: Còn %1$s pin. Bên phải: Còn %2$s pin."
+ "Thiết bị khách (chỉ dành cho nội dung nghe nhìn). Còn %1$s pin."
+ "Thiết bị khách (chỉ dành cho nội dung nghe nhìn). Bên trái: Còn %1$s pin. Bên phải: Còn %2$s pin.""Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Còn %1$s pin.""Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Bên trái: Còn %1$s pin. Bên phải: Còn %2$s pin.""Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Bên trái: Còn %1$s pin.""Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Bên phải: Còn %1$s pin.""Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh)."
-
-
-
-
-
-
+ "Thiết bị khách (hỗ trợ tính năng chia sẻ âm thanh). Còn %1$s pin."
+ "Thiết bị khách (hỗ trợ tính năng chia sẻ âm thanh). Bên trái: Còn %1$s pin. Bên phải: Còn %2$s pin."
+ "Thiết bị khách (hỗ trợ tính năng chia sẻ âm thanh)""Đang hoạt động (chỉ phát nội dung đa phương tiện)"
-
-
-
-
+ "Thiết bị khách"
+ "Thiết bị khách (chỉ dành cho nội dung nghe nhìn)""Hỗ trợ tính năng chia sẻ âm thanh"
-
-
+ "Thiết bị khách. Hỗ trợ tính năng chia sẻ âm thanh""Đang hoạt động (chỉ phát nội dung đa phương tiện), chỉ dùng tai nghe bên trái""Đang hoạt động (chỉ phát nội dung đa phương tiện), chỉ dùng tai nghe bên phải""Đang hoạt động (chỉ phát nội dung đa phương tiện), đang dùng cả tai nghe bên trái và phải"
@@ -396,8 +386,7 @@
"Kết xuất có tăng tốc phần cứng""Phương tiện""Giám sát"
-
-
+ "Quản lý cửa sổ""Luôn bật chế độ nghiêm ngặt""Màn hình nháy khi ứng dụng thực hiện các hoạt động dài trên luồng chính""Vị trí con trỏ"
@@ -492,12 +481,9 @@
"Triển khai WebView""Đặt triển khai WebView""Lựa chọn này không còn hợp lệ nữa. Hãy thử lại."
-
-
-
-
-
-
+ "Công cụ cho nhà phát triển WebView"
+ "Không tìm thấy gói WebView."
+ "Không khởi chạy được Công cụ cho nhà phát triển.""Chế độ màu của ảnh""Sử dụng sRGB""Đã tắt"
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index f13f7d91bd7183a237dceeb621a524cb4f794310..06379e1c254ffe1fc1fbabaff6d12319d892b035 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -107,39 +107,29 @@
"右耳机电池电量 %1$s""使用中""已保存的设备"
- "使用中(仅左耳助听器)"
+ "使用中(仅左耳)""使用中(仅右耳助听器)""使用中(左右耳助听器)""无法更新周围声音""使用中(仅限媒体)。电池电量为 %1$s。""使用中(仅限媒体)。左侧电池电量为 %1$s,右侧电池电量为 %2$s。"
-
-
-
-
-
-
-
-
+ "访客设备。电池电量为 %1$s。"
+ "访客设备。左侧电池电量为 %1$s,右侧电池电量为 %2$s。"
+ "访客设备(仅限媒体)。电池电量为 %1$s。"
+ "访客设备(仅限媒体)。左侧电池电量为 %1$s,右侧电池电量为 %2$s。""已连接(支持音频分享)。电池电量为 %1$s。""已连接(支持音频分享)。左侧电池电量为 %1$s,右侧电池电量为 %2$s。""已连接(支持音频分享)。左侧电池电量为 %1$s。""已连接(支持音频分享)。右侧电池电量为 %1$s。""已连接(支持音频分享)"
-
-
-
-
-
-
+ "访客设备(支持音频分享)。电池电量为 %1$s。"
+ "访客设备(支持音频分享)。左侧电池电量为 %1$s,右侧电池电量为 %2$s。"
+ "访客设备(支持音频分享)""使用中(仅限媒体)"
-
-
-
-
+ "访客设备"
+ "访客设备(仅限媒体)""支持音频分享"
-
-
+ "访客设备。支持音频分享""使用中(仅限媒体),仅左侧""使用中(仅限媒体),仅右侧""使用中(仅限媒体),左侧和右侧"
@@ -396,8 +386,7 @@
"硬件加速渲染""媒体""监控"
-
-
+ "窗口管理""启用严格模式""应用在主线程上执行长时间操作时闪烁屏幕""指针位置"
@@ -492,12 +481,9 @@
"WebView 实现""设置 WebView 实现""此选项已失效,请重试。"
-
-
-
-
-
-
+ "WebView 开发者工具"
+ "未找到 WebView 软件包。"
+ "无法启动开发者工具。""图片颜色模式""使用 sRGB""已停用"
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 14976e098efaa378c9dcd21b6428eed2344662e8..a3ae971b07c4766986dfb48b68a1a0c44d3130aa 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -113,33 +113,23 @@
"無法更新環境聲音""啟用 (只限媒體)。%1$s 電量。""啟用 (只限媒體),左側:%1$s 電量,右側:%2$s 電量。"
-
-
-
-
-
-
-
-
+ "訪客裝置。%1$s 電量。"
+ "訪客裝置。左側:%1$s,右側:%2$s 電量。"
+ "訪客裝置 (僅限媒體)。%1$s 電量。"
+ "訪客裝置 (僅限媒體)。左側:%1$s,右側:%2$s 電量。""已連線 (支援音訊分享功能),%1$s 電量。""已連線 (支援音訊分享功能),左側:%1$s 電量,右側:%2$s 電量。""已連線 (支援音訊分享功能)。左側:%1$s 電量。""已連線 (支援音訊分享功能)。右側:%1$s 電量。""已連線 (支援音訊分享功能)"
-
-
-
-
-
-
+ "訪客裝置 (支援音訊分享功能)。%1$s 電量。"
+ "訪客裝置 (支援音訊分享功能)。左側:%1$s,右側:%2$s 電量。"
+ "訪客裝置 (支援音訊分享功能)""啟用 (只限媒體)"
-
-
-
-
+ "訪客裝置"
+ "訪客裝置 (僅限媒體)""支援音訊分享功能"
-
-
+ "訪客裝置。支援音訊分享功能""左側啟用 (只限媒體)""右側啟用 (只限媒體)""右側同時啟用 (只限媒體)"
@@ -396,8 +386,7 @@
"硬件加速轉譯""媒體""監控"
-
-
+ "視窗管理""嚴格模式已啟用""當應用程式在主執行緒中進行長時間作業時,讓螢幕閃爍""指標位置"
@@ -492,12 +481,9 @@
"WebView 設置""設定 WebView 設置""此選擇已失效,請再試一次。"
-
-
-
-
-
-
+ "WebView 開發人員工具"
+ "找不到 WebView 套件。"
+ "無法啟動開發人員工具。""相片顏色模式""使用 sRGB""已停用"
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index b65cb4f5ecbe9ce211cc58969db99f842af89139..f670088de16b1fd049b82e32f692ad640f46d301 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -113,33 +113,23 @@
"無法更新環境狀態""已啟用 (僅限媒體)。電量:%1$s。""已啟用 (僅限媒體)。左側電量:%1$s,右側電量:%2$s。"
-
-
-
-
-
-
-
-
+ "訪客裝置。電量:%1$s。"
+ "訪客裝置。左側電量:%1$s,右側電量:%2$s。"
+ "訪客裝置 (僅限媒體)。電量:%1$s。"
+ "訪客裝置 (僅限媒體)。左側電量:%1$s,右側電量:%2$s。""已連線 (支援音訊分享)。電量:%1$s。""已連線 (支援音訊分享)。左側電量:%1$s,右側電量:%2$s。""已連線 (支援音訊分享)。左側電量:%1$s。""已連線 (支援音訊分享)。右側電量:%1$s。""已連線 (支援音訊分享)"
-
-
-
-
-
-
+ "訪客裝置 (支援音訊分享)。電量:%1$s。"
+ "訪客裝置 (支援音訊分享)。左側電量:%1$s,右側電量:%2$s。"
+ "訪客裝置 (支援音訊分享)""啟用 (僅限媒體)"
-
-
-
-
+ "訪客裝置"
+ "訪客裝置 (僅限媒體)""支援音訊分享"
-
-
+ "訪客裝置。支援音訊分享""左側啟用 (僅限媒體)""右側啟用 (僅限媒體)""左右側同時啟用 (僅限媒體)"
@@ -396,8 +386,7 @@
"硬體加速轉譯""媒體""監控"
-
-
+ "視窗管理""嚴格模式已啟用""當應用程式在主執行緒中進行長時間作業時,讓螢幕閃爍""指標位置"
@@ -492,12 +481,9 @@
"WebView 實作""設定 WebView 實作""這個選項已失效,請再試一次。"
-
-
-
-
-
-
+ "WebView 開發人員工具"
+ "找不到 WebView 套件。"
+ "無法啟動開發人員工具。""螢幕色彩模式""使用 sRGB""已停用"
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 859c153dd59da4204fb5fb328b9bc9140c4e8a38..1d792a0a28648dc5a3cf4273f00dd87ef6e1f866 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -113,33 +113,23 @@
"Ayikwazanga ukubuyekeza izindawo ezizungezile""Iyasebenza (imidiya kuphela). %1$s ibhethri.""Iyasebenza (imidiya kuphela). L: %1$s, R: %2$s ibhethri."
-
-
-
-
-
-
-
-
+ "Idivayisi yesivakashi. Ibhethri engu-%1$s."
+ "Idivayisi yesivakashi. L: %1$s, R: %2$s ibhethri."
+ "Idivayisi yomsindo (imidiya kuphela). Ibhethri engu-%1$s."
+ "Idivayisi yomsindo (imidiya kuphela). L: %1$s, R: %2$s ibhethri.""Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). %1$s ibhethri.""Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). L: %1$s, R: %2$s ibhethri.""Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). Kwesokudla: %1$s ibhethri.""Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). Kwesokudla: %1$s ibhethri.""Ixhunyiwe (isekela ukwabelana ngokuqoshiwe)"
-
-
-
-
-
-
+ "Idivayisi yesivakashi (isekela ukwabelana ngomsindo). Ibhethri engu-%1$s."
+ "Idivayisi yesivakashi (isekela ukwabelana ngomsindo). L: %1$s, R: %2$s ibhethri."
+ "Idivayisi yesivakashi (isekela ukwabelana ngomsindo)""Kuyasebenza (imidiya kuphela)"
-
-
-
-
+ "Idivayisi yesivakashi"
+ "Idivayisi yesivakashi (imidiya kuphela)""Isekela ukwabelana ngokuqoshiwe"
-
-
+ "Idivayisi yesivakashi. Isekela ukwabelana ngomsindo""Iyasebenza (imidiya kuphela), ngakwesokunxele kuphela""Kuyasebenza (imidiya kuphela), ngakwesokudla kuphela""Kuyasebenza (imidiya kuphela), ngakwesokunxele nakwesokudla"
@@ -396,8 +386,7 @@
"Ukunikezelwa okusheshisiwe kwezingxenyekazi zekhompyutha""Imidiya""Ukwengamela"
-
-
+ "Ukuphathwa Kwewindi""Imodi eqinile ivumelwe""Ukuphazimisa isikrini uma izinhlelo zokusebenza ziyenza umsebenzi ngesikhathi eside kuchungechunge olukhulu""Isikhombi sendawo"
@@ -492,12 +481,9 @@
"Ukufakwa ke-WebView""Sesba ukufakwa kwe-WebView""Lokhu kukhetha akusavumelekile. Zama futhi."
-
-
-
-
-
-
+ "IWebView DevTools"
+ "Iphakheji yeWebView ayitholwanga."
+ "Ayikwazanga ukuqalisa iDevTools.""Imodi yombala wesithombe""Sebenzisa i-sRGB""Kukhutshaziwe"
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java
index 522a436b07320d8b5a2dcf9a5215c53e6bb0b3cf..31948e49b4ce038aabb613d911af0ca20f535401 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java
@@ -23,6 +23,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
+import android.hardware.input.InputManager;
import android.media.AudioDeviceAttributes;
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
@@ -34,6 +35,7 @@ import android.sysprop.BluetoothProperties;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
+import android.view.InputDevice;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
@@ -1054,7 +1056,7 @@ public class BluetoothUtils {
/** Get develop option value for audio sharing preview. */
@WorkerThread
- private static boolean getAudioSharingPreviewValue(@Nullable ContentResolver contentResolver) {
+ public static boolean getAudioSharingPreviewValue(@Nullable ContentResolver contentResolver) {
if (contentResolver == null) return false;
return Settings.Global.getInt(
contentResolver,
@@ -1193,4 +1195,53 @@ public class BluetoothUtils {
}
device.setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS, fastPairCustomizedMeta.getBytes());
}
+
+ /**
+ * Returns the {@link InputDevice} of the given bluetooth address if the device is a input
+ * device.
+ *
+ * @param address The address of the bluetooth device
+ * @return The {@link InputDevice} of the given address if applicable
+ */
+ @Nullable
+ public static InputDevice getInputDevice(Context context, String address) {
+ InputManager im = context.getSystemService(InputManager.class);
+
+ if (im != null) {
+ for (int deviceId : im.getInputDeviceIds()) {
+ String btAddress = im.getInputDeviceBluetoothAddress(deviceId);
+
+ if (btAddress != null && btAddress.equals(address)) {
+ return im.getInputDevice(deviceId);
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Identifies whether a device is a stylus using the associated {@link InputDevice} or
+ * {@link CachedBluetoothDevice}.
+ * InputDevices are only available when the device is USI or Bluetooth-connected, whereas
+ * CachedBluetoothDevices are available for Bluetooth devices when connected or paired,
+ * so to handle all cases, both are needed.
+ *
+ * @param inputDevice The associated input device of the stylus
+ * @param cachedBluetoothDevice The associated bluetooth device of the stylus
+ */
+ public static boolean isDeviceStylus(@Nullable InputDevice inputDevice,
+ @Nullable CachedBluetoothDevice cachedBluetoothDevice) {
+ if (inputDevice != null && inputDevice.supportsSource(InputDevice.SOURCE_STYLUS)) {
+ return true;
+ }
+
+ if (cachedBluetoothDevice != null) {
+ BluetoothDevice bluetoothDevice = cachedBluetoothDevice.getDevice();
+ String deviceType = BluetoothUtils.getStringMetaData(bluetoothDevice,
+ BluetoothDevice.METADATA_DEVICE_TYPE);
+ return TextUtils.equals(deviceType, BluetoothDevice.DEVICE_TYPE_STYLUS);
+ }
+
+ return false;
+ }
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java
index 367e38ed779d54d14b72f069a5c7313fc5d22317..f18a2da27a70f3a9e1d1113d98bf9a5a5040188a 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java
@@ -149,8 +149,8 @@ public class LocalBluetoothLeBroadcast implements LocalBluetoothProfile {
private ContentResolver mContentResolver;
private ContentObserver mSettingsObserver;
// Cached broadcast callbacks being register before service is connected.
- private Map mCachedBroadcastCallbackExecutorMap =
- new ConcurrentHashMap<>();
+ private ConcurrentHashMap
+ mCachedBroadcastCallbackExecutorMap = new ConcurrentHashMap<>();
private final ServiceListener mServiceListener =
new ServiceListener() {
@@ -880,7 +880,7 @@ public class LocalBluetoothLeBroadcast implements LocalBluetoothProfile {
@NonNull @CallbackExecutor Executor executor,
@NonNull BluetoothLeBroadcast.Callback callback) {
if (mServiceBroadcast == null) {
- Log.d(TAG, "registerServiceCallBack failed, the BluetoothLeBroadcast is null.");
+ Log.d(TAG, "registerServiceCallBack failed, proxy not attached.");
mCachedBroadcastCallbackExecutorMap.putIfAbsent(callback, executor);
return;
}
@@ -902,10 +902,7 @@ public class LocalBluetoothLeBroadcast implements LocalBluetoothProfile {
@NonNull @CallbackExecutor Executor executor,
@NonNull BluetoothLeBroadcastAssistant.Callback callback) {
if (mServiceBroadcastAssistant == null) {
- Log.d(
- TAG,
- "registerBroadcastAssistantCallback failed, "
- + "the BluetoothLeBroadcastAssistant is null.");
+ Log.d(TAG, "registerBroadcastAssistantCallback failed, proxy not attached.");
return;
}
@@ -920,7 +917,7 @@ public class LocalBluetoothLeBroadcast implements LocalBluetoothProfile {
public void unregisterServiceCallBack(@NonNull BluetoothLeBroadcast.Callback callback) {
mCachedBroadcastCallbackExecutorMap.remove(callback);
if (mServiceBroadcast == null) {
- Log.d(TAG, "unregisterServiceCallBack failed, the BluetoothLeBroadcast is null.");
+ Log.d(TAG, "unregisterServiceCallBack failed, proxy not attached.");
return;
}
@@ -939,10 +936,7 @@ public class LocalBluetoothLeBroadcast implements LocalBluetoothProfile {
private void unregisterBroadcastAssistantCallback(
@NonNull BluetoothLeBroadcastAssistant.Callback callback) {
if (mServiceBroadcastAssistant == null) {
- Log.d(
- TAG,
- "unregisterBroadcastAssistantCallback, "
- + "the BluetoothLeBroadcastAssistant is null.");
+ Log.d(TAG, "unregisterBroadcastAssistantCallback, proxy not attched.");
return;
}
@@ -1140,7 +1134,9 @@ public class LocalBluetoothLeBroadcast implements LocalBluetoothProfile {
/** Update fallback active device if needed. */
public void updateFallbackActiveDeviceIfNeeded() {
- if (Flags.disableAudioSharingAutoPickFallbackInUi()) {
+ if (Flags.disableAudioSharingAutoPickFallbackInUi() || (mContext != null
+ && Flags.audioSharingDeveloperOption()
+ && BluetoothUtils.getAudioSharingPreviewValue(mContext.getContentResolver()))) {
Log.d(TAG, "Skip updateFallbackActiveDeviceIfNeeded, disable flag is on");
return;
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS b/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS
index 9f15c1bb5081c52306168ea8556cb29fb6c42f4d..b676d8daad52a9d6cca0343823d935e7f2d0cea3 100644
--- a/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS
+++ b/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS
@@ -1,6 +1,5 @@
# Default reviewers for this and subdirectories.
andychou@google.com
-arcwang@google.com
changbetty@google.com
qal@google.com
wengsu@google.com
diff --git a/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS b/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS
index 372eb81fdee285957fc83c2c12a507c44c3113c0..921ffedb337c28586e26c4182e2d2200d6323868 100644
--- a/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS
+++ b/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS
@@ -1,5 +1,4 @@
# Default reviewers for this and subdirectories.
-bonianchen@google.com
changbetty@google.com
wengsu@google.com
zoeychen@google.com
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java
index abc1d226972b7da4acddb2fe399410baf60f25a0..e4381ae0a6639a240f3252bf387ef4e97633885a 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
import android.bluetooth.AudioInputControl;
import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
@@ -67,6 +68,9 @@ public class AmbientVolumeControllerTest {
@Before
public void setUp() {
when(mProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControlProfile);
+ when(mVolumeControlProfile.isProfileReady()).thenReturn(true);
+ when(mVolumeControlProfile.getConnectionStatus(mDevice)).thenReturn(
+ BluetoothProfile.STATE_CONNECTED);
when(mDevice.getAddress()).thenReturn(TEST_ADDRESS);
when(mDevice.isConnected()).thenReturn(true);
mVolumeController = new AmbientVolumeController(mProfileManager, mCallback);
@@ -74,8 +78,6 @@ public class AmbientVolumeControllerTest {
@Test
public void onServiceConnected_notifyCallback() {
- when(mVolumeControlProfile.isProfileReady()).thenReturn(true);
-
mVolumeController.onServiceConnected();
verify(mCallback).onVolumeControlServiceConnected();
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
index ebe6128e55821cc066d4b5becf5aa90eb37796a7..0325c0ec79154d293bbcac4867c6c639c26657fb 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
@@ -15,7 +15,9 @@
*/
package com.android.settingslib.bluetooth;
+import static com.android.settingslib.bluetooth.BluetoothUtils.getInputDevice;
import static com.android.settingslib.bluetooth.BluetoothUtils.isAvailableAudioSharingMediaBluetoothDevice;
+import static com.android.settingslib.bluetooth.BluetoothUtils.isDeviceStylus;
import static com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast.UNKNOWN_VALUE_PLACEHOLDER;
import static com.android.settingslib.flags.Flags.FLAG_ENABLE_DETERMINING_ADVANCED_DETAILS_HEADER_WITH_METADATA;
@@ -42,6 +44,7 @@ import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
+import android.hardware.input.InputManager;
import android.media.AudioDeviceAttributes;
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
@@ -51,6 +54,7 @@ import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import android.util.Pair;
+import android.view.InputDevice;
import com.android.internal.R;
import com.android.settingslib.flags.Flags;
@@ -97,14 +101,18 @@ public class BluetoothUtilsTest {
@Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
@Mock private CachedBluetoothDeviceManager mDeviceManager;
@Mock private BluetoothLeBroadcastReceiveState mLeBroadcastReceiveState;
+ @Mock
+ private InputManager mInputManager;
private Context mContext;
private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+ private final InputDevice mInputDevice = mock(InputDevice.class);
private static final String STRING_METADATA = "string_metadata";
private static final String LE_AUDIO_SHARING_METADATA = "le_audio_sharing";
private static final String BOOL_METADATA = "true";
private static final String INT_METADATA = "25";
private static final int METADATA_FAST_PAIR_CUSTOMIZED_FIELDS = 25;
+ private static final int TEST_DEVICE_ID = 123;
private static final String KEY_HEARABLE_CONTROL_SLICE = "HEARABLE_CONTROL_SLICE_WITH_WIDTH";
private static final String CONTROL_METADATA =
""
@@ -115,6 +123,7 @@ public class BluetoothUtilsTest {
private static final String FAKE_TEMP_BOND_METADATA = "fake";
private static final String TEST_EXCLUSIVE_MANAGER_PACKAGE = "com.test.manager";
private static final String TEST_EXCLUSIVE_MANAGER_COMPONENT = "com.test.manager/.component";
+ private static final String TEST_ADDRESS = "11:22:33:44:55:66";
private static final int TEST_BROADCAST_ID = 25;
@Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@@ -134,6 +143,10 @@ public class BluetoothUtilsTest {
when(mA2dpProfile.getProfileId()).thenReturn(BluetoothProfile.A2DP);
when(mLeAudioProfile.getProfileId()).thenReturn(BluetoothProfile.LE_AUDIO);
when(mHearingAid.getProfileId()).thenReturn(BluetoothProfile.HEARING_AID);
+ when(mContext.getSystemService(InputManager.class)).thenReturn(mInputManager);
+ when(mInputManager.getInputDeviceIds()).thenReturn(new int[]{TEST_DEVICE_ID});
+ when(mInputManager.getInputDeviceBluetoothAddress(TEST_DEVICE_ID)).thenReturn(TEST_ADDRESS);
+ when(mInputManager.getInputDevice(TEST_DEVICE_ID)).thenReturn(mInputDevice);
}
@Test
@@ -1097,9 +1110,8 @@ public class BluetoothUtilsTest {
@Test
public void getAudioDeviceAttributesForSpatialAudio_bleHeadset() {
- String address = "11:22:33:44:55:66";
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
- when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+ when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mLeAudioProfile));
when(mLeAudioProfile.isEnabled(mBluetoothDevice)).thenReturn(true);
@@ -1112,14 +1124,13 @@ public class BluetoothUtilsTest {
new AudioDeviceAttributes(
AudioDeviceAttributes.ROLE_OUTPUT,
AudioDeviceInfo.TYPE_BLE_HEADSET,
- address));
+ TEST_ADDRESS));
}
@Test
public void getAudioDeviceAttributesForSpatialAudio_bleSpeaker() {
- String address = "11:22:33:44:55:66";
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
- when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+ when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mLeAudioProfile));
when(mLeAudioProfile.isEnabled(mBluetoothDevice)).thenReturn(true);
@@ -1132,14 +1143,14 @@ public class BluetoothUtilsTest {
new AudioDeviceAttributes(
AudioDeviceAttributes.ROLE_OUTPUT,
AudioDeviceInfo.TYPE_BLE_SPEAKER,
- address));
+ TEST_ADDRESS));
}
@Test
public void getAudioDeviceAttributesForSpatialAudio_a2dp() {
- String address = "11:22:33:44:55:66";
+
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
- when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+ when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mA2dpProfile));
when(mA2dpProfile.isEnabled(mBluetoothDevice)).thenReturn(true);
@@ -1152,14 +1163,13 @@ public class BluetoothUtilsTest {
new AudioDeviceAttributes(
AudioDeviceAttributes.ROLE_OUTPUT,
AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
- address));
+ TEST_ADDRESS));
}
@Test
public void getAudioDeviceAttributesForSpatialAudio_hearingAid() {
- String address = "11:22:33:44:55:66";
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
- when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+ when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mHearingAid));
when(mHearingAid.isEnabled(mBluetoothDevice)).thenReturn(true);
@@ -1172,7 +1182,7 @@ public class BluetoothUtilsTest {
new AudioDeviceAttributes(
AudioDeviceAttributes.ROLE_OUTPUT,
AudioDeviceInfo.TYPE_HEARING_AID,
- address));
+ TEST_ADDRESS));
}
@Test
@@ -1375,4 +1385,54 @@ public class BluetoothUtilsTest {
verify(mBluetoothDevice).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
TEMP_BOND_METADATA.getBytes());
}
+
+ @Test
+ public void getInputDevice_addressNotMatched_returnsNull() {
+ assertThat(getInputDevice(mContext, "123")).isNull();
+ }
+
+ @Test
+ public void getInputDevice_isInputDevice_returnsInputDevice() {
+ assertThat(getInputDevice(mContext, TEST_ADDRESS)).isEqualTo(mInputDevice);
+ }
+
+ @Test
+ public void isDeviceStylus_noDevices_false() {
+ assertThat(isDeviceStylus(null, null)).isFalse();
+ }
+
+ @Test
+ public void isDeviceStylus_nonStylusInputDevice_false() {
+ InputDevice inputDevice = new InputDevice.Builder()
+ .setSources(InputDevice.SOURCE_DPAD)
+ .build();
+
+ assertThat(isDeviceStylus(inputDevice, null)).isFalse();
+ }
+
+ @Test
+ public void isDeviceStylus_stylusInputDevice_true() {
+ InputDevice inputDevice = new InputDevice.Builder()
+ .setSources(InputDevice.SOURCE_STYLUS)
+ .build();
+
+ assertThat(isDeviceStylus(inputDevice, null)).isTrue();
+ }
+
+ @Test
+ public void isDeviceStylus_nonStylusBluetoothDevice_false() {
+ when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_DEVICE_TYPE)).thenReturn(
+ BluetoothDevice.DEVICE_TYPE_WATCH.getBytes());
+
+ assertThat(isDeviceStylus(null, mCachedBluetoothDevice)).isFalse();
+ }
+
+ @Test
+ public void isDeviceStylus_stylusBluetoothDevice_true() {
+ when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_DEVICE_TYPE)).thenReturn(
+ BluetoothDevice.DEVICE_TYPE_STYLUS.getBytes());
+ when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
+
+ assertThat(isDeviceStylus(null, mCachedBluetoothDevice)).isTrue();
+ }
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
index 69e99c616910c47398adb458ce8224e9aa420049..94199df4b9f89c91bc2c87a0f6ad86604a789d86 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
@@ -662,10 +662,10 @@ public class CachedBluetoothDeviceManagerTest {
@Test
@RequiresFlagsEnabled(
com.android.settingslib.flags.Flags.FLAG_HEARING_DEVICE_SET_CONNECTION_STATUS_REPORT)
- public void onDeviceUnpaired_hearingDevice_callReportConnectionStatus() {
+ public void onDeviceUnpaired_containsHearingAidInfo_callReportConnectionStatus() {
when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
- when(mCachedDevice1.getProfiles()).thenReturn(
- ImmutableList.of(mHapClientProfile, mHearingAidProfile));
+ mCachedDevice1.setHearingAidInfo(
+ new HearingAidInfo.Builder().setHiSyncId(HISYNCID1).build());
mCachedDeviceManager.onDeviceUnpaired(mCachedDevice1);
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig
index eb5b22f6c82c348a7300fba9447b06634d3d19aa..f2c76ba25079aa3338409b13dbee916901ee212b 100644
--- a/packages/SystemUI/aconfig/systemui.aconfig
+++ b/packages/SystemUI/aconfig/systemui.aconfig
@@ -1938,6 +1938,16 @@ flag {
bug: "382531177"
}
+flag {
+ name: "notification_appear_nonlinear"
+ namespace: "systemui"
+ description: "Fix linear usage of notification appear"
+ bug: "397658189"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
flag {
name: "disable_shade_trackpad_two_finger_swipe"
namespace: "systemui"
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
index f8bcb81dc07353626a6faba7d0a21504973a0443..bc75b1dad40cd896e93b55d518203b1c28ae1551 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
@@ -22,19 +22,8 @@ import android.util.Log
import android.util.LruCache
import android.util.MathUtils
import androidx.annotation.VisibleForTesting
-import java.lang.Float.max
-import java.lang.Float.min
import kotlin.math.roundToInt
-private const val TAG_WGHT = "wght"
-private const val TAG_ITAL = "ital"
-
-private const val FONT_WEIGHT_DEFAULT_VALUE = 400f
-private const val FONT_ITALIC_MAX = 1f
-private const val FONT_ITALIC_MIN = 0f
-private const val FONT_ITALIC_ANIMATION_STEP = 0.1f
-private const val FONT_ITALIC_DEFAULT_VALUE = 0f
-
/** Caches for font interpolation */
interface FontCache {
val animationFrameCount: Int
@@ -91,11 +80,8 @@ class FontCacheImpl(override val animationFrameCount: Int = DEFAULT_FONT_CACHE_M
class FontInterpolator(val fontCache: FontCache = FontCacheImpl()) {
/** Linear interpolate the font variation settings. */
fun lerp(start: Font, end: Font, progress: Float, linearProgress: Float): Font {
- if (progress == 0f) {
- return start
- } else if (progress == 1f) {
- return end
- }
+ if (progress <= 0f) return start
+ if (progress >= 1f) return end
val startAxes = start.axes ?: EMPTY_AXES
val endAxes = end.axes ?: EMPTY_AXES
@@ -110,7 +96,7 @@ class FontInterpolator(val fontCache: FontCache = FontCacheImpl()) {
InterpKey(start, end, (linearProgress * fontCache.animationFrameCount).roundToInt())
fontCache.get(iKey)?.let {
if (DEBUG) {
- Log.d(LOG_TAG, "[$progress] Interp. cache hit for $iKey")
+ Log.d(LOG_TAG, "[$progress, $linearProgress] Interp. cache hit for $iKey")
}
return it
}
@@ -121,37 +107,16 @@ class FontInterpolator(val fontCache: FontCache = FontCacheImpl()) {
// and also pre-fill the missing axes value with default value from 'fvar' table.
val newAxes =
lerp(startAxes, endAxes) { tag, startValue, endValue ->
- when (tag) {
- TAG_WGHT ->
- MathUtils.lerp(
- startValue ?: FONT_WEIGHT_DEFAULT_VALUE,
- endValue ?: FONT_WEIGHT_DEFAULT_VALUE,
- progress,
- )
- TAG_ITAL ->
- adjustItalic(
- MathUtils.lerp(
- startValue ?: FONT_ITALIC_DEFAULT_VALUE,
- endValue ?: FONT_ITALIC_DEFAULT_VALUE,
- progress,
- )
- )
- else -> {
- require(startValue != null && endValue != null) {
- "Unable to interpolate due to unknown default axes value : $tag"
- }
- MathUtils.lerp(startValue, endValue, progress)
- }
- }
+ MathUtils.lerp(startValue, endValue, progress)
}
// Check if we already make font for this axes. This is typically happens if the animation
- // happens backward.
+ // happens backward and is being linearly interpolated.
val vKey = VarFontKey(start, newAxes)
fontCache.get(vKey)?.let {
fontCache.put(iKey, it)
if (DEBUG) {
- Log.d(LOG_TAG, "[$progress] Axis cache hit for $vKey")
+ Log.d(LOG_TAG, "[$progress, $linearProgress] Axis cache hit for $vKey")
}
return it
}
@@ -164,14 +129,14 @@ class FontInterpolator(val fontCache: FontCache = FontCacheImpl()) {
fontCache.put(vKey, newFont)
// Cache misses are likely to create memory leaks, so this is logged at error level.
- Log.e(LOG_TAG, "[$progress] Cache MISS for $iKey / $vKey")
+ Log.e(LOG_TAG, "[$progress, $linearProgress] Cache MISS for $iKey / $vKey")
return newFont
}
private fun lerp(
start: Array,
end: Array,
- filter: (tag: String, left: Float?, right: Float?) -> Float,
+ filter: (tag: String, left: Float, right: Float) -> Float,
): List {
// Safe to modify result of Font#getAxes since it returns cloned object.
start.sortBy { axis -> axis.tag }
@@ -191,39 +156,37 @@ class FontInterpolator(val fontCache: FontCache = FontCacheImpl()) {
else -> tagA.compareTo(tagB)
}
- val axis =
+ val tag =
+ when {
+ comp == 0 -> tagA!!
+ comp < 0 -> tagA!!
+ else -> tagB!!
+ }
+
+ val axisDefinition = GSFAxes.getAxis(tag)
+ require(comp == 0 || axisDefinition != null) {
+ "Unable to interpolate due to unknown default axes value: $tag"
+ }
+
+ val axisValue =
when {
- comp == 0 -> {
- val v = filter(tagA!!, start[i++].styleValue, end[j++].styleValue)
- FontVariationAxis(tagA, v)
- }
- comp < 0 -> {
- val v = filter(tagA!!, start[i++].styleValue, null)
- FontVariationAxis(tagA, v)
- }
- else -> { // comp > 0
- val v = filter(tagB!!, null, end[j++].styleValue)
- FontVariationAxis(tagB, v)
- }
+ comp == 0 -> filter(tag, start[i++].styleValue, end[j++].styleValue)
+ comp < 0 -> filter(tag, start[i++].styleValue, axisDefinition!!.defaultValue)
+ else -> filter(tag, axisDefinition!!.defaultValue, end[j++].styleValue)
}
- result.add(axis)
+ // Round axis value to valid intermediate steps. This improves the cache hit rate.
+ val step = axisDefinition?.animationStep ?: DEFAULT_ANIMATION_STEP
+ result.add(FontVariationAxis(tag, (axisValue / step).roundToInt() * step))
}
return result
}
- // For the performance reasons, we animate italic with FONT_ITALIC_ANIMATION_STEP. This helps
- // Cache hit ratio in the Skia glyph cache.
- private fun adjustItalic(value: Float) =
- coerceInWithStep(value, FONT_ITALIC_MIN, FONT_ITALIC_MAX, FONT_ITALIC_ANIMATION_STEP)
-
- private fun coerceInWithStep(v: Float, min: Float, max: Float, step: Float) =
- (v.coerceIn(min, max) / step).toInt() * step
-
companion object {
private const val LOG_TAG = "FontInterpolator"
private val DEBUG = Log.isLoggable(LOG_TAG, Log.DEBUG)
private val EMPTY_AXES = arrayOf()
+ private const val DEFAULT_ANIMATION_STEP = 1f
// Returns true if given two font instance can be interpolated.
fun canInterpolate(start: Font, end: Font) =
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt
index 9545bda80b2d9d84a077db55ab0232b92dbc1313..9a746870c6ffc0a04c93a6ac0116a00c3fc29b1e 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt
@@ -1,12 +1,20 @@
-package com.android.systemui.animation
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
-object GSFAxes {
- const val WEIGHT = "wght"
- const val WIDTH = "wdth"
- const val SLANT = "slnt"
- const val ROUND = "ROND"
- const val OPTICAL_SIZE = "opsz"
-}
+package com.android.systemui.animation
class FontVariationUtils {
private var mWeight = -1
@@ -46,20 +54,20 @@ class FontVariationUtils {
}
var resultString = ""
if (mWeight >= 0) {
- resultString += "'${GSFAxes.WEIGHT}' $mWeight"
+ resultString += "'${GSFAxes.WEIGHT.tag}' $mWeight"
}
if (mWidth >= 0) {
resultString +=
- (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.WIDTH}' $mWidth"
+ (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.WIDTH.tag}' $mWidth"
}
if (mOpticalSize >= 0) {
resultString +=
(if (resultString.isBlank()) "" else ", ") +
- "'${GSFAxes.OPTICAL_SIZE}' $mOpticalSize"
+ "'${GSFAxes.OPTICAL_SIZE.tag}' $mOpticalSize"
}
if (mRoundness >= 0) {
resultString +=
- (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.ROUND}' $mRoundness"
+ (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.ROUND.tag}' $mRoundness"
}
return if (isUpdated) resultString else ""
}
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/GSFAxes.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/GSFAxes.kt
new file mode 100644
index 0000000000000000000000000000000000000000..f4e03613169a8097cf960cf2b8375f46259726e1
--- /dev/null
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/GSFAxes.kt
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.animation
+
+data class AxisDefinition(
+ val tag: String,
+ val minValue: Float,
+ val defaultValue: Float,
+ val maxValue: Float,
+ val animationStep: Float,
+)
+
+object GSFAxes {
+ val WEIGHT =
+ AxisDefinition(
+ tag = "wght",
+ minValue = 1f,
+ defaultValue = 400f,
+ maxValue = 1000f,
+ animationStep = 10f,
+ )
+
+ val WIDTH =
+ AxisDefinition(
+ tag = "wdth",
+ minValue = 25f,
+ defaultValue = 100f,
+ maxValue = 151f,
+ animationStep = 1f,
+ )
+
+ val SLANT =
+ AxisDefinition(
+ tag = "slnt",
+ minValue = 0f,
+ defaultValue = 0f,
+ maxValue = -10f,
+ animationStep = 0.1f,
+ )
+
+ val ROUND =
+ AxisDefinition(
+ tag = "ROND",
+ minValue = 0f,
+ defaultValue = 0f,
+ maxValue = 100f,
+ animationStep = 1f,
+ )
+
+ val GRADE =
+ AxisDefinition(
+ tag = "GRAD",
+ minValue = 0f,
+ defaultValue = 0f,
+ maxValue = 100f,
+ animationStep = 1f,
+ )
+
+ val OPTICAL_SIZE =
+ AxisDefinition(
+ tag = "opsz",
+ minValue = 6f,
+ defaultValue = 18f,
+ maxValue = 144f,
+ animationStep = 1f,
+ )
+
+ // Not a GSF Axis, but present for FontInterpolator compatibility
+ val ITALIC =
+ AxisDefinition(
+ tag = "ITAL",
+ minValue = 0f,
+ defaultValue = 0f,
+ maxValue = 1f,
+ animationStep = 0.1f,
+ )
+
+ private val AXIS_MAP =
+ listOf(WEIGHT, WIDTH, SLANT, ROUND, GRADE, OPTICAL_SIZE, ITALIC)
+ .map { def -> def.tag.toLowerCase() to def }
+ .toMap()
+
+ fun getAxis(axis: String): AxisDefinition? = AXIS_MAP[axis.toLowerCase()]
+}
diff --git a/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerSceneModule.kt b/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerOverlayModule.kt
similarity index 71%
rename from packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerSceneModule.kt
rename to packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerOverlayModule.kt
index 5b368df9d0ef4f57b9bbbe200b728c58e7f10404..42694243939165b920604c75232ccfb0fd554d8a 100644
--- a/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerSceneModule.kt
+++ b/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerOverlayModule.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2023 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,14 +16,13 @@
package com.android.systemui.scene
-import com.android.systemui.bouncer.ui.composable.BouncerScene
-import com.android.systemui.scene.ui.composable.Scene
+import com.android.systemui.bouncer.ui.composable.BouncerOverlay
+import com.android.systemui.scene.ui.composable.Overlay
import dagger.Binds
import dagger.Module
import dagger.multibindings.IntoSet
@Module
-interface BouncerSceneModule {
-
- @Binds @IntoSet fun bouncerScene(scene: BouncerScene): Scene
+interface BouncerOverlayModule {
+ @Binds @IntoSet fun bouncer(overlay: BouncerOverlay): Overlay
}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
index 456edaf1012ec3d3c1bca570123397b65c6d1e48..48e52d6c5fb2a02158fbd8b1745dab452e01a931 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
@@ -98,7 +98,7 @@ import com.android.systemui.bouncer.shared.model.BouncerActionButtonModel
import com.android.systemui.bouncer.ui.BouncerDialogFactory
import com.android.systemui.bouncer.ui.viewmodel.AuthMethodBouncerViewModel
import com.android.systemui.bouncer.ui.viewmodel.BouncerMessageViewModel
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
import com.android.systemui.bouncer.ui.viewmodel.MessageViewModel
import com.android.systemui.bouncer.ui.viewmodel.PasswordBouncerViewModel
import com.android.systemui.bouncer.ui.viewmodel.PatternBouncerViewModel
@@ -118,7 +118,7 @@ import platform.test.motion.compose.values.motionTestValues
@Composable
fun BouncerContent(
- viewModel: BouncerSceneContentViewModel,
+ viewModel: BouncerOverlayContentViewModel,
dialogFactory: BouncerDialogFactory,
modifier: Modifier = Modifier,
) {
@@ -131,8 +131,8 @@ fun BouncerContent(
@Composable
@VisibleForTesting
fun BouncerContent(
- layout: BouncerSceneLayout,
- viewModel: BouncerSceneContentViewModel,
+ layout: BouncerOverlayLayout,
+ viewModel: BouncerOverlayContentViewModel,
dialogFactory: BouncerDialogFactory,
modifier: Modifier,
) {
@@ -147,11 +147,12 @@ fun BouncerContent(
modifier = modifier.imePadding().onKeyEvent(viewModel::onKeyEvent).scale(scale)
) {
when (layout) {
- BouncerSceneLayout.STANDARD_BOUNCER -> StandardLayout(viewModel = viewModel)
- BouncerSceneLayout.BESIDE_USER_SWITCHER ->
+ BouncerOverlayLayout.STANDARD_BOUNCER -> StandardLayout(viewModel = viewModel)
+ BouncerOverlayLayout.BESIDE_USER_SWITCHER ->
BesideUserSwitcherLayout(viewModel = viewModel)
- BouncerSceneLayout.BELOW_USER_SWITCHER -> BelowUserSwitcherLayout(viewModel = viewModel)
- BouncerSceneLayout.SPLIT_BOUNCER -> SplitLayout(viewModel = viewModel)
+ BouncerOverlayLayout.BELOW_USER_SWITCHER ->
+ BelowUserSwitcherLayout(viewModel = viewModel)
+ BouncerOverlayLayout.SPLIT_BOUNCER -> SplitLayout(viewModel = viewModel)
}
Dialog(bouncerViewModel = viewModel, dialogFactory = dialogFactory)
@@ -163,7 +164,10 @@ fun BouncerContent(
* authentication attempt, including all messaging UI (directives, reasoning, errors, etc.).
*/
@Composable
-private fun StandardLayout(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun StandardLayout(
+ viewModel: BouncerOverlayContentViewModel,
+ modifier: Modifier = Modifier,
+) {
val isHeightExpanded =
LocalWindowSizeClass.current.heightSizeClass == WindowHeightSizeClass.Expanded
@@ -208,7 +212,7 @@ private fun StandardLayout(viewModel: BouncerSceneContentViewModel, modifier: Mo
* by double-tapping on the side.
*/
@Composable
-private fun SplitLayout(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun SplitLayout(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
val authMethod by viewModel.authMethodViewModel.collectAsStateWithLifecycle()
Row(
@@ -297,7 +301,7 @@ private fun SplitLayout(viewModel: BouncerSceneContentViewModel, modifier: Modif
*/
@Composable
private fun BesideUserSwitcherLayout(
- viewModel: BouncerSceneContentViewModel,
+ viewModel: BouncerOverlayContentViewModel,
modifier: Modifier = Modifier,
) {
val isLeftToRight = LocalLayoutDirection.current == LayoutDirection.Ltr
@@ -452,7 +456,7 @@ private fun BesideUserSwitcherLayout(
/** Arranges the bouncer contents and user switcher contents one on top of the other, vertically. */
@Composable
private fun BelowUserSwitcherLayout(
- viewModel: BouncerSceneContentViewModel,
+ viewModel: BouncerOverlayContentViewModel,
modifier: Modifier = Modifier,
) {
Column(modifier = modifier.padding(vertical = 128.dp)) {
@@ -483,7 +487,7 @@ private fun BelowUserSwitcherLayout(
@Composable
private fun FoldAware(
- viewModel: BouncerSceneContentViewModel,
+ viewModel: BouncerOverlayContentViewModel,
aboveFold: @Composable BoxScope.() -> Unit,
belowFold: @Composable BoxScope.() -> Unit,
modifier: Modifier = Modifier,
@@ -606,7 +610,7 @@ private fun StatusMessage(viewModel: BouncerMessageViewModel, modifier: Modifier
* For example, this can be the PIN shapes or password text field.
*/
@Composable
-private fun OutputArea(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun OutputArea(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
val authMethodViewModel: AuthMethodBouncerViewModel? by
viewModel.authMethodViewModel.collectAsStateWithLifecycle()
when (val nonNullViewModel = authMethodViewModel) {
@@ -631,7 +635,7 @@ private fun OutputArea(viewModel: BouncerSceneContentViewModel, modifier: Modifi
*/
@Composable
private fun InputArea(
- viewModel: BouncerSceneContentViewModel,
+ viewModel: BouncerOverlayContentViewModel,
pinButtonRowVerticalSpacing: Dp,
centerPatternDotsVertically: Boolean,
modifier: Modifier = Modifier,
@@ -659,7 +663,7 @@ private fun InputArea(
}
@Composable
-private fun ActionArea(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun ActionArea(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
val actionButton: BouncerActionButtonModel? by
viewModel.actionButton.collectAsStateWithLifecycle()
val appearFadeInAnimatable = remember { Animatable(0f) }
@@ -723,7 +727,7 @@ private fun ActionArea(viewModel: BouncerSceneContentViewModel, modifier: Modifi
@Composable
private fun Dialog(
- bouncerViewModel: BouncerSceneContentViewModel,
+ bouncerViewModel: BouncerOverlayContentViewModel,
dialogFactory: BouncerDialogFactory,
) {
val dialogViewModel by bouncerViewModel.dialogViewModel.collectAsStateWithLifecycle()
@@ -751,7 +755,7 @@ private fun Dialog(
/** Renders the UI of the user switcher that's displayed on large screens next to the bouncer UI. */
@Composable
-private fun UserSwitcher(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun UserSwitcher(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
val isUserSwitcherVisible by viewModel.isUserSwitcherVisible.collectAsStateWithLifecycle()
if (!isUserSwitcherVisible) {
// Take up the same space as the user switcher normally would, but with nothing inside it.
@@ -829,7 +833,7 @@ private fun UserSwitcher(viewModel: BouncerSceneContentViewModel, modifier: Modi
@Composable
private fun UserSwitcherDropdownMenu(
isExpanded: Boolean,
- items: List,
+ items: List,
onDismissed: () -> Unit,
) {
val context = LocalContext.current
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlay.kt
similarity index 78%
rename from packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt
rename to packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlay.kt
index fad8ae7e3ba2bac58ec7744f1a44cb832962d0c6..48dee240a1df376e68ed64fbaf132a4fa262748a 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlay.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,19 +29,19 @@ import com.android.compose.animation.scene.ElementKey
import com.android.compose.animation.scene.UserAction
import com.android.compose.animation.scene.UserActionResult
import com.android.systemui.bouncer.ui.BouncerDialogFactory
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
import com.android.systemui.bouncer.ui.viewmodel.BouncerUserActionsViewModel
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.rememberViewModel
-import com.android.systemui.scene.shared.model.Scenes
-import com.android.systemui.scene.ui.composable.Scene
+import com.android.systemui.scene.shared.model.Overlays
+import com.android.systemui.scene.ui.composable.Overlay
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
object Bouncer {
object Elements {
+ val Root = ElementKey("BouncerRoot")
val Background = ElementKey("BouncerBackground")
val Content = ElementKey("BouncerContent")
}
@@ -51,16 +51,16 @@ object Bouncer {
}
}
-/** The bouncer scene displays authentication challenges like PIN, password, or pattern. */
+/** The bouncer overlay displays authentication challenges like PIN, password, or pattern. */
@SysUISingleton
-class BouncerScene
+class BouncerOverlay
@Inject
constructor(
private val actionsViewModelFactory: BouncerUserActionsViewModel.Factory,
- private val contentViewModelFactory: BouncerSceneContentViewModel.Factory,
+ private val contentViewModelFactory: BouncerOverlayContentViewModel.Factory,
private val dialogFactory: BouncerDialogFactory,
-) : ExclusiveActivatable(), Scene {
- override val key = Scenes.Bouncer
+) : Overlay {
+ override val key = Overlays.Bouncer
private val actionsViewModel: BouncerUserActionsViewModel by lazy {
actionsViewModelFactory.create()
@@ -68,22 +68,22 @@ constructor(
override val userActions: Flow