Merge "Clarify documentation about targets of DND-related broadcasts" into tm-qpr-dev
diff --git a/core/api/current.txt b/core/api/current.txt
index 487e57d1..c451049 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -30978,6 +30978,7 @@
field public static final int S = 31; // 0x1f
field public static final int S_V2 = 32; // 0x20
field public static final int TIRAMISU = 33; // 0x21
+ field public static final int UPSIDE_DOWN_CAKE = 10000; // 0x2710
}
public final class Bundle extends android.os.BaseBundle implements java.lang.Cloneable android.os.Parcelable {
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 3daee1f..809dc3c4 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -5741,14 +5741,13 @@
/**
* Optional argument to be used with {@link #ACTION_CHOOSER}.
- * A {@link android.app.PendingIntent} to be sent when the user wants to do payload reselection
- * in the sharesheet.
- * A reselection action allows the user to return to the source app to change the content being
- * shared.
+ * A {@link android.app.PendingIntent} to be sent when the user wants to modify the content that
+ * they're sharing. This can be used to allow the user to return to the source app to, for
+ * example, select different media.
* @hide
*/
- public static final String EXTRA_CHOOSER_PAYLOAD_RESELECTION_ACTION =
- "android.intent.extra.CHOOSER_PAYLOAD_RESELECTION_ACTION";
+ public static final String EXTRA_CHOOSER_MODIFY_SHARE_ACTION =
+ "android.intent.extra.CHOOSER_MODIFY_SHARE_ACTION";
/**
* An {@code ArrayList} of {@code String} annotations describing content for
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index 0b956f8..dbd602f 100755
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -1167,6 +1167,11 @@
* Tiramisu.
*/
public static final int TIRAMISU = 33;
+
+ /**
+ * Upside Down Cake.
+ */
+ public static final int UPSIDE_DOWN_CAKE = CUR_DEVELOPMENT;
}
/** The type of build, like "user" or "eng". */
diff --git a/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java b/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
index d2b612a..f1ed3be 100644
--- a/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
+++ b/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
@@ -56,6 +56,9 @@
}
};
+ /**
+ * Registers the observer for all users.
+ */
public void register() {
ContentResolver r = mContext.getContentResolver();
r.registerContentObserver(
@@ -73,7 +76,10 @@
mOnPropertiesChangedListener);
}
- public void registerForCurrentUser() {
+ /**
+ * Registers the observer for the calling user.
+ */
+ public void registerForCallingUser() {
ContentResolver r = mContext.getContentResolver();
r.registerContentObserver(
Settings.Secure.getUriFor(Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT),
@@ -103,12 +109,46 @@
}
}
+ /**
+ * Returns the left sensitivity for the current user. To be used in code that runs primarily
+ * in one user's process.
+ */
public int getLeftSensitivity(Resources userRes) {
- return getSensitivity(userRes, Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT);
+ final float scale = Settings.Secure.getFloatForUser(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT, 1.0f, UserHandle.USER_CURRENT);
+ return (int) (getUnscaledInset(userRes) * scale);
}
+ /**
+ * Returns the left sensitivity for the calling user. To be used in code that runs in a
+ * per-user process.
+ */
+ @SuppressWarnings("NonUserGetterCalled")
+ public int getLeftSensitivityForCallingUser(Resources userRes) {
+ final float scale = Settings.Secure.getFloat(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT, 1.0f);
+ return (int) (getUnscaledInset(userRes) * scale);
+ }
+
+ /**
+ * Returns the right sensitivity for the current user. To be used in code that runs primarily
+ * in one user's process.
+ */
public int getRightSensitivity(Resources userRes) {
- return getSensitivity(userRes, Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT);
+ final float scale = Settings.Secure.getFloatForUser(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT, 1.0f, UserHandle.USER_CURRENT);
+ return (int) (getUnscaledInset(userRes) * scale);
+ }
+
+ /**
+ * Returns the right sensitivity for the calling user. To be used in code that runs in a
+ * per-user process.
+ */
+ @SuppressWarnings("NonUserGetterCalled")
+ public int getRightSensitivityForCallingUser(Resources userRes) {
+ final float scale = Settings.Secure.getFloat(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT, 1.0f);
+ return (int) (getUnscaledInset(userRes) * scale);
}
public boolean areNavigationButtonForcedVisible() {
@@ -116,7 +156,7 @@
Settings.Secure.USER_SETUP_COMPLETE, 0, UserHandle.USER_CURRENT) == 0;
}
- private int getSensitivity(Resources userRes, String side) {
+ private float getUnscaledInset(Resources userRes) {
final DisplayMetrics dm = userRes.getDisplayMetrics();
final float defaultInset = userRes.getDimension(
com.android.internal.R.dimen.config_backGestureInset) / dm.density;
@@ -127,8 +167,6 @@
: defaultInset;
final float inset = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, backGestureInset,
dm);
- final float scale = Settings.Secure.getFloatForUser(
- mContext.getContentResolver(), side, 1.0f, UserHandle.USER_CURRENT);
- return (int) (inset * scale);
+ return inset;
}
}
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index fcfdd95..7372a7e 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Kan gebare vasvang wat op die toestel se vingerafdruksensor uitgevoer word."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Neem skermkiekie"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Kan \'n skermkiekie neem."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"deaktiveer of verander statusbalk"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Laat die program toe om die statusbalk te deaktiveer en stelselikone by te voeg of te verwyder."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"wees die statusbalk"</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index a5619fd..3310cec 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"በመሣሪያው የጣት አሻራ ዳሳሽ ላይ የተከናወኑ የጣት ምልክቶችን መያዝ ይችላል።"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ቅጽበታዊ ገጽ እይታን ያነሳል"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"የማሳያው ቅጽበታዊ ገጽ እይታን ማንሳት ይችላል።"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"የሁኔቴ አሞሌ አቦዝን ወይም ቀይር"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"የስርዓት አዶዎችን ወደ ሁኔታ አሞሌ ላለማስቻል ወይም ለማከል እና ለማስወገድ ለመተግበሪያው ይፈቅዳሉ፡፡"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"የሁኔታ አሞሌ መሆን"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 1aba35a..980986e 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -346,6 +346,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"يمكن أن تلتقط الإيماءات من أداة استشعار بصمة الإصبع في الجهاز."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"أخذ لقطة شاشة"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"يمكن أخذ لقطة شاشة."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"إيقاف شريط الحالة أو تعديله"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"للسماح للتطبيق بإيقاف شريط الحالة أو إضافة رموز نظام وإزالتها."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"العمل كشريط للحالة"</string>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 38ec792..77f2305 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ডিভাইচটোৰ ফিংগাৰপ্ৰিণ্ট ছেন্সৰত দিয়া নিৰ্দেশ বুজিব পাৰে।"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"স্ক্ৰীনশ্বট লওক"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ডিছপ্লে’খনৰ এটা স্ক্ৰীনশ্বট ল\'ব পাৰে।"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"স্থিতি দণ্ড অক্ষম কৰক বা সলনি কৰক"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"স্থিতি দণ্ড অক্ষম কৰিবলৈ বা ছিষ্টেম আইকন আঁতৰাবলৈ এপ্টোক অনুমতি দিয়ে।"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"স্থিতি দণ্ড হ\'ব পাৰে"</string>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index d2359c7..534f1a0e 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Cihazların barmaq izi sensorunda olan işarələri əldə edə bilər."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ekran şəkli çəkin"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Ekran şəkli çəkilə bilər."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"status panelini deaktivləşdir və ya dəyişdir"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Tətbiqə status panelini deaktiv etməyə və ya sistem ikonalarını əlavə etmək və ya silmək imkanı verir."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"status paneli edin"</string>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 4a7a235..ae8c663 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Može da registruje pokrete na senzoru za otisak prsta na uređaju."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Napravi snimak ekrana"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Može da napravi snimak ekrana."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"onemogućavanje ili izmena statusne trake"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Dozvoljava aplikaciji da onemogući statusnu traku ili da dodaje i uklanja sistemske ikone."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"funkcionisanje kao statusna traka"</string>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 24d7990..85bd8f9 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Можа распазнаваць жэсты на сканеры адбіткаў пальцаў прылады."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Зрабіць здымак экрана"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Можна зрабіць здымак экрана."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"адключаць ці змяняць радок стану"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Дазваляе прыкладанням адключаць радок стану або дадаваць і выдаляць сістэмныя значкі."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"быць панэллю стану"</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 164040f..424f2cf 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Може да улавя жестовете, извършени върху сензора за отпечатъци на устройството."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Създаване на екранна снимка"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Може да създава екранни снимки."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"деактивиране или промяна на лентата на състоянието"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Разрешава на приложението да деактивира лентата на състоянието или да добавя и премахва системни икони."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"изпълняване на ролята на лента на състоянието"</string>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index b0a9467..cc1e616 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ডিভাইসের আঙ্গুলের ছাপের সেন্সরের উপরে ইঙ্গিত করলে বুঝতে পারে।"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"স্ক্রিনশট নিন"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ডিসপ্লের একটি স্ক্রিনশট নিতে পারেন।"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"স্ট্যাটাস বার নিষ্ক্রিয় অথবা সংশোধন করে"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"অ্যাপ্লিকেশনকে স্ট্যাটাস বার অক্ষম করতে এবং সিস্টেম আইকনগুলি সরাতে দেয়৷"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"স্থিতি দন্ডে থাকুন"</string>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index ec381a5..34b2046 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -343,6 +343,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Može zabilježiti pokrete na senzoru za otisak prsta uređaja."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"praviti snimke ekrana"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Može napraviti snimak ekrana."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Pregled, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"onemogućavanje ili mijenjanje statusne trake"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Dozvoljava aplikaciji onemogućavanje statusne trake ili dodavanje i uklanjanje sistemskih ikona."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"funkcioniranje u vidu statusne trake"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 4cf9384..4744f44 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Pot capturar els gestos fets en el sensor d\'empremtes digitals del dispositiu."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Fer una captura de pantalla"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Pot fer una captura de la pantalla."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"desactivar o modificar la barra d\'estat"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permet que l\'aplicació desactivi la barra d\'estat o afegeixi i elimini icones del sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"aparèixer a la barra d\'estat"</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index a04b34a..9968691 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Dokáže rozpoznat gesta zadaná na snímači otisků prstů."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Pořídit snímek obrazovky"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Může pořídit snímek obrazovky."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"zakázání či změny stavového řádku"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Umožňuje aplikaci zakázat stavový řádek nebo přidat či odebrat systémové ikony."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"vydávání se za stavový řádek"</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 0e17b9a..7b04bc9 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Kan registrere bevægelser, der foretages på enhedens fingeraftrykssensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Tag screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Kan tage et screenshot af skærmen."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"deaktivere eller redigere statuslinje"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Tillader, at appen kan deaktivere statusbjælken eller tilføje og fjerne systemikoner."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"vær statusbjælken"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 9b416bc..7b78645 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Erfasst Touch-Gesten auf dem Fingerabdrucksensor des Geräts."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Screenshot erstellen"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Es kann ein Screenshot des Displays erstellt werden."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"Statusleiste deaktivieren oder ändern"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Ermöglicht der App, die Statusleiste zu deaktivieren oder Systemsymbole hinzuzufügen oder zu entfernen"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"Statusleiste darstellen"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 8ab0345..93128aa 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Μπορεί να αναγνωρίσει κινήσεις που εκτελούνται στον αισθητήρα δακτυλικού αποτυπώματος της συσκευής."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Λήψη στιγμιότυπου οθόνης"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Μπορεί να τραβήξει στιγμιότυπο της οθόνης."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"απενεργοποιεί ή να τροποποιεί την γραμμή κατάστασης"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Επιτρέπει στην εφαρμογή να απενεργοποιεί τη γραμμή κατάστασης ή να προσθέτει και να αφαιρεί εικονίδια συστήματος."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ορίζεται ως γραμμή κατάστασης"</string>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index e96b543..d1da0fb 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -342,6 +342,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Can capture gestures performed on the device\'s fingerprint sensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Take screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Can take a screenshot of the display."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Preview, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"disable or modify status bar"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Allows the app to disable the status bar or add and remove system icons."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"be the status bar"</string>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 7d455c7..8c6285c 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -342,6 +342,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Can capture gestures performed on the device\'s fingerprint sensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Take screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Can take a screenshot of the display."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Preview, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"disable or modify status bar"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Allows the app to disable the status bar or add and remove system icons."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"be the status bar"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 0ee88ad..861393f 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -342,6 +342,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Can capture gestures performed on the device\'s fingerprint sensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Take screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Can take a screenshot of the display."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Preview, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"disable or modify status bar"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Allows the app to disable the status bar or add and remove system icons."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"be the status bar"</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 68cbfa8..a0a9436 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -342,6 +342,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Can capture gestures performed on the device\'s fingerprint sensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Take screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Can take a screenshot of the display."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Preview, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"disable or modify status bar"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Allows the app to disable the status bar or add and remove system icons."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"be the status bar"</string>
diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml
index b8767b7b..b3551cf 100644
--- a/core/res/res/values-en-rXC/strings.xml
+++ b/core/res/res/values-en-rXC/strings.xml
@@ -342,6 +342,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Can capture gestures performed on the device\'s fingerprint sensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Take screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Can take a screenshot of the display."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Preview, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"disable or modify status bar"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Allows the app to disable the status bar or add and remove system icons."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"be the status bar"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 2f51055..817f00e 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Capturará los gestos que se hacen en el sensor de huellas dactilares del dispositivo."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Tomar captura de pantalla"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Puede tomar capturas de pantalla."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"desactivar o modificar la barra de estado"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permite que la aplicación inhabilite la barra de estado o que agregue y elimine íconos del sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"aparecer en la barra de estado"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 29e8abf..ba30d42 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Puede capturar los gestos realizados en el sensor de huellas digitales del dispositivo."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Hacer captura"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Puede hacer capturas de la pantalla."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"inhabilitar o modificar la barra de estado"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permite que la aplicación inhabilite la barra de estado o añada y elimine iconos del sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"aparecer en la barra de estado"</string>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 9178aff..18539df 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Teil on võimalik jäädvustada seadme sõrmejäljeanduril tehtud liigutused."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Jäädvusta ekraanipilt"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Saab jäädvustada ekraanipildi."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"keela või muuda olekuriba"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Võimaldab rakendusel keelata olekuriba või lisada ja eemaldada süsteemiikoone."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"olekuribana kuvamine"</string>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index fc7a86e..858b656 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Gailuaren hatz-marken sentsorean egindako keinuak atzeman ditzake."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Pantaila-argazkiak atera."</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Pantaila-argazkiak atera ditzake."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"desgaitu edo aldatu egoera-barra"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Egoera-barra desgaitzea edo sistema-ikonoak gehitzea edo kentzea baimentzen die aplikazioei."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"bihurtu egoera-barra"</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 26d1d4b..5b5d5e4 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"میتواند اشارههای اجراشده روی حسگر اثرانگشت دستگاه را ثبت کند."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"گرفتن نماگرفت"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"میتواند از نمایشگر نماگرفت بگیرد."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"غیرفعال کردن یا تغییر نوار وضعیت"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"به برنامه اجازه میدهد تا نوار وضعیت را غیرفعال کند یا نمادهای سیستم را اضافه یا حذف کند."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"نوار وضعیت باشد"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 5f27e36..e2b8fcc 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Voi tallentaa laitteen sormenjälkitunnistimelle tehtyjä eleitä."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ota kuvakaappaus"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Voi ottaa kuvakaappauksen näytöstä."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"poista tilapalkki käytöstä tai muokkaa tilapalkkia"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Antaa sovelluksen poistaa tilapalkin käytöstä ja lisätä tai poistaa järjestelmäkuvakkeita."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"sijaita tilapalkissa"</string>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 6ca95b3..3e29326 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Peut capturer des gestes effectués sur le capteur d\'empreintes digitales de l\'appareil."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Prendre une capture d\'écran"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Peut prendre une capture de l\'écran."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"désactiver ou modifier la barre d\'état"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permet à l\'application de désactiver la barre d\'état, ou d\'ajouter et de supprimer des icônes système."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"servir de barre d\'état"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 815ae1b..c5bf6a94 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Peut enregistrer des gestes effectués sur le lecteur d\'empreinte digitale de l\'appareil."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Prendre une capture d\'écran"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Peut prendre des captures d\'écran."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"Désactivation ou modification de la barre d\'état"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permet à l\'application de désactiver la barre d\'état, ou d\'ajouter et de supprimer des icônes système."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"remplacer la barre d\'état"</string>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 5576f42..b89bd3f 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Pode rexistrar os xestos realizados no sensor de impresión dixital do dispositivo."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Facer captura de pantalla"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Pode facer capturas de pantalla."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"desactivar ou modificar a barra de estado"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permite á aplicación desactivar a barra de estado ou engadir e quitar as iconas do sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"actuar como a barra de estado"</string>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 2665731..c775021 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ડિવાઇસના ફિંગરપ્રિન્ટ સેન્સર પર કરવામાં આવેલા સંકેતો કૅપ્ચર કરી શકે છે."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"સ્ક્રીનશૉટ લો"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ડિસ્પ્લેનો સ્ક્રીનશૉટ લઈ શકે છે."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"સ્ટેટસ બારને અક્ષમ કરો અથવા તેમાં ફેરફાર કરો"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ઍપ્લિકેશનને સ્ટેટસ બાર અક્ષમ કરવાની અથવા સિસ્ટમ આયકન્સ ઉમેરવા અને દૂર કરવાની મંજૂરી આપે છે."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"સ્ટેટસ બારમાં બતાવો"</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index b17eb42..1951a38 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"डिवाइस के फ़िंगरप्रिंट सेंसर पर किए गए हाथ के जेस्चर कैप्चर किए जा सकते हैं."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"स्क्रीनशॉट लें"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"डिसप्ले का स्क्रीनशॉट लिया जा सकता है."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"स्टेटस बार को अक्षम करें या बदलें"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ऐप को, स्टेटस बार को बंद करने या सिस्टम आइकॉन को जोड़ने और निकालने की अनुमति देता है."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"स्टेटस बार को रहने दें"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 0b0b8fe..f380cb4 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -343,6 +343,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Može snimati pokrete izvršene na senzoru otiska prsta na uređaju."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Snimi zaslon"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Možete napraviti snimku zaslona."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Pregled, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"onemogućavanje ili izmjena trake statusa"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Aplikaciji omogućuje onemogućavanje trake statusa ili dodavanje i uklanjanje sistemskih ikona."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"biti traka statusa"</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index d797230..3d98bb4 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Érzékeli az eszköz ujjlenyomat-érzékelőjén végzett kézmozdulatokat."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Képernyőkép készítése"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Készíthet képernyőképet a kijelzőről."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"állapotsor kikapcsolása vagy módosítása"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Lehetővé teszi az alkalmazás számára az állapotsor kikapcsolását, illetve rendszerikonok hozzáadását és eltávolítását."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"az állapotsor szerepének átvétele"</string>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 5937faf..5d60c5d 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Կարող է արձանագրել մատնահետքերի սկաների վրա կատարվող ժեստերը"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Սքրինշոթի ստեղծում"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Կարող է ստեղծել էկրանի սքրինշոթ։"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"անջատել կամ փոփոխել կարգավիճակի գոտին"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Թույլ է տալիս հավելվածին անջատել կարգավիճակի գոտին կամ ավելացնել ու հեռացնել համակարգի պատկերակները:"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"լինել կարգավիճակի գոտի"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 93b8a15..2173eb9 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Dapat merekam gestur yang dilakukan di sensor sidik jari perangkat."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ambil screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Dapat mengambil screenshot tampilan."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"nonaktifkan atau ubah bilah status"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Mengizinkan apl menonaktifkan bilah status atau menambah dan menghapus ikon sistem."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"jadikan bilah status"</string>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index 29c1a2a..d9df620 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Getur fangað bendingar sem eru gerðar á fingrafaralesara tækisins."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Taka skjámynd"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Getur tekið skjámynd af skjánum."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"slökkva á eða breyta stöðustiku"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Leyfir forriti að slökkva á stöðustikunni eða bæta við og fjarlægja kerfistákn."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"vera stöðustikan"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 304d212..dd1b8de 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"È in grado di rilevare i gesti compiuti con il sensore di impronte dei dispositivi."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Acquisire screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Può acquisire uno screenshot del display."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"disattivazione o modifica della barra di stato"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Consente all\'applicazione di disattivare la barra di stato o di aggiungere e rimuovere icone di sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ruolo di barra di stato"</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 963d473..a6c46a2 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"אפשרות לזהות תנועות בזמן נגיעה בחיישן טביעות האצבע של המכשיר."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"צילום המסך"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ניתן לצלם צילום מסך של התצוגה."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"השבתה או שינוי של שורת הסטטוס"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"מאפשרת לאפליקציה להשבית את שורת הסטטוס או להוסיף ולהסיר סמלי מערכת."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"להיות שורת הסטטוס"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index f2bc9a9..1879cc6 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"デバイスの指紋認証センサーで行われた操作をキャプチャできます。"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"スクリーンショットの撮影"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ディスプレイのスクリーンショットを撮影できます。"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"ステータスバーの無効化や変更"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ステータスバーの無効化、システムアイコンの追加や削除をアプリに許可します。"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ステータスバーへの表示"</string>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 3803a26..8343198 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"შეუძლია აღბეჭდოს მოწყობილობის თითის ანაბეჭდის სენსორზე განხორციელებული ჟესტები."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ეკრანის ანაბეჭდის გადაღება"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"შეუძლია ეკრანის ანაბეჭდის გადაღება."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"სტატუსის ზოლის გათიშვა ან ცვლილება"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"აპს შეეძლება სტატუსების ზოლის გათიშვა და სისტემის ხატულების დამატება/წაშლა."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"სტატუსის ზოლის ჩანაცვლება"</string>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 2b11346..c863cd8 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Құрылғының саусақ ізі сенсорында орындалған қимылдарды сақтайды."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Скриншот жасау"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Дисплейдің скриншотын жасай аласыз."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"күйін көрсету тақтасын өшіру немесе өзгерту"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Қолданбаға күй жолағын өшіруге немесе жүйелік белгішелерді қосуға және жоюға рұқсат береді."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"күй жолағы болу"</string>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 9cf498d..35b59be 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"អាចចាប់យកចលនាដែលធ្វើនៅលើនៅលើឧបករណ៍ចាប់ស្នាមម្រាមដៃរបស់ឧបករណ៍បាន។"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ថតអេក្រង់"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"អាចថតអេក្រង់នៃផ្ទាំងអេក្រង់បាន។"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"បិទ ឬកែរបារស្ថានភាព"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ឲ្យកម្មវិធីបិទរបារស្ថានភាព ឬបន្ថែម និងលុបរូបតំណាងប្រព័ន្ធ។"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ធ្វើជារបារស្ថានភាព"</string>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 879f9e8..d0decdf 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ಸಾಧನದ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ನಲ್ಲಿ ನಡೆಸಿದ ಗೆಶ್ಚರ್ಗಳನ್ನು ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ಸ್ಕ್ರೀನ್ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಿ"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ಪ್ರದರ್ಶನದ ಸ್ಕ್ರೀನ್ಶಾಟ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಲ್ಲದು."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"ಸ್ಥಿತಿ ಪಟ್ಟಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ ಇಲ್ಲವೇ ಮಾರ್ಪಡಿಸಿ"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ಸ್ಥಿತಿ ಪಟ್ಟಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಅಥವಾ ಸೇರಿಸಲು ಮತ್ತು ಸಿಸ್ಟಂ ಐಕಾನ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ಸ್ಥಿತಿ ಪಟ್ಟಿಯಾಗಿರಲು"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 7504943..04dc86a 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"기기 지문 센서에서 동작을 캡처합니다."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"스크린샷 촬영"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"디스플레이 스크린샷을 촬영할 수 있습니다."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"상태 표시줄 사용 중지 또는 수정"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"앱이 상태 표시줄을 사용중지하거나 시스템 아이콘을 추가 및 제거할 수 있도록 허용합니다."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"상태 표시줄에 위치"</string>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index de2cdb7..bdb8fe1 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Түзмөктөгү манжа изинин сенсорунда жасалган жаңсоолорду жаздырып алат."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Скриншот тартып алуу"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Дисплейдин скриншотун тартып алсаңыз болот."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"абал тилкесин өчүрүү же өзгөртүү"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Колдонмого абал тилкесин өчүрүү же тутум сүрөтчөлөрүн кошуу же алып салуу мүмкүнчүлүгүн берет."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"абал тилкесинин милдетин аткаруу"</string>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 366881b..b7a4c05 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ສາມາດບັນທຶກທ່າທາງທີ່ເກີດຂຶ້ນໃນອຸປະກອນເຊັນເຊີລາຍນິ້ວມືໄດ້."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ຖ່າຍຮູບໜ້າຈໍ"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ສາມາດຖ່າຍຮູບໜ້າຈໍໄດ້."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"ປິດການນນຳໃຊ້ ຫຼື ແກ້ໄຂແຖບສະຖານະ"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ອະນຸຍາດໃຫ້ແອັບຯປິດການເຮັດວຽກຂອງແຖບສະຖານະ ຫຼືເພີ່ມ ແລະລຶບໄອຄອນລະບົບອອກໄດ້."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ເປັນແຖບສະຖານະ"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 8f5e7fb..cdfa1ac 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Gali užfiksuoti gestus, atliktus naudojant įrenginio piršto antspaudo jutiklį."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ekrano kopijos kūrimas"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Galima sukurti vaizdo ekrano kopiją."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"išjungti ar keisti būsenos juostą"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Leidžiama programai neleisti būsenos juostos arba pridėti ir pašalinti sistemos piktogramas."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"būti būsenos juosta"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index cf858b7..66826c9 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Var uztvert žestus ierīces pirksta nospieduma sensorā."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ekrānuzņēmuma izveide"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Var izveidot displeja ekrānuzņēmumu."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"atspējot vai pārveidot statusa joslu"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Ļauj lietotnei atspējot statusa joslu vai pievienot un noņemt sistēmas ikonas."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"Būt par statusa joslu"</string>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index beed8e6..dd5e44e 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Може да сними движења што се направени на сензорот за отпечатоци на уредот."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Зачувување слика од екранот"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Може да зачува слика од екранот."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"оневозможи или измени статусна лента"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Дозволува апликацијата да ја оневозможи статусната лента или да додава или отстранува системски икони."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"да стане статусна лента"</string>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 4ab4c07..4ed058d 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ഉപകരണത്തിന്റെ ഫിംഗർപ്രിന്റ് സെൻസറിൽ ചെയ്ത ജെസ്റ്ററുകൾ ക്യാപ്ചർ ചെയ്യാനാകും."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"സ്ക്രീന്ഷോട്ട് എടുക്കുക"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ഡിസ്പ്ലേയുടെ സ്ക്രീൻഷോട്ട് എടുക്കാൻ കഴിയും."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"സ്റ്റാറ്റസ് ബാർ പ്രവർത്തനരഹിതമാക്കുക അല്ലെങ്കിൽ പരിഷ്ക്കരിക്കുക"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"നില ബാർ പ്രവർത്തരഹിതമാക്കുന്നതിന് അല്ലെങ്കിൽ സിസ്റ്റം ഐക്കണുകൾ ചേർക്കുന്നതിനും നീക്കംചെയ്യുന്നതിനും അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"സ്റ്റാറ്റസ് ബാർ ആയിരിക്കുക"</string>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 5e98d53..5b8209b 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Төхөөрөмжийн хурууны хээ мэдрэгчид зангасан зангааг танина."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Дэлгэцийн зургийг дарах"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Дэлгэцийн зургийг дарах боломжтой."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"статус самбарыг идэвхгүй болгох болон өөрчлөх"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Апп нь статус самбарыг идэвхгүй болгох эсвэл систем дүрсийг нэмэх, хасах боломжтой."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"статусын хэсэг болох"</string>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 9b2f1be..ee6e2ee 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"डिव्हाइसच्या फिंगरप्रिंट सेंन्सरवरील जेश्चर कॅप्चर करू शकते."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"स्क्रीनशॉट घ्या"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"डिस्प्लेचा स्क्रीनशॉट घेऊ शकतो."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"स्टेटस बार अक्षम करा किंवा सुधारित करा"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"स्टेटस बार अक्षम करण्यासाठी किंवा सिस्टम चिन्हे जोडण्यासाठी आणि काढण्यासाठी अॅप ला अनुमती देते."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"स्टेटस बार होऊ द्या"</string>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index fefa9f5..8f54762 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Boleh menangkap gerak isyarat yang dilakukan pada penderia cap jari peranti."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ambil tangkapan skrin"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Boleh mengambil tangkapan skrin paparan."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"lumpuhkan atau ubah suai bar status"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Membenarkan apl melumpuhkan bar status atau menambah dan mengalih keluar ikon sistem."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"jadi bar status"</string>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index fa13d38..939df80 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"စက်ပစ္စည်း၏ လက်ဗွေအာရုံခံကိရိယာတွင် လုပ်ဆောင်ထားသည့် လက်ဟန်များကို မှတ်သားထားနိုင်သည်။"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ဖန်သားပြင်ဓာတ်ပုံ ရိုက်ရန်"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ဖန်သားပြင်ပြသမှုကို ဓာတ်ပုံရိုက်နိုင်ပါသည်။"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"အခြေအနေပြဘားအား အလုပ်မလုပ်ခိုင်းရန်သို့မဟုတ် မွမ်းမံရန်"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"အက်ပ်အား အခြေအနေပြ ဘားကို ပိတ်ခွင့် သို့မဟတ် စနစ် အိုင်ကွန်များကို ထည့်ခြင်း ဖယ်ရှားခြင်း ပြုလုပ်ခွင့် ပြုသည်။"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"အခြေအနေပြ ဘားဖြစ်ပါစေ"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index aec0089..f0f4439 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Kan fange inn bevegelser som utføres på enhetens fingeravtrykkssensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ta skjermdump"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Kan ikke ta en skjermdump av skjermen."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"deaktivere eller endre statusfeltet"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Lar appen deaktivere statusfeltet eller legge til og fjerne systemikoner."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"vise appen i statusfeltet"</string>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index 5fa9b6c..94551e5 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"यसले यन्त्रको फिंगरप्रिन्टसम्बन्धी सेन्सरमा गरिएका इसाराहरूलाई खिच्न सक्छ।"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"स्क्रिनसट लिनुहोस्"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"डिस्प्लेको स्क्रिनसट लिन सकिन्छ।"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"स्थिति पट्टिलाई अक्षम वा संशोधित गर्नुहोस्"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"स्थिति पट्टि असक्षम पार्न वा प्रणाली आइकनहरू थप्न र हटाउन एपलाई अनुमति दिन्छ।"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"स्टाटस बार हुन दिनुहोस्"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index c2639db..0f7d35f 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Kan gebaren registreren die op de vingerafdruksensor van het apparaat worden getekend."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Screenshot maken"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Kan een screenshot van het scherm maken."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"statusbalk uitzetten of wijzigen"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Hiermee kan de app de statusbalk uitzetten of systeemiconen toevoegen en verwijderen."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"de statusbalk zijn"</string>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index 8619511..26821da 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ଡିଭାଇସ୍ର ଟିପଚିହ୍ନ ସେନସର୍ ଉପରେ ଜେଶ୍ଚର୍ କ୍ୟାପଚର୍ କାର୍ଯ୍ୟ କରାଯାଇପାରିବ।"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ସ୍କ୍ରିନସଟ୍ ନିଅନ୍ତୁ"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ଡିସପ୍ଲେର ଏକ ସ୍କ୍ରିନସଟ୍ ନିଆଯାଇପାରେ।"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"ଷ୍ଟାଟସ୍ ବାର୍କୁ ଅକ୍ଷମ କିମ୍ୱା ସଂଶୋଧନ କରନ୍ତୁ"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ଆପ୍କୁ, ସ୍ଥିତି ବାର୍ ଅକ୍ଷମ କରିବାକୁ କିମ୍ବା ସିଷ୍ଟମ୍ ଆଇକନ୍ ଯୋଡ଼ିବା କିମ୍ବା ବାହାର କରିବାକୁ ଦେଇଥାଏ।"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ଷ୍ଟାଟସ୍ ବାର୍ ରହିବାକୁ ଦିଅନ୍ତୁ"</string>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 57e187b..c8c382b 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"ਡੀਵਾਈਸਾਂ ਦੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ \'ਤੇ ਕੀਤੇ ਗਏ ਸੰਕੇਤਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰ ਸਕਦੇ ਹਨ।"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਓ"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ਡਿਸਪਲੇ ਦਾ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲੈ ਸਕਦੀ ਹੈ।"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"ਸਥਿਤੀ ਪੱਟੀ ਬੰਦ ਕਰੋ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ਐਪ ਨੂੰ ਸਥਿਤੀ ਪੱਟੀ ਨੂੰ ਚਾਲੂ ਕਰਨ ਜਾਂ ਸਿਸਟਮ ਪ੍ਰਤੀਕਾਂ ਨੂੰ ਜੋੜਨ ਅਤੇ ਹਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ਸਥਿਤੀ ਪੱਟੀ ਬਣਨ ਦਿਓ"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index ae83e68..8425a7a 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Może przechwytywać gesty wykonywane na czytniku linii papilarnych w urządzeniu."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Robienie zrzutu ekranu"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Może robić zrzuty ekranu wyświetlacza."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"wyłączanie lub zmienianie paska stanu"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Pozwala aplikacji na wyłączanie paska stanu oraz dodawanie i usuwanie ikon systemowych."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"działanie jako pasek stanu"</string>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 7886d2b..4fe36de 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Pode captar gestos realizados no sensor de impressão digital do dispositivo."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Fazer uma captura de tela"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Pode fazer uma captura de tela."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"desativar ou modificar a barra de status"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permite que o app desative a barra de status ou adicione e remova ícones do sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ser a barra de status"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 561e47e..b6fbbea 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -343,6 +343,7 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Pode capturar gestos realizados no sensor de impressões digitais do dispositivo."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Fazer captura de ecrã"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"É possível tirar uma captura de ecrã."</string>
+ <string name="dream_preview_title" msgid="5570751491996100804">"Pré-visualização, <xliff:g id="DREAM_NAME">%1$s</xliff:g>"</string>
<string name="permlab_statusBar" msgid="8798267849526214017">"desativar ou modificar barra de estado"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permite à app desativar a barra de estado ou adicionar e remover ícones do sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ser apresentada na barra de estado"</string>
@@ -1235,7 +1236,7 @@
<string name="unsupported_display_size_show" msgid="980129850974919375">"Mostrar sempre"</string>
<string name="unsupported_compile_sdk_message" msgid="7326293500707890537">"A app <xliff:g id="APP_NAME">%1$s</xliff:g> foi concebida para uma versão incompatível do SO Android e pode ter um comportamento inesperado. Pode estar disponível uma versão atualizada da app."</string>
<string name="unsupported_compile_sdk_show" msgid="1601210057960312248">"Mostrar sempre"</string>
- <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Verificar atualizações"</string>
+ <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Rever atualizações"</string>
<string name="smv_application" msgid="3775183542777792638">"A app <xliff:g id="APPLICATION">%1$s</xliff:g> (processo <xliff:g id="PROCESS">%2$s</xliff:g>) violou a política StrictMode auto-imposta."</string>
<string name="smv_process" msgid="1398801497130695446">"O processo <xliff:g id="PROCESS">%1$s</xliff:g> violou a política StrictMode auto-imposta."</string>
<string name="android_upgrading_title" product="default" msgid="7279077384220829683">"O telemóvel está a atualizar…"</string>
@@ -1963,7 +1964,7 @@
<string name="app_streaming_blocked_message_for_settings_dialog" product="tablet" msgid="3286849551133045896">"Não é possível aceder a esta app no seu dispositivo <xliff:g id="DEVICE">%1$s</xliff:g>. Em alternativa, experimente no tablet."</string>
<string name="app_streaming_blocked_message_for_settings_dialog" product="default" msgid="6264287556598916295">"Não é possível aceder a esta app no seu dispositivo <xliff:g id="DEVICE">%1$s</xliff:g>. Em alternativa, experimente no telemóvel."</string>
<string name="deprecated_target_sdk_message" msgid="5203207875657579953">"Esta app foi concebida para uma versão mais antiga do Android e pode não funcionar corretamente. Experimente verificar se existem atualizações ou contacte o programador."</string>
- <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"Verificar atualizações"</string>
+ <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"Rever atualizações"</string>
<string name="new_sms_notification_title" msgid="6528758221319927107">"Tem mensagens novas"</string>
<string name="new_sms_notification_content" msgid="3197949934153460639">"Abra a app de SMS para ver"</string>
<string name="profile_encrypted_title" msgid="9001208667521266472">"Algumas funcionalidades limitadas"</string>
@@ -2293,7 +2294,7 @@
<string name="notification_title_long_running_fgs" msgid="8170284286477131587">"Uma app ainda está ativa"</string>
<string name="notification_content_abusive_bg_apps" msgid="5296898075922695259">"A app <xliff:g id="APP">%1$s</xliff:g> está a ser executada em segundo plano Toque para gerir a utilização da bateria."</string>
<string name="notification_content_long_running_fgs" msgid="8258193410039977101">"A app <xliff:g id="APP">%1$s</xliff:g> pode afetar a autonomia da bateria. Toque para rever as apps ativas."</string>
- <string name="notification_action_check_bg_apps" msgid="4758877443365362532">"Verificar apps ativas"</string>
+ <string name="notification_action_check_bg_apps" msgid="4758877443365362532">"Rever apps ativas"</string>
<string name="vdm_camera_access_denied" product="default" msgid="6102378580971542473">"Não é possível aceder à câmara do telemóvel a partir do dispositivo <xliff:g id="DEVICE">%1$s</xliff:g>"</string>
<string name="vdm_camera_access_denied" product="tablet" msgid="6895968310395249076">"Não é possível aceder à câmara do tablet a partir do dispositivo <xliff:g id="DEVICE">%1$s</xliff:g>"</string>
<string name="vdm_secure_window" msgid="161700398158812314">"Não é possível aceder a isto durante o streaming. Em alternativa, experimente no telemóvel."</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 7886d2b..4fe36de 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Pode captar gestos realizados no sensor de impressão digital do dispositivo."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Fazer uma captura de tela"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Pode fazer uma captura de tela."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"desativar ou modificar a barra de status"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permite que o app desative a barra de status ou adicione e remova ícones do sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"ser a barra de status"</string>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 301d14c..a3be673 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Poate reda gesturile făcute pe senzorul de amprentă al dispozitivului."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Fă o captură de ecran"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Poate face o captură de ecran."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"dezactivare sau modificare bare de stare"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Permite aplicației să dezactiveze bara de stare sau să adauge și să elimine pictograme de sistem."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"să fie bara de stare"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index c7658177..d5067ae 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Использовать сканер отпечатков пальцев для дополнительных жестов."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Создавать скриншоты"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Создавать снимки экрана."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"Отключение/изменение строки состояния"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Приложение сможет отключать строку состояния, а также добавлять и удалять системные значки."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"Замена строки состояния"</string>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 69d806a..66b0cd6 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"උපාංගයෙහි ඇඟිලි සලකුණු සංවේදකය මත සිදු කරන ඉංගිත ග්රහණය කළ හැකිය."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"තිර රුව ගන්න"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"සංදර්ශකයේ තිර රුවක් ගැනීමට හැකිය."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"තත්ව තීරුව අබල කරන්න හෝ වෙනස් කරන්න"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"තත්ව තීරුව අක්රිය කිරීමට හෝ පද්ධති නිරූපක එකතු හෝ ඉවත් කිරීමට යෙදුමට අවසර දේ."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"තත්ත්ව තීරුව බවට පත්වීම"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 6bbfe0a..816feef 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Dokáže zaznamenať gestá na senzore odtlačkov prstov zariadenia."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Vytvoriť snímku obrazovky"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Je možné vytvoriť snímku obrazovky."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"zakázanie alebo zmeny stavového riadka"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Umožňuje aplikácii vypnúť stavový riadok alebo pridať a odstrániť systémové ikony."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"vydávanie sa za stavový riadok"</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 1accd18..61f2b51 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Prepoznava poteze, narejene po tipalu prstnih odtisov naprave."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ustvarjanje posnetka zaslona"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Lahko naredi posnetek zaslona."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"onemogočanje ali spreminjanje vrstice stanja"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Aplikacijam omogoča onemogočenje vrstice stanja ali dodajanje in odstranjevanje ikon sistema."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"postane vrstica stanja"</string>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index a8fc00e..1708904 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Mund të regjistrojë gjestet e kryera në sensorin e gjurmës së gishtit të pajisjes."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Nxirr një pamje të ekranit"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Mund të nxjerrë një pamje e ekranit."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"çaktivizo ose modifiko shiritin e statusit"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Lejon aplikacionin të çaktivizojë shiritin e statusit dhe të heqë ikonat e sistemit."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"të bëhet shiriti i statusit"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index bf8c0f7..fb36169 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -343,6 +343,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Може да региструје покрете на сензору за отисак прста на уређају."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Направи снимак екрана"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Може да направи снимак екрана."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"онемогућавање или измена статусне траке"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Дозвољава апликацији да онемогући статусну траку или да додаје и уклања системске иконе."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"функционисање као статусна трака"</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 177615d..6c593df 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Kan registrera rörelser som utförs med hjälp av enhetens fingeravtryckssensor."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ta skärmbild"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Kan ta en skärmbild av skärmen."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"inaktivera eller ändra statusfält"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Tillåter att appen inaktiverar statusfältet eller lägger till och tar bort systemikoner."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"visas i statusfältet"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 1319d1b..715c1c4 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Inaweza kurekodi ishara zinazotekelezwa kwenye kitambua alama ya kidole."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Piga picha ya skrini"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Inaweza kupiga picha ya skrini ya onyesho."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"zima au rekebisha mwambaa hali"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Inaruhusu programu kulemaza upau wa hali au kuongeza na kutoa aikoni za mfumo."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"kuwa sehemu ya arifa"</string>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 6b53c8e..2c8c532 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"சாதனத்தின் கைரேகை சென்சார்மேல் செய்யப்படும் சைகைகளைக் கேப்ட்சர் செய்ய முடியும்."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ஸ்கிரீன்ஷாட்டை எடுக்கும்"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"டிஸ்ப்ளேவை ஸ்கிரீன்ஷாட் எடுக்க முடியும்."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"நிலைப் பட்டியை முடக்குதல் அல்லது மாற்றுதல்"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"நிலைப் பட்டியை முடக்க அல்லது முறைமையில் ஐகான்களைச் சேர்க்க மற்றும் அகற்ற ஆப்ஸை அனுமதிக்கிறது."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"நிலைப் பட்டியில் இருக்கும்"</string>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index cff6773..bc53802 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"పరికర వేలిముద్ర సెన్సార్లో ఉపయోగించిన సంజ్ఞలను క్యాప్చర్ చేయవచ్చు."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"స్క్రీన్షాట్ను తీయండి"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"డిస్ప్లే యొక్క స్క్రీన్షాట్ తీసుకోవచ్చు."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"స్టేటస్ బార్ను డిజేబుల్ చేయడం లేదా మార్చడం"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"స్టేటస్ బార్ను డిజేబుల్ చేయడానికి లేదా సిస్టమ్ చిహ్నాలను జోడించడానికి మరియు తీసివేయడానికి యాప్ను అనుమతిస్తుంది."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"స్టేటస్ పట్టీగా ఉండటం"</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 10ee520..d12b209 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"สามารถจับท่าทางสัมผัสที่เกิดขึ้นบนเซ็นเซอร์ลายนิ้วมือของอุปกรณ์"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"ถ่ายภาพหน้าจอ"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ถ่ายภาพหน้าจอได้"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"ปิดการใช้งานหรือแก้ไขแถบสถานะ"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"อนุญาตให้แอปพลิเคชันปิดใช้งานแถบสถานะหรือเพิ่มและนำไอคอนระบบออก"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"เป็นแถบสถานะ"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index f4658cf..4c9e388 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Makukunan ang mga galaw na ginawa sa sensor para sa fingerprint ng device."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Kumuha ng screenshot"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Puwedeng kumuha ng screenshot ng display."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"i-disable o baguhin ang status bar"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Pinapayagan ang app na i-disable ang status bar o magdagdag at mag-alis ng mga icon ng system."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"maging status bar"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 0573fcd..4e6c6c7 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Cihazın parmak izi sensörlerinde gerçekleştirilen hareketleri yakalayabilir."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Ekran görüntüsü al"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Ekran görüntüsü alınabilir."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"durum çubuğunu devre dışı bırak veya değiştir"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Uygulamaya, durum çubuğunu devre dışı bırakma ve sistem simgelerini ekleyip kaldırma izni verir."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"durum çubuğunda olma"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index ad03757..28828e7 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -344,6 +344,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Може фіксувати жести на сканері відбитків пальців."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Робити знімки екрана"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Може робити знімки екрана."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"вимикати чи змін. рядок стану"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Дозволяє програмі вимикати рядок стану чи додавати та видаляти піктограми системи."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"відображатися як рядок стану"</string>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 4e03774..d94ccc1 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"آلہ کے فنگر پرنٹ سینسر پر کیے گئے اشاروں کو کیپچر کر سکتا ہے۔"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"اسکرین شاٹ لیں"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"ڈسپلے کا اسکرین شاٹ لیا جا سکتا ہے۔"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"اسٹیٹس بار کو غیر فعال یا اس میں ترمیم کریں"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"ایپ کو اسٹیٹس بار غیر فعال کرنے یا سسٹم آئیکنز شامل کرنے اور ہٹانے کی اجازت دیتا ہے۔"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"بطور اسٹیٹس بار کام لیں"</string>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 8d3bedf..8db468b 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Barmoq izi skanerida kiritilgan ishoralarni taniy oladi."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Skrinshot olish"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Ekrandan skrinshot olishi mumkin."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"holat panelini o‘zgartirish yoki o‘chirish"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Ilova holat panelini o‘chirib qo‘yishi hamda tizim ikonkalarini qo‘shishi yoki olib tashlashi mumkin."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"holat qatorida ko‘rinishi"</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index f30df3b..30cab1a 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Có thể ghi lại các cử chỉ được thực hiện trên cảm biến vân tay của thiết bị."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Chụp ảnh màn hình"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Có thể chụp ảnh màn hình."</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"vô hiệu hóa hoặc sửa đổi thanh trạng thái"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Cho phép ứng dụng vô hiệu hóa thanh trạng thái hoặc thêm và xóa biểu tượng hệ thống."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"trở thành thanh trạng thái"</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 2f3951f..3a8ab3c 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"可以捕捉在设备指纹传感器上执行的手势。"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"截取屏幕截图"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"可截取显示画面的屏幕截图。"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"停用或修改状态栏"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"允许应用停用状态栏或者增删系统图标。"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"用作状态栏"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index ed5e989..0e65d66 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"可以擷取在裝置指紋感應器上執行的手勢。"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"擷取螢幕擷圖"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"可以擷取螢幕截圖。"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"停用或修改狀態列"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"允許應用程式停用狀態列,並可新增或移除系統圖示。"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"成為狀態列"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 08b597a..bd37579 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"可以擷取使用者對裝置的指紋感應器執行的手勢。"</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"擷取螢幕畫面"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"可以擷取螢幕畫面。"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"停用或變更狀態列"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"允許應用程式停用狀態列,並可新增或移除系統圖示。"</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"以狀態列顯示"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index a8cdb4e..abc673b 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -342,6 +342,8 @@
<string name="capability_desc_canCaptureFingerprintGestures" msgid="6861869337457461274">"Ingathatha ukuthinta okwenziwe kunzwa yezigxivizo zeminwe zedivayisi."</string>
<string name="capability_title_canTakeScreenshot" msgid="3895812893130071930">"Thatha isithombe-skrini"</string>
<string name="capability_desc_canTakeScreenshot" msgid="7762297374317934052">"Ingathatha isithombe-skrini sesiboniso"</string>
+ <!-- no translation found for dream_preview_title (5570751491996100804) -->
+ <skip />
<string name="permlab_statusBar" msgid="8798267849526214017">"khubaza noma guqula ibha yomumo"</string>
<string name="permdesc_statusBar" msgid="5809162768651019642">"Ivumela uhlelo lokusebenza ukuthi yenze umudwa ochaza ngesimo ukuthi ungasebenzi noma ukufaka noma ukukhipha izithonjana zohlelo."</string>
<string name="permlab_statusBarService" msgid="2523421018081437981">"yiba yibha yesimo"</string>
diff --git a/libs/WindowManager/Shell/res/values-af/strings.xml b/libs/WindowManager/Shell/res/values-af/strings.xml
index 26246fc..22d9219 100644
--- a/libs/WindowManager/Shell/res/values-af/strings.xml
+++ b/libs/WindowManager/Shell/res/values-af/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Bo 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Bo 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Volskerm onder"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Verdeel links"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Verdeel regs"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Verdeel bo"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Verdeel onder"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Gebruik eenhandmodus"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Swiep van die onderkant van die skerm af op of tik enige plek bo die program om uit te gaan"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Begin eenhandmodus"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Maak toe"</string>
<string name="back_button_text" msgid="1469718707134137085">"Terug"</string>
<string name="handle_text" msgid="1766582106752184456">"Handvatsel"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Volskerm"</string>
<string name="desktop_text" msgid="1077633567027630454">"Rekenaarmodus"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Verdeelde skerm"</string>
<string name="more_button_text" msgid="3655388105592893530">"Meer"</string>
<string name="float_button_text" msgid="9221657008391364581">"Sweef"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-am/strings.xml b/libs/WindowManager/Shell/res/values-am/strings.xml
index 7f0a3ab..17ea053 100644
--- a/libs/WindowManager/Shell/res/values-am/strings.xml
+++ b/libs/WindowManager/Shell/res/values-am/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ከላይ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ከላይ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"የታች ሙሉ ማያ ገጽ"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ወደ ግራ ከፋፍል"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"ወደ ቀኝ ከፋፍል"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ወደ ላይ ከፋፍል"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"ወደ ታች ከፋፍል"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ባለአንድ እጅ ሁነታን በመጠቀም ላይ"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"ለመውጣት ከማያው ግርጌ ወደ ላይ ይጥረጉ ወይም ከመተግበሪያው በላይ ማንኛውም ቦታ ላይ መታ ያድርጉ"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ባለአንድ እጅ ሁነታ ጀምር"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"ዝጋ"</string>
<string name="back_button_text" msgid="1469718707134137085">"ተመለስ"</string>
<string name="handle_text" msgid="1766582106752184456">"መያዣ"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ሙሉ ማያ"</string>
<string name="desktop_text" msgid="1077633567027630454">"የዴስክቶፕ ሁነታ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"የተከፈለ ማያ ገጽ"</string>
<string name="more_button_text" msgid="3655388105592893530">"ተጨማሪ"</string>
<string name="float_button_text" msgid="9221657008391364581">"ተንሳፋፊ"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ar/strings.xml b/libs/WindowManager/Shell/res/values-ar/strings.xml
index 7f81e50..2e4c8ef 100644
--- a/libs/WindowManager/Shell/res/values-ar/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ar/strings.xml
@@ -100,9 +100,19 @@
<string name="close_button_text" msgid="2913281996024033299">"إغلاق"</string>
<string name="back_button_text" msgid="1469718707134137085">"رجوع"</string>
<string name="handle_text" msgid="1766582106752184456">"مقبض"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ملء الشاشة"</string>
<string name="desktop_text" msgid="1077633567027630454">"وضع سطح المكتب"</string>
<string name="split_screen_text" msgid="1396336058129570886">"تقسيم الشاشة"</string>
<string name="more_button_text" msgid="3655388105592893530">"المزيد"</string>
<string name="float_button_text" msgid="9221657008391364581">"نافذة عائمة"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-as/strings.xml b/libs/WindowManager/Shell/res/values-as/strings.xml
index 505ca96..c885197 100644
--- a/libs/WindowManager/Shell/res/values-as/strings.xml
+++ b/libs/WindowManager/Shell/res/values-as/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"শীর্ষ স্ক্ৰীনখন ৫০% কৰক"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"শীর্ষ স্ক্ৰীনখন ৩০% কৰক"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"তলৰ স্ক্ৰীনখন সম্পূৰ্ণ স্ক্ৰীন কৰক"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"বাওঁফালে বিভাজন কৰক"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"সোঁফালে বিভাজন কৰক"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"একেবাৰে ওপৰৰফালে বিভাজন কৰক"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"একেবাৰে তলৰফালে বিভাজন কৰক"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"এখন হাতেৰে ব্যৱহাৰ কৰা ম’ড ব্যৱহাৰ কৰা"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"বাহিৰ হ’বলৈ স্ক্ৰীনখনৰ একেবাৰে তলৰ পৰা ওপৰলৈ ছোৱাইপ কৰক অথবা এপ্টোৰ ওপৰত যিকোনো ঠাইত টিপক"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"এখন হাতেৰে ব্যৱহাৰ কৰা ম\'ডটো আৰম্ভ কৰক"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"বন্ধ কৰক"</string>
<string name="back_button_text" msgid="1469718707134137085">"উভতি যাওক"</string>
<string name="handle_text" msgid="1766582106752184456">"হেণ্ডেল"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"সম্পূৰ্ণ স্ক্ৰীন"</string>
<string name="desktop_text" msgid="1077633567027630454">"ডেস্কটপ ম’ড"</string>
<string name="split_screen_text" msgid="1396336058129570886">"বিভাজিত স্ক্ৰীন"</string>
<string name="more_button_text" msgid="3655388105592893530">"অধিক"</string>
<string name="float_button_text" msgid="9221657008391364581">"ওপঙা"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-az/strings.xml b/libs/WindowManager/Shell/res/values-az/strings.xml
index 0d754ba..4427fa9 100644
--- a/libs/WindowManager/Shell/res/values-az/strings.xml
+++ b/libs/WindowManager/Shell/res/values-az/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Yuxarı 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Yuxarı 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Aşağı tam ekran"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Sola ayırın"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Sağa ayırın"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Yuxarı ayırın"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Aşağı ayırın"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Birəlli rejim istifadəsi"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Çıxmaq üçün ekranın aşağısından yuxarıya doğru sürüşdürün və ya tətbiqin yuxarısında istənilən yerə toxunun"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Birəlli rejim başlasın"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Bağlayın"</string>
<string name="back_button_text" msgid="1469718707134137085">"Geriyə"</string>
<string name="handle_text" msgid="1766582106752184456">"Hər kəsə açıq istifadəçi adı"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Tam Ekran"</string>
<string name="desktop_text" msgid="1077633567027630454">"Masaüstü Rejimi"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Bölünmüş Ekran"</string>
<string name="more_button_text" msgid="3655388105592893530">"Ardı"</string>
<string name="float_button_text" msgid="9221657008391364581">"Üzən pəncərə"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
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 46d9f2b..a67ba39 100644
--- a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gornji ekran 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Gornji ekran 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Režim celog ekrana za donji ekran"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Podelite levo"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Podelite desno"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Podelite u vrhu"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Podelite u dnu"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Korišćenje režima jednom rukom"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Da biste izašli, prevucite nagore od dna ekrana ili dodirnite bilo gde iznad aplikacije"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Pokrenite režim jednom rukom"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Zatvorite"</string>
<string name="back_button_text" msgid="1469718707134137085">"Nazad"</string>
<string name="handle_text" msgid="1766582106752184456">"Identifikator"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Preko celog ekrana"</string>
<string name="desktop_text" msgid="1077633567027630454">"Režim za računare"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Podeljeni ekran"</string>
<string name="more_button_text" msgid="3655388105592893530">"Još"</string>
<string name="float_button_text" msgid="9221657008391364581">"Plutajuće"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-be/strings.xml b/libs/WindowManager/Shell/res/values-be/strings.xml
index 31d0484..5adb2ec 100644
--- a/libs/WindowManager/Shell/res/values-be/strings.xml
+++ b/libs/WindowManager/Shell/res/values-be/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Верхні экран – 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Верхні экран – 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Ніжні экран – поўнаэкранны рэжым"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Падзяліць злева"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Падзяліць справа"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Падзяліць уверсе"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Падзяліць унізе"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Выкарыстоўваецца рэжым кіравання адной рукой"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Каб выйсці, правядзіце па экране пальцам знізу ўверх або націсніце ў любым месцы над праграмай"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Запусціць рэжым кіравання адной рукой"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Закрыць"</string>
<string name="back_button_text" msgid="1469718707134137085">"Назад"</string>
<string name="handle_text" msgid="1766582106752184456">"Маркер"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"На ўвесь экран"</string>
<string name="desktop_text" msgid="1077633567027630454">"Рэжым працоўнага стала"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Падзяліць экран"</string>
<string name="more_button_text" msgid="3655388105592893530">"Яшчэ"</string>
<string name="float_button_text" msgid="9221657008391364581">"Зрабіць рухомым акном"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-bg/strings.xml b/libs/WindowManager/Shell/res/values-bg/strings.xml
index 08fe365..8c82d1a 100644
--- a/libs/WindowManager/Shell/res/values-bg/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bg/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Горен екран: 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Горен екран: 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Долен екран: Показване на цял екран"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Разделяне в лявата част"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Разделяне в дясната част"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Разделяне в горната част"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Разделяне в долната част"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Използване на режима за работа с една ръка"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"За изход прекарайте пръст нагоре от долната част на екрана или докоснете произволно място над приложението"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Стартиране на режима за работа с една ръка"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Затваряне"</string>
<string name="back_button_text" msgid="1469718707134137085">"Назад"</string>
<string name="handle_text" msgid="1766582106752184456">"Манипулатор"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Цял екран"</string>
<string name="desktop_text" msgid="1077633567027630454">"Режим за настолни компютри"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Разделяне на екрана"</string>
<string name="more_button_text" msgid="3655388105592893530">"Още"</string>
<string name="float_button_text" msgid="9221657008391364581">"Плаващо"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-bn/strings.xml b/libs/WindowManager/Shell/res/values-bn/strings.xml
index ac0daa0..11a4175 100644
--- a/libs/WindowManager/Shell/res/values-bn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bn/strings.xml
@@ -100,9 +100,19 @@
<string name="close_button_text" msgid="2913281996024033299">"বন্ধ করুন"</string>
<string name="back_button_text" msgid="1469718707134137085">"ফিরে যান"</string>
<string name="handle_text" msgid="1766582106752184456">"হাতল"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ফুলস্ক্রিন"</string>
<string name="desktop_text" msgid="1077633567027630454">"ডেস্কটপ মোড"</string>
<string name="split_screen_text" msgid="1396336058129570886">"স্প্লিট স্ক্রিন"</string>
<string name="more_button_text" msgid="3655388105592893530">"আরও"</string>
<string name="float_button_text" msgid="9221657008391364581">"ফ্লোট"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-bs/strings.xml b/libs/WindowManager/Shell/res/values-bs/strings.xml
index 745e6fc..c65ce08 100644
--- a/libs/WindowManager/Shell/res/values-bs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bs/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gore 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Gore 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Donji ekran kao cijeli ekran"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Podjela ulijevo"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Podjela udesno"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Podjela nagore"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Podjela nadolje"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Korištenje načina rada jednom rukom"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Da izađete, prevucite s dna ekrana prema gore ili dodirnite bilo gdje iznad aplikacije"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Započinjanje načina rada jednom rukom"</string>
@@ -100,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Zatvaranje"</string>
<string name="back_button_text" msgid="1469718707134137085">"Nazad"</string>
<string name="handle_text" msgid="1766582106752184456">"Identifikator"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"Ikona aplikacije"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Cijeli ekran"</string>
<string name="desktop_text" msgid="1077633567027630454">"Način rada radne površine"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Podijeljeni ekran"</string>
<string name="more_button_text" msgid="3655388105592893530">"Više"</string>
<string name="float_button_text" msgid="9221657008391364581">"Lebdeći"</string>
+ <string name="select_text" msgid="5139083974039906583">"Odaberite"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Snimka zaslona"</string>
+ <string name="close_text" msgid="4986518933445178928">"Zatvorite"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Zatvorite izbornik"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ca/strings.xml b/libs/WindowManager/Shell/res/values-ca/strings.xml
index 727c319..f50b8f2 100644
--- a/libs/WindowManager/Shell/res/values-ca/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ca/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Pantalla superior al 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Pantalla superior al 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Pantalla inferior completa"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Divideix a l\'esquerra"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Divideix a la dreta"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Divideix a la part superior"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Divideix a la part inferior"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"S\'està utilitzant el mode d\'una mà"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Per sortir, llisca cap amunt des de la part inferior de la pantalla o toca qualsevol lloc a sobre de l\'aplicació"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Inicia el mode d\'una mà"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Tanca"</string>
<string name="back_button_text" msgid="1469718707134137085">"Enrere"</string>
<string name="handle_text" msgid="1766582106752184456">"Ansa"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
<string name="desktop_text" msgid="1077633567027630454">"Mode d\'escriptori"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
<string name="more_button_text" msgid="3655388105592893530">"Més"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flotant"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-cs/strings.xml b/libs/WindowManager/Shell/res/values-cs/strings.xml
index 395e12c..ac36edbb 100644
--- a/libs/WindowManager/Shell/res/values-cs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-cs/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % nahoře"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30 % nahoře"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Dolní část na celou obrazovku"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Rozdělit vlevo"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Rozdělit vpravo"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Rozdělit nahoře"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Rozdělit dole"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Používání režimu jedné ruky"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Režim ukončíte, když přejedete prstem z dolní části obrazovky nahoru nebo klepnete kamkoli nad aplikaci"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Spustit režim jedné ruky"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Zavřít"</string>
<string name="back_button_text" msgid="1469718707134137085">"Zpět"</string>
<string name="handle_text" msgid="1766582106752184456">"Úchyt"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Celá obrazovka"</string>
<string name="desktop_text" msgid="1077633567027630454">"Režim počítače"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Rozdělená obrazovka"</string>
<string name="more_button_text" msgid="3655388105592893530">"Více"</string>
<string name="float_button_text" msgid="9221657008391364581">"Plovoucí"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-da/strings.xml b/libs/WindowManager/Shell/res/values-da/strings.xml
index 5087c13..8635cc5 100644
--- a/libs/WindowManager/Shell/res/values-da/strings.xml
+++ b/libs/WindowManager/Shell/res/values-da/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Øverste 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Øverste 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Vis nederste del i fuld skærm"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Vis i venstre side"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Vis i højre side"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Vis øverst"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Vis nederst"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Brug af enhåndstilstand"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Du kan afslutte ved at stryge opad fra bunden af skærmen eller trykke et vilkårligt sted over appen"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Start enhåndstilstand"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Luk"</string>
<string name="back_button_text" msgid="1469718707134137085">"Tilbage"</string>
<string name="handle_text" msgid="1766582106752184456">"Håndtag"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Fuld skærm"</string>
<string name="desktop_text" msgid="1077633567027630454">"Computertilstand"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Opdelt skærm"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mere"</string>
<string name="float_button_text" msgid="9221657008391364581">"Svævende"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-de/strings.xml b/libs/WindowManager/Shell/res/values-de/strings.xml
index e97f068..059a4da 100644
--- a/libs/WindowManager/Shell/res/values-de/strings.xml
+++ b/libs/WindowManager/Shell/res/values-de/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % oben"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30 % oben"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Vollbild unten"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Links teilen"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Rechts teilen"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Oben teilen"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Unten teilen"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Einhandmodus wird verwendet"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Wenn du die App schließen möchtest, wische vom unteren Rand des Displays nach oben oder tippe auf eine beliebige Stelle oberhalb der App"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Einhandmodus starten"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Schließen"</string>
<string name="back_button_text" msgid="1469718707134137085">"Zurück"</string>
<string name="handle_text" msgid="1766582106752184456">"Ziehpunkt"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Vollbild"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktopmodus"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Geteilter Bildschirm"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mehr"</string>
<string name="float_button_text" msgid="9221657008391364581">"Frei schwebend"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-el/strings.xml b/libs/WindowManager/Shell/res/values-el/strings.xml
index df82625..5800cc8 100644
--- a/libs/WindowManager/Shell/res/values-el/strings.xml
+++ b/libs/WindowManager/Shell/res/values-el/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Πάνω 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Πάνω 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Κάτω πλήρης οθόνη"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Διαχωρισμός αριστερά"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Διαχωρισμός δεξιά"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Διαχωρισμός επάνω"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Διαχωρισμός κάτω"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Χρήση λειτουργίας ενός χεριού"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Για έξοδο, σύρετε προς τα πάνω από το κάτω μέρος της οθόνης ή πατήστε οπουδήποτε πάνω από την εφαρμογή."</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Έναρξη λειτουργίας ενός χεριού"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Κλείσιμο"</string>
<string name="back_button_text" msgid="1469718707134137085">"Πίσω"</string>
<string name="handle_text" msgid="1766582106752184456">"Λαβή"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Πλήρης οθόνη"</string>
<string name="desktop_text" msgid="1077633567027630454">"Λειτουργία επιφάνειας εργασίας"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Διαχωρισμός οθόνης"</string>
<string name="more_button_text" msgid="3655388105592893530">"Περισσότερα"</string>
<string name="float_button_text" msgid="9221657008391364581">"Κινούμενο"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
index b1c9ba8..4d18f5e 100644
--- a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
@@ -96,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Close"</string>
<string name="back_button_text" msgid="1469718707134137085">"Back"</string>
<string name="handle_text" msgid="1766582106752184456">"Handle"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"App icon"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Full screen"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktop mode"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Split screen"</string>
<string name="more_button_text" msgid="3655388105592893530">"More"</string>
<string name="float_button_text" msgid="9221657008391364581">"Float"</string>
+ <string name="select_text" msgid="5139083974039906583">"Select"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
+ <string name="close_text" msgid="4986518933445178928">"Close"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-en-rCA/strings.xml b/libs/WindowManager/Shell/res/values-en-rCA/strings.xml
index 4aa2211..40b9d95 100644
--- a/libs/WindowManager/Shell/res/values-en-rCA/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rCA/strings.xml
@@ -96,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Close"</string>
<string name="back_button_text" msgid="1469718707134137085">"Back"</string>
<string name="handle_text" msgid="1766582106752184456">"Handle"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"App Icon"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Fullscreen"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktop Mode"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Split Screen"</string>
<string name="more_button_text" msgid="3655388105592893530">"More"</string>
<string name="float_button_text" msgid="9221657008391364581">"Float"</string>
+ <string name="select_text" msgid="5139083974039906583">"Select"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
+ <string name="close_text" msgid="4986518933445178928">"Close"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Close Menu"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
index b1c9ba8..4d18f5e 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
@@ -96,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Close"</string>
<string name="back_button_text" msgid="1469718707134137085">"Back"</string>
<string name="handle_text" msgid="1766582106752184456">"Handle"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"App icon"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Full screen"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktop mode"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Split screen"</string>
<string name="more_button_text" msgid="3655388105592893530">"More"</string>
<string name="float_button_text" msgid="9221657008391364581">"Float"</string>
+ <string name="select_text" msgid="5139083974039906583">"Select"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
+ <string name="close_text" msgid="4986518933445178928">"Close"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
index b1c9ba8..4d18f5e 100644
--- a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
@@ -96,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Close"</string>
<string name="back_button_text" msgid="1469718707134137085">"Back"</string>
<string name="handle_text" msgid="1766582106752184456">"Handle"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"App icon"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Full screen"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktop mode"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Split screen"</string>
<string name="more_button_text" msgid="3655388105592893530">"More"</string>
<string name="float_button_text" msgid="9221657008391364581">"Float"</string>
+ <string name="select_text" msgid="5139083974039906583">"Select"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
+ <string name="close_text" msgid="4986518933445178928">"Close"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-en-rXC/strings.xml b/libs/WindowManager/Shell/res/values-en-rXC/strings.xml
index 265849c..e0fbfbb 100644
--- a/libs/WindowManager/Shell/res/values-en-rXC/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rXC/strings.xml
@@ -96,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Close"</string>
<string name="back_button_text" msgid="1469718707134137085">"Back"</string>
<string name="handle_text" msgid="1766582106752184456">"Handle"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"App Icon"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Fullscreen"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktop Mode"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Split Screen"</string>
<string name="more_button_text" msgid="3655388105592893530">"More"</string>
<string name="float_button_text" msgid="9221657008391364581">"Float"</string>
+ <string name="select_text" msgid="5139083974039906583">"Select"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
+ <string name="close_text" msgid="4986518933445178928">"Close"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Close Menu"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
index 1196aaf..d306537 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Superior: 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Superior: 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Pantalla inferior completa"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Dividir a la izquierda"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Dividir a la derecha"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Dividir en la parte superior"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Dividir en la parte inferior"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Cómo usar el modo de una mano"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Para salir, desliza el dedo hacia arriba desde la parte inferior de la pantalla o presiona cualquier parte arriba de la app"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Iniciar el modo de una mano"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Cerrar"</string>
<string name="back_button_text" msgid="1469718707134137085">"Atrás"</string>
<string name="handle_text" msgid="1766582106752184456">"Controlador"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modo de escritorio"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
<string name="more_button_text" msgid="3655388105592893530">"Más"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml
index c3c832b..ab1ced4 100644
--- a/libs/WindowManager/Shell/res/values-es/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Superior 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Superior 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Pantalla inferior completa"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Dividir en la parte izquierda"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Dividir en la parte derecha"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Dividir en la parte superior"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Dividir en la parte inferior"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Usar modo Una mano"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Para salir, desliza el dedo hacia arriba desde la parte inferior de la pantalla o toca cualquier zona que haya encima de la aplicación"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Iniciar modo Una mano"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Cerrar"</string>
<string name="back_button_text" msgid="1469718707134137085">"Atrás"</string>
<string name="handle_text" msgid="1766582106752184456">"Controlador"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modo Escritorio"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
<string name="more_button_text" msgid="3655388105592893530">"Más"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-et/strings.xml b/libs/WindowManager/Shell/res/values-et/strings.xml
index 4722c07..4c4d87e 100644
--- a/libs/WindowManager/Shell/res/values-et/strings.xml
+++ b/libs/WindowManager/Shell/res/values-et/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Ülemine: 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Ülemine: 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Alumine täisekraan"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Jaga vasakule"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Jaga paremale"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Jaga üles"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Jaga alla"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Ühekäerežiimi kasutamine"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Väljumiseks pühkige ekraani alaosast üles või puudutage rakenduse kohal olevat ala"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Ühekäerežiimi käivitamine"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Sule"</string>
<string name="back_button_text" msgid="1469718707134137085">"Tagasi"</string>
<string name="handle_text" msgid="1766582106752184456">"Käepide"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Täisekraan"</string>
<string name="desktop_text" msgid="1077633567027630454">"Lauaarvuti režiim"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Jagatud ekraanikuva"</string>
<string name="more_button_text" msgid="3655388105592893530">"Rohkem"</string>
<string name="float_button_text" msgid="9221657008391364581">"Hõljuv"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-eu/strings.xml b/libs/WindowManager/Shell/res/values-eu/strings.xml
index e1c2a0d..5642a5f 100644
--- a/libs/WindowManager/Shell/res/values-eu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-eu/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Ezarri goialdea % 50en"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Ezarri goialdea % 30en"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Ezarri behealdea pantaila osoan"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Zatitu ezkerraldean"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Zatitu eskuinaldean"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Zatitu goialdean"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Zatitu behealdean"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Esku bakarreko modua erabiltzea"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Irteteko, pasatu hatza pantailaren behealdetik gora edo sakatu aplikazioaren gainaldea"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Abiarazi esku bakarreko modua"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Itxi"</string>
<string name="back_button_text" msgid="1469718707134137085">"Atzera"</string>
<string name="handle_text" msgid="1766582106752184456">"Kontu-izena"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Pantaila osoa"</string>
<string name="desktop_text" msgid="1077633567027630454">"Ordenagailuetarako modua"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Pantaila zatitua"</string>
<string name="more_button_text" msgid="3655388105592893530">"Gehiago"</string>
<string name="float_button_text" msgid="9221657008391364581">"Leiho gainerakorra"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-fa/strings.xml b/libs/WindowManager/Shell/res/values-fa/strings.xml
index 5a4871d..a15d7a4 100644
--- a/libs/WindowManager/Shell/res/values-fa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fa/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"٪۵۰ بالا"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"٪۳۰ بالا"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"تمامصفحه پایین"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"تقسیم از چپ"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"تقسیم از راست"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"تقسیم از بالا"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"تقسیم از پایین"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"استفاده از حالت یکدستی"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"برای خارج شدن، از پایین صفحهنمایش تند بهطرف بالا بکشید یا در هر جایی از بالای برنامه که میخواهید ضربه بزنید"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"آغاز «حالت یکدستی»"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"بستن"</string>
<string name="back_button_text" msgid="1469718707134137085">"برگشتن"</string>
<string name="handle_text" msgid="1766582106752184456">"دستگیره"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"تمامصفحه"</string>
<string name="desktop_text" msgid="1077633567027630454">"حالت رایانه"</string>
<string name="split_screen_text" msgid="1396336058129570886">"صفحهٔ دونیمه"</string>
<string name="more_button_text" msgid="3655388105592893530">"بیشتر"</string>
<string name="float_button_text" msgid="9221657008391364581">"شناور"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-fi/strings.xml b/libs/WindowManager/Shell/res/values-fi/strings.xml
index 56f444e..8c679b6 100644
--- a/libs/WindowManager/Shell/res/values-fi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fi/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Yläosa 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Yläosa 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Alaosa koko näytölle"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Vasemmalla"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Oikealla"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Ylhäällä"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Alhaalla"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Yhden käden moodin käyttö"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Poistu pyyhkäisemällä ylös näytön alareunasta tai napauttamalla sovelluksen yllä"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Käynnistä yhden käden moodi"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Sulje"</string>
<string name="back_button_text" msgid="1469718707134137085">"Takaisin"</string>
<string name="handle_text" msgid="1766582106752184456">"Kahva"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Koko näyttö"</string>
<string name="desktop_text" msgid="1077633567027630454">"Työpöytätila"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Jaettu näyttö"</string>
<string name="more_button_text" msgid="3655388105592893530">"Lisää"</string>
<string name="float_button_text" msgid="9221657008391364581">"Kelluva ikkuna"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
index e48d794..d43aea5 100644
--- a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % dans le haut"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30 % dans le haut"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Plein écran dans le bas"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Diviser à gauche"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Diviser à droite"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Diviser dans la partie supérieure"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Diviser dans la partie inférieure"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Utiliser le mode Une main"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Pour quitter, balayez l\'écran du bas vers le haut, ou touchez n\'importe où sur l\'écran en haut de l\'application"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Démarrer le mode Une main"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Fermer"</string>
<string name="back_button_text" msgid="1469718707134137085">"Retour"</string>
<string name="handle_text" msgid="1766582106752184456">"Identifiant"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Plein écran"</string>
<string name="desktop_text" msgid="1077633567027630454">"Mode Bureau"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Écran partagé"</string>
<string name="more_button_text" msgid="3655388105592893530">"Plus"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flottant"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-fr/strings.xml b/libs/WindowManager/Shell/res/values-fr/strings.xml
index 301bca6..15e89f8 100644
--- a/libs/WindowManager/Shell/res/values-fr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Écran du haut à 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Écran du haut à 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Écran du bas en plein écran"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Affichée à gauche"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Affichée à droite"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Affichée en haut"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Affichée en haut"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Utiliser le mode une main"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Pour quitter, balayez l\'écran de bas en haut ou appuyez n\'importe où au-dessus de l\'application"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Démarrer le mode une main"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Fermer"</string>
<string name="back_button_text" msgid="1469718707134137085">"Retour"</string>
<string name="handle_text" msgid="1766582106752184456">"Poignée"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Plein écran"</string>
<string name="desktop_text" msgid="1077633567027630454">"Mode ordinateur"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Écran partagé"</string>
<string name="more_button_text" msgid="3655388105592893530">"Plus"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flottante"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-gl/strings.xml b/libs/WindowManager/Shell/res/values-gl/strings.xml
index 967945c..f83564d 100644
--- a/libs/WindowManager/Shell/res/values-gl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gl/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % arriba"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30 % arriba"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Pantalla completa abaixo"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Dividir (esquerda)"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Dividir (dereita)"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Dividir (arriba)"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Dividir (abaixo)"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Como se usa o modo dunha soa man?"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Para saír, pasa o dedo cara arriba desde a parte inferior da pantalla ou toca calquera lugar da zona situada encima da aplicación"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Iniciar modo dunha soa man"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Pechar"</string>
<string name="back_button_text" msgid="1469718707134137085">"Atrás"</string>
<string name="handle_text" msgid="1766582106752184456">"Controlador"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modo de escritorio"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
<string name="more_button_text" msgid="3655388105592893530">"Máis"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-gu/strings.xml b/libs/WindowManager/Shell/res/values-gu/strings.xml
index 653e1a69..bd36205 100644
--- a/libs/WindowManager/Shell/res/values-gu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gu/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"શીર્ષ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"શીર્ષ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"તળિયાની પૂર્ણ સ્ક્રીન"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ડાબે વિભાજિત કરો"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"જમણે વિભાજિત કરો"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ઉપર વિભાજિત કરો"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"નીચે વિભાજિત કરો"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"એક-હાથે વાપરો મોડનો ઉપયોગ કરી રહ્યાં છીએ"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"બહાર નીકળવા માટે, સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો અથવા ઍપના આઇકન પર ગમે ત્યાં ટૅપ કરો"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"એક-હાથે વાપરો મોડ શરૂ કરો"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"બંધ કરો"</string>
<string name="back_button_text" msgid="1469718707134137085">"પાછળ"</string>
<string name="handle_text" msgid="1766582106752184456">"હૅન્ડલ"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"પૂર્ણસ્ક્રીન"</string>
<string name="desktop_text" msgid="1077633567027630454">"ડેસ્કટૉપ મોડ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"સ્ક્રીનને વિભાજિત કરો"</string>
<string name="more_button_text" msgid="3655388105592893530">"વધુ"</string>
<string name="float_button_text" msgid="9221657008391364581">"ફ્લોટિંગ વિન્ડો"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-hi/strings.xml b/libs/WindowManager/Shell/res/values-hi/strings.xml
index 25b658a..e56ad17 100644
--- a/libs/WindowManager/Shell/res/values-hi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hi/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ऊपर की स्क्रीन को 50% बनाएं"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ऊपर की स्क्रीन को 30% बनाएं"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"नीचे की स्क्रीन को फ़ुल स्क्रीन बनाएं"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"स्क्रीन को बाएं हिस्से में स्प्लिट करें"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"स्क्रीन को दाएं हिस्से में स्प्लिट करें"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"स्क्रीन को ऊपर के हिस्से में स्प्लिट करें"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"स्क्रीन को सबसे नीचे वाले हिस्से में स्प्लिट करें"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"वन-हैंडेड मोड का इस्तेमाल करना"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"इस मोड से बाहर निकलने के लिए, स्क्रीन के सबसे निचले हिस्से से ऊपर की ओर स्वाइप करें या ऐप्लिकेशन के बाहर कहीं भी टैप करें"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"वन-हैंडेड मोड चालू करें"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"बंद करें"</string>
<string name="back_button_text" msgid="1469718707134137085">"वापस जाएं"</string>
<string name="handle_text" msgid="1766582106752184456">"हैंडल"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"फ़ुलस्क्रीन"</string>
<string name="desktop_text" msgid="1077633567027630454">"डेस्कटॉप मोड"</string>
<string name="split_screen_text" msgid="1396336058129570886">"स्प्लिट स्क्रीन मोड"</string>
<string name="more_button_text" msgid="3655388105592893530">"ज़्यादा देखें"</string>
<string name="float_button_text" msgid="9221657008391364581">"फ़्लोट"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-hr/strings.xml b/libs/WindowManager/Shell/res/values-hr/strings.xml
index 57fd2fa..cde33c7 100644
--- a/libs/WindowManager/Shell/res/values-hr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hr/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gornji zaslon na 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Gornji zaslon na 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Donji zaslon u cijeli zaslon"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Podijeli lijevo"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Podijeli desno"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Podijeli gore"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Podijeli dolje"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Korištenje načina rada jednom rukom"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Za izlaz prijeđite prstom od dna zaslona prema gore ili dodirnite bio gdje iznad aplikacije"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Pokretanje načina rada jednom rukom"</string>
@@ -100,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Zatvori"</string>
<string name="back_button_text" msgid="1469718707134137085">"Natrag"</string>
<string name="handle_text" msgid="1766582106752184456">"Pokazivač"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"Ikona aplikacije"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Puni zaslon"</string>
<string name="desktop_text" msgid="1077633567027630454">"Stolni način rada"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Razdvojeni zaslon"</string>
<string name="more_button_text" msgid="3655388105592893530">"Više"</string>
<string name="float_button_text" msgid="9221657008391364581">"Plutajući"</string>
+ <string name="select_text" msgid="5139083974039906583">"Odaberite"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Snimka zaslona"</string>
+ <string name="close_text" msgid="4986518933445178928">"Zatvorite"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Zatvorite izbornik"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-hu/strings.xml b/libs/WindowManager/Shell/res/values-hu/strings.xml
index ee7ff86..28536e6 100644
--- a/libs/WindowManager/Shell/res/values-hu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hu/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Felső 50%-ra"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Felső 30%-ra"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Alsó teljes képernyőre"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Osztás a képernyő bal oldalán"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Osztás a képernyő jobb oldalán"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Osztás a képernyő tetején"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Osztás alul"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Egykezes mód használata"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"A kilépéshez csúsztasson felfelé a képernyő aljáról, vagy koppintson az alkalmazás felett a képernyő bármelyik részére"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Egykezes mód indítása"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Bezárás"</string>
<string name="back_button_text" msgid="1469718707134137085">"Vissza"</string>
<string name="handle_text" msgid="1766582106752184456">"Fogópont"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Teljes képernyő"</string>
<string name="desktop_text" msgid="1077633567027630454">"Asztali üzemmód"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Osztott képernyő"</string>
<string name="more_button_text" msgid="3655388105592893530">"Továbbiak"</string>
<string name="float_button_text" msgid="9221657008391364581">"Lebegő"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-hy/strings.xml b/libs/WindowManager/Shell/res/values-hy/strings.xml
index 4538cec..bd35084 100644
--- a/libs/WindowManager/Shell/res/values-hy/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hy/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Վերևի էկրանը՝ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Վերևի էկրանը՝ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Ներքևի էկրանը՝ լիաէկրան"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Հավելվածը ձախ կողմում"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Հավելվածը աջ կողմում"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Հավելվածը վերևում"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Հավելվածը ներքևում"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Ինչպես օգտվել մեկ ձեռքի ռեժիմից"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Դուրս գալու համար մատը սահեցրեք էկրանի ներքևից վերև կամ հպեք հավելվածի վերևում որևէ տեղ։"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Գործարկել մեկ ձեռքի ռեժիմը"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Փակել"</string>
<string name="back_button_text" msgid="1469718707134137085">"Հետ"</string>
<string name="handle_text" msgid="1766582106752184456">"Նշիչ"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Լիաէկրան"</string>
<string name="desktop_text" msgid="1077633567027630454">"Համակարգչի ռեժիմ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Տրոհված էկրան"</string>
<string name="more_button_text" msgid="3655388105592893530">"Ավելին"</string>
<string name="float_button_text" msgid="9221657008391364581">"Լողացող պատուհան"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-in/strings.xml b/libs/WindowManager/Shell/res/values-in/strings.xml
index 6880d53..6f859ed 100644
--- a/libs/WindowManager/Shell/res/values-in/strings.xml
+++ b/libs/WindowManager/Shell/res/values-in/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Atas 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Atas 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Layar penuh di bawah"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Pisahkan ke kiri"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Pisahkan ke kanan"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Pisahkan ke atas"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Pisahkan ke bawah"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Menggunakan mode satu tangan"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Untuk keluar, geser layar dari bawah ke atas atau ketuk di mana saja di atas aplikasi"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Mulai mode satu tangan"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Tutup"</string>
<string name="back_button_text" msgid="1469718707134137085">"Kembali"</string>
<string name="handle_text" msgid="1766582106752184456">"Tuas"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Layar Penuh"</string>
<string name="desktop_text" msgid="1077633567027630454">"Mode Desktop"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Layar Terpisah"</string>
<string name="more_button_text" msgid="3655388105592893530">"Lainnya"</string>
<string name="float_button_text" msgid="9221657008391364581">"Mengambang"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-is/strings.xml b/libs/WindowManager/Shell/res/values-is/strings.xml
index 23c93a3..b17abf5 100644
--- a/libs/WindowManager/Shell/res/values-is/strings.xml
+++ b/libs/WindowManager/Shell/res/values-is/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Efri 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Efri 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Neðri á öllum skjánum"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Skipta vinstra megin"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Skipta hægra megin"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Skipta efst"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Skipta neðst"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Notkun einhentrar stillingar"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Til að loka skaltu strjúka upp frá neðri hluta skjásins eða ýta hvar sem er fyrir ofan forritið"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Ræsa einhenta stillingu"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Loka"</string>
<string name="back_button_text" msgid="1469718707134137085">"Til baka"</string>
<string name="handle_text" msgid="1766582106752184456">"Handfang"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Allur skjárinn"</string>
<string name="desktop_text" msgid="1077633567027630454">"Skjáborðsstilling"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Skjáskipting"</string>
<string name="more_button_text" msgid="3655388105592893530">"Meira"</string>
<string name="float_button_text" msgid="9221657008391364581">"Reikult"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-it/strings.xml b/libs/WindowManager/Shell/res/values-it/strings.xml
index ece92cf..28e274b 100644
--- a/libs/WindowManager/Shell/res/values-it/strings.xml
+++ b/libs/WindowManager/Shell/res/values-it/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Schermata superiore al 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Schermata superiore al 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Schermata inferiore a schermo intero"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Dividi a sinistra"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Dividi a destra"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Dividi in alto"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Dividi in basso"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Usare la modalità a una mano"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Per uscire, scorri verso l\'alto dalla parte inferiore dello schermo oppure tocca un punto qualsiasi sopra l\'app"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Avvia la modalità a una mano"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Chiudi"</string>
<string name="back_button_text" msgid="1469718707134137085">"Indietro"</string>
<string name="handle_text" msgid="1766582106752184456">"Handle"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Schermo intero"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modalità desktop"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Schermo diviso"</string>
<string name="more_button_text" msgid="3655388105592893530">"Altro"</string>
<string name="float_button_text" msgid="9221657008391364581">"Mobile"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-iw/strings.xml b/libs/WindowManager/Shell/res/values-iw/strings.xml
index 948137f..497e0b0 100644
--- a/libs/WindowManager/Shell/res/values-iw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-iw/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"עליון 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"למעלה 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"מסך תחתון מלא"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"פיצול שמאלה"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"פיצול ימינה"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"פיצול למעלה"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"פיצול למטה"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"איך להשתמש בתכונה \'מצב שימוש ביד אחת\'"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"כדי לצאת, יש להחליק למעלה מתחתית המסך או להקיש במקום כלשהו במסך מעל האפליקציה"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"הפעלה של מצב שימוש ביד אחת"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"סגירה"</string>
<string name="back_button_text" msgid="1469718707134137085">"חזרה"</string>
<string name="handle_text" msgid="1766582106752184456">"נקודת אחיזה"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"מסך מלא"</string>
<string name="desktop_text" msgid="1077633567027630454">"ממשק המחשב"</string>
<string name="split_screen_text" msgid="1396336058129570886">"מסך מפוצל"</string>
<string name="more_button_text" msgid="3655388105592893530">"עוד"</string>
<string name="float_button_text" msgid="9221657008391364581">"בלונים"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ja/strings.xml b/libs/WindowManager/Shell/res/values-ja/strings.xml
index 9fdb861..7f7cd94 100644
--- a/libs/WindowManager/Shell/res/values-ja/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ja/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"上 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"上 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"下部全画面"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"左に分割"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"右に分割"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"上に分割"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"下に分割"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"片手モードの使用"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"終了するには、画面を下から上にスワイプするか、アプリの任意の場所をタップします"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"片手モードを開始します"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"閉じる"</string>
<string name="back_button_text" msgid="1469718707134137085">"戻る"</string>
<string name="handle_text" msgid="1766582106752184456">"ハンドル"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"全画面表示"</string>
<string name="desktop_text" msgid="1077633567027630454">"デスクトップ モード"</string>
<string name="split_screen_text" msgid="1396336058129570886">"分割画面"</string>
<string name="more_button_text" msgid="3655388105592893530">"その他"</string>
<string name="float_button_text" msgid="9221657008391364581">"フローティング"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ka/strings.xml b/libs/WindowManager/Shell/res/values-ka/strings.xml
index d827f19..deec26d 100644
--- a/libs/WindowManager/Shell/res/values-ka/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ka/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ზედა ეკრანი — 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ზედა ეკრანი — 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"ქვედა ნაწილის სრულ ეკრანზე გაშლა"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"გაყოფა მარცხნივ"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"გაყოფა მარჯვნივ"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"გაყოფა ზემოთ"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"გაყოფა ქვემოთ"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ცალი ხელის რეჟიმის გამოყენება"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"გასასვლელად გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ ან შეეხეთ ნებისმიერ ადგილას აპის ზემოთ"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ცალი ხელის რეჟიმის დაწყება"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"დახურვა"</string>
<string name="back_button_text" msgid="1469718707134137085">"უკან"</string>
<string name="handle_text" msgid="1766582106752184456">"იდენტიფიკატორი"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"სრულ ეკრანზე"</string>
<string name="desktop_text" msgid="1077633567027630454">"დესკტოპის რეჟიმი"</string>
<string name="split_screen_text" msgid="1396336058129570886">"ეკრანის გაყოფა"</string>
<string name="more_button_text" msgid="3655388105592893530">"სხვა"</string>
<string name="float_button_text" msgid="9221657008391364581">"ფარფატი"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-kk/strings.xml b/libs/WindowManager/Shell/res/values-kk/strings.xml
index b0b0375..d429ba9 100644
--- a/libs/WindowManager/Shell/res/values-kk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kk/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% жоғарғы жақта"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30% жоғарғы жақта"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Төменгісін толық экранға шығару"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Сол жақтан шығару"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Оң жақтан шығару"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Жоғарыдан шығару"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Астынан шығару"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Бір қолмен енгізу режимін пайдалану"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Шығу үшін экранның төменгі жағынан жоғары қарай сырғытыңыз немесе қолданбаның үстінен кез келген жерден түртіңіз."</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Бір қолмен енгізу режимін іске қосу"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Жабу"</string>
<string name="back_button_text" msgid="1469718707134137085">"Артқа"</string>
<string name="handle_text" msgid="1766582106752184456">"Идентификатор"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Толық экран"</string>
<string name="desktop_text" msgid="1077633567027630454">"Компьютер режимі"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Экранды бөлу"</string>
<string name="more_button_text" msgid="3655388105592893530">"Қосымша"</string>
<string name="float_button_text" msgid="9221657008391364581">"Қалқыма"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-km/strings.xml b/libs/WindowManager/Shell/res/values-km/strings.xml
index 3783067..bfcf40b 100644
--- a/libs/WindowManager/Shell/res/values-km/strings.xml
+++ b/libs/WindowManager/Shell/res/values-km/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ខាងលើ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ខាងលើ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"អេក្រង់ពេញខាងក្រោម"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"បំបែកខាងឆ្វេង"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"បំបែកខាងស្ដាំ"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"បំបែកខាងលើ"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"បំបែកខាងក្រោម"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"កំពុងប្រើមុខងារប្រើដៃម្ខាង"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"ដើម្បីចាកចេញ សូមអូសឡើងលើពីផ្នែកខាងក្រោមអេក្រង់ ឬចុចផ្នែកណាមួយនៅខាងលើកម្មវិធី"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ចាប់ផ្ដើមមុខងារប្រើដៃម្ខាង"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"បិទ"</string>
<string name="back_button_text" msgid="1469718707134137085">"ថយក្រោយ"</string>
<string name="handle_text" msgid="1766582106752184456">"ឈ្មោះអ្នកប្រើប្រាស់"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"អេក្រង់ពេញ"</string>
<string name="desktop_text" msgid="1077633567027630454">"មុខងារកុំព្យូទ័រ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"មុខងារបំបែកអេក្រង់"</string>
<string name="more_button_text" msgid="3655388105592893530">"ច្រើនទៀត"</string>
<string name="float_button_text" msgid="9221657008391364581">"អណ្ដែត"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-kn/strings.xml b/libs/WindowManager/Shell/res/values-kn/strings.xml
index 45fd76f..9d2515c 100644
--- a/libs/WindowManager/Shell/res/values-kn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kn/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% ಮೇಲಕ್ಕೆ"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30% ಮೇಲಕ್ಕೆ"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"ಕೆಳಗಿನ ಪೂರ್ಣ ಪರದೆ"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ಎಡಕ್ಕೆ ವಿಭಜಿಸಿ"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"ಬಲಕ್ಕೆ ವಿಭಜಿಸಿ"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ಮೇಲಕ್ಕೆ ವಿಭಜಿಸಿ"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"ಕೆಳಕ್ಕೆ ವಿಭಜಿಸಿ"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ಒಂದು ಕೈ ಮೋಡ್ ಬಳಸುವುದರ ಬಗ್ಗೆ"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"ನಿರ್ಗಮಿಸಲು, ಸ್ಕ್ರೀನ್ನ ಕೆಳಗಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಅಥವಾ ಆ್ಯಪ್ನ ಮೇಲೆ ಎಲ್ಲಿಯಾದರೂ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ಒಂದು ಕೈ ಮೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"ಮುಚ್ಚಿರಿ"</string>
<string name="back_button_text" msgid="1469718707134137085">"ಹಿಂದಕ್ಕೆ"</string>
<string name="handle_text" msgid="1766582106752184456">"ಹ್ಯಾಂಡಲ್"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ಫುಲ್ಸ್ಕ್ರೀನ್"</string>
<string name="desktop_text" msgid="1077633567027630454">"ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್"</string>
<string name="split_screen_text" msgid="1396336058129570886">"ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್"</string>
<string name="more_button_text" msgid="3655388105592893530">"ಇನ್ನಷ್ಟು"</string>
<string name="float_button_text" msgid="9221657008391364581">"ಫ್ಲೋಟ್"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ko/strings.xml b/libs/WindowManager/Shell/res/values-ko/strings.xml
index 0ee1feb..55007fc 100644
--- a/libs/WindowManager/Shell/res/values-ko/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ko/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"위쪽 화면 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"위쪽 화면 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"아래쪽 화면 전체화면"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"왼쪽으로 분할"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"오른쪽으로 분할"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"위쪽으로 분할"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"아래쪽으로 분할"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"한 손 사용 모드 사용하기"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"화면 하단에서 위로 스와이프하거나 앱 상단을 탭하여 종료합니다."</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"한 손 사용 모드 시작"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"닫기"</string>
<string name="back_button_text" msgid="1469718707134137085">"뒤로"</string>
<string name="handle_text" msgid="1766582106752184456">"핸들"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"전체 화면"</string>
<string name="desktop_text" msgid="1077633567027630454">"데스크톱 모드"</string>
<string name="split_screen_text" msgid="1396336058129570886">"화면 분할"</string>
<string name="more_button_text" msgid="3655388105592893530">"더보기"</string>
<string name="float_button_text" msgid="9221657008391364581">"플로팅"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ky/strings.xml b/libs/WindowManager/Shell/res/values-ky/strings.xml
index 6798f49..9691dba 100644
--- a/libs/WindowManager/Shell/res/values-ky/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ky/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Үстүнкү экранды 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Үстүнкү экранды 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Ылдыйкы экранды толук экран режимине өткөрүү"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Солго бөлүү"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Оңго бөлүү"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Өйдө бөлүү"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Ылдый бөлүү"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Бир кол режимин колдонуу"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Чыгуу үчүн экранды ылдый жагынан өйдө сүрүңүз же колдонмонун өйдө жагын басыңыз"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Бир кол режимин баштоо"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Жабуу"</string>
<string name="back_button_text" msgid="1469718707134137085">"Артка"</string>
<string name="handle_text" msgid="1766582106752184456">"Маркер"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Толук экран"</string>
<string name="desktop_text" msgid="1077633567027630454">"Компьютер режими"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Экранды бөлүү"</string>
<string name="more_button_text" msgid="3655388105592893530">"Дагы"</string>
<string name="float_button_text" msgid="9221657008391364581">"Калкыма"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-lo/strings.xml b/libs/WindowManager/Shell/res/values-lo/strings.xml
index b758c0c..678e085 100644
--- a/libs/WindowManager/Shell/res/values-lo/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lo/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ເທິງສຸດ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ເທິງສຸດ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"ເຕັມໜ້າຈໍລຸ່ມສຸດ"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ແຍກຊ້າຍ"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"ແຍກຂວາ"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ແຍກເທິງ"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"ແຍກລຸ່ມ"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ກຳລັງໃຊ້ໂໝດມືດຽວ"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"ເພື່ອອອກ, ໃຫ້ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍ ຫຼື ແຕະບ່ອນໃດກໍໄດ້ຢູ່ເໜືອແອັບ"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ເລີ່ມໂໝດມືດຽວ"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"ປິດ"</string>
<string name="back_button_text" msgid="1469718707134137085">"ກັບຄືນ"</string>
<string name="handle_text" msgid="1766582106752184456">"ມືບັງຄັບ"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ເຕັມຈໍ"</string>
<string name="desktop_text" msgid="1077633567027630454">"ໂໝດເດັສທັອບ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"ແບ່ງໜ້າຈໍ"</string>
<string name="more_button_text" msgid="3655388105592893530">"ເພີ່ມເຕີມ"</string>
<string name="float_button_text" msgid="9221657008391364581">"ລອຍ"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-lt/strings.xml b/libs/WindowManager/Shell/res/values-lt/strings.xml
index 84f4264..f8a2a0f 100644
--- a/libs/WindowManager/Shell/res/values-lt/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lt/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Viršutinis ekranas 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Viršutinis ekranas 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Apatinis ekranas viso ekrano režimu"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Išskaidyti kairėn"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Išskaidyti dešinėn"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Išskaidyti viršuje"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Išskaidyti apačioje"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Vienos rankos režimo naudojimas"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Jei norite išeiti, perbraukite aukštyn nuo ekrano apačios arba palieskite bet kur virš programos"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Pradėti vienos rankos režimą"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Uždaryti"</string>
<string name="back_button_text" msgid="1469718707134137085">"Atgal"</string>
<string name="handle_text" msgid="1766582106752184456">"Rankenėlė"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Visas ekranas"</string>
<string name="desktop_text" msgid="1077633567027630454">"Stalinio kompiuterio režimas"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Išskaidyto ekrano režimas"</string>
<string name="more_button_text" msgid="3655388105592893530">"Daugiau"</string>
<string name="float_button_text" msgid="9221657008391364581">"Slankusis langas"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-lv/strings.xml b/libs/WindowManager/Shell/res/values-lv/strings.xml
index bac75e3..d14bb67 100644
--- a/libs/WindowManager/Shell/res/values-lv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lv/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Augšdaļa 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Augšdaļa 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Apakšdaļu pa visu ekrānu"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Sadalījums pa kreisi"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Sadalījums pa labi"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Sadalījums augšdaļā"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Sadalījums apakšdaļā"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Vienas rokas režīma izmantošana"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Lai izietu, velciet augšup no ekrāna apakšdaļas vai pieskarieties jebkurā vietā virs lietotnes"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Pāriet vienas rokas režīmā"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Aizvērt"</string>
<string name="back_button_text" msgid="1469718707134137085">"Atpakaļ"</string>
<string name="handle_text" msgid="1766582106752184456">"Turis"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Pilnekrāna režīms"</string>
<string name="desktop_text" msgid="1077633567027630454">"Darbvirsmas režīms"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Sadalīt ekrānu"</string>
<string name="more_button_text" msgid="3655388105592893530">"Vairāk"</string>
<string name="float_button_text" msgid="9221657008391364581">"Peldošs"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-mk/strings.xml b/libs/WindowManager/Shell/res/values-mk/strings.xml
index b96f8a1..45aeb7f 100644
--- a/libs/WindowManager/Shell/res/values-mk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mk/strings.xml
@@ -100,9 +100,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Затвори"</string>
<string name="back_button_text" msgid="1469718707134137085">"Назад"</string>
<string name="handle_text" msgid="1766582106752184456">"Прекар"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Цел екран"</string>
<string name="desktop_text" msgid="1077633567027630454">"Режим за компјутер"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Поделен екран"</string>
<string name="more_button_text" msgid="3655388105592893530">"Повеќе"</string>
<string name="float_button_text" msgid="9221657008391364581">"Лебдечко"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ml/strings.xml b/libs/WindowManager/Shell/res/values-ml/strings.xml
index f67e7ab..ca5f0f7 100644
--- a/libs/WindowManager/Shell/res/values-ml/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ml/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"മുകളിൽ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"മുകളിൽ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"താഴെ പൂർണ്ണ സ്ക്രീൻ"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ഇടത് ഭാഗത്തേക്ക് വിഭജിക്കുക"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"വലത് ഭാഗത്തേക്ക് വിഭജിക്കുക"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"മുകളിലേക്ക് വിഭജിക്കുക"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"താഴേക്ക് വിഭജിക്കുക"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ഒറ്റക്കൈ മോഡ് എങ്ങനെ ഉപയോഗിക്കാം"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"പുറത്ത് കടക്കാൻ, സ്ക്രീനിന്റെ ചുവടെ നിന്ന് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക അല്ലെങ്കിൽ ആപ്പിന് മുകളിലായി എവിടെയെങ്കിലും ടാപ്പ് ചെയ്യുക"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ഒറ്റക്കൈ മോഡ് ആരംഭിച്ചു"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"അടയ്ക്കുക"</string>
<string name="back_button_text" msgid="1469718707134137085">"മടങ്ങുക"</string>
<string name="handle_text" msgid="1766582106752184456">"ഹാൻഡിൽ"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"പൂർണ്ണസ്ക്രീൻ"</string>
<string name="desktop_text" msgid="1077633567027630454">"ഡെസ്ക്ടോപ്പ് മോഡ്"</string>
<string name="split_screen_text" msgid="1396336058129570886">"സ്ക്രീൻ വിഭജനം"</string>
<string name="more_button_text" msgid="3655388105592893530">"കൂടുതൽ"</string>
<string name="float_button_text" msgid="9221657008391364581">"ഫ്ലോട്ട്"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-mn/strings.xml b/libs/WindowManager/Shell/res/values-mn/strings.xml
index 00846ef..9678c5c7 100644
--- a/libs/WindowManager/Shell/res/values-mn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mn/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Дээд 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Дээд 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Доод бүтэн дэлгэц"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Зүүн талд хуваах"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Баруун талд хуваах"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Дээд талд хуваах"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Доод талд хуваах"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Нэг гарын горимыг ашиглаж байна"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Гарахын тулд дэлгэцийн доод хэсгээс дээш шударч эсвэл апп дээр хүссэн газраа товшино уу"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Нэг гарын горимыг эхлүүлэх"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Хаах"</string>
<string name="back_button_text" msgid="1469718707134137085">"Буцах"</string>
<string name="handle_text" msgid="1766582106752184456">"Бариул"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Бүтэн дэлгэц"</string>
<string name="desktop_text" msgid="1077633567027630454">"Дэлгэцийн горим"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Дэлгэцийг хуваах"</string>
<string name="more_button_text" msgid="3655388105592893530">"Бусад"</string>
<string name="float_button_text" msgid="9221657008391364581">"Хөвөгч"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-mr/strings.xml b/libs/WindowManager/Shell/res/values-mr/strings.xml
index 888e8dd..ea728e8 100644
--- a/libs/WindowManager/Shell/res/values-mr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mr/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"शीर्ष 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"शीर्ष 10"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"तळाशी फुल स्क्रीन"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"डावीकडे स्प्लिट करा"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"उजवीकडे स्प्लिट करा"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"सर्वात वरती स्प्लिट करा"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"खालती स्प्लिट करा"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"एकहाती मोड वापरणे"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"बाहेर पडण्यासाठी स्क्रीनच्या खालून वरच्या दिशेने स्वाइप करा किंवा ॲपवर कोठेही टॅप करा"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"एकहाती मोड सुरू करा"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"बंद करा"</string>
<string name="back_button_text" msgid="1469718707134137085">"मागे जा"</string>
<string name="handle_text" msgid="1766582106752184456">"हँडल"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"फुलस्क्रीन"</string>
<string name="desktop_text" msgid="1077633567027630454">"डेस्कटॉप मोड"</string>
<string name="split_screen_text" msgid="1396336058129570886">"स्प्लिट स्क्रीन"</string>
<string name="more_button_text" msgid="3655388105592893530">"आणखी"</string>
<string name="float_button_text" msgid="9221657008391364581">"फ्लोट"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ms/strings.xml b/libs/WindowManager/Shell/res/values-ms/strings.xml
index d4a659b..8a9b81c 100644
--- a/libs/WindowManager/Shell/res/values-ms/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ms/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Atas 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Atas 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Skrin penuh bawah"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Pisah kiri"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Pisah kanan"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Pisah atas"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Pisah bawah"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Menggunakan mod sebelah tangan"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Untuk keluar, leret ke atas daripada bahagian bawah skrin atau ketik pada mana-mana di bahagian atas apl"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Mulakan mod sebelah tangan"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Tutup"</string>
<string name="back_button_text" msgid="1469718707134137085">"Kembali"</string>
<string name="handle_text" msgid="1766582106752184456">"Pemegang"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Skrin penuh"</string>
<string name="desktop_text" msgid="1077633567027630454">"Mod Desktop"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Skrin Pisah"</string>
<string name="more_button_text" msgid="3655388105592893530">"Lagi"</string>
<string name="float_button_text" msgid="9221657008391364581">"Terapung"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-my/strings.xml b/libs/WindowManager/Shell/res/values-my/strings.xml
index 6f8b3c7..b37bfa7 100644
--- a/libs/WindowManager/Shell/res/values-my/strings.xml
+++ b/libs/WindowManager/Shell/res/values-my/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"အပေါ်ဘက် မျက်နှာပြင် ၅၀%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"အပေါ်ဘက် မျက်နှာပြင် ၃၀%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"အောက်ခြေ မျက်နှာပြင်အပြည့်"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ဘယ်ဘက်ကို ခွဲရန်"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"ညာဘက်ကို ခွဲရန်"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ထိပ်ပိုင်းကို ခွဲရန်"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"အောက်ခြေကို ခွဲရန်"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"လက်တစ်ဖက်သုံးမုဒ် အသုံးပြုခြင်း"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"ထွက်ရန် ဖန်သားပြင်၏အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ သို့မဟုတ် အက်ပ်အပေါ်ဘက် မည်သည့်နေရာတွင်မဆို တို့ပါ"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"လက်တစ်ဖက်သုံးမုဒ်ကို စတင်လိုက်သည်"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"ပိတ်ရန်"</string>
<string name="back_button_text" msgid="1469718707134137085">"နောက်သို့"</string>
<string name="handle_text" msgid="1766582106752184456">"သုံးသူအမည်"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ဖန်သားပြင်အပြည့်"</string>
<string name="desktop_text" msgid="1077633567027630454">"ဒက်စ်တော့မုဒ်"</string>
<string name="split_screen_text" msgid="1396336058129570886">"မျက်နှာပြင် ခွဲ၍ပြသရန်"</string>
<string name="more_button_text" msgid="3655388105592893530">"ပိုပြပါ"</string>
<string name="float_button_text" msgid="9221657008391364581">"မျှောရန်"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-nb/strings.xml b/libs/WindowManager/Shell/res/values-nb/strings.xml
index 1ea3907..7c96f0d 100644
--- a/libs/WindowManager/Shell/res/values-nb/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nb/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Sett størrelsen på den øverste delen av skjermen til 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Sett størrelsen på den øverste delen av skjermen til 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Utvid den nederste delen av skjermen til hele skjermen"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Del opp til venstre"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Del opp til høyre"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Del opp øverst"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Del opp nederst"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Bruk av enhåndsmodus"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"For å avslutte, sveip opp fra bunnen av skjermen eller trykk hvor som helst over appen"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Start enhåndsmodus"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Lukk"</string>
<string name="back_button_text" msgid="1469718707134137085">"Tilbake"</string>
<string name="handle_text" msgid="1766582106752184456">"Håndtak"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Fullskjerm"</string>
<string name="desktop_text" msgid="1077633567027630454">"Skrivebordmodus"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Delt skjerm"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mer"</string>
<string name="float_button_text" msgid="9221657008391364581">"Svevende"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ne/strings.xml b/libs/WindowManager/Shell/res/values-ne/strings.xml
index fd3485c..8a89d4c 100644
--- a/libs/WindowManager/Shell/res/values-ne/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ne/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"माथिल्लो भाग ५०%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"माथिल्लो भाग ३०%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"तल्लो भाग फुल स्क्रिन"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"बायाँतिर स्प्लिट गर्नुहोस्"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"दायाँतिर स्प्लिट गर्नुहोस्"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"सिरानतिर स्प्लिट गर्नुहोस्"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"पुछारतिर स्प्लिट गर्नुहोस्"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"एक हाते मोड प्रयोग गरिँदै छ"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"बाहिर निस्कन, स्क्रिनको पुछारबाट माथितिर स्वाइप गर्नुहोस् वा एपभन्दा माथि जुनसुकै ठाउँमा ट्याप गर्नुहोस्"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"एक हाते मोड सुरु गर्नुहोस्"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"बन्द गर्नुहोस्"</string>
<string name="back_button_text" msgid="1469718707134137085">"पछाडि"</string>
<string name="handle_text" msgid="1766582106752184456">"ह्यान्डल"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"फुल स्क्रिन"</string>
<string name="desktop_text" msgid="1077633567027630454">"डेस्कटप मोड"</string>
<string name="split_screen_text" msgid="1396336058129570886">"स्प्लिट स्क्रिन"</string>
<string name="more_button_text" msgid="3655388105592893530">"थप"</string>
<string name="float_button_text" msgid="9221657008391364581">"फ्लोट"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-nl/strings.xml b/libs/WindowManager/Shell/res/values-nl/strings.xml
index c3ab297..1f0b6d2 100644
--- a/libs/WindowManager/Shell/res/values-nl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nl/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Bovenste scherm 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Bovenste scherm 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Onderste scherm op volledig scherm"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Gesplitst scherm links"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Gesplitst scherm rechts"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Gesplitst scherm boven"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Gesplitst scherm onder"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Bediening met 1 hand gebruiken"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Als je wilt afsluiten, swipe je omhoog vanaf de onderkant van het scherm of tik je ergens boven de app"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Bediening met 1 hand starten"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Sluiten"</string>
<string name="back_button_text" msgid="1469718707134137085">"Terug"</string>
<string name="handle_text" msgid="1766582106752184456">"Gebruikersnaam"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Volledig scherm"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktopmodus"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Gesplitst scherm"</string>
<string name="more_button_text" msgid="3655388105592893530">"Meer"</string>
<string name="float_button_text" msgid="9221657008391364581">"Zwevend"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-or/strings.xml b/libs/WindowManager/Shell/res/values-or/strings.xml
index 90c90d3..edfe3f0 100644
--- a/libs/WindowManager/Shell/res/values-or/strings.xml
+++ b/libs/WindowManager/Shell/res/values-or/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ଉପର ଆଡ଼କୁ 50% କରନ୍ତୁ"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ଉପର ଆଡ଼କୁ 30% କରନ୍ତୁ"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"ତଳ ଅଂଶର ପୂର୍ଣ୍ଣ ସ୍କ୍ରୀନ୍"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ବାମପଟକୁ ସ୍ପ୍ଲିଟ କରନ୍ତୁ"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"ଡାହାଣପଟକୁ ସ୍ପ୍ଲିଟ କରନ୍ତୁ"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ଶୀର୍ଷକୁ ସ୍ପ୍ଲିଟ କରନ୍ତୁ"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"ନିମ୍ନକୁ ସ୍ଲିଟ କରନ୍ତୁ"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ଏକ-ହାତ ମୋଡ୍ ବ୍ୟବହାର କରି"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"ବାହାରି ଯିବା ପାଇଁ, ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ କିମ୍ବା ଆପରେ ଯେ କୌଣସି ସ୍ଥାନରେ ଟାପ୍ କରନ୍ତୁ"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ଏକ-ହାତ ମୋଡ୍ ଆରମ୍ଭ କରନ୍ତୁ"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="back_button_text" msgid="1469718707134137085">"ପଛକୁ ଫେରନ୍ତୁ"</string>
<string name="handle_text" msgid="1766582106752184456">"ହେଣ୍ଡେଲ"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ପୂର୍ଣ୍ଣସ୍କ୍ରିନ"</string>
<string name="desktop_text" msgid="1077633567027630454">"ଡେସ୍କଟପ ମୋଡ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ"</string>
<string name="more_button_text" msgid="3655388105592893530">"ଅଧିକ"</string>
<string name="float_button_text" msgid="9221657008391364581">"ଫ୍ଲୋଟ"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-pa/strings.xml b/libs/WindowManager/Shell/res/values-pa/strings.xml
index b27e034..8c2ad22 100644
--- a/libs/WindowManager/Shell/res/values-pa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pa/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ਉੱਪਰ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ਉੱਪਰ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"ਹੇਠਾਂ ਪੂਰੀ ਸਕ੍ਰੀਨ"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ਖੱਬੇ ਪਾਸੇ ਵੰਡੋ"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"ਸੱਜੇ ਪਾਸੇ ਵੰਡੋ"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ਸਿਖਰ \'ਤੇ ਵੰਡੋ"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"ਹੇਠਾਂ ਵੰਡੋ"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ਇੱਕ ਹੱਥ ਮੋਡ ਵਰਤਣਾ"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"ਬਾਹਰ ਜਾਣ ਲਈ, ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ ਜਾਂ ਐਪ \'ਤੇ ਕਿਤੇ ਵੀ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ਇੱਕ ਹੱਥ ਮੋਡ ਸ਼ੁਰੂ ਕਰੋ"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"ਬੰਦ ਕਰੋ"</string>
<string name="back_button_text" msgid="1469718707134137085">"ਪਿੱਛੇ"</string>
<string name="handle_text" msgid="1766582106752184456">"ਹੈਂਡਲ"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ਪੂਰੀ-ਸਕ੍ਰੀਨ"</string>
<string name="desktop_text" msgid="1077633567027630454">"ਡੈਸਕਟਾਪ ਮੋਡ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ"</string>
<string name="more_button_text" msgid="3655388105592893530">"ਹੋਰ"</string>
<string name="float_button_text" msgid="9221657008391364581">"ਫ਼ਲੋਟ"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-pl/strings.xml b/libs/WindowManager/Shell/res/values-pl/strings.xml
index 6d00aaa..191f6de 100644
--- a/libs/WindowManager/Shell/res/values-pl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pl/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% górnej części ekranu"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30% górnej części ekranu"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Dolna część ekranu na pełnym ekranie"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Podziel po lewej"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Podziel po prawej"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Podziel u góry"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Podziel u dołu"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Korzystanie z trybu jednej ręki"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Aby zamknąć, przesuń palcem z dołu ekranu w górę lub kliknij dowolne miejsce nad aplikacją"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Uruchom tryb jednej ręki"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Zamknij"</string>
<string name="back_button_text" msgid="1469718707134137085">"Wstecz"</string>
<string name="handle_text" msgid="1766582106752184456">"Uchwyt"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Pełny ekran"</string>
<string name="desktop_text" msgid="1077633567027630454">"Tryb pulpitu"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Podzielony ekran"</string>
<string name="more_button_text" msgid="3655388105592893530">"Więcej"</string>
<string name="float_button_text" msgid="9221657008391364581">"Pływające"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
index b2f3121..82409f4 100644
--- a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Parte superior a 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Parte superior a 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Parte inferior em tela cheia"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Dividir para a esquerda"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Dividir para a direita"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Dividir para cima"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Dividir para baixo"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Como usar o modo para uma mão"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Para sair, deslize de baixo para cima na tela ou toque em qualquer lugar acima do app"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Iniciar o modo para uma mão"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Fechar"</string>
<string name="back_button_text" msgid="1469718707134137085">"Voltar"</string>
<string name="handle_text" msgid="1766582106752184456">"Alça"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Tela cheia"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modo área de trabalho"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Tela dividida"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mais"</string>
<string name="float_button_text" msgid="9221657008391364581">"Ponto flutuante"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
index 3f3be4b..f33a0ec 100644
--- a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% no ecrã superior"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"30% no ecrã superior"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Ecrã inferior inteiro"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Divisão à esquerda"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Divisão à direita"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Divisão na parte superior"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Divisão na parte inferior"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Utilize o modo para uma mão"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Para sair, deslize rapidamente para cima a partir da parte inferior do ecrã ou toque em qualquer ponto acima da app."</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Iniciar o modo para uma mão"</string>
@@ -100,9 +96,14 @@
<string name="close_button_text" msgid="2913281996024033299">"Fechar"</string>
<string name="back_button_text" msgid="1469718707134137085">"Anterior"</string>
<string name="handle_text" msgid="1766582106752184456">"Indicador"</string>
+ <string name="app_icon_text" msgid="2823268023931811747">"Ícone da app"</string>
<string name="fullscreen_text" msgid="1162316685217676079">"Ecrã inteiro"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modo de ambiente de trabalho"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Ecrã dividido"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mais"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flutuar"</string>
+ <string name="select_text" msgid="5139083974039906583">"Selecionar"</string>
+ <string name="screenshot_text" msgid="1477704010087786671">"Captura de ecrã"</string>
+ <string name="close_text" msgid="4986518933445178928">"Fechar"</string>
+ <string name="collapse_menu_text" msgid="7515008122450342029">"Fechar menu"</string>
</resources>
diff --git a/libs/WindowManager/Shell/res/values-pt/strings.xml b/libs/WindowManager/Shell/res/values-pt/strings.xml
index b2f3121..82409f4 100644
--- a/libs/WindowManager/Shell/res/values-pt/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Parte superior a 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Parte superior a 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Parte inferior em tela cheia"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Dividir para a esquerda"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Dividir para a direita"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Dividir para cima"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Dividir para baixo"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Como usar o modo para uma mão"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Para sair, deslize de baixo para cima na tela ou toque em qualquer lugar acima do app"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Iniciar o modo para uma mão"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Fechar"</string>
<string name="back_button_text" msgid="1469718707134137085">"Voltar"</string>
<string name="handle_text" msgid="1766582106752184456">"Alça"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Tela cheia"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modo área de trabalho"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Tela dividida"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mais"</string>
<string name="float_button_text" msgid="9221657008391364581">"Ponto flutuante"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ro/strings.xml b/libs/WindowManager/Shell/res/values-ro/strings.xml
index 402ef6b..29297f4 100644
--- a/libs/WindowManager/Shell/res/values-ro/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ro/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Partea de sus: 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Partea de sus: 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Partea de jos pe ecran complet"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Împarte în stânga"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Împarte în dreapta"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Împarte în sus"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Împarte în jos"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Folosirea modului cu o mână"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Pentru a ieși, glisează în sus din partea de jos a ecranului sau atinge oriunde deasupra ferestrei aplicației"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Activează modul cu o mână"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Închide"</string>
<string name="back_button_text" msgid="1469718707134137085">"Înapoi"</string>
<string name="handle_text" msgid="1766582106752184456">"Ghidaj"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Ecran complet"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modul desktop"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Ecran împărțit"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mai multe"</string>
<string name="float_button_text" msgid="9221657008391364581">"Flotantă"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ru/strings.xml b/libs/WindowManager/Shell/res/values-ru/strings.xml
index dd59545..de0bcf4 100644
--- a/libs/WindowManager/Shell/res/values-ru/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ru/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Верхний на 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Верхний на 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Нижний во весь экран"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Приложение слева"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Приложение справа"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Приложение сверху"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Приложение снизу"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Использование режима управления одной рукой"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Чтобы выйти, проведите по экрану снизу вверх или коснитесь области за пределами приложения."</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Запустить режим управления одной рукой"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Закрыть"</string>
<string name="back_button_text" msgid="1469718707134137085">"Назад"</string>
<string name="handle_text" msgid="1766582106752184456">"Маркер"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Полноэкранный режим"</string>
<string name="desktop_text" msgid="1077633567027630454">"Режим компьютера"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Разделить экран"</string>
<string name="more_button_text" msgid="3655388105592893530">"Ещё"</string>
<string name="float_button_text" msgid="9221657008391364581">"Плавающее окно"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-si/strings.xml b/libs/WindowManager/Shell/res/values-si/strings.xml
index 91342c4..849dbac 100644
--- a/libs/WindowManager/Shell/res/values-si/strings.xml
+++ b/libs/WindowManager/Shell/res/values-si/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ඉහළම 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ඉහළම 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"පහළ පූර්ණ තිරය"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"වම බෙදන්න"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"දකුණ බෙදන්න"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ඉහළ බෙදන්න"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"පහළ බෙදන්න"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"තනි-අත් ප්රකාරය භාවිත කරමින්"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"පිටවීමට, තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න හෝ යෙදුමට ඉහළින් ඕනෑම තැනක තට්ටු කරන්න"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"තනි අත් ප්රකාරය ආරම්භ කරන්න"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"වසන්න"</string>
<string name="back_button_text" msgid="1469718707134137085">"ආපසු"</string>
<string name="handle_text" msgid="1766582106752184456">"හැඬලය"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"පූර්ණ තිරය"</string>
<string name="desktop_text" msgid="1077633567027630454">"ඩෙස්ක්ටොප් ප්රකාරය"</string>
<string name="split_screen_text" msgid="1396336058129570886">"බෙදුම් තිරය"</string>
<string name="more_button_text" msgid="3655388105592893530">"තව"</string>
<string name="float_button_text" msgid="9221657008391364581">"පාවෙන"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-sk/strings.xml b/libs/WindowManager/Shell/res/values-sk/strings.xml
index b9199c2..e86ecde 100644
--- a/libs/WindowManager/Shell/res/values-sk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sk/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Horná – 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Horná – 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Dolná – na celú obrazovku"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Rozdeliť vľavo"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Rozdeliť vpravo"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Rozdeliť hore"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Rozdeliť dole"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Používanie režimu jednej ruky"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Ukončíte potiahnutím z dolnej časti obrazovky nahor alebo klepnutím kdekoľvek nad aplikáciu"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Spustiť režim jednej ruky"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Zavrieť"</string>
<string name="back_button_text" msgid="1469718707134137085">"Späť"</string>
<string name="handle_text" msgid="1766582106752184456">"Rukoväť"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Celá obrazovka"</string>
<string name="desktop_text" msgid="1077633567027630454">"Režim počítača"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Rozdelená obrazovka"</string>
<string name="more_button_text" msgid="3655388105592893530">"Viac"</string>
<string name="float_button_text" msgid="9221657008391364581">"Plávajúce"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-sl/strings.xml b/libs/WindowManager/Shell/res/values-sl/strings.xml
index 0fd44f0..954e729 100644
--- a/libs/WindowManager/Shell/res/values-sl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sl/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Zgornji 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Zgornji 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Spodnji v celozaslonski način"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Delitev levo"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Delitev desno"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Delitev zgoraj"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Delitev spodaj"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Uporaba enoročnega načina"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Za izhod povlecite z dna zaslona navzgor ali se dotaknite na poljubnem mestu nad aplikacijo"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Zagon enoročnega načina"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Zapri"</string>
<string name="back_button_text" msgid="1469718707134137085">"Nazaj"</string>
<string name="handle_text" msgid="1766582106752184456">"Ročica"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Celozaslonsko"</string>
<string name="desktop_text" msgid="1077633567027630454">"Namizni način"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Razdeljen zaslon"</string>
<string name="more_button_text" msgid="3655388105592893530">"Več"</string>
<string name="float_button_text" msgid="9221657008391364581">"Lebdeče"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-sq/strings.xml b/libs/WindowManager/Shell/res/values-sq/strings.xml
index 00e63d2..6209ff9 100644
--- a/libs/WindowManager/Shell/res/values-sq/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sq/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Lart 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Lart 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Ekrani i plotë poshtë"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Ndaj majtas"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Ndaj djathtas"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Ndaj lart"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Ndaj në fund"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Po përdor modalitetin e përdorimit me një dorë"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Për të dalë, rrëshqit lart nga fundi i ekranit ose trokit diku mbi aplikacion"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Modaliteti i përdorimit me një dorë"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Mbyll"</string>
<string name="back_button_text" msgid="1469718707134137085">"Pas"</string>
<string name="handle_text" msgid="1766582106752184456">"Emërtimi"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Ekrani i plotë"</string>
<string name="desktop_text" msgid="1077633567027630454">"Modaliteti i desktopit"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Ekrani i ndarë"</string>
<string name="more_button_text" msgid="3655388105592893530">"Më shumë"</string>
<string name="float_button_text" msgid="9221657008391364581">"Pluskuese"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-sr/strings.xml b/libs/WindowManager/Shell/res/values-sr/strings.xml
index d0f689c..f810d3d 100644
--- a/libs/WindowManager/Shell/res/values-sr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sr/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Горњи екран 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Горњи екран 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Режим целог екрана за доњи екран"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Поделите лево"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Поделите десно"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Поделите у врху"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Поделите у дну"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Коришћење режима једном руком"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Да бисте изашли, превуците нагоре од дна екрана или додирните било где изнад апликације"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Покрените режим једном руком"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Затворите"</string>
<string name="back_button_text" msgid="1469718707134137085">"Назад"</string>
<string name="handle_text" msgid="1766582106752184456">"Идентификатор"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Преко целог екрана"</string>
<string name="desktop_text" msgid="1077633567027630454">"Режим за рачунаре"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Подељени екран"</string>
<string name="more_button_text" msgid="3655388105592893530">"Још"</string>
<string name="float_button_text" msgid="9221657008391364581">"Плутајуће"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-sv/strings.xml b/libs/WindowManager/Shell/res/values-sv/strings.xml
index e3827d6..0e44871 100644
--- a/libs/WindowManager/Shell/res/values-sv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sv/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Övre 50 %"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Övre 30 %"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Helskärm på nedre skärm"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Till vänster på delad skärm"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Till höger på delad skärm"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Upptill på delad skärm"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Nedtill på delad skärm"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Använda enhandsläge"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Avsluta genom att svepa uppåt från skärmens nederkant eller trycka ovanför appen"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Starta enhandsläge"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Stäng"</string>
<string name="back_button_text" msgid="1469718707134137085">"Tillbaka"</string>
<string name="handle_text" msgid="1766582106752184456">"Handtag"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Helskärm"</string>
<string name="desktop_text" msgid="1077633567027630454">"Datorläge"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Delad skärm"</string>
<string name="more_button_text" msgid="3655388105592893530">"Mer"</string>
<string name="float_button_text" msgid="9221657008391364581">"Svävande"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-sw/strings.xml b/libs/WindowManager/Shell/res/values-sw/strings.xml
index 8c2f2ad..e167bca 100644
--- a/libs/WindowManager/Shell/res/values-sw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sw/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Juu 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Juu 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Skrini nzima ya chini"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Gawanya sehemu ya kushoto"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Gawanya sehemu ya kulia"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Gawanya sehemu ya juu"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Gawanya sehemu ya chini"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Kutumia hali ya kutumia kwa mkono mmoja"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Ili ufunge, telezesha kidole juu kutoka sehemu ya chini ya skrini au uguse mahali popote juu ya programu"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Anzisha hali ya kutumia kwa mkono mmoja"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Funga"</string>
<string name="back_button_text" msgid="1469718707134137085">"Rudi nyuma"</string>
<string name="handle_text" msgid="1766582106752184456">"Ncha"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Skrini nzima"</string>
<string name="desktop_text" msgid="1077633567027630454">"Hali ya Kompyuta ya mezani"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Gawa Skrini"</string>
<string name="more_button_text" msgid="3655388105592893530">"Zaidi"</string>
<string name="float_button_text" msgid="9221657008391364581">"Inayoelea"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ta/strings.xml b/libs/WindowManager/Shell/res/values-ta/strings.xml
index 4732e39..286d608 100644
--- a/libs/WindowManager/Shell/res/values-ta/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ta/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"மேலே 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"மேலே 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"கீழ்ப்புறம் முழுத் திரை"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"இடதுபுறமாகப் பிரிக்கும்"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"வலதுபுறமாகப் பிரிக்கும்"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"மேற்புறமாகப் பிரிக்கும்"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"கீழ்புறமாகப் பிரிக்கும்"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ஒற்றைக் கைப் பயன்முறையைப் பயன்படுத்துதல்"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"வெளியேற, திரையின் கீழிருந்து மேல்நோக்கி ஸ்வைப் செய்யவும் அல்லது ஆப்ஸுக்கு மேலே ஏதேனும் ஓர் இடத்தில் தட்டவும்"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ஒற்றைக் கைப் பயன்முறையைத் தொடங்கும்"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"மூடும்"</string>
<string name="back_button_text" msgid="1469718707134137085">"பின்செல்லும்"</string>
<string name="handle_text" msgid="1766582106752184456">"ஹேண்டில்"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"முழுத்திரை"</string>
<string name="desktop_text" msgid="1077633567027630454">"டெஸ்க்டாப் பயன்முறை"</string>
<string name="split_screen_text" msgid="1396336058129570886">"திரையைப் பிரிக்கும்"</string>
<string name="more_button_text" msgid="3655388105592893530">"கூடுதல் விருப்பத்தேர்வுகள்"</string>
<string name="float_button_text" msgid="9221657008391364581">"மிதக்கும் சாளரம்"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-te/strings.xml b/libs/WindowManager/Shell/res/values-te/strings.xml
index 093a848..ec3ca78 100644
--- a/libs/WindowManager/Shell/res/values-te/strings.xml
+++ b/libs/WindowManager/Shell/res/values-te/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ఎగువ 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ఎగువ 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"దిగువ ఫుల్-స్క్రీన్"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"ఎడమ వైపున్న భాగంలో విభజించండి"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"కుడి వైపున్న భాగంలో విభజించండి"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"ఎగువ భాగంలో విభజించండి"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"దిగువ భాగంలో విభజించండి"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"వన్-హ్యాండెడ్ మోడ్ను ఉపయోగించడం"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"నిష్క్రమించడానికి, స్క్రీన్ కింది భాగం నుండి పైకి స్వైప్ చేయండి లేదా యాప్ పైన ఎక్కడైనా ట్యాప్ చేయండి"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"వన్-హ్యాండెడ్ మోడ్ను ప్రారంభిస్తుంది"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"మూసివేయండి"</string>
<string name="back_button_text" msgid="1469718707134137085">"వెనుకకు"</string>
<string name="handle_text" msgid="1766582106752184456">"హ్యాండిల్"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"ఫుల్-స్క్రీన్"</string>
<string name="desktop_text" msgid="1077633567027630454">"డెస్క్టాప్ మోడ్"</string>
<string name="split_screen_text" msgid="1396336058129570886">"స్ప్లిట్ స్క్రీన్"</string>
<string name="more_button_text" msgid="3655388105592893530">"మరిన్ని"</string>
<string name="float_button_text" msgid="9221657008391364581">"ఫ్లోట్"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-th/strings.xml b/libs/WindowManager/Shell/res/values-th/strings.xml
index f7c810b..1a9fa18 100644
--- a/libs/WindowManager/Shell/res/values-th/strings.xml
+++ b/libs/WindowManager/Shell/res/values-th/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ด้านบน 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"ด้านบน 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"เต็มหน้าจอด้านล่าง"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"แยกไปทางซ้าย"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"แยกไปทางขวา"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"แยกไปด้านบน"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"แยกไปด้านล่าง"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"การใช้โหมดมือเดียว"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"หากต้องการออก ให้เลื่อนขึ้นจากด้านล่างของหน้าจอหรือแตะที่ใดก็ได้เหนือแอป"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"เริ่มโหมดมือเดียว"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"ปิด"</string>
<string name="back_button_text" msgid="1469718707134137085">"กลับ"</string>
<string name="handle_text" msgid="1766582106752184456">"แฮนเดิล"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"เต็มหน้าจอ"</string>
<string name="desktop_text" msgid="1077633567027630454">"โหมดเดสก์ท็อป"</string>
<string name="split_screen_text" msgid="1396336058129570886">"แยกหน้าจอ"</string>
<string name="more_button_text" msgid="3655388105592893530">"เพิ่มเติม"</string>
<string name="float_button_text" msgid="9221657008391364581">"ล่องลอย"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-tl/strings.xml b/libs/WindowManager/Shell/res/values-tl/strings.xml
index 4660d6d..27c4363 100644
--- a/libs/WindowManager/Shell/res/values-tl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tl/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gawing 50% ang nasa itaas"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Gawing 30% ang nasa itaas"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"I-full screen ang nasa ibaba"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Hatiin sa kaliwa"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Hatiin sa kanan"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Hatiin sa itaas"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Hatiin sa ilalim"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Paggamit ng one-hand mode"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Para lumabas, mag-swipe pataas mula sa ibaba ng screen o mag-tap kahit saan sa itaas ng app"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Simulan ang one-hand mode"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Isara"</string>
<string name="back_button_text" msgid="1469718707134137085">"Bumalik"</string>
<string name="handle_text" msgid="1766582106752184456">"Handle"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Fullscreen"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktop Mode"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Split Screen"</string>
<string name="more_button_text" msgid="3655388105592893530">"Higit pa"</string>
<string name="float_button_text" msgid="9221657008391364581">"Float"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-tr/strings.xml b/libs/WindowManager/Shell/res/values-tr/strings.xml
index 6fdfe56..a9ad92d 100644
--- a/libs/WindowManager/Shell/res/values-tr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tr/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Üstte %50"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Üstte %30"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Altta tam ekran"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Sol tarafta böl"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Sağ tarafta böl"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Üst tarafta böl"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Alt tarafta böl"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Tek el modunu kullanma"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Çıkmak için ekranın alt kısmından yukarı kaydırın veya uygulamanın üzerinde herhangi bir yere dokunun"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Tek el modunu başlat"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Kapat"</string>
<string name="back_button_text" msgid="1469718707134137085">"Geri"</string>
<string name="handle_text" msgid="1766582106752184456">"Herkese açık kullanıcı adı"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Tam Ekran"</string>
<string name="desktop_text" msgid="1077633567027630454">"Masaüstü Modu"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Bölünmüş Ekran"</string>
<string name="more_button_text" msgid="3655388105592893530">"Daha Fazla"</string>
<string name="float_button_text" msgid="9221657008391364581">"Havada Süzülen"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-uk/strings.xml b/libs/WindowManager/Shell/res/values-uk/strings.xml
index c5cfd02..a9b05d5 100644
--- a/libs/WindowManager/Shell/res/values-uk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uk/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Верхнє вікно на 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Верхнє вікно на 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Нижнє вікно на весь екран"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Розділити зліва"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Розділити справа"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Розділити вгорі"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Розділити внизу"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Як користуватися режимом керування однією рукою"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Щоб вийти, проведіть пальцем по екрану знизу вгору або торкніться екрана над додатком"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Увімкнути режим керування однією рукою"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Закрити"</string>
<string name="back_button_text" msgid="1469718707134137085">"Назад"</string>
<string name="handle_text" msgid="1766582106752184456">"Маркер"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"На весь екран"</string>
<string name="desktop_text" msgid="1077633567027630454">"Режим комп’ютера"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Розділити екран"</string>
<string name="more_button_text" msgid="3655388105592893530">"Більше"</string>
<string name="float_button_text" msgid="9221657008391364581">"Плаваюче вікно"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-ur/strings.xml b/libs/WindowManager/Shell/res/values-ur/strings.xml
index 9c138d9..1c31a3d 100644
--- a/libs/WindowManager/Shell/res/values-ur/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ur/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"اوپر %50"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"اوپر %30"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"نچلی فل اسکرین"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"دائیں طرف تقسیم کریں"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"بائیں طرف تقسیم کریں"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"اوپر کی طرف تقسیم کریں"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"نیچے کی طرف تقسیم کریں"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"ایک ہاتھ کی وضع کا استعمال کرنا"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"باہر نکلنے کیلئے، اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں یا ایپ کے اوپر کہیں بھی تھپتھپائیں"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"ایک ہاتھ کی وضع شروع کریں"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"بند کریں"</string>
<string name="back_button_text" msgid="1469718707134137085">"پیچھے"</string>
<string name="handle_text" msgid="1766582106752184456">"ہینڈل"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"مکمل اسکرین"</string>
<string name="desktop_text" msgid="1077633567027630454">"ڈیسک ٹاپ موڈ"</string>
<string name="split_screen_text" msgid="1396336058129570886">"اسپلٹ اسکرین"</string>
<string name="more_button_text" msgid="3655388105592893530">"مزید"</string>
<string name="float_button_text" msgid="9221657008391364581">"فلوٹ"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-uz/strings.xml b/libs/WindowManager/Shell/res/values-uz/strings.xml
index 907c5bd..3ce1672 100644
--- a/libs/WindowManager/Shell/res/values-uz/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uz/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Tepada 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Tepada 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Pastda to‘liq ekran"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Chapga ajratish"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Oʻngga ajratish"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Yuqoriga ajratish"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Pastga ajratish"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Ixcham rejimdan foydalanish"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Chiqish uchun ekran pastidan tepaga suring yoki ilovaning tepasidagi istalgan joyga bosing."</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Ixcham rejimni ishga tushirish"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Yopish"</string>
<string name="back_button_text" msgid="1469718707134137085">"Orqaga"</string>
<string name="handle_text" msgid="1766582106752184456">"Identifikator"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Butun ekran"</string>
<string name="desktop_text" msgid="1077633567027630454">"Desktop rejimi"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Ekranni ikkiga ajratish"</string>
<string name="more_button_text" msgid="3655388105592893530">"Yana"</string>
<string name="float_button_text" msgid="9221657008391364581">"Pufakli"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-vi/strings.xml b/libs/WindowManager/Shell/res/values-vi/strings.xml
index 211e231..1bf967a 100644
--- a/libs/WindowManager/Shell/res/values-vi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-vi/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Trên 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Trên 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Toàn màn hình phía dưới"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Chia đôi màn hình về bên trái"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Chia đôi màn hình về bên phải"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Chia đôi màn hình lên trên cùng"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Chia đôi màn hình xuống dưới cùng"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Cách dùng chế độ một tay"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Để thoát, hãy vuốt lên từ cuối màn hình hoặc nhấn vào vị trí bất kỳ phía trên ứng dụng"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Bắt đầu chế độ một tay"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Đóng"</string>
<string name="back_button_text" msgid="1469718707134137085">"Quay lại"</string>
<string name="handle_text" msgid="1766582106752184456">"Xử lý"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Toàn màn hình"</string>
<string name="desktop_text" msgid="1077633567027630454">"Chế độ máy tính"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Chia đôi màn hình"</string>
<string name="more_button_text" msgid="3655388105592893530">"Tuỳ chọn khác"</string>
<string name="float_button_text" msgid="9221657008391364581">"Nổi"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
index 3d0637a..3a8dd24 100644
--- a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"顶部 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"顶部 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"底部全屏"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"左分屏"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"右分屏"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"上分屏"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"下分屏"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"使用单手模式"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"如需退出,请从屏幕底部向上滑动,或点按应用上方的任意位置"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"启动单手模式"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"关闭"</string>
<string name="back_button_text" msgid="1469718707134137085">"返回"</string>
<string name="handle_text" msgid="1766582106752184456">"处理"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"全屏"</string>
<string name="desktop_text" msgid="1077633567027630454">"桌面模式"</string>
<string name="split_screen_text" msgid="1396336058129570886">"分屏"</string>
<string name="more_button_text" msgid="3655388105592893530">"更多"</string>
<string name="float_button_text" msgid="9221657008391364581">"悬浮"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
index c4df086..112bd41 100644
--- a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"頂部 50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"頂部 30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"底部全螢幕"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"分割左側區域"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"分割右側區域"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"分割上方區域"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"分割下方區域"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"使用單手模式"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"如要退出,請從螢幕底部向上滑動,或輕按應用程式上方的任何位置"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"開始單手模式"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"關閉"</string>
<string name="back_button_text" msgid="1469718707134137085">"返去"</string>
<string name="handle_text" msgid="1766582106752184456">"控點"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"全螢幕"</string>
<string name="desktop_text" msgid="1077633567027630454">"桌面模式"</string>
<string name="split_screen_text" msgid="1396336058129570886">"分割螢幕"</string>
<string name="more_button_text" msgid="3655388105592893530">"更多"</string>
<string name="float_button_text" msgid="9221657008391364581">"浮動"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
index 2d9e7f3..edb0c7e 100644
--- a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"以 50% 的螢幕空間顯示頂端畫面"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"以 30% 的螢幕空間顯示頂端畫面"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"以全螢幕顯示底部畫面"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"分割左側區域"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"分割右側區域"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"分割上方區域"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"分割下方區域"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"使用單手模式"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"如要退出,請從螢幕底部向上滑動,或輕觸應用程式上方的任何位置"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"啟動單手模式"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"關閉"</string>
<string name="back_button_text" msgid="1469718707134137085">"返回"</string>
<string name="handle_text" msgid="1766582106752184456">"控點"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"全螢幕"</string>
<string name="desktop_text" msgid="1077633567027630454">"電腦模式"</string>
<string name="split_screen_text" msgid="1396336058129570886">"分割畫面"</string>
<string name="more_button_text" msgid="3655388105592893530">"更多"</string>
<string name="float_button_text" msgid="9221657008391364581">"浮動"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values-zu/strings.xml b/libs/WindowManager/Shell/res/values-zu/strings.xml
index 5c60056..749b223 100644
--- a/libs/WindowManager/Shell/res/values-zu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zu/strings.xml
@@ -47,14 +47,10 @@
<string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Okuphezulu okungu-50%"</string>
<string name="accessibility_action_divider_top_30" msgid="3572788224908570257">"Okuphezulu okungu-30%"</string>
<string name="accessibility_action_divider_bottom_full" msgid="2831868345092314060">"Ngaphansi kwesikrini esigcwele"</string>
- <!-- no translation found for accessibility_split_left (1713683765575562458) -->
- <skip />
- <!-- no translation found for accessibility_split_right (8441001008181296837) -->
- <skip />
- <!-- no translation found for accessibility_split_top (2789329702027147146) -->
- <skip />
- <!-- no translation found for accessibility_split_bottom (8694551025220868191) -->
- <skip />
+ <string name="accessibility_split_left" msgid="1713683765575562458">"Hlukanisa ngakwesobunxele"</string>
+ <string name="accessibility_split_right" msgid="8441001008181296837">"Hlukanisa ngakwesokudla"</string>
+ <string name="accessibility_split_top" msgid="2789329702027147146">"Hlukanisa phezulu"</string>
+ <string name="accessibility_split_bottom" msgid="8694551025220868191">"Hlukanisa phansi"</string>
<string name="one_handed_tutorial_title" msgid="4583241688067426350">"Ukusebenzisa imodi yesandla esisodwa"</string>
<string name="one_handed_tutorial_description" msgid="3486582858591353067">"Ukuze uphume, swayipha ngaphezulu kusuka ngezansi kwesikrini noma thepha noma kuphi ngenhla kohlelo lokusebenza"</string>
<string name="accessibility_action_start_one_handed" msgid="5070337354072861426">"Qalisa imodi yesandla esisodwa"</string>
@@ -100,9 +96,19 @@
<string name="close_button_text" msgid="2913281996024033299">"Vala"</string>
<string name="back_button_text" msgid="1469718707134137085">"Emuva"</string>
<string name="handle_text" msgid="1766582106752184456">"Isibambo"</string>
+ <!-- no translation found for app_icon_text (2823268023931811747) -->
+ <skip />
<string name="fullscreen_text" msgid="1162316685217676079">"Isikrini esigcwele"</string>
<string name="desktop_text" msgid="1077633567027630454">"Imodi Yedeskithophu"</string>
<string name="split_screen_text" msgid="1396336058129570886">"Hlukanisa isikrini"</string>
<string name="more_button_text" msgid="3655388105592893530">"Okwengeziwe"</string>
<string name="float_button_text" msgid="9221657008391364581">"Iflowuthi"</string>
+ <!-- no translation found for select_text (5139083974039906583) -->
+ <skip />
+ <!-- no translation found for screenshot_text (1477704010087786671) -->
+ <skip />
+ <!-- no translation found for close_text (4986518933445178928) -->
+ <skip />
+ <!-- no translation found for collapse_menu_text (7515008122450342029) -->
+ <skip />
</resources>
diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml
index 6f31d06..1f9b6cf 100644
--- a/libs/WindowManager/Shell/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/res/values/dimen.xml
@@ -331,30 +331,6 @@
-->
<dimen name="overridable_minimal_size_pip_resizable_task">48dp</dimen>
- <!-- The size of the drag handle / menu shown along with a floating task. -->
- <dimen name="floating_task_menu_size">32dp</dimen>
-
- <!-- The size of menu items in the floating task menu. -->
- <dimen name="floating_task_menu_item_size">24dp</dimen>
-
- <!-- The horizontal margin of menu items in the floating task menu. -->
- <dimen name="floating_task_menu_item_padding">5dp</dimen>
-
- <!-- The width of visible floating view region when stashed. -->
- <dimen name="floating_task_stash_offset">32dp</dimen>
-
- <!-- The amount of elevation for a floating task. -->
- <dimen name="floating_task_elevation">8dp</dimen>
-
- <!-- The amount of padding around the bottom and top of the task. -->
- <dimen name="floating_task_vertical_padding">8dp</dimen>
-
- <!-- The normal size of the dismiss target. -->
- <dimen name="floating_task_dismiss_circle_size">150dp</dimen>
-
- <!-- The smaller size of the dismiss target (shrinks when something is in the target). -->
- <dimen name="floating_dismiss_circle_small">120dp</dimen>
-
<!-- The thickness of shadows of a window that has focus in DIP. -->
<dimen name="freeform_decor_shadow_focused_thickness">20dp</dimen>
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java
index 88525aa..e2012b4 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java
@@ -16,6 +16,8 @@
package com.android.wm.shell;
+import android.os.Build;
+
import com.android.wm.shell.protolog.ShellProtoLogImpl;
import com.android.wm.shell.sysui.ShellCommandHandler;
import com.android.wm.shell.sysui.ShellInit;
@@ -41,6 +43,9 @@
void onInit() {
mShellCommandHandler.addCommandCallback("protolog", this, this);
+ if (Build.IS_DEBUGGABLE) {
+ mShellProtoLog.startProtoLog(null /* PrintWriter */);
+ }
}
@Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DevicePostureController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DevicePostureController.java
new file mode 100644
index 0000000..22587f4
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DevicePostureController.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.common;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.content.Context;
+import android.hardware.devicestate.DeviceStateManager;
+import android.util.SparseIntArray;
+
+import com.android.internal.R;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.wm.shell.sysui.ShellInit;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Wrapper class to track the device posture change on Fold-ables.
+ * See also <a
+ * href="https://developer.android.com/guide/topics/large-screens/learn-about-foldables
+ * #foldable_postures">Foldable states and postures</a> for reference.
+ *
+ * Note that most of the implementation here inherits from
+ * {@link com.android.systemui.statusbar.policy.DevicePostureController}.
+ */
+public class DevicePostureController {
+ @IntDef(prefix = {"DEVICE_POSTURE_"}, value = {
+ DEVICE_POSTURE_UNKNOWN,
+ DEVICE_POSTURE_CLOSED,
+ DEVICE_POSTURE_HALF_OPENED,
+ DEVICE_POSTURE_OPENED,
+ DEVICE_POSTURE_FLIPPED
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface DevicePostureInt {}
+
+ // NOTE: These constants **must** match those defined for Jetpack Sidecar. This is because we
+ // use the Device State -> Jetpack Posture map to translate between the two.
+ public static final int DEVICE_POSTURE_UNKNOWN = 0;
+ public static final int DEVICE_POSTURE_CLOSED = 1;
+ public static final int DEVICE_POSTURE_HALF_OPENED = 2;
+ public static final int DEVICE_POSTURE_OPENED = 3;
+ public static final int DEVICE_POSTURE_FLIPPED = 4;
+
+ private final Context mContext;
+ private final ShellExecutor mMainExecutor;
+ private final List<OnDevicePostureChangedListener> mListeners = new ArrayList<>();
+ private final SparseIntArray mDeviceStateToPostureMap = new SparseIntArray();
+
+ private int mDevicePosture = DEVICE_POSTURE_UNKNOWN;
+
+ public DevicePostureController(
+ Context context, ShellInit shellInit, ShellExecutor mainExecutor) {
+ mContext = context;
+ mMainExecutor = mainExecutor;
+ shellInit.addInitCallback(this::onInit, this);
+ }
+
+ private void onInit() {
+ // Most of this is borrowed from WindowManager/Jetpack/DeviceStateManagerPostureProducer.
+ // Using the sidecar/extension libraries directly brings in a new dependency that it'd be
+ // good to avoid (along with the fact that sidecar is deprecated, and extensions isn't fully
+ // ready yet), and we'd have to make our own layer over the sidecar library anyway to easily
+ // allow the implementation to change, so it was easier to just interface with
+ // DeviceStateManager directly.
+ String[] deviceStatePosturePairs = mContext.getResources()
+ .getStringArray(R.array.config_device_state_postures);
+ for (String deviceStatePosturePair : deviceStatePosturePairs) {
+ String[] deviceStatePostureMapping = deviceStatePosturePair.split(":");
+ if (deviceStatePostureMapping.length != 2) {
+ continue;
+ }
+
+ int deviceState;
+ int posture;
+ try {
+ deviceState = Integer.parseInt(deviceStatePostureMapping[0]);
+ posture = Integer.parseInt(deviceStatePostureMapping[1]);
+ } catch (NumberFormatException e) {
+ continue;
+ }
+
+ mDeviceStateToPostureMap.put(deviceState, posture);
+ }
+
+ final DeviceStateManager deviceStateManager = mContext.getSystemService(
+ DeviceStateManager.class);
+ if (deviceStateManager != null) {
+ deviceStateManager.registerCallback(mMainExecutor, state -> onDevicePostureChanged(
+ mDeviceStateToPostureMap.get(state, DEVICE_POSTURE_UNKNOWN)));
+ }
+ }
+
+ @VisibleForTesting
+ void onDevicePostureChanged(int devicePosture) {
+ if (devicePosture == mDevicePosture) return;
+ mDevicePosture = devicePosture;
+ mListeners.forEach(l -> l.onDevicePostureChanged(mDevicePosture));
+ }
+
+ /**
+ * Register {@link OnDevicePostureChangedListener} for device posture changes.
+ * The listener will receive callback with current device posture upon registration.
+ */
+ public void registerOnDevicePostureChangedListener(
+ @NonNull OnDevicePostureChangedListener listener) {
+ if (mListeners.contains(listener)) return;
+ mListeners.add(listener);
+ listener.onDevicePostureChanged(mDevicePosture);
+ }
+
+ /**
+ * Unregister {@link OnDevicePostureChangedListener} for device posture changes.
+ */
+ public void unregisterOnDevicePostureChangedListener(
+ @NonNull OnDevicePostureChangedListener listener) {
+ mListeners.remove(listener);
+ }
+
+ /**
+ * Listener interface for device posture change.
+ */
+ public interface OnDevicePostureChangedListener {
+ /**
+ * Callback when device posture changes.
+ * See {@link DevicePostureInt} for callback values.
+ */
+ void onDevicePostureChanged(@DevicePostureInt int posture);
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
index 25c430c..72dc771 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
@@ -41,6 +41,7 @@
import com.android.wm.shell.back.BackAnimationController;
import com.android.wm.shell.bubbles.BubbleController;
import com.android.wm.shell.bubbles.Bubbles;
+import com.android.wm.shell.common.DevicePostureController;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.DisplayImeController;
import com.android.wm.shell.common.DisplayInsetsController;
@@ -160,6 +161,16 @@
@WMSingleton
@Provides
+ static DevicePostureController provideDevicePostureController(
+ Context context,
+ ShellInit shellInit,
+ @ShellMainThread ShellExecutor mainExecutor
+ ) {
+ return new DevicePostureController(context, shellInit, mainExecutor);
+ }
+
+ @WMSingleton
+ @Provides
static DragAndDropController provideDragAndDropController(Context context,
ShellInit shellInit,
ShellController shellController,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
index d9ac76e..23f73f6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
@@ -209,7 +209,7 @@
/**
* Quietly cancel the animator by removing the listeners first.
*/
- static void quietCancel(@NonNull ValueAnimator animator) {
+ public static void quietCancel(@NonNull ValueAnimator animator) {
animator.removeAllUpdateListeners();
animator.removeAllListeners();
animator.cancel();
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
index ec34f73..fa3efeb 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
@@ -715,6 +715,12 @@
private void onDisplayChanged(DisplayLayout layout, boolean saveRestoreSnapFraction) {
if (!mPipBoundsState.getDisplayLayout().isSameGeometry(layout)) {
+ PipAnimationController.PipTransitionAnimator animator =
+ mPipAnimationController.getCurrentAnimator();
+ if (animator != null && animator.isRunning()) {
+ // cancel any running animator, as it is using stale display layout information
+ PipAnimationController.quietCancel(animator);
+ }
onDisplayChangedUncheck(layout, saveRestoreSnapFraction);
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogImpl.java b/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogImpl.java
index 93ffb3d..c59c42d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogImpl.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogImpl.java
@@ -31,8 +31,7 @@
*/
public class ShellProtoLogImpl extends BaseProtoLogImpl {
private static final String TAG = "ProtoLogImpl";
- private static final int BUFFER_CAPACITY = 1024 * 1024;
- // TODO: find a proper location to save the protolog message file
+ private static final int BUFFER_CAPACITY = 128 * 1024;
private static final String LOG_FILENAME = "/data/misc/wmtrace/shell_log.winscope";
private static final String VIEWER_CONFIG_FILENAME = "/system_ext/etc/wmshell.protolog.json.gz";
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
index 0c3eaf0..2a6fbd2 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
@@ -499,6 +499,11 @@
break;
}
}
+ } else if (mSideStage.getChildCount() != 0) {
+ // There are chances the entering app transition got canceled by performing
+ // rotation transition. Checks if there is any child task existed in split
+ // screen before fallback to cancel entering flow.
+ openingToSide = true;
}
if (isEnteringSplit && !openingToSide) {
@@ -515,7 +520,7 @@
}
}
- if (!isEnteringSplit && openingToSide) {
+ if (!isEnteringSplit && apps != null) {
final WindowContainerTransaction evictWct = new WindowContainerTransaction();
prepareEvictNonOpeningChildTasks(position, apps, evictWct);
mSyncQueue.queue(evictWct);
@@ -598,6 +603,11 @@
break;
}
}
+ } else if (mSideStage.getChildCount() != 0) {
+ // There are chances the entering app transition got canceled by performing
+ // rotation transition. Checks if there is any child task existed in split
+ // screen before fallback to cancel entering flow.
+ openingToSide = true;
}
if (isEnteringSplit && !openingToSide && apps != null) {
@@ -624,7 +634,7 @@
}
- if (!isEnteringSplit && openingToSide) {
+ if (!isEnteringSplit && apps != null) {
final WindowContainerTransaction evictWct = new WindowContainerTransaction();
prepareEvictNonOpeningChildTasks(position, apps, evictWct);
mSyncQueue.queue(evictWct);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java
index 7d954ad..81c4176 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java
@@ -215,6 +215,7 @@
@Override
public void close() {
+ mInputEventReceiver.dispose();
mInputChannel.dispose();
try {
mWindowSession.remove(mFakeWindow);
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/DevicePostureControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/DevicePostureControllerTest.java
new file mode 100644
index 0000000..f8ee300
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/DevicePostureControllerTest.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.common;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.clearInvocations;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+
+import android.content.Context;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import com.android.wm.shell.sysui.ShellInit;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class DevicePostureControllerTest {
+ @Mock
+ private Context mContext;
+
+ @Mock
+ private ShellInit mShellInit;
+
+ @Mock
+ private ShellExecutor mMainExecutor;
+
+ @Captor
+ private ArgumentCaptor<Integer> mDevicePostureCaptor;
+
+ @Mock
+ private DevicePostureController.OnDevicePostureChangedListener mOnDevicePostureChangedListener;
+
+ private DevicePostureController mDevicePostureController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mDevicePostureController = new DevicePostureController(mContext, mShellInit, mMainExecutor);
+ }
+
+ @Test
+ public void instantiateController_addInitCallback() {
+ verify(mShellInit, times(1)).addInitCallback(any(), eq(mDevicePostureController));
+ }
+
+ @Test
+ public void registerOnDevicePostureChangedListener_callbackCurrentPosture() {
+ mDevicePostureController.registerOnDevicePostureChangedListener(
+ mOnDevicePostureChangedListener);
+ verify(mOnDevicePostureChangedListener, times(1))
+ .onDevicePostureChanged(anyInt());
+ }
+
+ @Test
+ public void onDevicePostureChanged_differentPosture_callbackListener() {
+ mDevicePostureController.registerOnDevicePostureChangedListener(
+ mOnDevicePostureChangedListener);
+ verify(mOnDevicePostureChangedListener).onDevicePostureChanged(
+ mDevicePostureCaptor.capture());
+ clearInvocations(mOnDevicePostureChangedListener);
+
+ int differentDevicePosture = mDevicePostureCaptor.getValue() + 1;
+ mDevicePostureController.onDevicePostureChanged(differentDevicePosture);
+
+ verify(mOnDevicePostureChangedListener, times(1))
+ .onDevicePostureChanged(differentDevicePosture);
+ }
+
+ @Test
+ public void onDevicePostureChanged_samePosture_doesNotCallbackListener() {
+ mDevicePostureController.registerOnDevicePostureChangedListener(
+ mOnDevicePostureChangedListener);
+ verify(mOnDevicePostureChangedListener).onDevicePostureChanged(
+ mDevicePostureCaptor.capture());
+ clearInvocations(mOnDevicePostureChangedListener);
+
+ int sameDevicePosture = mDevicePostureCaptor.getValue();
+ mDevicePostureController.onDevicePostureChanged(sameDevicePosture);
+
+ verifyZeroInteractions(mOnDevicePostureChangedListener);
+ }
+}
diff --git a/media/tests/MediaFrameworkTest/AndroidManifest.xml b/media/tests/MediaFrameworkTest/AndroidManifest.xml
index 33872ed..0da5de7 100644
--- a/media/tests/MediaFrameworkTest/AndroidManifest.xml
+++ b/media/tests/MediaFrameworkTest/AndroidManifest.xml
@@ -37,7 +37,6 @@
</activity>
<activity android:label="Camera2CtsActivity"
android:name="Camera2SurfaceViewActivity"
- android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>
</application>
diff --git a/packages/SettingsLib/ActivityEmbedding/src/com/android/settingslib/activityembedding/ActivityEmbeddingUtils.java b/packages/SettingsLib/ActivityEmbedding/src/com/android/settingslib/activityembedding/ActivityEmbeddingUtils.java
index 2db0a8f..33fc37e 100644
--- a/packages/SettingsLib/ActivityEmbedding/src/com/android/settingslib/activityembedding/ActivityEmbeddingUtils.java
+++ b/packages/SettingsLib/ActivityEmbedding/src/com/android/settingslib/activityembedding/ActivityEmbeddingUtils.java
@@ -25,7 +25,7 @@
import android.util.Log;
import androidx.core.os.BuildCompat;
-import androidx.window.embedding.SplitController;
+import androidx.window.embedding.ActivityEmbeddingController;
import com.android.settingslib.utils.BuildCompatUtils;
@@ -86,7 +86,7 @@
* @param activity Activity that needs the check
*/
public static boolean isActivityEmbedded(Activity activity) {
- return SplitController.getInstance().isActivityEmbedded(activity);
+ return ActivityEmbeddingController.getInstance(activity).isActivityEmbedded(activity);
}
/**
diff --git a/packages/SettingsLib/res/values-af/arrays.xml b/packages/SettingsLib/res/values-af/arrays.xml
index a7e44d3..a28340e 100644
--- a/packages/SettingsLib/res/values-af/arrays.xml
+++ b/packages/SettingsLib/res/values-af/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-am/arrays.xml b/packages/SettingsLib/res/values-am/arrays.xml
index 7bef7fa..a201ab0 100644
--- a/packages/SettingsLib/res/values-am/arrays.xml
+++ b/packages/SettingsLib/res/values-am/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ar/arrays.xml b/packages/SettingsLib/res/values-ar/arrays.xml
index 0720cf5..7852b04 100644
--- a/packages/SettingsLib/res/values-ar/arrays.xml
+++ b/packages/SettingsLib/res/values-ar/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-as/arrays.xml b/packages/SettingsLib/res/values-as/arrays.xml
index cbacce8..b273d8e 100644
--- a/packages/SettingsLib/res/values-as/arrays.xml
+++ b/packages/SettingsLib/res/values-as/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-az/arrays.xml b/packages/SettingsLib/res/values-az/arrays.xml
index d1f157a..dc8be1d 100644
--- a/packages/SettingsLib/res/values-az/arrays.xml
+++ b/packages/SettingsLib/res/values-az/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
index 63b08fa..2fc7afb 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-be/arrays.xml b/packages/SettingsLib/res/values-be/arrays.xml
index f16e1c5..e180b44 100644
--- a/packages/SettingsLib/res/values-be/arrays.xml
+++ b/packages/SettingsLib/res/values-be/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-bg/arrays.xml b/packages/SettingsLib/res/values-bg/arrays.xml
index 849e694..cdad4ac 100644
--- a/packages/SettingsLib/res/values-bg/arrays.xml
+++ b/packages/SettingsLib/res/values-bg/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-bn/arrays.xml b/packages/SettingsLib/res/values-bn/arrays.xml
index a3bc4fd..0d79aa7 100644
--- a/packages/SettingsLib/res/values-bn/arrays.xml
+++ b/packages/SettingsLib/res/values-bn/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-bs/arrays.xml b/packages/SettingsLib/res/values-bs/arrays.xml
index 926ad84..4ef0981 100644
--- a/packages/SettingsLib/res/values-bs/arrays.xml
+++ b/packages/SettingsLib/res/values-bs/arrays.xml
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Malo"</item>
+ <item msgid="1484561228522634915">"Zadano"</item>
+ <item msgid="4014311587094503943">"Veliko"</item>
+ <item msgid="2904569270831156685">"Najveće"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-ca/arrays.xml b/packages/SettingsLib/res/values-ca/arrays.xml
index 3062e7d..e0bfec5 100644
--- a/packages/SettingsLib/res/values-ca/arrays.xml
+++ b/packages/SettingsLib/res/values-ca/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-cs/arrays.xml b/packages/SettingsLib/res/values-cs/arrays.xml
index e1d033c..f8cdb68 100644
--- a/packages/SettingsLib/res/values-cs/arrays.xml
+++ b/packages/SettingsLib/res/values-cs/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-da/arrays.xml b/packages/SettingsLib/res/values-da/arrays.xml
index 48a33f6..4d656ca 100644
--- a/packages/SettingsLib/res/values-da/arrays.xml
+++ b/packages/SettingsLib/res/values-da/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-de/arrays.xml b/packages/SettingsLib/res/values-de/arrays.xml
index ca999db..250f0e4 100644
--- a/packages/SettingsLib/res/values-de/arrays.xml
+++ b/packages/SettingsLib/res/values-de/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-el/arrays.xml b/packages/SettingsLib/res/values-el/arrays.xml
index b95f6fc..cb6e2e9 100644
--- a/packages/SettingsLib/res/values-el/arrays.xml
+++ b/packages/SettingsLib/res/values-el/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/arrays.xml b/packages/SettingsLib/res/values-en-rAU/arrays.xml
index 327e4e9..a75f05c 100644
--- a/packages/SettingsLib/res/values-en-rAU/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rAU/arrays.xml
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Small"</item>
+ <item msgid="1484561228522634915">"Default"</item>
+ <item msgid="4014311587094503943">"Large"</item>
+ <item msgid="2904569270831156685">"Largest"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rCA/arrays.xml b/packages/SettingsLib/res/values-en-rCA/arrays.xml
index 8a57232..698245a 100644
--- a/packages/SettingsLib/res/values-en-rCA/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rCA/arrays.xml
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Small"</item>
+ <item msgid="1484561228522634915">"Default"</item>
+ <item msgid="4014311587094503943">"Large"</item>
+ <item msgid="2904569270831156685">"Largest"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/arrays.xml b/packages/SettingsLib/res/values-en-rGB/arrays.xml
index 327e4e9..a75f05c 100644
--- a/packages/SettingsLib/res/values-en-rGB/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rGB/arrays.xml
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Small"</item>
+ <item msgid="1484561228522634915">"Default"</item>
+ <item msgid="4014311587094503943">"Large"</item>
+ <item msgid="2904569270831156685">"Largest"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/arrays.xml b/packages/SettingsLib/res/values-en-rIN/arrays.xml
index 327e4e9..a75f05c 100644
--- a/packages/SettingsLib/res/values-en-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rIN/arrays.xml
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Small"</item>
+ <item msgid="1484561228522634915">"Default"</item>
+ <item msgid="4014311587094503943">"Large"</item>
+ <item msgid="2904569270831156685">"Largest"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rXC/arrays.xml b/packages/SettingsLib/res/values-en-rXC/arrays.xml
index 8af0a4a..7b98795 100644
--- a/packages/SettingsLib/res/values-en-rXC/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rXC/arrays.xml
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Small"</item>
+ <item msgid="1484561228522634915">"Default"</item>
+ <item msgid="4014311587094503943">"Large"</item>
+ <item msgid="2904569270831156685">"Largest"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/arrays.xml b/packages/SettingsLib/res/values-es-rUS/arrays.xml
index 3813808..5769c8d 100644
--- a/packages/SettingsLib/res/values-es-rUS/arrays.xml
+++ b/packages/SettingsLib/res/values-es-rUS/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index b23f883..0792f7f 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -582,7 +582,7 @@
<string name="user_add_user_type_title" msgid="551279664052914497">"Agregar"</string>
<string name="user_new_user_name" msgid="60979820612818840">"Usuario nuevo"</string>
<string name="user_new_profile_name" msgid="2405500423304678841">"Perfil nuevo"</string>
- <string name="user_info_settings_title" msgid="6351390762733279907">"Datos de usuario"</string>
+ <string name="user_info_settings_title" msgid="6351390762733279907">"Datos del usuario"</string>
<string name="profile_info_settings_title" msgid="105699672534365099">"Datos del perfil"</string>
<string name="user_need_lock_message" msgid="4311424336209509301">"Para poder crear un perfil restringido, debes configurar un bloqueo de pantalla que proteja tus aplicaciones y datos personales."</string>
<string name="user_set_lock_button" msgid="1427128184982594856">"Configurar bloqueo"</string>
diff --git a/packages/SettingsLib/res/values-es/arrays.xml b/packages/SettingsLib/res/values-es/arrays.xml
index 4924407..e2d9d33 100644
--- a/packages/SettingsLib/res/values-es/arrays.xml
+++ b/packages/SettingsLib/res/values-es/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-et/arrays.xml b/packages/SettingsLib/res/values-et/arrays.xml
index 0402ac2..cd07db1 100644
--- a/packages/SettingsLib/res/values-et/arrays.xml
+++ b/packages/SettingsLib/res/values-et/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-eu/arrays.xml b/packages/SettingsLib/res/values-eu/arrays.xml
index d15712a..35424c0 100644
--- a/packages/SettingsLib/res/values-eu/arrays.xml
+++ b/packages/SettingsLib/res/values-eu/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-fa/arrays.xml b/packages/SettingsLib/res/values-fa/arrays.xml
index 41410cb..a3a6e48 100644
--- a/packages/SettingsLib/res/values-fa/arrays.xml
+++ b/packages/SettingsLib/res/values-fa/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-fi/arrays.xml b/packages/SettingsLib/res/values-fi/arrays.xml
index 842fb8f..c7862e3 100644
--- a/packages/SettingsLib/res/values-fi/arrays.xml
+++ b/packages/SettingsLib/res/values-fi/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/arrays.xml b/packages/SettingsLib/res/values-fr-rCA/arrays.xml
index dfa6db3..7048147 100644
--- a/packages/SettingsLib/res/values-fr-rCA/arrays.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-fr/arrays.xml b/packages/SettingsLib/res/values-fr/arrays.xml
index 92546da..43274bb 100644
--- a/packages/SettingsLib/res/values-fr/arrays.xml
+++ b/packages/SettingsLib/res/values-fr/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-gl/arrays.xml b/packages/SettingsLib/res/values-gl/arrays.xml
index fb8e5f2..e8c5463 100644
--- a/packages/SettingsLib/res/values-gl/arrays.xml
+++ b/packages/SettingsLib/res/values-gl/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-gu/arrays.xml b/packages/SettingsLib/res/values-gu/arrays.xml
index e527d81..ac485e1 100644
--- a/packages/SettingsLib/res/values-gu/arrays.xml
+++ b/packages/SettingsLib/res/values-gu/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-hi/arrays.xml b/packages/SettingsLib/res/values-hi/arrays.xml
index 9b8d83e..e7f68d9 100644
--- a/packages/SettingsLib/res/values-hi/arrays.xml
+++ b/packages/SettingsLib/res/values-hi/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-hr/arrays.xml b/packages/SettingsLib/res/values-hr/arrays.xml
index 559383a..119ec6b 100644
--- a/packages/SettingsLib/res/values-hr/arrays.xml
+++ b/packages/SettingsLib/res/values-hr/arrays.xml
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Malo"</item>
+ <item msgid="1484561228522634915">"Zadano"</item>
+ <item msgid="4014311587094503943">"Veliko"</item>
+ <item msgid="2904569270831156685">"Najveće"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-hu/arrays.xml b/packages/SettingsLib/res/values-hu/arrays.xml
index 409d600..28ae1b6 100644
--- a/packages/SettingsLib/res/values-hu/arrays.xml
+++ b/packages/SettingsLib/res/values-hu/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-hy/arrays.xml b/packages/SettingsLib/res/values-hy/arrays.xml
index 009875d..5787215 100644
--- a/packages/SettingsLib/res/values-hy/arrays.xml
+++ b/packages/SettingsLib/res/values-hy/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-in/arrays.xml b/packages/SettingsLib/res/values-in/arrays.xml
index 9527417..6bb7e5d 100644
--- a/packages/SettingsLib/res/values-in/arrays.xml
+++ b/packages/SettingsLib/res/values-in/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index abdbf06..6dc9b40 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -345,7 +345,7 @@
<string name="enable_terminal_summary" msgid="2481074834856064500">"Aktifkan aplikasi terminal yang menawarkan akses kerangka lokal"</string>
<string name="hdcp_checking_title" msgid="3155692785074095986">"Pemeriksaan HDCP"</string>
<string name="hdcp_checking_dialog_title" msgid="7691060297616217781">"Setel perilaku pemeriksaan HDCP"</string>
- <string name="debug_debugging_category" msgid="535341063709248842">"Debugging"</string>
+ <string name="debug_debugging_category" msgid="535341063709248842">"Proses debug"</string>
<string name="debug_app" msgid="8903350241392391766">"Pilih aplikasi debug"</string>
<string name="debug_app_not_set" msgid="1934083001283807188">"Tidak ada aplikasi debug yang disetel"</string>
<string name="debug_app_set" msgid="6599535090477753651">"Aplikasi debug: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/SettingsLib/res/values-is/arrays.xml b/packages/SettingsLib/res/values-is/arrays.xml
index 0b5b978..87433b7 100644
--- a/packages/SettingsLib/res/values-is/arrays.xml
+++ b/packages/SettingsLib/res/values-is/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-it/arrays.xml b/packages/SettingsLib/res/values-it/arrays.xml
index ae1e515..e68adb9 100644
--- a/packages/SettingsLib/res/values-it/arrays.xml
+++ b/packages/SettingsLib/res/values-it/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-iw/arrays.xml b/packages/SettingsLib/res/values-iw/arrays.xml
index 5d72aff..6dd1765 100644
--- a/packages/SettingsLib/res/values-iw/arrays.xml
+++ b/packages/SettingsLib/res/values-iw/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ja/arrays.xml b/packages/SettingsLib/res/values-ja/arrays.xml
index 775e31c..385cfc9 100644
--- a/packages/SettingsLib/res/values-ja/arrays.xml
+++ b/packages/SettingsLib/res/values-ja/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ka/arrays.xml b/packages/SettingsLib/res/values-ka/arrays.xml
index f3545b6..e800d45 100644
--- a/packages/SettingsLib/res/values-ka/arrays.xml
+++ b/packages/SettingsLib/res/values-ka/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-kk/arrays.xml b/packages/SettingsLib/res/values-kk/arrays.xml
index 3fd1b50..fa82852 100644
--- a/packages/SettingsLib/res/values-kk/arrays.xml
+++ b/packages/SettingsLib/res/values-kk/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-km/arrays.xml b/packages/SettingsLib/res/values-km/arrays.xml
index 2269df1..52d8207 100644
--- a/packages/SettingsLib/res/values-km/arrays.xml
+++ b/packages/SettingsLib/res/values-km/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-kn/arrays.xml b/packages/SettingsLib/res/values-kn/arrays.xml
index 975f60f..1ad0948 100644
--- a/packages/SettingsLib/res/values-kn/arrays.xml
+++ b/packages/SettingsLib/res/values-kn/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ko/arrays.xml b/packages/SettingsLib/res/values-ko/arrays.xml
index 16b840b..6e00b1082 100644
--- a/packages/SettingsLib/res/values-ko/arrays.xml
+++ b/packages/SettingsLib/res/values-ko/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ky/arrays.xml b/packages/SettingsLib/res/values-ky/arrays.xml
index 700aae1..ec37e64 100644
--- a/packages/SettingsLib/res/values-ky/arrays.xml
+++ b/packages/SettingsLib/res/values-ky/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-lo/arrays.xml b/packages/SettingsLib/res/values-lo/arrays.xml
index f116e6f..3fe8330 100644
--- a/packages/SettingsLib/res/values-lo/arrays.xml
+++ b/packages/SettingsLib/res/values-lo/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-lt/arrays.xml b/packages/SettingsLib/res/values-lt/arrays.xml
index c0aafdc..6b34af3 100644
--- a/packages/SettingsLib/res/values-lt/arrays.xml
+++ b/packages/SettingsLib/res/values-lt/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-lv/arrays.xml b/packages/SettingsLib/res/values-lv/arrays.xml
index 0f9ee52..16f1070 100644
--- a/packages/SettingsLib/res/values-lv/arrays.xml
+++ b/packages/SettingsLib/res/values-lv/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-mk/arrays.xml b/packages/SettingsLib/res/values-mk/arrays.xml
index 41427c1..d8b86be 100644
--- a/packages/SettingsLib/res/values-mk/arrays.xml
+++ b/packages/SettingsLib/res/values-mk/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ml/arrays.xml b/packages/SettingsLib/res/values-ml/arrays.xml
index 98e3bd6..bf6c67a 100644
--- a/packages/SettingsLib/res/values-ml/arrays.xml
+++ b/packages/SettingsLib/res/values-ml/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-mn/arrays.xml b/packages/SettingsLib/res/values-mn/arrays.xml
index f3c10d7..776c5c3 100644
--- a/packages/SettingsLib/res/values-mn/arrays.xml
+++ b/packages/SettingsLib/res/values-mn/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-mr/arrays.xml b/packages/SettingsLib/res/values-mr/arrays.xml
index c37baaa2..8b36c73 100644
--- a/packages/SettingsLib/res/values-mr/arrays.xml
+++ b/packages/SettingsLib/res/values-mr/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ms/arrays.xml b/packages/SettingsLib/res/values-ms/arrays.xml
index b19f038..2a1303b 100644
--- a/packages/SettingsLib/res/values-ms/arrays.xml
+++ b/packages/SettingsLib/res/values-ms/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-my/arrays.xml b/packages/SettingsLib/res/values-my/arrays.xml
index 3398c5b..332dba0 100644
--- a/packages/SettingsLib/res/values-my/arrays.xml
+++ b/packages/SettingsLib/res/values-my/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-nb/arrays.xml b/packages/SettingsLib/res/values-nb/arrays.xml
index 928ebc3..80916e3 100644
--- a/packages/SettingsLib/res/values-nb/arrays.xml
+++ b/packages/SettingsLib/res/values-nb/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ne/arrays.xml b/packages/SettingsLib/res/values-ne/arrays.xml
index ac1f187..decf4f5 100644
--- a/packages/SettingsLib/res/values-ne/arrays.xml
+++ b/packages/SettingsLib/res/values-ne/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-nl/arrays.xml b/packages/SettingsLib/res/values-nl/arrays.xml
index 7c90eab..e827be1 100644
--- a/packages/SettingsLib/res/values-nl/arrays.xml
+++ b/packages/SettingsLib/res/values-nl/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-or/arrays.xml b/packages/SettingsLib/res/values-or/arrays.xml
index a6c40b0..fc783f0 100644
--- a/packages/SettingsLib/res/values-or/arrays.xml
+++ b/packages/SettingsLib/res/values-or/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-pa/arrays.xml b/packages/SettingsLib/res/values-pa/arrays.xml
index 0fd5c56..f0e8396 100644
--- a/packages/SettingsLib/res/values-pa/arrays.xml
+++ b/packages/SettingsLib/res/values-pa/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-pl/arrays.xml b/packages/SettingsLib/res/values-pl/arrays.xml
index 71ecd46..c2be21d 100644
--- a/packages/SettingsLib/res/values-pl/arrays.xml
+++ b/packages/SettingsLib/res/values-pl/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/arrays.xml b/packages/SettingsLib/res/values-pt-rBR/arrays.xml
index f218fab..658b153 100644
--- a/packages/SettingsLib/res/values-pt-rBR/arrays.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/arrays.xml b/packages/SettingsLib/res/values-pt-rPT/arrays.xml
index e323455..8b63f7f 100644
--- a/packages/SettingsLib/res/values-pt-rPT/arrays.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/arrays.xml
@@ -50,8 +50,8 @@
</string-array>
<string-array name="hdcp_checking_titles">
<item msgid="2377230797542526134">"Nunca verificar"</item>
- <item msgid="3919638466823112484">"Verificar apenas conteúdo DRM"</item>
- <item msgid="9048424957228926377">"Verificar sempre"</item>
+ <item msgid="3919638466823112484">"Rever apenas conteúdo DRM"</item>
+ <item msgid="9048424957228926377">"Rever sempre"</item>
</string-array>
<string-array name="hdcp_checking_summaries">
<item msgid="4045840870658484038">"Nunca utilizar a verificação HDCP"</item>
@@ -273,4 +273,10 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <string-array name="entries_font_size">
+ <item msgid="9181293769180886675">"Pequeno"</item>
+ <item msgid="1484561228522634915">"Predefinição"</item>
+ <item msgid="4014311587094503943">"Grande"</item>
+ <item msgid="2904569270831156685">"O maior"</item>
+ </string-array>
</resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index d241f38..758bc32 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -335,8 +335,8 @@
<string name="adb_keys_warning_message" msgid="2968555274488101220">"Revogar acesso à depuração USB de todos os computadores anteriormente autorizados?"</string>
<string name="dev_settings_warning_title" msgid="8251234890169074553">"Permitir definições de programação?"</string>
<string name="dev_settings_warning_message" msgid="37741686486073668">"Estas definições destinam-se apenas a programação. Podem fazer com que o seu aparelho e as aplicações nele existentes falhem ou funcionem mal."</string>
- <string name="verify_apps_over_usb_title" msgid="6031809675604442636">"Verificar apps por USB"</string>
- <string name="verify_apps_over_usb_summary" msgid="1317933737581167839">"Verificar as aplicações instaladas via ADB/ADT para detetar comportamento perigoso"</string>
+ <string name="verify_apps_over_usb_title" msgid="6031809675604442636">"Rever apps por USB"</string>
+ <string name="verify_apps_over_usb_summary" msgid="1317933737581167839">"Rever as aplicações instaladas via ADB/ADT para detetar comportamento perigoso"</string>
<string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"São apresentados os dispositivos Bluetooth sem nomes (apenas endereços MAC)"</string>
<string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"Desativa a funcionalidade de volume absoluto do Bluetooth caso existam problemas de volume com dispositivos remotos, como um volume insuportavelmente alto ou a ausência de controlo"</string>
<string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"Ativa a pilha de funcionalidades Bluetooth Gabeldorche."</string>
diff --git a/packages/SettingsLib/res/values-pt/arrays.xml b/packages/SettingsLib/res/values-pt/arrays.xml
index f218fab..658b153 100644
--- a/packages/SettingsLib/res/values-pt/arrays.xml
+++ b/packages/SettingsLib/res/values-pt/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ro/arrays.xml b/packages/SettingsLib/res/values-ro/arrays.xml
index faa15c2..b839c12a 100644
--- a/packages/SettingsLib/res/values-ro/arrays.xml
+++ b/packages/SettingsLib/res/values-ro/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ru/arrays.xml b/packages/SettingsLib/res/values-ru/arrays.xml
index 4b6e692..707a34a 100644
--- a/packages/SettingsLib/res/values-ru/arrays.xml
+++ b/packages/SettingsLib/res/values-ru/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-si/arrays.xml b/packages/SettingsLib/res/values-si/arrays.xml
index eaacfb8..7a8e9ee 100644
--- a/packages/SettingsLib/res/values-si/arrays.xml
+++ b/packages/SettingsLib/res/values-si/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-sk/arrays.xml b/packages/SettingsLib/res/values-sk/arrays.xml
index bbfe969..5ff15e7 100644
--- a/packages/SettingsLib/res/values-sk/arrays.xml
+++ b/packages/SettingsLib/res/values-sk/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-sl/arrays.xml b/packages/SettingsLib/res/values-sl/arrays.xml
index b2003e5..f1e59e7 100644
--- a/packages/SettingsLib/res/values-sl/arrays.xml
+++ b/packages/SettingsLib/res/values-sl/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-sq/arrays.xml b/packages/SettingsLib/res/values-sq/arrays.xml
index ed86380..7bceea7 100644
--- a/packages/SettingsLib/res/values-sq/arrays.xml
+++ b/packages/SettingsLib/res/values-sq/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-sr/arrays.xml b/packages/SettingsLib/res/values-sr/arrays.xml
index a95e47b..36882c2 100644
--- a/packages/SettingsLib/res/values-sr/arrays.xml
+++ b/packages/SettingsLib/res/values-sr/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-sv/arrays.xml b/packages/SettingsLib/res/values-sv/arrays.xml
index c63465c..8061e9c 100644
--- a/packages/SettingsLib/res/values-sv/arrays.xml
+++ b/packages/SettingsLib/res/values-sv/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-sw/arrays.xml b/packages/SettingsLib/res/values-sw/arrays.xml
index 6ed4d5a..862fe38 100644
--- a/packages/SettingsLib/res/values-sw/arrays.xml
+++ b/packages/SettingsLib/res/values-sw/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ta/arrays.xml b/packages/SettingsLib/res/values-ta/arrays.xml
index 236f899..2f18e076 100644
--- a/packages/SettingsLib/res/values-ta/arrays.xml
+++ b/packages/SettingsLib/res/values-ta/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-te/arrays.xml b/packages/SettingsLib/res/values-te/arrays.xml
index fb4cff1..ed5a6a6 100644
--- a/packages/SettingsLib/res/values-te/arrays.xml
+++ b/packages/SettingsLib/res/values-te/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-th/arrays.xml b/packages/SettingsLib/res/values-th/arrays.xml
index 782e95e..e0046fc 100644
--- a/packages/SettingsLib/res/values-th/arrays.xml
+++ b/packages/SettingsLib/res/values-th/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-tl/arrays.xml b/packages/SettingsLib/res/values-tl/arrays.xml
index 19d3423..622587d 100644
--- a/packages/SettingsLib/res/values-tl/arrays.xml
+++ b/packages/SettingsLib/res/values-tl/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-tr/arrays.xml b/packages/SettingsLib/res/values-tr/arrays.xml
index 37891ae..99dca9e 100644
--- a/packages/SettingsLib/res/values-tr/arrays.xml
+++ b/packages/SettingsLib/res/values-tr/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-uk/arrays.xml b/packages/SettingsLib/res/values-uk/arrays.xml
index c32da85..976a487 100644
--- a/packages/SettingsLib/res/values-uk/arrays.xml
+++ b/packages/SettingsLib/res/values-uk/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-ur/arrays.xml b/packages/SettingsLib/res/values-ur/arrays.xml
index db9941e..39b7394 100644
--- a/packages/SettingsLib/res/values-ur/arrays.xml
+++ b/packages/SettingsLib/res/values-ur/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-uz/arrays.xml b/packages/SettingsLib/res/values-uz/arrays.xml
index edbd180..7605bdc 100644
--- a/packages/SettingsLib/res/values-uz/arrays.xml
+++ b/packages/SettingsLib/res/values-uz/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-vi/arrays.xml b/packages/SettingsLib/res/values-vi/arrays.xml
index ee599d6..5306574 100644
--- a/packages/SettingsLib/res/values-vi/arrays.xml
+++ b/packages/SettingsLib/res/values-vi/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-zh-rCN/arrays.xml b/packages/SettingsLib/res/values-zh-rCN/arrays.xml
index 2a85d31..ff3bac6 100644
--- a/packages/SettingsLib/res/values-zh-rCN/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/arrays.xml b/packages/SettingsLib/res/values-zh-rHK/arrays.xml
index a84f0e2..baf6662 100644
--- a/packages/SettingsLib/res/values-zh-rHK/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-zh-rTW/arrays.xml b/packages/SettingsLib/res/values-zh-rTW/arrays.xml
index b69fd53..1669e80 100644
--- a/packages/SettingsLib/res/values-zh-rTW/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SettingsLib/res/values-zu/arrays.xml b/packages/SettingsLib/res/values-zu/arrays.xml
index 0494f1c..d62e519 100644
--- a/packages/SettingsLib/res/values-zu/arrays.xml
+++ b/packages/SettingsLib/res/values-zu/arrays.xml
@@ -273,4 +273,12 @@
</string-array>
<string-array name="avatar_image_descriptions">
</string-array>
+ <!-- no translation found for entries_font_size:0 (9181293769180886675) -->
+ <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
+ <!-- no translation found for entries_font_size:1 (1484561228522634915) -->
+ <!-- no translation found for entries_font_size:1 (3579015730662088893) -->
+ <!-- no translation found for entries_font_size:2 (4014311587094503943) -->
+ <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
+ <!-- no translation found for entries_font_size:3 (2904569270831156685) -->
+ <!-- no translation found for entries_font_size:3 (490158884605093126) -->
</resources>
diff --git a/packages/SystemUI/docs/device-entry/quickaffordance.md b/packages/SystemUI/docs/device-entry/quickaffordance.md
index 79d5718..d662649 100644
--- a/packages/SystemUI/docs/device-entry/quickaffordance.md
+++ b/packages/SystemUI/docs/device-entry/quickaffordance.md
@@ -52,6 +52,11 @@
* Unselect an already-selected quick affordance from a slot
* Unselect all already-selected quick affordances from a slot
+## Device Policy
+Returning `DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL` or
+`DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL` from
+`DevicePolicyManager#getKeyguardDisabledFeatures` will disable the keyguard quick affordance feature on the device.
+
## Testing
* Add a unit test for your implementation of `KeyguardQuickAffordanceConfig`
* Manually verify that your implementation works in multi-user environments from both the main user and a secondary user
diff --git a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java
index e0cc8f4..e0d0184 100644
--- a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java
+++ b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java
@@ -118,12 +118,6 @@
void setPrimaryTextColor(int color);
/**
- * When the view is displayed on Dream, set the flag to true, immediately after the view is
- * created.
- */
- void setIsDreaming(boolean isDreaming);
-
- /**
* Set the UI surface for the cards. Should be called immediately after the view is created.
*/
void setUiSurface(String uiSurface);
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_host_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_host_view.xml
deleted file mode 100644
index 8497ff0..0000000
--- a/packages/SystemUI/res-keyguard/layout/keyguard_host_view.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License")
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- This is the host view that generally contains two sub views: the widget view
- and the security view. -->
-<com.android.keyguard.KeyguardHostView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/res-auto"
- android:id="@+id/keyguard_host_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:clipChildren="false"
- android:clipToPadding="false"
- android:paddingTop="@dimen/keyguard_lock_padding"
- android:importantForAccessibility="yes"> <!-- Needed because TYPE_WINDOW_STATE_CHANGED is sent
- from this view when bouncer is shown -->
-
- <com.android.keyguard.KeyguardSecurityContainer
- android:id="@+id/keyguard_security_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:clipChildren="false"
- android:clipToPadding="false"
- android:padding="0dp"
- android:fitsSystemWindows="true"
- android:layout_gravity="center">
- <com.android.keyguard.KeyguardSecurityViewFlipper
- android:id="@+id/view_flipper"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:clipChildren="false"
- android:clipToPadding="false"
- android:paddingTop="@dimen/keyguard_security_view_top_margin"
- android:layout_gravity="center"
- android:gravity="center">
- </com.android.keyguard.KeyguardSecurityViewFlipper>
- </com.android.keyguard.KeyguardSecurityContainer>
-
-</com.android.keyguard.KeyguardHostView>
-
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_security_container_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_security_container_view.xml
new file mode 100644
index 0000000..426cfaf
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_security_container_view.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2023, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<com.android.keyguard.KeyguardSecurityContainer
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/keyguard_security_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:clipChildren="false"
+ android:clipToPadding="false"
+ android:paddingTop="@dimen/keyguard_lock_padding"
+ android:importantForAccessibility="yes"> <!-- Needed because TYPE_WINDOW_STATE_CHANGED is sent
+ from this view when bouncer is shown -->
+ <com.android.keyguard.KeyguardSecurityViewFlipper
+ android:id="@+id/view_flipper"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:clipChildren="false"
+ android:clipToPadding="false"
+ android:paddingTop="@dimen/keyguard_security_view_top_margin"
+ android:layout_gravity="center"
+ android:gravity="center">
+ </com.android.keyguard.KeyguardSecurityViewFlipper>
+</com.android.keyguard.KeyguardSecurityContainer>
+
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 65c2417..a2fa52c 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Helderheid"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Kleuromkering"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Kleurregstelling"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Bestuur gebruikers"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Klaar"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Maak toe"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"skermopname"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Titelloos"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Bystandmodus"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrotingvenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vergrotingvensterkontroles"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoem in"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Kan nie uitsaai nie"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Kan nie stoor nie. Probeer weer."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Kan nie stoor nie."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Gebruik minstens 4 karakters"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Gebruik minder as 16 karakters"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Bounommer"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Bounommer is na knipbord gekopieer."</string>
<string name="basic_status" msgid="2315371112182658176">"Maak gesprek oop"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Minstens een toestel beskikbaar is"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Raak en hou kortpad"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Kanselleer"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Draai nou om"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Vou foon oop vir ’n beter selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Draai om na voorste skerm vir ’n beter selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Gebruik die agterste kamera vir ’n breër foto met ’n hoër resolusie."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Hierdie skerm sal afskakel"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Voubare toestel word ontvou"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Voubare toestel word omgekeer"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> batterykrag oor"</string>
diff --git a/packages/SystemUI/res/values-af/tiles_states_strings.xml b/packages/SystemUI/res/values-af/tiles_states_strings.xml
index e60f233..da24a79 100644
--- a/packages/SystemUI/res/values-af/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-af/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Af"</item>
<item msgid="5966994759929723339">"Aan"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index d2d7e64..7f2ccac 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ብሩህነት"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ተቃራኒ ቀለም"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"የቀለም ማስተካከያ"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ተጠቃሚዎችን ያስተዳድሩ"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"ተከናውኗል"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ዝጋ"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ማያን መቅረጽ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"ርዕስ የለም"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ተጠባባቂ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"የማጉያ መስኮት"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"የማጉያ መስኮት መቆጣጠሪያዎች"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"አጉላ"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"መሰራጨት አይችልም"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"ማስቀመጥ አልተቻለም። እንደገና ይሞክሩ።"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"ማስቀመጥ አልተቻለም።"</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"የግንብ ቁጥር"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"የገንባ ቁጥር ወደ ቅንጥብ ሰሌዳ ተቀድቷል።"</string>
<string name="basic_status" msgid="2315371112182658176">"ውይይት ይክፈቱ"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ቢያንስ አንድ መሣሪያ ይገኛል"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"የይንኩ እና ይያዙ አቋራጭ"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ይቅር"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"አሁን ገልበጥ"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"ለተሻለ የራስ ፎቶ ስልክን ይዘርጉ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"ለተሻለ የራስ ፎቶ ወደፊት ማሳያ ይገልበጥ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ከፍተኛ ጥራት ላለው ሰፊ ፎቶ የኋለኛውን ካሜራ ይጠቀሙ።"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ይህ ማያ ገጽ ይጠፋል"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"መታጠፍ የሚችል መሣሪያ እየተዘረጋ ነው"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"መታጠፍ የሚችል መሣሪያ እየተገለበጠ ነው"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ባትሪ ይቀራል"</string>
diff --git a/packages/SystemUI/res/values-am/tiles_states_strings.xml b/packages/SystemUI/res/values-am/tiles_states_strings.xml
index bbf2d23..26ef52d 100644
--- a/packages/SystemUI/res/values-am/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-am/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ጠፍቷል"</item>
<item msgid="5966994759929723339">"በርቷል"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 66279d3..50165d4 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"السطوع"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"قلب الألوان"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"تصحيح الألوان"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"إدارة المستخدمين"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"تم"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"إغلاق"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"تسجيل محتوى الشاشة"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"بلا عنوان"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"وضع الاستعداد"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"نافذة التكبير"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"عناصر التحكم في نافذة التكبير"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"تكبير"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"حدث خطأ. يُرجى إعادة المحاولة."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"جارٍ التحميل"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"جهاز لوحي"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"بثّ الوسائط"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"جارٍ بثّ \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\""</string>
<string name="controls_error_timeout" msgid="794197289772728958">"غير نشط، تحقّق من التطبيق."</string>
<string name="controls_error_removed" msgid="6675638069846014366">"لم يتم العثور عليه."</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"عنصر التحكّم غير متوفّر"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"يتعذّر البث"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"لا يمكن إجراء الحفظ. يُرجى إعادة المحاولة."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"لا يمكن إجراء الحفظ."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"رقم الإصدار"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"تم نسخ رقم الإصدار إلى الحافظة."</string>
<string name="basic_status" msgid="2315371112182658176">"محادثة مفتوحة"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• توفُّر جهاز واحد على الأقل"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"انقر مع الاستمرار على الاختصار."</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"إلغاء"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"قلب الجهاز الآن"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"عليك فتح الهاتف لالتقاط صورة ذاتية بشكل أفضل."</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"أتريد استخدام الكاميرا الأمامية لصورة ذاتية أفضل؟"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"استخدِم الكاميرا الخلفية لالتقاط صورة أعرض وبدرجة دقة أعلى."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"* سيتم إطفاء هذه الشاشة."</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"جهاز قابل للطي يجري فتحه"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"جهاز قابل للطي يجري قلبه"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"النسبة المئوية المتبقية من شحن البطارية: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ar/tiles_states_strings.xml b/packages/SystemUI/res/values-ar/tiles_states_strings.xml
index 44b58f9..b88d097 100644
--- a/packages/SystemUI/res/values-ar/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ar/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"غير مفعّلة"</item>
<item msgid="5966994759929723339">"مفعَّلة"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 688025b..2f868ec 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"উজ্জ্বলতা"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ৰং বিপৰীতকৰণ"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ৰং শুধৰণী"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ব্যৱহাৰকাৰী পৰিচালনা কৰক"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"সম্পন্ন কৰা হ’ল"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"বন্ধ কৰক"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"স্ক্ৰীন ৰেকৰ্ডিং"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"কোনো শিৰোনাম নাই"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ষ্টেণ্ডবাই"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"বিবৰ্ধন ৱিণ্ড’"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"বিবৰ্ধন ৱিণ্ড’ৰ নিয়ন্ত্ৰণসমূহ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"জুম ইন কৰক"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"কিবা ভুল হ’ল। পুনৰ চেষ্টা কৰক।"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"ল’ড হৈ আছে"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"টেবলেট"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"আপোনাৰ মিডিয়া কাষ্ট কৰি থকা হৈছে"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> কাষ্ট কৰি থকা হৈছে"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"সক্ৰিয় নহয়, এপ্টো পৰীক্ষা কৰক"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"বিচাৰি পোৱা নগ’ল"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"নিয়ন্ত্ৰণটো উপলব্ধ নহয়"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"সম্প্ৰচাৰ কৰিব নোৱাৰি"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"ছেভ কৰিব নোৱাৰি। পুনৰ চেষ্টা কৰক।"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"ছেভ কৰিব নোৱাৰি।"</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"বিল্ডৰ নম্বৰ"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"ক্লিপব’ৰ্ডলৈ বিল্ডৰ নম্বৰ প্ৰতিলিপি কৰা হ’ল।"</string>
<string name="basic_status" msgid="2315371112182658176">"বাৰ্তালাপ খোলক"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• অতি কমেও এটা ডিভাইচ উপলব্ধ"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"শ্বৰ্টকাটটোত স্পৰ্শ কৰি ধৰি ৰাখক"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"বাতিল কৰক"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"এতিয়াই ফ্লিপ কৰক"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"উন্নত ছেল্ফিৰ বাবে ফ’নটো আনফ’ল্ড কৰক"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"উন্নত ছেল্ফিৰ বাবে সন্মুখৰ ডিছপ্লে’ ফ্লিপ কৰিবনে?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"অধিক ৰিজ’লিউশ্বনৰ বহল ফট’ৰ বাবে পিছফালে থকা কেমেৰাটো ব্যৱহাৰ কৰক।"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ এই স্ক্ৰীনখন অফ হ’ব"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"জপাব পৰা ডিভাইচৰ জাপ খুলি থকা হৈছে"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"জপাব পৰা ডিভাইচৰ ওলোটাই থকা হৈছে"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> বেটাৰী বাকী আছে"</string>
diff --git a/packages/SystemUI/res/values-as/tiles_states_strings.xml b/packages/SystemUI/res/values-as/tiles_states_strings.xml
index 3145341..e7dc9b4 100644
--- a/packages/SystemUI/res/values-as/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-as/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"অফ আছে"</item>
<item msgid="5966994759929723339">"অন আছে"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index 77bf65b..db80125 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Parlaqlıq"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Rəng inversiyası"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Rəng korreksiyası"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"İstifadəçiləri idarə edin"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Hazır"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Bağlayın"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ekran çəkimi"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Başlıq yoxdur"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gözləmə rejimi"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Böyütmə Pəncərəsi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Böyütmə Pəncərəsi Kontrolları"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Yaxınlaşdırın"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Xəta oldu. Yenə cəhd edin."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Yüklənir"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"planşet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Medianız yayımlanır"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> yayımlanır"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Aktiv deyil, tətbiqi yoxlayın"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Tapılmadı"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Nəzarət əlçatan deyil"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Yayımlamaq mümkün deyil"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Yadda saxlamaq mümkün deyil. Yenə cəhd edin."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Yadda saxlamaq mümkün deyil."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Montaj nömrəsi"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Versiya nömrəsi mübadilə buferinə kopyalandı."</string>
<string name="basic_status" msgid="2315371112182658176">"Açıq söhbət"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Ən azı bir cihaz əlçatandır"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Qısayola toxunub saxlayın"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Ləğv edin"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"İndi fırladın"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Daha yaxşı selfi üçün telefonu açın"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Daha yaxşı selfi üçün ön displeyə çevrilsin?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Daha yüksək ayırdetmə dəqiqliyi ilə daha geniş şəkil üçün arxaya baxan kameradan istifadə edin."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Bu ekran deaktiv ediləcək"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Qatlana bilən cihaz açılır"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Qatlana bilən cihaz fırladılır"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> enerji qalıb"</string>
diff --git a/packages/SystemUI/res/values-az/tiles_states_strings.xml b/packages/SystemUI/res/values-az/tiles_states_strings.xml
index fb745b25..e0fcf89 100644
--- a/packages/SystemUI/res/values-az/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-az/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Deaktiv"</item>
<item msgid="5966994759929723339">"Aktiv"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index 78812ae..494bcbe 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Osvetljenost"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inverzija boja"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Korekcija boja"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Upravljajte korisnicima"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Gotovo"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Zatvori"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"snimanje ekrana"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Bez naslova"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravnosti"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za uvećanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za uvećanje"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Uvećajte"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Došlo je do greške. Probajte ponovo."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Učitava se"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Prebacivanje medija"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Prebacuje se <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Neaktivno. Vidite aplikaciju"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nije pronađeno"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Kontrola nije dostupna"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Emitovanje nije uspelo"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Čuvanje nije uspelo. Probajte ponovo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Čuvanje nije uspelo."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Koristite bar 4 znaka"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Koristite manje od 16 znakova"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Broj verzije"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Broj verzije je kopiran u privremenu memoriju."</string>
<string name="basic_status" msgid="2315371112182658176">"Otvorite konverzaciju"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• da je dostupan barem jedan uređaj"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Dodirnite i zadržite prečicu"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Otkaži"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Obrni"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Otvorite telefon za bolji selfi"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Želite da obrnete na prednji ekran za bolji selfi?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Koristite zadnju kameru da biste snimili širu sliku sa višom rezolucijom."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Ovaj ekran će se isključiti"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Uređaj na preklop se otvara"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Uređaj na preklop se obrće"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Preostalo je još<xliff:g id="PERCENTAGE">%s</xliff:g> baterije"</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml b/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml
index b69b064..fd604b5 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Isključeno"</item>
<item msgid="5966994759929723339">"Uključeno"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index b539e99..62faafb 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Яркасць"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Інверсія колераў"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Карэкцыя колераў"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Кіраваць карыстальнікамі"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Гатова"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Закрыць"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"запіс экрана"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Без назвы"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Рэжым чакання"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Акно павелічэння"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Налады акна павелічэння"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Павялічыць маштаб"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Нешта пайшло не так. Паўтарыце спробу."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Ідзе загрузка"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"планшэт"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Трансляцыя мультымедыйнага змесціва"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Трансляцыя праграмы \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\""</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактыўна, праверце праграму"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не знойдзена"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Кіраванне недаступнае"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Не ўдалося запусціць трансляцыю"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Не ўдалося захаваць. Паўтарыце спробу."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Не ўдалося захаваць."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Нумар зборкі"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Нумар зборкі скапіраваны ў буфер абмену."</string>
<string name="basic_status" msgid="2315371112182658176">"Адкрытая размова"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Даступная хаця б адна прылада."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Дакраніцеся і ўтрымлівайце ярлык"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Скасаваць"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Пераключыць"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Каб атрымаць лепшае сэлфі, раскрыйце тэлефон"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Пераключыць на пярэдні дысплэй для лепшага сэлфі?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Каб зрабіць шырэйшае фота з больш высокай раздзяляльнасцю, скарыстайце заднюю камеру."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Гэты экран будзе выключаны"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Складная прылада ў раскладзеным выглядзе"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Перавернутая складная прылада"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Засталося зараду: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-be/tiles_states_strings.xml b/packages/SystemUI/res/values-be/tiles_states_strings.xml
index 8fb2da2..4050129 100644
--- a/packages/SystemUI/res/values-be/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-be/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Выключана"</item>
<item msgid="5966994759929723339">"Уключана"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index a45ca4c..ad34919 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Яркост"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Цветове: инверт."</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Корекция на цветове"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Управление на потребителите"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Готово"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Затваряне"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"записване на екрана"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Няма заглавие"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим на готовност"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Прозорец за увеличение"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроли за прозореца за увеличение"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Увеличаване на мащаба"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Нещо се обърка. Опитайте отново."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Зарежда се"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"таблет"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Мултимедията се предава"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> се предава"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактивно, проверете прилож."</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не е намерено"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Контролата не е налице"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Предаването не е възможно"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Не може да се запази. Опитайте отново."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Не може да се запази."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Номер на компилацията"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Номерът на компилацията е копиран в буферната памет."</string>
<string name="basic_status" msgid="2315371112182658176">"Отворен разговор"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Налице е поне едно устройство."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Докоснете и задръжте прекия път"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Отказ"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Обръщане сега"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Отворете телефона за по-добро селфи"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Да се ползва ли предната камера за по-добро селфи?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Използвайте задната камера за по-широка снимка с по-висока разделителна способност."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Този екран ще се изключи"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Разгъване на сгъваемо устройство"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Обръщане на сгъваемо устройство"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Оставаща батерия: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-bg/tiles_states_strings.xml b/packages/SystemUI/res/values-bg/tiles_states_strings.xml
index b85133b..011c624 100644
--- a/packages/SystemUI/res/values-bg/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bg/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Изкл."</item>
<item msgid="5966994759929723339">"Вкл."</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index 08b7ca4..3196842 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"উজ্জ্বলতা"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"কালার ইনভার্সন"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"রঙ সংশোধন"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ব্যবহারকারীদের ম্যানেজ করুন"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"সম্পন্ন হয়েছে"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"বন্ধ করুন"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"স্ক্রিন রেকর্ডিং"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"কোনও শীর্ষক নেই"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"স্ট্যান্ডবাই"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"উইন্ডো বড় করে দেখা"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"উইন্ডো কন্ট্রোল বড় করে দেখা"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"বড় করুন"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"কোনও সমস্যা হয়েছে। আবার চেষ্টা করুন।"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"লোড করা হচ্ছে"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"ট্যাবলেট"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"আপনার মিডিয়া কাস্ট করা"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> কাস্ট করা হচ্ছে"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"বন্ধ আছে, অ্যাপ চেক করুন"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"খুঁজে পাওয়া যায়নি"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"কন্ট্রোল উপলভ্য নেই"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"সম্প্রচার করা যাচ্ছে না"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"সেভ করা যাচ্ছে না। আবার চেষ্টা করুন।"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"সেভ করা যাচ্ছে না।"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"কমপক্ষে ৪টি অক্ষর ব্যবহার করুন"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"১৬টির চেয়ে কম অক্ষর ব্যবহার করুন"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"বিল্ড নম্বর"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"বিল্ড নম্বর ক্লিপবোর্ডে কপি করা হয়েছে।"</string>
<string name="basic_status" msgid="2315371112182658176">"খোলা কথোপকথন"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• অন্তত একটি ডিভাইস উপলভ্য"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"শর্টকাট টাচ করে ধরে রাখুন"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"বাতিল করুন"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"এখনই উল্টান"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"আরও ভাল সেলফির জন্য ফোন আনফোল্ড করা"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"আরও ভাল সেলফির জন্য সামনের ক্যামেরায় পাল্টাতে চান?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"আরও ভাল রেজোলিউশন সহ আরও বেশি ওয়াইড ছবির জন্য ব্যাক-ক্যামেরা ব্যবহার করুন।"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ এই স্ক্রিন বন্ধ হয়ে যাবে"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ফোল্ড করা যায় এমন ডিভাইস খোলা হচ্ছে"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ফোল্ড করা যায় এমন ডিভাইস উল্টানো হচ্ছে"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ব্যাটারির চার্জ বাকি আছে"</string>
diff --git a/packages/SystemUI/res/values-bn/tiles_states_strings.xml b/packages/SystemUI/res/values-bn/tiles_states_strings.xml
index d70afc0..00ce04e 100644
--- a/packages/SystemUI/res/values-bn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bn/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"বন্ধ আছে"</item>
<item msgid="5966994759929723339">"চালু আছে"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index e7a6006..8134ec9 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Osvjetljenje"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inverzija boja"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Ispravka boja"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Veličina fonta"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Upravljajte korisnicima"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Gotovo"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Zatvori"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"snimanje ekrana"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Bez naslova"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za uvećavanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za uvećavanje"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Uvećavanje"</string>
@@ -862,7 +869,7 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Nešto nije uredu. Pokušajte ponovo."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Učitavanje"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Emitiranje medijskih sadržaja"</string>
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Emitiranje medija"</string>
<string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Emitiranje aplikacije <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Neaktivno, vidite aplikaciju"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nije pronađeno"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nije moguće emitirati"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Nije moguće sačuvati. Pokušajte ponovo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Nije moguće sačuvati."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Koristite najmanje 4 znaka"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Koristite manje od 16 znakova"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Broj verzije"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Broj verzije je kopiran u međumemoriju."</string>
<string name="basic_status" msgid="2315371112182658176">"Otvoreni razgovor"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Dostupan je najmanje jedan uređaj"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Dodirnite i zadržite prečicu"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Otkaži"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Obrni sada"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Raširite telefon za bolji selfi"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Obrnuti na prednji ekran radi boljeg selfija?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Koristite zadnju kameru za širu fotografiju veće rezolucije."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Ekran će se isključiti"</b></string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Promijenite zaslon odmah"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Otklopite telefon"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Želite li promijeniti zaslon?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"Za višu razlučivost upotrijebite stražnju kameru"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"Za višu razlučivost okrenite telefon"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Sklopivi uređaj se rasklapa"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Sklopivi uređaj se obrće"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Preostalo baterije: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-bs/tiles_states_strings.xml b/packages/SystemUI/res/values-bs/tiles_states_strings.xml
index b69b064..32051ef 100644
--- a/packages/SystemUI/res/values-bs/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bs/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Isključeno"</item>
<item msgid="5966994759929723339">"Uključeno"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Nedostupno"</item>
+ <item msgid="2478289035899842865">"Isključeno"</item>
+ <item msgid="5137565285664080143">"Uključeno"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 109aeb7..ca8a4c3 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brillantor"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversió de colors"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correcció de color"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gestiona els usuaris"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Fet"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Tanca"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"gravació de pantalla"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sense títol"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Finestra d\'ampliació"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Finestra de controls d\'ampliació"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Amplia"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"S\'ha produït un error. Torna-ho a provar."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"S\'està carregant"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tauleta"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"S\'està emetent el contingut multimèdia"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"S\'està emetent <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inactiu; comprova l\'aplicació"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"No s\'ha trobat"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"El control no està disponible"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"No es pot emetre"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"No es pot desar. Torna-ho a provar."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"No es pot desar."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Número de compilació"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"El número de compilació s\'ha copiat al porta-retalls."</string>
<string name="basic_status" msgid="2315371112182658176">"Conversa oberta"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Almenys un dispositiu està disponible."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Mantén premuda la drecera"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancel·la"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Gira ara"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Desplega el telèfon per fer una millor selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Girar a pantalla frontal per fer millors selfies?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Utilitza la càmera posterior per obtenir una foto més àmplia amb una resolució més alta."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Aquesta pantalla s\'apagarà"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositiu plegable desplegant-se"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositiu plegable girant"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Queda un <xliff:g id="PERCENTAGE">%s</xliff:g> de bateria"</string>
diff --git a/packages/SystemUI/res/values-ca/tiles_states_strings.xml b/packages/SystemUI/res/values-ca/tiles_states_strings.xml
index aaf19c7..067b970 100644
--- a/packages/SystemUI/res/values-ca/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ca/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Desactivat"</item>
<item msgid="5966994759929723339">"Activat"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index de48119..0e6643e 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Jas"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Převrácení barev"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Korekce barev"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Správa uživatelů"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Hotovo"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Zavřít"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"nahrávání obrazovky"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Bez názvu"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostní režim"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Zvětšovací okno"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ovládací prvky zvětšovacího okna"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Přiblížit"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Vysílání se nezdařilo"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Uložení se nezdařilo. Zkuste to znovu."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Uložení se nezdařilo."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Heslo musí mít alespoň 4 znaky"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Použijte méně než 16 znaků"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Číslo sestavení"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Číslo sestavení bylo zkopírováno do schránky."</string>
<string name="basic_status" msgid="2315371112182658176">"Otevřít konverzaci"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Je k dispozici alespoň jedno zařízení"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Podržte zkratku"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Zrušit"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Otočit"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Rozložte telefon, selfie bude lepší"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Otočit na přední displej pro lepší selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Pomocí zadního fotoaparátu pořiďte širší fotku s vyšším rozlišením."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Tato obrazovka se vypne"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Rozkládání rozkládacího zařízení"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Otáčení rozkládacího zařízení"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Zbývá <xliff:g id="PERCENTAGE">%s</xliff:g> baterie"</string>
diff --git a/packages/SystemUI/res/values-cs/tiles_states_strings.xml b/packages/SystemUI/res/values-cs/tiles_states_strings.xml
index 64e83e0..df3d403 100644
--- a/packages/SystemUI/res/values-cs/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-cs/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Vypnuto"</item>
<item msgid="5966994759929723339">"Zapnuto"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 73ec8f5..0fc3897 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Lysstyrke"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Ombytning af farver"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Farvekorrigering"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Administrer brugere"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Udfør"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Luk"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"skærmoptagelse"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Ingen titel"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Vindue med forstørrelse"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vindue med forstørrelsesstyring"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom ind"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Noget gik galt. Prøv igen."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Indlæser"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Caster medie"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Caster <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inaktiv. Tjek appen"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Ikke fundet"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Styringselement ikke tilgængeligt"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Der kan ikke udsendes en fællesbesked"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Der kan ikke gemmes. Prøv igen."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Der kan ikke gemmes."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Buildnummer"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Buildnummeret blev kopieret til udklipsholderen."</string>
<string name="basic_status" msgid="2315371112182658176">"Åben samtale"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Mindst én enhed er tilgængelig"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Hold fingeren på genvejen"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Annuller"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Vend nu"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Fold telefonen ud for at tage en bedre selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Vil du bruge frontkameraet for at få bedre selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Brug bagsidekameraet for at få et bredere billede med højere opløsning."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Denne skærm slukkes"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldbar enhed foldes ud"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldbar enhed vendes om"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> batteri tilbage"</string>
diff --git a/packages/SystemUI/res/values-da/tiles_states_strings.xml b/packages/SystemUI/res/values-da/tiles_states_strings.xml
index f0132dc..7e2f87d 100644
--- a/packages/SystemUI/res/values-da/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-da/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Fra"</item>
<item msgid="5966994759929723339">"Til"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index c3fb287e..d6568e7 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Helligkeit"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Farbumkehr"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Farbkorrektur"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Nutzer verwalten"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Fertig"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Schließen"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"Bildschirmaufzeichnung"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Kein Titel"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrößerungsfenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Einstellungen für Vergrößerungsfenster"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Heranzoomen"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Ein Fehler ist aufgetreten. Versuch es noch einmal."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Wird geladen"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"Tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Medien werden gestreamt"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> wird gestreamt"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inaktiv – sieh in der App nach"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nicht gefunden"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Steuerelement nicht verfügbar"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Übertragung nicht möglich"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Speichern nicht möglich. Versuche es noch einmal."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Speichern nicht möglich."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Gib mindestens vier Zeichen ein"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Maximal 16 Zeichen möglich"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Build-Nummer"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Build-Nummer in Zwischenablage kopiert."</string>
<string name="basic_status" msgid="2315371112182658176">"Offene Unterhaltung"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Mindestens ein Gerät ist verfügbar"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Verknüpfung berühren & halten"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Abbrechen"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Jetzt umdrehen"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Für ein besseres Selfie Smartphone öffnen"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Für ein besseres Selfie Frontbildschirm verwenden?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Verwende die Rückkamera, um Fotos mit einem weiteren Blickwinkel und höherer Auflösung aufzunehmen."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Dieses Display wird dann ausgeschaltet"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Faltbares Gerät wird geöffnet"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Faltbares Gerät wird umgeklappt"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Akku bei <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-de/tiles_states_strings.xml b/packages/SystemUI/res/values-de/tiles_states_strings.xml
index bc50e16..bd73a05 100644
--- a/packages/SystemUI/res/values-de/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-de/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Aus"</item>
<item msgid="5966994759929723339">"An"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index dacd2f0..7b413ed 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Φωτεινότητα"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Αντιστροφή χρωμάτων"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Διόρθωση χρωμάτων"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Διαχείριση χρηστών"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Τέλος"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Κλείσιμο"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"εγγραφή οθόνης"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Χωρίς τίτλο"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Κατάσταση αναμονής"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Παράθυρο μεγέθυνσης"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Στοιχεία ελέγχου παραθύρου μεγέθυνσης"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Μεγέθυνση"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Δεν είναι δυνατή η μετάδοση"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Δεν είναι δυνατή η αποθήκευση. Δοκιμάστε ξανά."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Δεν είναι δυνατή η αποθήκευση."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Αριθμός έκδοσης"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Ο αριθμός έκδοσης αντιγράφηκε στο πρόχειρο."</string>
<string name="basic_status" msgid="2315371112182658176">"Άνοιγμα συνομιλίας"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Είναι διαθέσιμη τουλάχιστον μία συσκευή"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Παρατεταμένο άγγιγμα συντόμευσης"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Ακύρωση"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Αναστροφή τώρα"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Ξεδιπλώστε το τηλέφωνο για καλύτερη selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Αναστροφή στην μπροστ. οθόνη για καλύτερη selfie;"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Χρησιμοποιήστε την πίσω κάμερα για να βγάλετε μια φωτογραφία με μεγαλύτερο εύρος και υψηλότερη ανάλυση."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"* Αυτή η οθόνη θα απενεργοποιηθεί"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Αναδιπλούμενη συσκευή που ξεδιπλώνει"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Αναδιπλούμενη συσκευή που διπλώνει"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Απομένει το <xliff:g id="PERCENTAGE">%s</xliff:g> της μπαταρίας"</string>
diff --git a/packages/SystemUI/res/values-el/tiles_states_strings.xml b/packages/SystemUI/res/values-el/tiles_states_strings.xml
index 352af39..5c7c738 100644
--- a/packages/SystemUI/res/values-el/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-el/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Ανενεργό"</item>
<item msgid="5966994759929723339">"Ενεργό"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 5f6a481..5b6c106 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brightness"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Colour inversion"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Colour correction"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Font size"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Manage users"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Done"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Close"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"screen recording"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Can’t broadcast"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Can’t save. Try again."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Can’t save."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Use at least four characters"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Use fewer than 16 characters"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Build number"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Build number copied to clipboard."</string>
<string name="basic_status" msgid="2315371112182658176">"Open conversation"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• At least one device is available"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Touch & hold shortcut"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancel"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Flip now"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Unfold phone for a better selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Flip to front display for a better selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use the rear-facing camera for a wider photo with higher resolution."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ This screen will turn off"</b></string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Switch screens now"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Unfold phone"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Switch screens?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"For higher resolution, use the rear camera"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"For higher resolution, flip the phone"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> battery remaining"</string>
diff --git a/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
index 56cdbef..0cf2868 100644
--- a/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Off"</item>
<item msgid="5966994759929723339">"On"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Unavailable"</item>
+ <item msgid="2478289035899842865">"Off"</item>
+ <item msgid="5137565285664080143">"On"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index bd3fa83..50134c8 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brightness"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Color inversion"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Color correction"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Font size"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Manage users"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Done"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Close"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"screen recording"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification Window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification Window Controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Can’t broadcast"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Can’t save. Try again."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Can’t save."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Use at least 4 characters"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Use fewer than 16 characters"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Build number"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Build number copied to clipboard."</string>
<string name="basic_status" msgid="2315371112182658176">"Open conversation"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• At least one device is available"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Touch & hold shortcut"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancel"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Flip now"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Unfold phone for a better selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Flip to front display for a better selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use the rear-facing camera for a wider photo with higher resolution."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ This screen will turn off"</b></string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Switch screens now"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Unfold phone"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Switch screens?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"For higher resolution, use the rear camera"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"For higher resolution, flip the phone"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> battery remaining"</string>
diff --git a/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml
index 56cdbef..0cf2868 100644
--- a/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Off"</item>
<item msgid="5966994759929723339">"On"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Unavailable"</item>
+ <item msgid="2478289035899842865">"Off"</item>
+ <item msgid="5137565285664080143">"On"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 5f6a481..5b6c106 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brightness"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Colour inversion"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Colour correction"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Font size"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Manage users"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Done"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Close"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"screen recording"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Can’t broadcast"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Can’t save. Try again."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Can’t save."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Use at least four characters"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Use fewer than 16 characters"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Build number"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Build number copied to clipboard."</string>
<string name="basic_status" msgid="2315371112182658176">"Open conversation"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• At least one device is available"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Touch & hold shortcut"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancel"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Flip now"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Unfold phone for a better selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Flip to front display for a better selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use the rear-facing camera for a wider photo with higher resolution."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ This screen will turn off"</b></string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Switch screens now"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Unfold phone"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Switch screens?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"For higher resolution, use the rear camera"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"For higher resolution, flip the phone"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> battery remaining"</string>
diff --git a/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
index 56cdbef..0cf2868 100644
--- a/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Off"</item>
<item msgid="5966994759929723339">"On"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Unavailable"</item>
+ <item msgid="2478289035899842865">"Off"</item>
+ <item msgid="5137565285664080143">"On"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 5f6a481..5b6c106 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brightness"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Colour inversion"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Colour correction"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Font size"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Manage users"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Done"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Close"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"screen recording"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Can’t broadcast"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Can’t save. Try again."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Can’t save."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Use at least four characters"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Use fewer than 16 characters"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Build number"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Build number copied to clipboard."</string>
<string name="basic_status" msgid="2315371112182658176">"Open conversation"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• At least one device is available"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Touch & hold shortcut"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancel"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Flip now"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Unfold phone for a better selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Flip to front display for a better selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use the rear-facing camera for a wider photo with higher resolution."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ This screen will turn off"</b></string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Switch screens now"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Unfold phone"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Switch screens?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"For higher resolution, use the rear camera"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"For higher resolution, flip the phone"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> battery remaining"</string>
diff --git a/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
index 56cdbef..0cf2868 100644
--- a/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Off"</item>
<item msgid="5966994759929723339">"On"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Unavailable"</item>
+ <item msgid="2478289035899842865">"Off"</item>
+ <item msgid="5137565285664080143">"On"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-en-rXC/strings.xml b/packages/SystemUI/res/values-en-rXC/strings.xml
index 93d48ef..f8f7759 100644
--- a/packages/SystemUI/res/values-en-rXC/strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brightness"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Color inversion"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Color correction"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Font size"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Manage users"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Done"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Close"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"screen recording"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification Window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification Window Controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Can’t broadcast"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Can’t save. Try again."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Can’t save."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Use at least 4 characters"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Use fewer than 16 characters"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Build number"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Build number copied to clipboard."</string>
<string name="basic_status" msgid="2315371112182658176">"Open conversation"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• At least one device is available"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Touch & hold shortcut"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancel"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Flip now"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Unfold phone for a better selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Flip to front display for a better selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use the rear-facing camera for a wider photo with higher resolution."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930">""<b>"✱ This screen will turn off"</b>""</string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Switch screens now"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Unfold phone"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Switch screens?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"For higher resolution, use the rear camera"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"For higher resolution, flip the phone"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> battery remaining"</string>
diff --git a/packages/SystemUI/res/values-en-rXC/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rXC/tiles_states_strings.xml
index 3a8e34c..b9c8e5f 100644
--- a/packages/SystemUI/res/values-en-rXC/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Off"</item>
<item msgid="5966994759929723339">"On"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Unavailable"</item>
+ <item msgid="2478289035899842865">"Off"</item>
+ <item msgid="5137565285664080143">"On"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 2e179de..4b49a20 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brillo"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Invertir colores"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Corregir colores"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Administrar usuarios"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Listo"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Cerrar"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"Grabación de pant."</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sin título"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Ventana de ampliación"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles de ampliación de la ventana"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Acercar"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Se produjo un error. Vuelve a intentarlo."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Cargando"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Transmitiendo tu contenido multimedia"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Transmitiendo <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inactivo. Verifica la app"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"No se encontró"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"El control no está disponible"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Error al iniciar transmisión"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"No se puede guardar. Vuelve a intentarlo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"No se puede guardar."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Número de compilación"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Se copió el número de compilación en el portapapeles."</string>
<string name="basic_status" msgid="2315371112182658176">"Conversación abierta"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Hay al menos un dispositivo disponible."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Mantener presionado atajo"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancelar"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Girar ahora"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Despliega el teléfono para tomar una selfie mejor"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"¿Girar a pantalla frontal para mejores selfies?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Usa la cámara trasera para tomar una foto más amplia y con mejor resolución."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Esta pantalla se apagará"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo plegable siendo desplegado"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo plegable siendo girado"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> de batería restante"</string>
diff --git a/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml b/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
index 89ee62d..e156100 100644
--- a/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"No"</item>
<item msgid="5966994759929723339">"Sí"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 2d8f098..a180e2c 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brillo"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Invertir colores"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Corrección de color"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gestionar usuarios"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Hecho"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Cerrar"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"grabación de pantalla"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sin título"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Ventana de ampliación"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ventana de controles de ampliación"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Ampliar"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Se ha producido un error. Inténtalo de nuevo."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Cargando"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Enviando tu contenido multimedia"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Enviando <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inactivo, comprobar aplicación"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"No se ha encontrado"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Control no disponible"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"No se puede emitir"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"No se puede guardar. Inténtalo de nuevo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"No se puede guardar."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Número de compilación"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Número de compilación copiado en el portapapeles."</string>
<string name="basic_status" msgid="2315371112182658176">"Conversación abierta"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Al menos un dispositivo debe estar disponible"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Mantén pulsado el acceso directo"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancelar"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Usar ahora"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Despliega el teléfono para hacer un selfie mejor"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"¿Usar pantalla frontal para hacer mejores selfies?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Usa la cámara trasera para hacer fotos más amplias y con mayor resolución."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Esta pantalla se apagará"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo plegable desplegándose"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo plegable mostrado desde varios ángulos"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Batería restante: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-es/tiles_states_strings.xml b/packages/SystemUI/res/values-es/tiles_states_strings.xml
index fe4cbed..cee8371 100644
--- a/packages/SystemUI/res/values-es/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-es/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Desactivado"</item>
<item msgid="5966994759929723339">"Activado"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index a983a7a..b9d753e 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Heledus"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Värvide ümberpööramine"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Värviparandus"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Kasutajate haldamine"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Valmis"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Sule"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ekraanikuva salvest."</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Pealkiri puudub"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ooterežiim"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Suurendamisaken"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Suurendamisakna juhtelemendid"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Suumi sisse"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Midagi läks valesti. Proovige uuesti."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Laadimine"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tahvelarvuti"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Teie meedia ülekandmine"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Rakenduse <xliff:g id="APP_LABEL">%1$s</xliff:g> ülekandmine"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Passiivne, vaadake rakendust"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Ei leitud"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Juhtelement pole saadaval"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Ei saa üle kanda"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Ei saa salvestada. Proovige uuesti."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Ei saa salvestada."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Kasutage vähemalt 4 tähemärki"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Kasutage vähem kui 16 tähemärki"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Järgunumber"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Järgunumber kopeeriti lõikelauale."</string>
<string name="basic_status" msgid="2315371112182658176">"Avage vestlus"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Vähemalt üks seade on saadaval"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Pikalt puudutamise otsetee"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Tühista"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Pööra kohe ümber"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Voltige telefon parema selfi jaoks lahti"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Kas kasutada parema selfi jaoks esikaamerat?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Kasutage tagakülje kaamerat, et jäädvustada suurema eraldusvõimega laiem foto."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ See ekraan lülitatakse välja"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Volditava seadme lahtivoltimine"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Volditava seadme ümberpööramine"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Akutase on <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-et/tiles_states_strings.xml b/packages/SystemUI/res/values-et/tiles_states_strings.xml
index 07eddef..7bf520f5 100644
--- a/packages/SystemUI/res/values-et/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-et/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Väljas"</item>
<item msgid="5966994759929723339">"Sees"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 2cd0ced..722bd78 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Distira"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Kolore-alderantzikatzea"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Koloreen zuzenketa"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Kudeatu erabiltzaileak"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Eginda"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Itxi"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"pantaila-grabaketa"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Ez du izenik"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Egonean"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Lupa-leihoa"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Lupa-leihoaren aukerak"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Handitu"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Arazoren bat izan da. Saiatu berriro."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Kargatzen"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tableta"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Multimedia-edukia igortzen"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> aplikazioa igortzen"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inaktibo; egiaztatu aplikazioa"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Ez da aurkitu"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Ez dago erabilgarri kontrolatzeko aukera"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Ezin da iragarri"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Ezin da gorde. Saiatu berriro."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Ezin da gorde."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Erabili lau karaktere gutxienez"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Erabili 16 karaktere baino gutxiago"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Konpilazio-zenbakia"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Kopiatu da konpilazio-zenbakia arbelean."</string>
<string name="basic_status" msgid="2315371112182658176">"Elkarrizketa irekia"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Gutxienez gailu bat erabilgarri dago."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Eduki sakatuta lasterbidea"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Utzi"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Irauli"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Ireki telefonoa autoargazki hobeak ateratzeko"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Telefonoa irauli nahi duzu autoargazki hobeak ateratzeko?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Erabili atzeko kamera kalitate handiagoko argazki zabalago bat ateratzeko."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Pantaila itzali egingo da"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Gailu tolesgarria zabaltzen"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Gailu tolesgarria biratzen"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Bateriaren <xliff:g id="PERCENTAGE">%s</xliff:g> geratzen da"</string>
diff --git a/packages/SystemUI/res/values-eu/tiles_states_strings.xml b/packages/SystemUI/res/values-eu/tiles_states_strings.xml
index 3bf49c8..333ede1 100644
--- a/packages/SystemUI/res/values-eu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-eu/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Desaktibatuta"</item>
<item msgid="5966994759929723339">"Aktibatuta"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 3285150..fa7c5c6 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"روشنایی"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"وارونگی رنگ"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"تصحیح رنگ"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"مدیریت کاربران"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"تمام"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"بستن"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ضبط صفحهنمایش"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"بدون عنوان"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"آمادهبهکار"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"پنجره درشتنمایی"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"کنترلهای پنجره درشتنمایی"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"زومپیش کردن"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"مشکلی پیش آمد. دوباره امتحان کنید."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"درحال بار کردن"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"رایانه لوحی"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"پخش محتوای رسانهها"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"پخش محتوای <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"غیرفعال، برنامه را بررسی کنید"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"پیدا نشد"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"کنترل دردسترس نیست"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"همهفرستی انجام نشد"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"ذخیره نشد. دوباره امتحان کنید."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"ذخیره نشد."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"حداقل از ۴ نویسه استفاده کنید"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"از کمتر از ۱۶ نویسه استفاده کنید"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"شماره ساخت"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"شماره ساخت در بریدهدان کپی شد."</string>
<string name="basic_status" msgid="2315371112182658176">"باز کردن مکالمه"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• حداقل یک دستگاه دردسترس باشد"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"میانبر را لمس کنید و نگه دارید"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"لغو کردن"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"اکنون چرخانده شود"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"برای خویشگرفت بهتر، تلفن را باز کنید"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"برای خویشگرفت بهتر، از نمایشگر جلو استفاده شود؟"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"برای عکسی عریضتر با وضوح بالاتر، از دوربین عقب استفاده کنید."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ این صفحهنمایش خاموش خواهد شد"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"دستگاه تاشو درحال باز شدن"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"دستگاه تاشو درحال چرخش به اطراف"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> باتری باقی مانده است"</string>
diff --git a/packages/SystemUI/res/values-fa/tiles_states_strings.xml b/packages/SystemUI/res/values-fa/tiles_states_strings.xml
index 85f0bfd..436ea31 100644
--- a/packages/SystemUI/res/values-fa/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fa/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"خاموش"</item>
<item msgid="5966994759929723339">"روشن"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 70af7ab..7191d6c 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Kirkkaus"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Käänteiset värit"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Värinkorjaus"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Ylläpidä käyttäjiä"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Valmis"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Sulje"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"näytön tallennus"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Ei nimeä"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Virransäästötila"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Suurennusikkuna"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Suurennusikkunan ohjaimet"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Lähennä"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Ei voi lähettää"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Tallennus ei onnistu. Yritä uudelleen."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Tallennus ei onnistu."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Koontiversion numero"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Koontiversion numero kopioitu leikepöydälle"</string>
<string name="basic_status" msgid="2315371112182658176">"Avaa keskustelu"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Ainakin yksi laite on käytettävissä"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Kosketa pikakuvaketta pitkään"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Peru"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Käännä nyt"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Saat paremman selfien, kun levität puhelimen"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Käännä etunäytölle, jotta saat paremman selfien?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Voit ottaa laajemman kuvan korkeammalla resoluutiolla, kun käytät takakameraa."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Tämä näyttö sammutetaan"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Taitettava laite taitetaan"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Taitettava laite käännetään ympäri"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Akkua jäljellä <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-fi/tiles_states_strings.xml b/packages/SystemUI/res/values-fi/tiles_states_strings.xml
index 1505dc5..4bec4b3 100644
--- a/packages/SystemUI/res/values-fi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fi/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Poissa päältä"</item>
<item msgid="5966994759929723339">"Päällä"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index e42f24b..dbd3518 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Luminosité"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversion des couleurs"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correction des couleurs"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gérer les utilisateurs"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Terminé"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Fermer"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"enregistrement d\'écran"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sans titre"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Veille"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Fenêtre d\'agrandissement"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Commandes pour la fenêtre d\'agrandissement"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Effectuer un zoom avant"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Une erreur s\'est produite. Réessayez."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Chargement en cours…"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablette"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Diffusion de votre contenu multimédia en cours…"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Diffusion de <xliff:g id="APP_LABEL">%1$s</xliff:g> en cours…"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Délai expiré, vérifiez l\'appli"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Introuvable"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"La commande n\'est pas accessible"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Impossible de diffuser"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Impossible d\'enregistrer. Réessayez."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Impossible d\'enregistrer."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Numéro de version"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Le numéro de version a été copié dans le presse-papiers."</string>
<string name="basic_status" msgid="2315371112182658176">"Ouvrir la conversation"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• qu\'au moins un appareil est utilisable;"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Maintenir le doigt sur raccourci"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Annuler"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Retourner maintenant"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Déplier le téléphone pour un meilleur égoportrait"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Retourner l\'écran pour un meilleur égoportrait?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Utilisez l\'appareil photo arrière pour une photo plus large avec une résolution supérieure."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"* Cet écran va s\'éteindre"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Appareil pliable en cours de dépliage"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Appareil pliable en train d\'être retourné"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Charge restante de la pile : <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml b/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
index c408865..788f56d 100644
--- a/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Désactivé"</item>
<item msgid="5966994759929723339">"Activé"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 371396a..ff8c44f 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Luminosité"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversion des couleurs"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correction des couleurs"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gérer les utilisateurs"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"OK"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Fermer"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"enregistrement écran"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sans titre"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Mode Veille imminent"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Fenêtre d\'agrandissement"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Fenêtre des commandes d\'agrandissement"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Faire un zoom avant"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Un problème est survenu. Réessayez."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Chargement…"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablette"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Casting de vos contenus multimédias"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Casting de <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Délai expiré, vérifier l\'appli"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Introuvable"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Commande indisponible"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Impossible de diffuser"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Impossible d\'enregistrer. Réessayez."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Impossible d\'enregistrer."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Numéro de build"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Numéro de build copié dans le presse-papiers."</string>
<string name="basic_status" msgid="2315371112182658176">"Conversation ouverte"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Au moins un appareil est disponible"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Appuyez de manière prolongée sur raccourci"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Annuler"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Retourner"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Déplier le téléphone pour un meilleur selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Passer à l\'écran frontal pour un meilleur selfie ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Utilisez la caméra arrière pour prendre une photo plus large d\'une résolution supérieure."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Cet écran s\'éteindra"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Appareil pliable qui est déplié"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Appareil pliable qui est retourné"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> de batterie restante"</string>
diff --git a/packages/SystemUI/res/values-fr/tiles_states_strings.xml b/packages/SystemUI/res/values-fr/tiles_states_strings.xml
index 8c6c4f5..3f63a96 100644
--- a/packages/SystemUI/res/values-fr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fr/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Désactivé"</item>
<item msgid="5966994759929723339">"Activé"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 9bea0ca..62d0a30 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brillo"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversión da cor"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Corrección da cor"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Administrar usuarios"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Feito"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Pechar"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"gravación pantalla"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sen título"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Ventá de superposición"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controis de ampliación da ventá"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Achegar"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Produciuse un erro. Téntao de novo."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Cargando"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tableta"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Emitindo contido multimedia"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Emitindo <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inactivo. Comproba a app"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Non se atopou"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"O control non está dispoñible"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Non se puido iniciar a emisión"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Non se puido gardar a información. Téntao de novo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Non se pode gardar a información."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Número de compilación"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Copiouse o número de compilación no portapapeis."</string>
<string name="basic_status" msgid="2315371112182658176">"Conversa aberta"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Ten que haber polo menos un dispositivo dispoñible"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Mantén premido o atallo"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancelar"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Voltear agora"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Desprega o teléfono para unha autofoto mellor"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Usar a cámara dianteira para unha autofoto mellor?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Usa a cámara traseira para sacar unha foto máis ampla e con maior resolución."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Desactivarase esta pantalla"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo pregable abríndose"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo pregable xirando"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Batería restante: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-gl/tiles_states_strings.xml b/packages/SystemUI/res/values-gl/tiles_states_strings.xml
index 590ec4a..94fc3f4 100644
--- a/packages/SystemUI/res/values-gl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-gl/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Desactivado"</item>
<item msgid="5966994759929723339">"Activado"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index fa55ea6..ab37dbb 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"તેજ"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"વિપરીત રંગમાં બદલવું"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"રંગ સુધારણા"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"વપરાશકર્તાઓને મેનેજ કરો"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"થઈ ગયું"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"બંધ કરો"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"સ્ક્રીન રેકોર્ડિંગ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"કોઈ શીર્ષક નથી"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"સ્ટૅન્ડબાય"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"વિસ્તૃતીકરણ વિંડો"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"વિસ્તૃતીકરણ વિંડોના નિયંત્રણો"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"મોટું કરો"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"કંઈક ખોટું થયું. ફરી પ્રયાસ કરો."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"લોડ થઈ રહ્યું છે"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"ટૅબ્લેટ"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"તમારું મીડિયા કાસ્ટ કરી રહ્યાં છીએ"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> કાસ્ટ કરી રહ્યાં છીએ"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"નિષ્ક્રિય, ઍપને ચેક કરો"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"મળ્યું નથી"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"નિયંત્રણ ઉપલબ્ધ નથી"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"બ્રોડકાસ્ટ કરી શકતા નથી"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"સાચવી શકતા નથી. ફરી પ્રયાસ કરો."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"સાચવી શકતા નથી."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"બિલ્ડ નંબર"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"બિલ્ડ નંબર ક્લિપબૉર્ડ પર કૉપિ કર્યો."</string>
<string name="basic_status" msgid="2315371112182658176">"વાતચીત ખોલો"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ઓછામાં ઓછું એક ડિવાઇસ ઉપલબ્ધ છે"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"શૉર્ટકટને ટચ વડે પળભર દબાવી રાખો"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"રદ કરો"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"હમણાં જ ફ્લિપ કરો"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"બહેતર સેલ્ફી લેવા માટે ફોન ખોલો"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"બહેતર સેલ્ફી લેવા ફ્રન્ટ ડિસ્પ્લે પર ફ્લિપ કરીએ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"વધુ ઉચ્ચ રિઝોલ્યુશનવાળો વિશાળ ફોટો લેવા માટે પાછલા કૅમેરાનો ઉપયોગ કરો."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ આ સ્ક્રીન બંધ થઈ જશે"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ફોલ્ડ કરી શકાય એવું ડિવાઇસ અનફોલ્ડ કરવામાં આવી રહ્યું છે"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ફોલ્ડ કરી શકાય એવું ડિવાઇસ ફ્લિપ કરવામાં આવી રહ્યું છે"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> બૅટરી બાકી છે"</string>
diff --git a/packages/SystemUI/res/values-gu/tiles_states_strings.xml b/packages/SystemUI/res/values-gu/tiles_states_strings.xml
index cc062a77..e92168c 100644
--- a/packages/SystemUI/res/values-gu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-gu/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"બંધ છે"</item>
<item msgid="5966994759929723339">"ચાલુ છે"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index c7b9fec..22933ba 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"स्क्रीन की रोशनी"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"रंग बदलने की सुविधा"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"रंग में सुधार करने की सुविधा"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"उपयोगकर्ताओं को मैनेज करें"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"हो गया"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"रद्द करें"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"स्क्रीन रिकॉर्डिंग"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"कोई शीर्षक नहीं"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टैंडबाई"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"स्क्रीन को बड़ा करके दिखाने वाली विंडो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"स्क्रीन को बड़ा करके दिखाने वाली विंडो के नियंत्रण"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ज़ूम इन करें"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"कोई गड़बड़ी हुई. फिर से कोशिश करें."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"लोड हो रहा है"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"टैबलेट"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"आपका मीडिया कास्ट किया जा रहा है"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> को कास्ट किया जा रहा है"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"काम नहीं कर रहा, ऐप जांचें"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"कंट्रोल नहीं है"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"कंट्रोल मौजूद नहीं है"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ब्रॉडकास्ट नहीं किया जा सकता"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"सेव नहीं किया जा सका. फिर से कोशिश करें."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"सेव नहीं किया जा सका."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"कम से कम चार वर्ण इस्तेमाल करें"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"16 वर्ण से कम इस्तेमाल करें"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"बिल्ड नंबर"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"बिल्ड नंबर को क्लिपबोर्ड पर कॉपी किया गया."</string>
<string name="basic_status" msgid="2315371112182658176">"ऐसी बातचीत जिसमें इंटरैक्शन डेटा मौजूद नहीं है"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• कम से कम एक डिवाइस उपलब्ध है"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"शॉर्टकट को दबाकर रखें"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"रद्द करें"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"अभी स्विच करें"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"बेहतर सेल्फ़ी के लिए फ़ोन को अनफ़ोल्ड करें"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"बेहतर सेल्फ़ी के लिए फ़्रंट डिसप्ले पर स्विच करें?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"वाइड ऐंगल में हाई रिज़ॉल्यूशन वाली फ़ोटो लेने के लिए, पीछे का कैमरा इस्तेमाल करें."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ यह स्क्रीन बंद हो जाएगी"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"फ़ोल्ड किया जा सकने वाला डिवाइस अनफ़ोल्ड किया जा रहा है"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"फ़ोल्ड किया जा सकने वाला डिवाइस पलटा जा रहा है"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> बैटरी बची है"</string>
diff --git a/packages/SystemUI/res/values-hi/tiles_states_strings.xml b/packages/SystemUI/res/values-hi/tiles_states_strings.xml
index a156b0c..0abf8b3 100644
--- a/packages/SystemUI/res/values-hi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hi/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"बंद है"</item>
<item msgid="5966994759929723339">"चालू है"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 72bdbce..5de0d54 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Svjetlina"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inverzija boja"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Korekcija boja"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Veličina fonta"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Upravljajte korisnicima"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Gotovo"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Zatvori"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"snimanje zaslona"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Bez naslova"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za povećavanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za povećavanje"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Povećaj"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Emitiranje nije uspjelo"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Spremanje nije uspjelo. Pokušajte ponovo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Spremanje nije uspjelo."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Upotrijebite barem četiri znaka"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Upotrijebite manje od 16 znakova"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Broj međuverzije"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Broj međuverzije kopiran je u međuspremnik."</string>
<string name="basic_status" msgid="2315371112182658176">"Otvoreni razgovor"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Dostupan je najmanje jedan uređaj"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Prečac za dodirnuti i zadržati"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Odustani"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Prebaci"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Otvorite telefon da biste snimili bolji selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Prebaciti na prednji zaslon za bolji selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Upotrijebite stražnji fotoaparat za širu fotografiju s višom razlučivošću."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Ovaj će se zaslon isključiti"</b></string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Promijenite zaslon odmah"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Otklopite telefon"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Želite li promijeniti zaslon?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"Za višu razlučivost upotrijebite stražnju kameru"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"Za višu razlučivost okrenite telefon"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Rasklopljen sklopivi uređaj"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Okretanje sklopivog uređaja sa svih strana"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Preostalo je <xliff:g id="PERCENTAGE">%s</xliff:g> baterije"</string>
diff --git a/packages/SystemUI/res/values-hr/tiles_states_strings.xml b/packages/SystemUI/res/values-hr/tiles_states_strings.xml
index b69b064..32051ef 100644
--- a/packages/SystemUI/res/values-hr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hr/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Isključeno"</item>
<item msgid="5966994759929723339">"Uključeno"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Nedostupno"</item>
+ <item msgid="2478289035899842865">"Isključeno"</item>
+ <item msgid="5137565285664080143">"Uključeno"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 0ad27c4..ffeeb14 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Fényerő"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Színek invertálása"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Színjavítás"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Felhasználók kezelése"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Kész"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Bezárás"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"képernyőrögzítés"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Nincs cím"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Készenléti mód"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Nagyítás ablaka"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Nagyítási vezérlők ablaka"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Nagyítás"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nem sikerült a közvetítés"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"A mentés nem sikerült. Próbálja újra."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"A mentés nem sikerült."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Buildszám"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Buildszám a vágólapra másolva."</string>
<string name="basic_status" msgid="2315371112182658176">"Beszélgetés megnyitása"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Legalább egy eszköz rendelkezésre áll"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Tartsa nyomva a parancsikont"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Mégse"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Átfordítás most"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Hajtsa ki a telefont jobb szelfi készítéséhez"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Átfordítja az előlapi kijelzőre a jobb szelfiért?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Használja az előlapi kamerát, hogy nagyobb felbontású, szélesebb fotót készíthessen"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ A képernyő kikapcsol"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Összehajtható eszköz kihajtása"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Összehajtható eszköz körbeforgatása"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Akkumulátor töltöttségi szintje: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-hu/tiles_states_strings.xml b/packages/SystemUI/res/values-hu/tiles_states_strings.xml
index 050bc14..0416a55 100644
--- a/packages/SystemUI/res/values-hu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hu/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Ki"</item>
<item msgid="5966994759929723339">"Be"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index ff8f19a..4bd3a65 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Պայծառություն"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Գունաշրջում"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Գունաշտկում"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Կառավարել օգտատերերին"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Պատրաստ է"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Փակել"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"էկրանի տեսագրում"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Անանուն"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Սպասման ռեժիմ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Խոշորացման պատուհան"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Խոշորացման պատուհանի կառավարման տարրեր"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Մեծացնել"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Չհաջողվեց հեռարձակել"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Չհաջողվեց պահել։ Նորից փորձեք։"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Չհաջողվեց պահել։"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Օգտագործեք առնվազն 4 նիշ"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Օգտագործեք ոչ ավել քան 16 նիշ"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Կառուցման համարը"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Կառուցման համարը պատճենվեց սեղմատախտակին։"</string>
<string name="basic_status" msgid="2315371112182658176">"Բաց զրույց"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Հասանելի է առնվազն մեկ սարք"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Հպեք դյուրանցմանը և պահեք"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Չեղարկել"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Շրջել հիմա"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Բացեք հեռախոսի փեղկը՝ ավելի լավ սելֆի անելու համար"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Հեռախոսը էկրանով դեպի ձե՞զ շրջեցիք"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Օգտագործեք հետևի տեսախցիկը՝ ավելի բարձր լուծաչափով և ավելի լայն լուսանկար ստանալու համար։"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Այս էկրանը կանջատվի"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Ծալովի սարք՝ բացված վիճակում"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Ծալովի սարք՝ շրջված վիճակում"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Մարտկոցի լիցքը՝ <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-hy/tiles_states_strings.xml b/packages/SystemUI/res/values-hy/tiles_states_strings.xml
index 6015fbd..9f30f1c 100644
--- a/packages/SystemUI/res/values-hy/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hy/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Անջատված է"</item>
<item msgid="5966994759929723339">"Միացված է"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 12495c1..0618ec6 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Kecerahan"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversi warna"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Koreksi warna"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Kelola pengguna"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Selesai"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Tutup"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"perekaman layar"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Tanpa judul"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Siaga"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Jendela Pembesaran"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrol Jendela Pembesaran"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Perbesar"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Terjadi error. Coba lagi."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Memuat"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Mentransmisikan media"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Mentransmisikan <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Nonaktif, periksa aplikasi"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Tidak ditemukan"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Kontrol tidak tersedia"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Tidak dapat menyiarkan"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Tidak dapat menyimpan. Coba lagi."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Tidak dapat menyimpan."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Nomor build"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Nomor versi disalin ke papan klip."</string>
<string name="basic_status" msgid="2315371112182658176">"Membuka percakapan"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Tersedia minimal satu perangkat"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Sentuh lama pintasan"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Batal"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Balik sekarang"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Bentangkan ponsel untuk selfie yang lebih baik"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Balik ke layar depan untuk selfie yang lebih bagus?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Gunakan kamera belakang untuk foto dengan resolusi lebih tinggi dan lebih lebar."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Layar ini akan dinonaktifkan"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Perangkat foldable sedang dibentangkan"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Perangkat foldable sedang dibalik"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Baterai tersisa <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-in/tiles_states_strings.xml b/packages/SystemUI/res/values-in/tiles_states_strings.xml
index 5416c8f..c314040 100644
--- a/packages/SystemUI/res/values-in/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-in/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Nonaktif"</item>
<item msgid="5966994759929723339">"Aktif"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index 87b8a73..afdaa5d 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Birtustig"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Umsnúningur lita"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Litaleiðrétting"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Stjórna notendum"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Lokið"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Loka"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"skjáupptaka"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Enginn titill"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Biðstaða"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Stækkunargluggi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Stækkunarstillingar glugga"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Auka aðdrátt"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Eitthvað fór úrskeiðis. Reyndu aftur."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Hleður"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"spjaldtölva"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Sendir út efni frá þér"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Sendir út <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Óvirkt, athugaðu forrit"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Fannst ekki"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Stýring er ekki tiltæk"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Ekki hægt að senda út"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Ekki hægt að vista. Reyndu aftur."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Ekki hægt að vista."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Útgáfunúmer smíðar"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Útgáfunúmer smíðar afritað á klippiborð."</string>
<string name="basic_status" msgid="2315371112182658176">"Opna samtal"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Að minnsta kosti eitt tæki er tiltækt"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Haltu flýtilyklinum inni"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Hætta við"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Snúa núna"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Opnaðu símann til að taka betri sjálfsmynd"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Snúa á framskjá til að ná betri sjálfsmynd?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Notaðu aftari myndavélina til að ná víðara sjónarhorni með meiri upplausn."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Slökkt verður á þessum skjá"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Samanbrjótanlegt tæki opnað"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Samanbrjótanlegu tæki snúið við"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> hleðsla eftir á rafhlöðu"</string>
diff --git a/packages/SystemUI/res/values-is/tiles_states_strings.xml b/packages/SystemUI/res/values-is/tiles_states_strings.xml
index 12dd776..cca4943 100644
--- a/packages/SystemUI/res/values-is/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-is/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Slökkt"</item>
<item msgid="5966994759929723339">"Kveikt"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index bc89cbb..2f366ec 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Luminosità"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversione dei colori"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correzione del colore"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gestisci utenti"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Fine"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Chiudi"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"Registraz. schermo"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Senza titolo"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Finestra ingrandimento"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Finestra controlli di ingrandimento"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumenta lo zoom"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Impossibile trasmettere"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Impossibile salvare. Riprova."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Impossibile salvare."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Numero build"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Numero build copiato negli appunti."</string>
<string name="basic_status" msgid="2315371112182658176">"Apri conversazione"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Ci sia almeno un dispositivo disponibile"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Tocca scorciatoia/tieni premuto"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Annulla"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Gira ora"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Apri il telefono per un selfie migliore"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Passare al display frontale per un selfie migliore?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Utilizza la fotocamera posteriore per una foto più ampia con maggiore risoluzione."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Questo schermo verrà spento"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo pieghevole che viene aperto"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo pieghevole che viene capovolto"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> batteria rimanente"</string>
diff --git a/packages/SystemUI/res/values-it/tiles_states_strings.xml b/packages/SystemUI/res/values-it/tiles_states_strings.xml
index 5ec557b..79e5aca 100644
--- a/packages/SystemUI/res/values-it/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-it/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Off"</item>
<item msgid="5966994759929723339">"On"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 8633127..840744b 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"בהירות"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"היפוך צבעים"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"תיקון צבע"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ניהול משתמשים"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"סיום"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"סגירה"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"הקלטת המסך"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"ללא שם"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"המתנה"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"חלון הגדלה"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"בקרות של חלון ההגדלה"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"התקרבות"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"לא ניתן לשדר"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"לא ניתן לשמור. כדאי לנסות שוב."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"לא ניתן לשמור."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"יש להזין 4 תווים לפחות"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"אפשר להזין עד 16 תווים"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"מספר Build"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"מספר ה-Build הועתק ללוח."</string>
<string name="basic_status" msgid="2315371112182658176">"פתיחת שיחה"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• יש לפחות מכשיר אחד זמין"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"מקש קיצור ללחיצה ארוכה"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ביטול"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"אני רוצה להפוך"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"כדי לצלם תמונת סלפי טובה יותר, פותחים את הטלפון"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"להפוך למסך הקדמי כדי לצלם תמונת סלפי טובה יותר?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"במצלמה האחורית אפשר לצלם תמונה רחבה יותר ברזולוציה גבוהה יותר."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ המסך יכבה"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"מכשיר מתקפל עובר למצב לא מקופל"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"מכשיר מתקפל עובר למצב מהופך"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"רמת הטעינה שנותרה בסוללה: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-iw/tiles_states_strings.xml b/packages/SystemUI/res/values-iw/tiles_states_strings.xml
index 91577b8..374f5af 100644
--- a/packages/SystemUI/res/values-iw/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-iw/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"כבוי"</item>
<item msgid="5966994759929723339">"מופעל"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 9aef2a9..4e9c1bd 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"画面の明るさ"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"色反転"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"色補正"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ユーザーを管理"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"完了"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"閉じる"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"画面の録画"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"タイトルなし"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"スタンバイ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"拡大ウィンドウ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"拡大ウィンドウ コントロール"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"拡大"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"エラーが発生しました。もう一度お試しください。"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"読み込んでいます"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"タブレット"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"メディアをキャストしています"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> をキャストしています"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"無効: アプリをご確認ください"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"見つかりませんでした"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"コントロールを使用できません"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ブロードキャストできません"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"保存できません。もう一度お試しください。"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"保存できません。"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"4 文字以上にしてください"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"使用できる文字数は 16 文字未満です"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"ビルド番号"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"ビルド番号をクリップボードにコピーしました。"</string>
<string name="basic_status" msgid="2315371112182658176">"空の会話"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• 利用できるデバイスが 1 台以上ある"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ショートカットの長押しが必要です"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"キャンセル"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"切り替える"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"高画質で撮るにはスマートフォンを開いてください"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"前面ディスプレイに切り替えて綺麗に撮りましょう"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"高解像度で広い範囲を撮影するには、背面カメラを使用してください。"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱この画面は OFF になります"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"折りたたみ式デバイスが広げられている"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"折りたたみ式デバイスがひっくり返されている"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"バッテリー残量 <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ja/tiles_states_strings.xml b/packages/SystemUI/res/values-ja/tiles_states_strings.xml
index c2a3321..64f7c39 100644
--- a/packages/SystemUI/res/values-ja/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ja/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"OFF"</item>
<item msgid="5966994759929723339">"ON"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index 62efabe..b6ab02c 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"განათება"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ფერთა ინვერსია"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ფერთა კორექცია"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"მომხმარებლების მართვა"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"დასრულდა"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"დახურვა"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ეკრანის ჩაწერა"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"უსათაურო"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"მოლოდინის რეჟიმი"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"გადიდების ფანჯარა"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"გადიდების კონტროლის ფანჯარა"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"მასშტაბის გადიდება"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ტრანსლაცია შეუძლებელია"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"შენახვა ვერ ხერხდება. ცადეთ ხელახლა."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"შენახვა ვერ ხერხდება."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"გამოიყენეთ მინიმუმ 4 სიმბოლო."</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"გამოიყენეთ 16-ზე ნაკლები სიმბოლო"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"ანაწყობის ნომერი"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"ანაწყობის ნომერი დაკოპირებულია გაცვლის ბუფერში."</string>
<string name="basic_status" msgid="2315371112182658176">"მიმოწერის გახსნა"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ხელმისაწვდომია მინიმუმ ერთი მოწყობილობა"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"შეხების დაamp; მოცდის მალსახმობი"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"გაუქმება"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ახლა გადატრიალება"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"გაშალეთ ტელეფონი უკეთესი სელფისთვის"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"გამოვიყენოთ წინა ეკრანი უკეთესი სელფის მისაღებად?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"გამოიყენეთ უკანა კამერა უფრო ფართო ფოტოს გადასაღებად მაღალი გარჩევადობით."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ეს ეკრანი გამოირთვება"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"დასაკეცი მოწყობილობა იხსნება"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"დასაკეცი მოწყობილობა ტრიალებს"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"დარჩენილია ბატარეის <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ka/tiles_states_strings.xml b/packages/SystemUI/res/values-ka/tiles_states_strings.xml
index c951874..99c5263 100644
--- a/packages/SystemUI/res/values-ka/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ka/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"გამორთულია"</item>
<item msgid="5966994759929723339">"ჩართულია"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index 56d8b91..79d54c5 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Жарықтығы"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Түс инверсиясы"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Түсті түзету"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Пайдаланушыларды басқару"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Дайын"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Жабу"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"экранды бейнеге жазу"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Атауы жоқ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Күту режимі"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Ұлғайту терезесі"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ұлғайту терезесінің басқару элементтері"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Ұлғайту"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Бірдеңе дұрыс болмады. Қайталап көріңіз."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Жүктеліп жатыр"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"планшет"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Медиаконтентті трансляциялау"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Трансляция: <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Өшірулі. Қолданба тексеріңіз."</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Табылмады"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Басқару виджеті қолжетімсіз"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Тарату мүмкін емес"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Сақталмайды. Қайталап көріңіз."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Сақталмайды."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Құрама нөмірі"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Құрама нөмірі буферге көшірілді."</string>
<string name="basic_status" msgid="2315371112182658176">"Ашық әңгіме"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Кемінде бір құрылғы қолжетімді"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Таңбашаны басып тұрыңыз."</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Бас тарту"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Айналдыру"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Жақсырақ селфи түсіру үшін телефонды жазыңыз"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Жақсырақ селфи үшін алдыңғы экранға ауысасыз ба?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Ажыратымдылығы жоғары кеңірек фотосурет түсіру үшін артқы камераны пайдаланыңыз."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Бұл экран өшіріледі."</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Бүктемелі құрылғы ашылып жатыр."</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Бүктемелі құрылғы аударылып жатыр."</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Қалған батарея заряды: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-kk/tiles_states_strings.xml b/packages/SystemUI/res/values-kk/tiles_states_strings.xml
index c312b49..be7546e 100644
--- a/packages/SystemUI/res/values-kk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-kk/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Өшірулі."</item>
<item msgid="5966994759929723339">"Қосулы."</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index 3a04488..306d104 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ពន្លឺ"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ការបញ្ច្រាសពណ៌"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ការកែតម្រូវពណ៌"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"គ្រប់គ្រងអ្នកប្រើប្រាស់"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"រួចរាល់"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"បិទ"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ការថតវីដេអូអេក្រង់"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"គ្មានចំណងជើង"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ផ្អាកដំណើរការ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"វិនដូការពង្រីក"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"វិនដូគ្រប់គ្រងការពង្រីក"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ពង្រីក"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"មានអ្វីមួយខុសប្រក្រតី។ សូមព្យាយាមម្ដងទៀត។"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"កំពុងផ្ទុក"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"ថេប្លេត"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"កំពុងភ្ជាប់មេឌៀរបស់អ្នក"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"កំពុងភ្ជាប់ <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"អសកម្ម ពិនិត្យមើលកម្មវិធី"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"រកមិនឃើញទេ"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"មិនអាចគ្រប់គ្រងបានទេ"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"មិនអាចផ្សាយបានទេ"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"មិនអាចរក្សាទុកបានទេ។ សូមព្យាយាមម្ដងទៀត។"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"មិនអាចរក្សាទុកបានទេ។"</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"លេខកំណែបង្កើត"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"បានចម្លងលេខកំណែបង្កើតទៅឃ្លីបបត។"</string>
<string name="basic_status" msgid="2315371112182658176">"បើកការសន្ទនា"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ឧបករណ៍យ៉ាងតិចមួយអាចប្រើបាន"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ចុចឱ្យជាប់លើផ្លូវកាត់"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"បោះបង់"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ត្រឡប់ឥឡូវនេះ"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"លាតទូរសព្ទ ដើម្បីសែលហ្វីកាន់តែប្រសើរ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"ត្រឡប់ទៅផ្ទាំងអេក្រង់ខាងមុខ ដើម្បីថតសែលហ្វីកាន់តែបានល្អឬ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ប្រើកាមេរ៉ាខាងក្រោយ ដើម្បីទទួលបានរូបថតកាន់តែធំជាមួយនឹងកម្រិតគុណភាពកាន់តែខ្ពស់។"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ អេក្រង់នេះនឹងបិទ"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ឧបករណ៍អាចបត់បានកំពុងត្រូវបានលា"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ឧបករណ៍អាចបត់បានកំពុងត្រូវបានលា"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"ថ្មនៅសល់ <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-km/tiles_states_strings.xml b/packages/SystemUI/res/values-km/tiles_states_strings.xml
index ec748cf..37e839f 100644
--- a/packages/SystemUI/res/values-km/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-km/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"បិទ"</item>
<item msgid="5966994759929723339">"បើក"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index dbc7e15..1b18614 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ಪ್ರಕಾಶಮಾನ"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ಕಲರ್ ಇನ್ವರ್ಶನ್"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ಬಣ್ಣದ ತಿದ್ದುಪಡಿ"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"ಮುಗಿದಿದೆ"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ಮುಚ್ಚಿರಿ"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"ಯಾವುದೇ ಶೀರ್ಷಿಕೆಯಿಲ್ಲ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ಸ್ಟ್ಯಾಂಡ್ಬೈ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"ವರ್ಧನೆಯ ವಿಂಡೋ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ವರ್ಧನೆಯ ವಿಂಡೋ ನಿಯಂತ್ರಣಗಳು"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ಝೂಮ್ ಇನ್ ಮಾಡಿ"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ಪ್ರಸಾರ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"ಕನಿಷ್ಠ 4 ಅಕ್ಷರಗಳನ್ನು ಬಳಸಿ"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"16 ಕ್ಕಿಂತ ಕಡಿಮೆ ಅಕ್ಷರಗಳನ್ನು ಬಳಸಿ"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"ಬಿಲ್ಡ್ ಸಂಖ್ಯೆ"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"ಬಿಲ್ಡ್ ಸಂಖ್ಯೆಯನ್ನು ಕ್ಲಿಪ್ಬೋರ್ಡ್ನಲ್ಲಿ ನಕಲಿಸಲಾಗಿದೆ."</string>
<string name="basic_status" msgid="2315371112182658176">"ಸಂಭಾಷಣೆಯನ್ನು ತೆರೆಯಿರಿ"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ಕನಿಷ್ಠ ಒಂದು ಸಾಧನ ಲಭ್ಯವಿದೆ"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ಸ್ಪರ್ಶಿಸಿ ಹೋಲ್ಡ್ ಮಾಡಿ ಶಾರ್ಟ್ಕಟ್"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ರದ್ದುಗೊಳಿಸಿ"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ಈಗ ಫ್ಲಿಪ್ ಮಾಡಿ"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"ಉತ್ತಮ ಸೆಲ್ಫೀಗಾಗಿ ಫೋನ್ ಅನ್ನು ಅನ್ಫೋಲ್ಡ್ ಮಾಡಿ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"ಉತ್ತಮ ಸೆಲ್ಫೀಗಾಗಿ ಮುಂಭಾಗದ ಕ್ಯಾಮರಾಗೆ ಫ್ಲಿಪ್ ಮಾಡಬೇಕೆ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ಹೆಚ್ಚಿನ ರೆಸಲ್ಯೂಷನ್ ಹೊಂದಿರುವ ವಿಶಾಲವಾದ ಫೋಟೋಗಾಗಿ ಹಿಂಭಾಗದ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಿ."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ಈ ಸ್ಕ್ರೀನ್ ಆಫ್ ಆಗುತ್ತದೆ"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ಫೋಲ್ಡ್ ಮಾಡಬಹುದಾದ ಸಾಧನವನ್ನು ಅನ್ಫೋಲ್ಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ಫೋಲ್ಡ್ ಮಾಡಬಹುದಾದ ಸಾಧನವನ್ನು ಸುತ್ತಲೂ ತಿರುಗಿಸಲಾಗುತ್ತಿದೆ"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ಬ್ಯಾಟರಿ ಉಳಿದಿದೆ"</string>
diff --git a/packages/SystemUI/res/values-kn/tiles_states_strings.xml b/packages/SystemUI/res/values-kn/tiles_states_strings.xml
index 864a607..8a2ad2a 100644
--- a/packages/SystemUI/res/values-kn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-kn/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ಆಫ್ ಮಾಡಿ"</item>
<item msgid="5966994759929723339">"ಆನ್ ಮಾಡಿ"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 1595de3..12cef55 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"밝기"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"색상 반전"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"색상 보정"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"사용자 관리"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"완료"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"닫기"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"화면 녹화"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"제목 없음"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"대기"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"확대 창"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"확대 창 컨트롤"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"확대"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"방송할 수 없음"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"저장할 수 없습니다. 다시 시도해 주세요."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"저장할 수 없습니다."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"빌드 번호"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"빌드 번호가 클립보드에 복사되었습니다."</string>
<string name="basic_status" msgid="2315371112182658176">"대화 열기"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• 1대 이상의 기기를 사용할 수 있습니다."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"바로가기를 길게 터치하세요."</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"취소"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"지금 뒤집기"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"휴대전화를 열어서 더 나은 셀카를 찍어보세요"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"전면 디스플레이가 보이도록 뒤집어서 더 나은 셀카를 찍어보세요"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"후면 카메라를 통해 넓은 각도로 해상도가 높은 사진을 찍어보세요."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ 이 화면이 꺼집니다."</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"폴더블 기기를 펼치는 모습"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"폴더블 기기를 뒤집는 모습"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"배터리 <xliff:g id="PERCENTAGE">%s</xliff:g> 남음"</string>
diff --git a/packages/SystemUI/res/values-ko/tiles_states_strings.xml b/packages/SystemUI/res/values-ko/tiles_states_strings.xml
index c52c17c..c3d9d44 100644
--- a/packages/SystemUI/res/values-ko/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ko/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"꺼짐"</item>
<item msgid="5966994759929723339">"켜짐"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index 653292c1..834d1bf 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Жарыктыгы"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Түстөрдү инверсиялоо"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Түстөрдү тууралоо"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Колдонуучуларды тескөө"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Бүттү"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Жабуу"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"экранды жаздыруу"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Аталышы жок"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Көшүү режими"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Чоңойтуу терезеси"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Чоңойтуу терезесин башкаруу каражаттары"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Жакындатуу"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Кабарлоого болбойт"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Сакталган жок. Кайталап көрүңүз."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Сакталган жок."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Курама номери"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Курама номери алмашуу буферине көчүрүлдү."</string>
<string name="basic_status" msgid="2315371112182658176">"Ачык сүйлөшүү"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Кеминде бир түзмөк жеткиликтүү"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Ыкчам баскычты басып туруңуз"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Токтотуу"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Азыр которуу"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Жакшы селфи тартуу үчүн негизги камерага которуңуз"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Жакшы селфи тартуу үчүн маңдайкы экранга которосузбу?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Кең жана жогорку дааналыктагы сүрөттү тартуу үчүн негизги камераны колдонуңуз."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Бул экран өчөт"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Ачылып турган бүктөлмө түзмөк"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Оодарылып жаткан бүктөлмө түзмөк"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Батареянын кубаты: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ky/tiles_states_strings.xml b/packages/SystemUI/res/values-ky/tiles_states_strings.xml
index f872926..f4b8447 100644
--- a/packages/SystemUI/res/values-ky/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ky/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Өчүк"</item>
<item msgid="5966994759929723339">"Күйүк"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index ce929e9..0b4c2dc 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ຄວາມແຈ້ງ"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ການປີ້ນສີ"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ການແກ້ໄຂສີ"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ຈັດການຜູ້ໃຊ້"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"ແລ້ວໆ"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ປິດ"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ການບັນທຶກໜ້າຈໍ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"ບໍ່ມີຊື່"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ສະແຕນບາຍ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"ໜ້າຈໍການຂະຫຍາຍ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ການຄວບຄຸມໜ້າຈໍການຂະຫຍາຍ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ຊູມເຂົ້າ"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ບໍ່ສາມາດອອກອາກາດໄດ້"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"ບໍ່ສາມາດບັນທຶກໄດ້. ກະລຸນາລອງໃໝ່."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"ບໍ່ສາມາດບັນທຶກໄດ້."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"ໃຊ້ຢ່າງໜ້ອຍ 4 ຕົວອັກສອນ"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"ໃຊ້ໜ້ອຍກວ່າ 16 ຕົວອັກສອນ"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"ໝາຍເລກສ້າງ"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"ສຳເນົາໝາຍເລກສ້າງໄປໃສ່ຄລິບບອດແລ້ວ."</string>
<string name="basic_status" msgid="2315371112182658176">"ເປີດການສົນທະນາ"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ມີຢ່າງໜ້ອຍ 1 ອຸປະກອນພ້ອມໃຫ້ນຳໃຊ້"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ແຕະທາງລັດຄ້າງໄວ້"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ຍົກເລີກ"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ປີ້ນດຽວນີ້"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"ກາງໂທລະສັບອອກເພື່ອການຖ່າຍເຊວຟີທີ່ດີຂຶ້ນ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"ປີ້ນເປັນຈໍສະແດງຜົນດ້ານໜ້າເພື່ອການຖ່າຍເຊວຟີທີ່ດີຂຶ້ນບໍ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ໃຊ້ກ້ອງຫຼັງເພື່ອການຖ່າຍຮູບທີ່ກວ້າງຂຶ້ນດ້ວຍຄວາມລະອຽດສູງຂຶ້ນ."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ໜ້າຈໍນີ້ຈະປິດ"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ອຸປະກອນທີ່ພັບໄດ້ກຳລັງກາງອອກ"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ອຸປະກອນທີ່ພັກໄດ້ກຳລັງປີ້ນໄປມາ"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"ແບັດເຕີຣີເຫຼືອ <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-lo/tiles_states_strings.xml b/packages/SystemUI/res/values-lo/tiles_states_strings.xml
index 6ae37e4..f7f4b62 100644
--- a/packages/SystemUI/res/values-lo/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lo/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ປິດ"</item>
<item msgid="5966994759929723339">"ເປີດ"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index e153fe0..583624f 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Šviesumas"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Spalvų inversija"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Spalvų taisymas"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Tvarkyti naudotojus"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Atlikta"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Uždaryti"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ekrano įrašymas"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Nėra pavadinimo"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Budėjimo laikas"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Didinimo langas"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Didinimo lango valdikliai"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Artinti"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nepavyko transliuoti"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Nepavyko išsaugoti. Bandykite dar kartą."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Nepavyko išsaugoti."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Naudokite bent 4 simbolius"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Naudokite daugiausia 16 simbolių"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Versijos numeris"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Versijos numeris nukopijuotas į iškarpinę."</string>
<string name="basic_status" msgid="2315371112182658176">"Atidaryti pokalbį"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Pasiekiamas bent vienas įrenginys"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Paliesk. ir palaik. spart. klav."</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Atšaukti"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Apversti dabar"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Užfiksuokite geresnę asmenukę atlenkę telefoną"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Užfiksuoti geresnę asmenukę įjungus priekinį rodinį?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Naudokite galinį fotoaparatą, kad nuotrauka būtų platesnė ir didesnės skyros."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Šis ekranas išsijungs"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Lankstomasis įrenginys išlankstomas"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Lankstomasis įrenginys apverčiamas"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Liko akumuliatoriaus įkrovos: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-lt/tiles_states_strings.xml b/packages/SystemUI/res/values-lt/tiles_states_strings.xml
index 03d98c4..5837915 100644
--- a/packages/SystemUI/res/values-lt/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lt/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Išjungta"</item>
<item msgid="5966994759929723339">"Įjungta"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 2878f7d..2b68f2a 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Spilgtums"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Krāsu inversija"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Krāsu korekcija"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Pārvaldīt lietotājus"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Gatavs"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Aizvērt"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ekrāna ierakstīšana"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Nav nosaukuma"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gaidstāve"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Palielināšanas logs"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Palielināšanas loga vadīklas"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Tuvināt"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Radās kļūda. Mēģiniet vēlreiz."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Notiek ielāde"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"planšetdators"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Notiek multivides satura apraide"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Notiek lietotnes <xliff:g id="APP_LABEL">%1$s</xliff:g> apraide"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Neaktīva, pārbaudiet lietotni"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Netika atrasta"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Vadīkla nav pieejama"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nevar apraidīt"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Nevar saglabāt. Mēģiniet vēlreiz."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Nevar saglabāt."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Versijas numurs"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Versijas numurs ir kopēts starpliktuvē."</string>
<string name="basic_status" msgid="2315371112182658176">"Atvērt sarunu"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Ir pieejama vismaz viena ierīce."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Pieskarieties saīsnei un turiet."</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Atcelt"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Apvērst tūlīt"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Labākas pašbildes uzņemšana, atlokot tālruni"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Vai apvērst uz priekšējo kameru labākai pašbildei?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Lai uzņemtu platāku fotoattēlu ar augstāku izšķirtspēju, izmantojiet aizmugurējo kameru."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Šis ekrāns tiks izslēgts."</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Salokāma ierīce tiek atlocīta"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Salokāma ierīce tiek apgriezta"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Atlikušais uzlādes līmenis: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-lv/tiles_states_strings.xml b/packages/SystemUI/res/values-lv/tiles_states_strings.xml
index 6e9264d..9a534c4 100644
--- a/packages/SystemUI/res/values-lv/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lv/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Izslēgts"</item>
<item msgid="5966994759929723339">"Ieslēgts"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index b7d69cf..3ba3bc06 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Осветленост"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Инверзија на боите"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Корекција на боите"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Управувајте со корисниците"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Готово"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Затвори"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"снимање на екранот"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Без наслов"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Подготвеност"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Прозорец за зголемување"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроли на прозорец за зголемување"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Зумирај"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Нешто не е во ред. Обидете се повторно."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Се вчитува"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"таблет"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Емитување на вашите аудиовизуелни содржини"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Се емитува <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактивна, провери апликација"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не е најдено"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Контролата не е достапна"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Не може да се емитува"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Не може да се зачува. Обидете се повторно."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Не може да се зачува."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Број на верзија"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Бројот на верзијата е копиран во привремената меморија."</string>
<string name="basic_status" msgid="2315371112182658176">"Започни разговор"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• достапен е најмалку еден уред"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Допрете и задржете ја кратенката"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Откажи"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Префрли сега"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Отворете го телефонот за подобро селфи"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Да се префрли на предниот екран за подобро селфи?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Користете ја задната камера за поширока фотографија со повисока резолуција."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Екранов ќе се исклучи"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Преклопувачки уред се отклопува"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Преклопувачки уред се врти"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Преостаната батерија: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-mk/tiles_states_strings.xml b/packages/SystemUI/res/values-mk/tiles_states_strings.xml
index 96c8a49..d088f12 100644
--- a/packages/SystemUI/res/values-mk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mk/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Исклучено"</item>
<item msgid="5966994759929723339">"Вклучено"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 46258cb..123c424 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"തെളിച്ചം"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"നിറം വിപരീതമാക്കൽ"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"നിറം ശരിയാക്കൽ"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ഉപയോക്താക്കളെ മാനേജ് ചെയ്യുക"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"പൂർത്തിയാക്കി"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"അടയ്ക്കുക"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"സ്ക്രീൻ റെക്കോർഡിംഗ്"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"പേരില്ല"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"സ്റ്റാൻഡ്ബൈ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"മാഗ്നിഫിക്കേഷൻ വിൻഡോ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"മാഗ്നിഫിക്കേഷൻ വിൻഡോ നിയന്ത്രണങ്ങൾ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"സൂം ഇൻ ചെയ്യുക"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ബ്രോഡ്കാസ്റ്റ് ചെയ്യാനാകുന്നില്ല"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"സംരക്ഷിക്കാൻ കഴിയില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"സംരക്ഷിക്കാൻ കഴിയില്ല."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"കുറഞ്ഞത് 4 പ്രതീകങ്ങളെങ്കിലും ഉപയോഗിക്കുക"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"16-ൽ കുറവ് പ്രതീകങ്ങൾ ഉപയോഗിക്കുക"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"ബിൽഡ് നമ്പർ"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"ക്ലിപ്പ്ബോർഡിലേക്ക് ബിൽഡ് നമ്പർ പകർത്തി."</string>
<string name="basic_status" msgid="2315371112182658176">"സംഭാഷണം തുറക്കുക"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ഒരു ഉപകരണമെങ്കിലും ലഭ്യമാണ്"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"സ്പർശിച്ച് പിടിക്കുക കുറുക്കുവഴി"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"റദ്ദാക്കുക"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ഇപ്പോൾ ഫ്ലിപ്പ് ചെയ്യൂ"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"കൂടുതൽ മികച്ച സെൽഫി ലഭിക്കാൻ ഫോൺ അൺഫോൾഡ് ചെയ്യൂ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"മികച്ച സെൽഫിക്ക് ഫ്രണ്ട് ഡിസ്പ്ലേയിലേക്ക് മാറണോ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ഉയർന്ന റെസല്യൂഷൻ ഉള്ള, വീതി കൂടിയ ഫോട്ടോയ്ക്ക്, പിൻഭാഗത്തെ ക്യാമറ ഉപയോഗിക്കുക."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ഈ സ്ക്രീൻ ഓഫാകും"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ഫോൾഡ് ചെയ്യാവുന്ന ഉപകരണം അൺഫോൾഡ് ആകുന്നു"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ഫോൾഡ് ചെയ്യാവുന്ന ഉപകരണം, കറങ്ങുന്ന വിധത്തിൽ ഫ്ലിപ്പ് ആകുന്നു"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ബാറ്ററി ചാർജ് ശേഷിക്കുന്നു"</string>
diff --git a/packages/SystemUI/res/values-ml/tiles_states_strings.xml b/packages/SystemUI/res/values-ml/tiles_states_strings.xml
index 7a07873..108e173 100644
--- a/packages/SystemUI/res/values-ml/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ml/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ഓഫാണ്"</item>
<item msgid="5966994759929723339">"ഓണാണ്"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 2ef8216..d74e7dc 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Тодрол"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Өнгө хувиргалт"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Өнгө тохируулга"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Хэрэглэгчдийг удирдах"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Дууссан"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Хаах"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"дэлгэцийн бичлэг"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Гарчиггүй"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Зогсолтын горим"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Томруулалтын цонх"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Томруулалтын цонхны хяналт"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Томруулах"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Алдаа гарлаа. Дахин оролдоно уу."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Ачаалж байна"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"таблет"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Таны медиаг дамжуулж байна"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g>-г дамжуулж байна"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Идэвхгүй байна, аппыг шалгана уу"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Олдсонгүй"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Хяналт боломжгүй байна"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Нэвтрүүлэх боломжгүй"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Хадгалах боломжгүй. Дахин оролдоно уу."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Хадгалах боломжгүй."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Хийцийн дугаар"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Хийцийн дугаарыг түр санах ойд хуулсан."</string>
<string name="basic_status" msgid="2315371112182658176">"Харилцан яриаг нээх"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Дор хаяж нэг төхөөрөмж боломжтой"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Товчлолд хүрээд удаан дарна уу"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Цуцлах"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Одоо хөнтрөх"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Илүү сайн селфи хийхийн тулд утсаа дэлгэнэ үү"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Сайн сельфи авахаар урд талын дэлгэц рүү хөнтрөх үү?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Илүү өндөр нягтаршилтай илүү өргөн зураг авахын тулд арын камерыг ашиглана уу."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Энэ дэлгэц унтарна"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Эвхэгддэг төхөөрөмжийг дэлгэж байна"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Эвхэгддэг төхөөрөмжийг хөнтөрч байна"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> батарей үлдлээ"</string>
diff --git a/packages/SystemUI/res/values-mn/tiles_states_strings.xml b/packages/SystemUI/res/values-mn/tiles_states_strings.xml
index 776c487..5cd21c1 100644
--- a/packages/SystemUI/res/values-mn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mn/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Унтраалттай"</item>
<item msgid="5966994759929723339">"Асаалттай"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index c4fd4aa..3d73e22 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"चमक"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"कलर इन्व्हर्जन"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"रंग सुधारणा"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"वापरकर्ते व्यवस्थापित करा"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"पूर्ण झाले"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"बंद करा"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"स्क्रीन रेकॉर्डिंग"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"शीर्षक नाही"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टँडबाय"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"मॅग्निफिकेशन विंडो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"मॅग्निफिकेशन विंडो नियंत्रणे"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"झूम इन करा"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"काहीतरी चूक झाली. पुन्हा प्रयत्न करा."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"लोड करत आहे"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"टॅबलेट"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"तुमचा मीडिया कास्ट करत आहे"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> कास्ट करत आहे"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"निष्क्रिय, ॲप तपासा"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"आढळले नाही"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"नियंत्रण उपलब्ध नाही"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ब्रॉडकास्ट करू शकत नाही"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"सेव्ह करू शकत नाही. पुन्हा प्रयत्न करा."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"सेव्ह करू शकत नाही."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"बिल्ड नंबर"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"बिल्ड नंबर क्लिपबोर्डवर कॉपी केला."</string>
<string name="basic_status" msgid="2315371112182658176">"संभाषण उघडा"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• किमान एक डिव्हाइस उपलब्ध करणे"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"स्पर्श करा आणि धरून ठेवा शॉर्टकट"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"रद्द करा"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"आता फ्लिप करा"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"आणखी चांगल्या सेल्फीसाठी फोनबद्दल अधिक जाणून घ्या"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"आणखी चांगल्या सेल्फीसाठी फ्रंट डिस्प्ले वापरायचा का?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"उच्च रेझोल्यूशन असलेल्या विस्तृत फोटोसाठी रीअर कॅमेरा वापरा."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ही स्क्रीन बंद होईल"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"फोल्ड करता येण्यासारखे डिव्हाइस अनफोल्ड केले जात आहे"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"फोल्ड करता येण्यासारखे डिव्हाइस आजूबाजूला फ्लिप केले जात आहे"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> बॅटरी शिल्लक आहे"</string>
diff --git a/packages/SystemUI/res/values-mr/tiles_states_strings.xml b/packages/SystemUI/res/values-mr/tiles_states_strings.xml
index f75f0d0..78560c4 100644
--- a/packages/SystemUI/res/values-mr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mr/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"बंद आहे"</item>
<item msgid="5966994759929723339">"सुरू आहे"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index aa3626c..c3408b7 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Kecerahan"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Penyongsangan warna"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Pembetulan warna"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Urus pengguna"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Selesai"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Tutup"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"rakaman skrin"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Tiada tajuk"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tunggu sedia"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Tetingkap Pembesaran"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kawalan Tetingkap Pembesaran"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zum masuk"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Tidak dapat disiarkan"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Tidak dapat disimpan. Cuba lagi."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Tidak dapat disimpan."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Gunakan sekurang-kurangnya 4 aksara"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Gunakan kurang daripada 16 aksara"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Nombor binaan"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Nombor binaan disalin ke papan keratan."</string>
<string name="basic_status" msgid="2315371112182658176">"Buka perbualan"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Sekurang-kurangnya satu peranti tersedia"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Pintasan sentuh & tahan"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Batal"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Balikkan sekarang"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Buka telefon untuk swafoto yang lebih baik"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Balikkan ke paparan depan utk swafoto lebih baik?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Gunakan kamera menghadap belakang untuk mendapatkan foto yang lebih luas dengan resolusi yang lebih tinggi."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Skrin ini akan dimatikan"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Peranti boleh lipat dibuka"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Peranti boleh lipat diterbalikkan"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Bateri tinggal <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ms/tiles_states_strings.xml b/packages/SystemUI/res/values-ms/tiles_states_strings.xml
index 9fa7ab5..f3dafa5 100644
--- a/packages/SystemUI/res/values-ms/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ms/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Mati"</item>
<item msgid="5966994759929723339">"Hidup"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index 6338abf..b74dd93 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"အလင်းတောက်ပမှု"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"အရောင်ပြောင်းပြန်ပြုလုပ်ရန်"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"အရောင် အမှန်ပြင်ခြင်း"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"အသုံးပြုသူများ စီမံရန်"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"ပြီးပါပြီ"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ပိတ်ရန်"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"စခရင်ရိုက်ကူးမှု"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"ခေါင်းစဉ် မရှိပါ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"အသင့်အနေအထား"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"ဝင်းဒိုး ချဲ့ခြင်း"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ဝင်းဒိုး ထိန်းချုပ်မှုများ ချဲ့ခြင်း"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ဇူးမ်ဆွဲရန်"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ထုတ်လွှင့်၍ မရပါ"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"သိမ်း၍မရပါ။ ထပ်စမ်းကြည့်ပါ။"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"သိမ်း၍မရပါ။"</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"တည်ဆောက်မှုနံပါတ်"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"တည်ဆောက်မှုနံပါတ်ကို ကလစ်ဘုတ်သို့ မိတ္တူကူးပြီးပါပြီ။"</string>
<string name="basic_status" msgid="2315371112182658176">"စကားဝိုင်းကို ဖွင့်ရန်"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• အနည်းဆုံး စက်တစ်ခုသုံးနိုင်ရမည်"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ဖြတ်လမ်းလင့်ခ်ကို ထိပြီးဖိထားပါ"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"မလုပ်တော့"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ယခုလှည့်လိုက်ပါ"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"ပိုကောင်းသော ဆယ်လ်ဖီအတွက် ဖုန်းကိုဖြန့်လိုက်ပါ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"ပိုကောင်းသော ဆယ်လ်ဖီအတွက် ဖန်သားပြင်ကိုလှည့်မလား။"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ပုံရိပ်ပြတ်သားကိန်း ပိုမြင့်ပြီး မြင်ကွင်းပိုကျယ်သည့် ဓာတ်ပုံအတွက် နောက်ဘက်ကင်မရာကို အသုံးပြုပါ။"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ဤဖန်သားပြင်ကို ပိတ်လိုက်မည်"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ခေါက်နိုင်သောစက်ကို ဖြန့်လိုက်သည်"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ခေါက်နိုင်သောစက်ကို တစ်ဘက်သို့ လှန်လိုက်သည်"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"ဘက်ထရီ <xliff:g id="PERCENTAGE">%s</xliff:g> ကျန်သေးသည်"</string>
diff --git a/packages/SystemUI/res/values-my/tiles_states_strings.xml b/packages/SystemUI/res/values-my/tiles_states_strings.xml
index 493a7f0..cadf009 100644
--- a/packages/SystemUI/res/values-my/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-my/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ပိတ်"</item>
<item msgid="5966994759929723339">"ဖွင့်"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 9a9ca35..af9cf7e 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Lysstyrke"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Fargeinvertering"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Fargekorrigering"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Administrer brukere"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Ferdig"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Lukk"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"skjermopptak"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Ingen tittel"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ventemodus"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Forstørringsvindu"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontroller for forstørringsvindu"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom inn"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Noe gikk galt. Prøv på nytt."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Laster inn"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"nettbrett"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Caster mediene"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Caster <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inaktiv. Sjekk appen"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Ikke funnet"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Kontrollen er utilgjengelig"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Kan ikke kringkaste"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Kan ikke lagre. Prøv på nytt."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Kan ikke lagre."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Delversjonsnummer"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Delversjonsnummeret er kopiert til utklippstavlen."</string>
<string name="basic_status" msgid="2315371112182658176">"Åpen samtale"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• minst én enhet er tilgjengelig"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Trykk på og hold inne snarveien"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Avbryt"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Vend nå"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Brett ut telefonen for å ta bedre selfier"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Vil du bruke frontkameraet for bedre selfier?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Bruk det bakovervendte kameraet for å ta bredere bilder med høyere oppløsning."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Denne skjermen slås av"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"En sammenleggbar enhet blir brettet ut"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"En sammenleggbar enhet blir snudd"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> batteri gjenstår"</string>
diff --git a/packages/SystemUI/res/values-nb/tiles_states_strings.xml b/packages/SystemUI/res/values-nb/tiles_states_strings.xml
index 6fa902a..b465617 100644
--- a/packages/SystemUI/res/values-nb/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-nb/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Av"</item>
<item msgid="5966994759929723339">"På"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index e460e26..ff017ab 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"उज्यालपन"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"कलर इन्भर्सन"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"कलर करेक्सन"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"प्रयोगकर्ताहरू व्यवस्थित गर्नुहोस्"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"भयो"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"बन्द गर्नुहोस्"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"स्क्रिन रेकर्डिङ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"शीर्षक छैन"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्ट्यान्डबाई"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"म्याग्निफिकेसन विन्डो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"म्याग्निफिकेसन विन्डोका नियन्त्रणहरू"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"जुम इन गर्नुहोस्"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"प्रसारण गर्न सकिएन"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"सेभ गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"सेभ गर्न सकिएन।"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"कम्तीमा ४ वटा वर्ण प्रयोग गर्नुहोस्"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"१६ वटाभन्दा कम वर्ण प्रयोग गर्नुहोस्"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"बिल्ड नम्बर"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"बिल्ड नम्बर कपी गरी क्लिपबोर्डमा सारियो।"</string>
<string name="basic_status" msgid="2315371112182658176">"वार्तालाप खोल्नुहोस्"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• कम्तीमा एउटा डिभाइस उपलब्ध छ"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"सर्टकट थिचिराख्नुहोस्"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"रद्द गर्नुहोस्"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"अहिले नै फ्लिप गर्नुहोस्"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"अझ राम्रो सेल्फी खिच्न फोन अनफोल्ड गर्नुहोस्"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"अझ राम्रो सेल्फी खिच्न फ्लिप गरी अगाडिपट्टिको डिस्प्ले प्रयोग गर्ने हो?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"अझ बढी रिजोल्युसन भएको फराकिलो फोटो खिच्न पछाडिपट्टिको क्यामेरा प्रयोग गर्नुहोस्।"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ यो स्क्रिन अफ हुने छ"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"फोल्ड गर्न मिल्ने डिभाइस अनफोल्ड गरेको देखाइएको एनिमेसन"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"फोल्ड गर्न मिल्ने डिभाइस यताउता पल्टाएर देखाइएको एनिमेसन"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ब्याट्री बाँकी छ"</string>
diff --git a/packages/SystemUI/res/values-ne/tiles_states_strings.xml b/packages/SystemUI/res/values-ne/tiles_states_strings.xml
index 17193ba..bbdf72a 100644
--- a/packages/SystemUI/res/values-ne/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ne/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"अफ"</item>
<item msgid="5966994759929723339">"अन"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 8d67715..a368fcf 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Helderheid"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Kleurinversie"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Kleurcorrectie"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gebruikers beheren"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Klaar"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Sluiten"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"schermopname"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Geen titel"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stand-by"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrotingsvenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Bediening van vergrotingsvenster"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Inzoomen"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Kan niet uitzenden"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Kan niet opslaan. Probeer het opnieuw."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Kan niet opslaan."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Gebruik minstens 4 tekens"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Gebruik minder dan 16 tekens"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Buildnummer"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Buildnummer naar klembord gekopieerd."</string>
<string name="basic_status" msgid="2315371112182658176">"Gesprek openen"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Er is ten minste één apparaat beschikbaar"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Houd de sneltoets ingedrukt"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Annuleren"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Nu omkeren"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Klap de telefoon open voor een betere selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Omkeren naar scherm voorkant voor een betere selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Gebruik de camera aan de achterzijde voor een bredere foto met hogere resolutie."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Dit scherm gaat uit"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Opvouwbaar apparaat wordt uitgevouwen"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Opvouwbaar apparaat wordt gedraaid"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Nog <xliff:g id="PERCENTAGE">%s</xliff:g> batterijlading"</string>
diff --git a/packages/SystemUI/res/values-nl/tiles_states_strings.xml b/packages/SystemUI/res/values-nl/tiles_states_strings.xml
index fbccd78..b51dc65 100644
--- a/packages/SystemUI/res/values-nl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-nl/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Uit"</item>
<item msgid="5966994759929723339">"Aan"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index 992cd86..0fd1d1d 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ଉଜ୍ଜ୍ୱଳତା"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ରଙ୍ଗ ଇନଭାର୍ସନ"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ରଙ୍ଗ ସଂଶୋଧନ"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ୟୁଜରମାନଙ୍କୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"ହୋଇଗଲା"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ସ୍କ୍ରିନ ରେକର୍ଡିଂ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"କୌଣସି ଶୀର୍ଷକ ନାହିଁ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ଷ୍ଟାଣ୍ଡବାଏ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ୱିଣ୍ଡୋ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ୱିଣ୍ଡୋ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ଜୁମ୍ ଇନ୍ କରନ୍ତୁ"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"କିଛି ତ୍ରୁଟି ହୋଇଛି। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"ଲୋଡ ହେଉଛି"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"ଟାବଲେଟ"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"ଆପଣଙ୍କ ମିଡିଆକୁ କାଷ୍ଟ କରାଯାଉଛି"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g>କୁ କାଷ୍ଟ କରାଯାଉଛି"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"ନିଷ୍କ୍ରିୟ ଅଛି, ଆପ ଯାଞ୍ଚ କରନ୍ତୁ"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"ମିଳିଲା ନାହିଁ"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"ନିୟନ୍ତ୍ରଣ ଉପଲବ୍ଧ ନାହିଁ"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ବ୍ରଡକାଷ୍ଟ କରାଯାଇପାରିବ ନାହିଁ"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"ସେଭ କରାଯାଇପାରିଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"ସେଭ କରାଯାଇପାରିଲା ନାହିଁ।"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"ଅତିକମରେ 4ଟି କେରେକ୍ଟର ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"16ଟିରୁ କମ କେରେକ୍ଟର ବ୍ୟବହାର କରନ୍ତୁ"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"ବିଲ୍ଡ ନମ୍ୱର"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"କ୍ଲିପବୋର୍ଡକୁ କପି କରାଯାଇଥିବା ବିଲ୍ଡ ନମ୍ୱର।"</string>
<string name="basic_status" msgid="2315371112182658176">"ବାର୍ତ୍ତାଳାପ ଖୋଲନ୍ତୁ"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ଅତିକମରେ ଗୋଟିଏ ଡିଭାଇସ ଉପଲବ୍ଧ ଅଛି"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ସର୍ଟକଟକୁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ବାତିଲ କରନ୍ତୁ"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ବର୍ତ୍ତମାନ ଫ୍ଲିପ କରନ୍ତୁ"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"ଏକ ଉନ୍ନତ ସେଲ୍ଫି ପାଇଁ ଫୋନକୁ ଅନଫୋଲ୍ଡ କରନ୍ତୁ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"ଏକ ଉନ୍ନତ ସେଲ୍ଫି ପାଇଁ ସାମ୍ନା ଡିସପ୍ଲେକୁ ଫ୍ଲିପ କରିବେ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ଉଚ୍ଚ ରିଜୋଲ୍ୟୁସନ ସହ ଅଧିକ ଚଉଡ଼ାର ଏକ ଫଟୋ ନେବା ପାଇଁ ପଛ-ପଟର କେମେରା ବ୍ୟବହାର କରନ୍ତୁ।"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ଏହି ସ୍କ୍ରିନ ବନ୍ଦ ହୋଇଯିବ"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ଫୋଲ୍ଡ କରାଯାଇପାରୁଥିବା ଡିଭାଇସକୁ ଅନଫୋଲ୍ଡ କରାଯାଉଛି"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ଫୋଲ୍ଡ କରାଯାଇପାରୁଥିବା ଡିଭାଇସକୁ ଫ୍ଲିପ କରାଯାଉଛି"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ବେଟେରୀ ଚାର୍ଜ ବାକି ଅଛି"</string>
diff --git a/packages/SystemUI/res/values-or/tiles_states_strings.xml b/packages/SystemUI/res/values-or/tiles_states_strings.xml
index acaa3fb..5e4b730 100644
--- a/packages/SystemUI/res/values-or/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-or/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ବନ୍ଦ ଅଛି"</item>
<item msgid="5966994759929723339">"ଚାଲୁ ଅଛି"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index c814159..28c6b31 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ਚਮਕ"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"ਰੰਗ ਪਲਟਨਾ"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ਰੰਗ ਸੁਧਾਈ"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ਵਰਤੋਂਕਾਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"ਹੋ ਗਿਆ"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ਬੰਦ ਕਰੋ"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"ਕੋਈ ਸਿਰਲੇਖ ਨਹੀਂ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ਸਟੈਂਡਬਾਈ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"ਵੱਡਦਰਸ਼ੀਕਰਨ Window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ਵੱਡਦਰਸ਼ੀਕਰਨ Window ਦੇ ਕੰਟਰੋਲ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ਜ਼ੂਮ ਵਧਾਓ"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"ਟੈਬਲੈੱਟ"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"ਤੁਹਾਡੇ ਮੀਡੀਆ ਨੂੰ ਕਾਸਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> \'ਤੇ ਕਾਸਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"ਅਕਿਰਿਆਸ਼ੀਲ, ਐਪ ਦੀ ਜਾਂਚ ਕਰੋ"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"ਨਹੀਂ ਮਿਲਿਆ"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"ਕੰਟਰੋਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ਪ੍ਰਸਾਰਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"ਘੱਟੋ-ਘੱਟ 4 ਅੱਖਰ-ਚਿੰਨ੍ਹ ਵਰਤੋ"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"16 ਤੋਂ ਘੱਟ ਅੱਖਰ-ਚਿੰਨ੍ਹ ਵਰਤੋ"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"ਬਿਲਡ ਨੰਬਰ"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"ਬਿਲਡ ਨੰਬਰ ਨੂੰ ਕਲਿੱਪਬੋਰਡ \'ਤੇ ਕਾਪੀ ਕੀਤਾ ਗਿਆ।"</string>
<string name="basic_status" msgid="2315371112182658176">"ਗੱਲਬਾਤ ਖੋਲ੍ਹੋ"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• ਘੱਟੋ-ਘੱਟ ਇੱਕ ਡੀਵਾਈਸ ਉਪਲਬਧ ਹੈ"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖੋ"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ਰੱਦ ਕਰੋ"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ਹੁਣੇ ਫਲਿੱਪ ਕਰੋ"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"ਬਿਹਤਰ ਸੈਲਫ਼ੀ ਲਈ ਫ਼ੋਨ ਨੂੰ ਖੋਲ੍ਹੋ"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"ਕੀ ਬਿਹਤਰ ਸੈਲਫ਼ੀ ਲਈ ਅਗਲੀ ਡਿਸਪਲੇ \'ਤੇ ਫਲਿੱਪ ਕਰਨਾ ਹੈ?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ਉੱਚ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਵਾਲੀ ਜ਼ਿਆਦਾ ਚੌੜੀ ਫ਼ੋਟੋ ਲਈ ਪਿਛਲੇ ਕੈਮਰੇ ਦੀ ਵਰਤੋਂ ਕਰੋ।"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ਇਹ ਸਕ੍ਰੀਨ ਬੰਦ ਹੋ ਜਾਵੇਗੀ"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ਮੋੜਨਯੋਗ ਡੀਵਾਈਸ ਨੂੰ ਖੋਲ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ਮੋੜਨਯੋਗ ਡੀਵਾਈਸ ਨੂੰ ਆਲੇ-ਦੁਆਲੇ ਫਲਿੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ਬੈਟਰੀ ਬਾਕੀ"</string>
diff --git a/packages/SystemUI/res/values-pa/tiles_states_strings.xml b/packages/SystemUI/res/values-pa/tiles_states_strings.xml
index 9653b92..5628a31 100644
--- a/packages/SystemUI/res/values-pa/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pa/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ਬੰਦ"</item>
<item msgid="5966994759929723339">"ਚਾਲੂ"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 025dd66..ed0d257 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Jasność"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Odwrócenie kolorów"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Korekcja kolorów"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Zarządzaj użytkownikami"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Gotowe"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Zamknij"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"nagrywanie ekranu"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Bez tytułu"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tryb gotowości"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Okno powiększenia"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Elementy sterujące okna powiększenia"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Powiększ"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Coś poszło nie tak. Spróbuj ponownie."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Wczytuję"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Przesyłanie multimediów"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Przesyłanie treści z aplikacji <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Nieaktywny, sprawdź aplikację"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nie znaleziono"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Element jest niedostępny"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nie można przesyłać"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Nie można zapisać. Spróbuj ponownie."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Nie można zapisać."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Wpisz co najmniej 4 znaki"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Wpisz mniej niż 16 znaków"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Numer kompilacji"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Numer kompilacji został skopiowany do schowka."</string>
<string name="basic_status" msgid="2315371112182658176">"Otwarta rozmowa"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Dostępne jest co najmniej 1 urządzenie."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Skrót – naciśnij i przytrzymaj"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Anuluj"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Przełącz teraz"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Rozłóż telefon, aby uzyskać lepszej jakości selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Przełączyć na przedni wyświetlacz?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Użyj tylnego aparatu, aby zrobić szersze zdjęcie o większej rozdzielczości."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"* Ten ekran się wyłączy"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Składane urządzenie jest rozkładane"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Składane urządzenie jest obracane"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Pozostało <xliff:g id="PERCENTAGE">%s</xliff:g> baterii"</string>
diff --git a/packages/SystemUI/res/values-pl/tiles_states_strings.xml b/packages/SystemUI/res/values-pl/tiles_states_strings.xml
index 50650986..c32aa1a 100644
--- a/packages/SystemUI/res/values-pl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pl/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Wyłączono"</item>
<item msgid="5966994759929723339">"Włączono"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 39feb08..1b9e015 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brilho"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversão de cores"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correção de cor"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gerenciar usuários"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Concluído"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Fechar"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"gravação de tela"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sem título"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles da janela de ampliação"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumentar zoom"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Não foi possível fazer a transmissão"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Falha ao salvar. Tente de novo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Falha ao salvar."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Número da versão"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Número da versão copiado para a área de transferência."</string>
<string name="basic_status" msgid="2315371112182658176">"Conversa aberta"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Pelo menos um dispositivo está disponível"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Toque e pressione o atalho"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancelar"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Virar agora"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Abra o smartphone para tirar uma selfie melhor"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Usar o display frontal para tirar uma selfie melhor?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use a câmera traseira para tirar uma foto mais ampla e com maior resolução."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Esta tela vai ser desativada"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo dobrável sendo aberto"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo dobrável sendo virado"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Bateria restante: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml b/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
index ebe67d8..cea4532 100644
--- a/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Desativado"</item>
<item msgid="5966994759929723339">"Ativado"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 98f063f..22ddebf 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -257,6 +257,7 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brilho"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversão de cores"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correção da cor"</string>
+ <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Tamanho do tipo de letra"</string>
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gerir utilizadores"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Concluído"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Fechar"</string>
@@ -777,6 +778,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"gravação de ecrã"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sem título"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controlos da janela de ampliação"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumentar zoom"</string>
@@ -901,6 +908,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Não é possível transmitir"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Não é possível guardar. Tente novamente."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Não é possível guardar."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Use, pelo menos, 4 carateres"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Use menos de 16 carateres"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Número da compilação"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Número da compilação copiado para a área de transferência."</string>
<string name="basic_status" msgid="2315371112182658176">"Abrir conversa"</string>
@@ -1020,11 +1029,11 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Está disponível, pelo menos, um dispositivo"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Toque sem soltar no atalho"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancelar"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Inverter agora"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Desdobre o telemóvel para uma selfie melhor"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Inverter para ecrã frontal para uma selfie melhor?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use a câmara traseira para uma foto mais ampla com uma resolução superior."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Este ecrã vai ser desligado"</b></string>
+ <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Mudar de ecrã agora"</string>
+ <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Desdobre o telemóvel"</string>
+ <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Mudar de ecrã?"</string>
+ <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"Para uma resolução superior, use a câmara traseira"</string>
+ <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"Para uma resolução superior, inverta o telemóvel"</string>
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo dobrável a ser desdobrado"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo dobrável a ser virado ao contrário"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> de bateria restante"</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml b/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml
index bda7473..b58b848 100644
--- a/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml
@@ -176,4 +176,9 @@
<item msgid="8014986104355098744">"Desativado"</item>
<item msgid="5966994759929723339">"Ativado"</item>
</string-array>
+ <string-array name="tile_states_font_scaling">
+ <item msgid="3173069902082305985">"Indisponível"</item>
+ <item msgid="2478289035899842865">"Desativado"</item>
+ <item msgid="5137565285664080143">"Ativado"</item>
+ </string-array>
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 39feb08..1b9e015 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brilho"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversão de cores"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correção de cor"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gerenciar usuários"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Concluído"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Fechar"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"gravação de tela"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Sem título"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles da janela de ampliação"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumentar zoom"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Não foi possível fazer a transmissão"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Falha ao salvar. Tente de novo."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Falha ao salvar."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Número da versão"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Número da versão copiado para a área de transferência."</string>
<string name="basic_status" msgid="2315371112182658176">"Conversa aberta"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Pelo menos um dispositivo está disponível"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Toque e pressione o atalho"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Cancelar"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Virar agora"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Abra o smartphone para tirar uma selfie melhor"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Usar o display frontal para tirar uma selfie melhor?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Use a câmera traseira para tirar uma foto mais ampla e com maior resolução."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Esta tela vai ser desativada"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo dobrável sendo aberto"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo dobrável sendo virado"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Bateria restante: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-pt/tiles_states_strings.xml b/packages/SystemUI/res/values-pt/tiles_states_strings.xml
index ebe67d8..cea4532 100644
--- a/packages/SystemUI/res/values-pt/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Desativado"</item>
<item msgid="5966994759929723339">"Ativado"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index bf26016..907b9c1 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Luminozitate"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversarea culorilor"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Corecția culorii"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gestionează utilizatorii"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Terminat"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Închide"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"înregistrare de ecran"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Fără titlu"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Fereastra de mărire"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Comenzi pentru fereastra de mărire"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Mărește"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"A apărut o eroare. Încearcă din nou."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Se încarcă"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tabletă"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Se proiectează conținutul media"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Se proiectează <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inactiv, verifică aplicația"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nu s-a găsit"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Comanda este indisponibilă"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nu se poate transmite"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Nu se poate salva. Încearcă din nou."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Nu se poate salva."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Folosește minimum 4 caractere."</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Folosește maximum 16 caractere"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Numărul versiunii"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Numărul versiunii s-a copiat în clipboard."</string>
<string name="basic_status" msgid="2315371112182658176">"Deschide conversația"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Este disponibil cel puțin un dispozitiv"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Atinge lung comanda rapidă"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Anulează"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Întoarce-l acum"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Desfă telefonul pentru un selfie mai bun"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Comuți la ecranul frontal pentru un selfie mai bun?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Folosește camera posterioară pentru o fotografie mai lată, cu rezoluție mai mare."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Acest ecran se va dezactiva"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispozitiv pliabil care este desfăcut"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispozitiv pliabil care este întors"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> baterie rămasă"</string>
diff --git a/packages/SystemUI/res/values-ro/tiles_states_strings.xml b/packages/SystemUI/res/values-ro/tiles_states_strings.xml
index 7b7bb3a..782afc5 100644
--- a/packages/SystemUI/res/values-ro/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ro/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Dezactivat"</item>
<item msgid="5966994759929723339">"Activat"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 1a10a79..2b8c776 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Яркость"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Инверсия цветов"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Коррекция цвета"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Управление пользователями"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Готово"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Закрыть"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"запись экрана"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Без названия"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Переход в режим ожидания"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Окно увеличения"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Настройки окна увеличения"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Увеличить"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Не удалось запустить трансляцию"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Не удалось сохранить. Повторите попытку."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Не удалось сохранить."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Номер сборки"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Номер сборки скопирован в буфер обмена."</string>
<string name="basic_status" msgid="2315371112182658176">"Открытый чат"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Доступно хотя бы одно устройство."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Нажмите и удерживайте ярлык"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Отмена"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Перевернуть сейчас"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Разложите телефон, чтобы селфи получилось лучше"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Перейти на передний экран?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Используйте основную камеру с широкоугольным объективом и высоким разрешением."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Этот экран отключится"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Складное устройство в разложенном виде"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Перевернутое складное устройство"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Уровень заряда батареи: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ru/tiles_states_strings.xml b/packages/SystemUI/res/values-ru/tiles_states_strings.xml
index 6255bd8..9a4960b 100644
--- a/packages/SystemUI/res/values-ru/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ru/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Отключено"</item>
<item msgid="5966994759929723339">"Включено"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index 217a6e3..8c85119 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"දීප්තිමත් බව"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"වර්ණ අපවර්තනය"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"වර්ණ නිවැරදි කිරීම"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"පරිශීලකයන් කළමනාකරණය කරන්න"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"නිමයි"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"වසන්න"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"තිර පටිගත කිරීම"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"මාතෘකාවක් නැත"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"පොරොත්තු"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"විශාලන කවුළුව"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"විශාලනය කිරීමේ කවුළු පාලන"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"විශාලනය වැඩි කරන්න"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"යම් දෙයක් වැරදිණි. නැවත උත්සාහ කරන්න."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"පූරණය වේ"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"ටැබ්ලටය"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"ඔබේ මාධ්ය විකාශය කිරීම"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> විකාශය කරමින්"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"අක්රියයි, යෙදුම පරීක්ෂා කරන්න"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"හමු නොවිණි"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"පාලනය ලබා ගත නොහැකිය"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"විකාශනය කළ නොහැකිය"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"සුරැකිය නොහැකිය. නැවත උත්සාහ කරන්න."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"සුරැකිය නොහැකිය."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"නිමැවුම් අංකය"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"නිමැවුම් අංකය පසුරු පුවරුවට පිටපත් කරන ලදි."</string>
<string name="basic_status" msgid="2315371112182658176">"සංවාදය විවෘත කරන්න"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• අවම වශයෙන් එක උපාංගයක් ලැබේ"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ස්පර්ශ කර අල්ලා සිටීමේ කෙටිමඟ"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"අවලංගු කරන්න"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"දැන් පෙරළන්න"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"වඩා හොඳ සෙල්ෆියක් සඳහා දුරකථනය දිගහරින්න"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"වඩා හොඳ සෙල්ෆියක් සඳහා ඉදිරිපස සංදර්ශකයට පෙරළන්න ද?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ඉහළ විභේදන සහිත පුළුල් ඡායාරූපයක් සඳහා පසුපසට මුහුණලා ඇති කැමරාව භාවිතා කරන්න."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ මෙම තිරය ක්රියා විරහිත වනු ඇත"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"දිග හැරෙමින් පවතින නැමිය හැකි උපාංගය"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"වටා පෙරළෙමින් තිබෙන නැමිය හැකි උපාංගය"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> බැටරිය ඉතිරිව ඇත"</string>
diff --git a/packages/SystemUI/res/values-si/tiles_states_strings.xml b/packages/SystemUI/res/values-si/tiles_states_strings.xml
index 327e0b9..c9312ff 100644
--- a/packages/SystemUI/res/values-si/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-si/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ක්රියාවිරහිතයි"</item>
<item msgid="5966994759929723339">"ක්රියාත්මකයි"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index f6f7b37..262e269 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Jas"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inverzia farieb"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Úprava farieb"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Spravovať používateľov"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Hotovo"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Zavrieť"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"nahrávanie obrazovky"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Bez názvu"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostný režim"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Okno priblíženia"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ovládacie prvky okna priblíženia"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Priblížiť"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nedá sa vysielať"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Nedá sa uložiť. Skúste to znova."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Nedá sa uložiť."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Použite aspoň štyri znaky"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Použite menej než 16 znakov"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Číslo zostavy"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Číslo zostavy bolo skopírované do schránky."</string>
<string name="basic_status" msgid="2315371112182658176">"Otvorená konverzácia"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• K dispozícii je minimálne jedno zariadenie"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Pridržte skratku"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Zrušiť"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Otočiť"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Ak chcete lepšie selfie, rozložte telefón"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Otočiť na prednú obrazovku pre lepšie selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Pomocou zadného fotoaparátu vytvorte širšiu fotku s vyšším rozlíšením."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Táto obrazovka sa vypne"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Rozloženie skladacieho zariadenia"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Prevrátenie skladacieho zariadenia"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Zostáva <xliff:g id="PERCENTAGE">%s</xliff:g> batérie"</string>
diff --git a/packages/SystemUI/res/values-sk/tiles_states_strings.xml b/packages/SystemUI/res/values-sk/tiles_states_strings.xml
index 3cbde1c..3540eab 100644
--- a/packages/SystemUI/res/values-sk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sk/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Vypnuté"</item>
<item msgid="5966994759929723339">"Zapnuté"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index c188d45..012b14f 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Svetlost"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inverzija barv"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Popravljanje barv"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Upravljanje uporabnikov"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Končano"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Zapri"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"snemanje zaslona"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Brez naslova"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravljenosti"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Povečevalno okno"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrolniki povečevalnega okna"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Povečaj"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Prišlo je do napake. Poskusite znova."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Nalaganje"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablični računalnik"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Predvajanje predstavnosti"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Predvajanje aplikacije <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Neaktivno, poglejte aplikacijo"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Ni mogoče najti"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Kontrolnik ni na voljo"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Oddajanje ni mogoče"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Ni mogoče shraniti. Poskusite znova."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Ni mogoče shraniti."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Uporabite vsaj 4 znake."</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Uporabite manj kot 16 znakov."</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Delovna različica"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Delovna različica je bila kopirana v odložišče."</string>
<string name="basic_status" msgid="2315371112182658176">"Odprt pogovor"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Na voljo mora biti vsaj ena naprava."</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Pridržite bližnjico"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Prekliči"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Obrni"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Razprite telefon za boljši selfi"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Obrnite telefon na sprednji zaslon za boljši selfi"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Uporabite hrbtni fotoaparat, da posnamete širšo sliko višje ločljivosti."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Ta zaslon se bo izklopil."</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Razpiranje zložljive naprave"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Obračanje zložljive naprave"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Preostanek energije baterije: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-sl/tiles_states_strings.xml b/packages/SystemUI/res/values-sl/tiles_states_strings.xml
index e720819..985b779 100644
--- a/packages/SystemUI/res/values-sl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sl/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Izklopljeno"</item>
<item msgid="5966994759929723339">"Vklopljeno"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index c9789a9..a9c8784 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Ndriçimi"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Anasjellja e ngjyrës"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Korrigjimi i ngjyrës"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Menaxho përdoruesit"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"U krye"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Mbyll"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"regjistrim i ekranit"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Pa titull"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Në gatishmëri"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Dritarja e zmadhimit"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrollet e dritares së zmadhimit"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zmadho"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Nuk mund të transmetohet"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Nuk mund të ruhet. Provo përsëri."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Nuk mund të ruhet."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Përdor të paktën 4 karaktere"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Përdor më pak se 16 karaktere"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Numri i ndërtimit"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Numri i ndërtimit u kopjua te kujtesa e fragmenteve"</string>
<string name="basic_status" msgid="2315371112182658176">"Hap bisedën"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Ofrohet të paktën një pajisje"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Prek dhe mbaj shtypur shkurtoren"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Anulo"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Ktheje tani"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Shpalos telefonin për një selfi më të mirë"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Të kthehet tek ekrani para për selfi më të mirë?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Përdor lenten e kamerës së pasme për një fotografi më të gjerë me rezolucion më të lartë."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Ky ekran do të fiket"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Pajisja e palosshme duke u hapur"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Pajisja e palosshme duke u rrotulluar"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Përqindja e mbetur e baterisë: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-sq/tiles_states_strings.xml b/packages/SystemUI/res/values-sq/tiles_states_strings.xml
index 7a09f24..5862e2e 100644
--- a/packages/SystemUI/res/values-sq/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sq/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Joaktiv"</item>
<item msgid="5966994759929723339">"Aktiv"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index d756401..a9df97a 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Осветљеност"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Инверзија боја"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Корекција боја"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Управљаjте корисницима"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Готово"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Затвори"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"снимање екрана"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Без наслова"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Стање приправности"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Прозор за увећање"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроле прозора за увећање"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Увећајте"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Дошло је до грешке. Пробајте поново."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Учитава се"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"таблет"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Пребацивање медија"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Пребацује се <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактивно. Видите апликацију"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Није пронађено"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Контрола није доступна"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Емитовање није успело"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Чување није успело. Пробајте поново."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Чување није успело."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Користите бар 4 знака"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Користите мање од 16 знакова"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Број верзије"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Број верзије је копиран у привремену меморију."</string>
<string name="basic_status" msgid="2315371112182658176">"Отворите конверзацију"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• да је доступан барем један уређај"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Додирните и задржите пречицу"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Откажи"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Обрни"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Отворите телефон за бољи селфи"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Желите да обрнете на предњи екран за бољи селфи?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Користите задњу камеру да бисте снимили ширу слику са вишом резолуцијом."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Овај екран ће се искључити"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Уређај на преклоп се отвара"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Уређај на преклоп се обрће"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Преостало је још<xliff:g id="PERCENTAGE">%s</xliff:g> батерије"</string>
diff --git a/packages/SystemUI/res/values-sr/tiles_states_strings.xml b/packages/SystemUI/res/values-sr/tiles_states_strings.xml
index dace491..e817eea 100644
--- a/packages/SystemUI/res/values-sr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sr/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Искључено"</item>
<item msgid="5966994759929723339">"Укључено"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index d12c25f..d839a11 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Ljusstyrka"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Färginvertering"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Färgkorrigering"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Hantera användare"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Klart"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Stäng"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"skärminspelning"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Ingen titel"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Viloläge"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Förstoringsfönster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Inställningar för förstoringsfönster"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zooma in"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Något gick fel. Försök igen."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Läser in"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"surfplatta"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Castar din media"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Castar <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inaktiv, kolla appen"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Hittades inte"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Styrning är inte tillgänglig"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Det gick inte att sända ut"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Det gick inte att spara. Försök igen."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Det gick inte att spara."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Versionsnummer"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Versionsnumret har kopierats till urklipp."</string>
<string name="basic_status" msgid="2315371112182658176">"Öppen konversation"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• minst en enhet är tillgänglig"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Tryck länge på genvägen"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Avbryt"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Vänd nu"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Vik upp telefonen för att ta en bättre selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Vill du ta en bättre selfie med främre kameran?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Använd den bakre kameran för att ta ett mer vidsträckt foto med högre upplösning."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Den här skärmen inaktiveras"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"En vikbar enhet viks upp"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"En vikbar enhet vänds"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> av batteriet återstår"</string>
diff --git a/packages/SystemUI/res/values-sv/tiles_states_strings.xml b/packages/SystemUI/res/values-sv/tiles_states_strings.xml
index 9e69b00..45169aa 100644
--- a/packages/SystemUI/res/values-sv/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sv/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Av"</item>
<item msgid="5966994759929723339">"På"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 564de43..c303c09 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Ung\'avu"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Ugeuzaji rangi"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Usahihishaji wa rangirangi"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Dhibiti watumiaji"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Nimemaliza"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Funga"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"kurekodi skrini"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Wimbo hauna jina"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Hali tuli"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Dirisha la Ukuzaji"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vidhibiti vya Dirisha la Ukuzaji"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Vuta karibu"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Hitilafu fulani imetokea. Jaribu tena."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Inapakia"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"kompyuta kibao"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Inatuma maudhui yako"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Inatuma <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Haitumiki, angalia programu"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Hakipatikani"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Kidhibiti hakipatikani"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Imeshindwa kutuma arifa"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Imeshindwa kuhifadhi. Jaribu tena."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Imeshindwa kuhifadhi."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Nambari ya muundo"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Nambari ya muundo imewekwa kwenye ubao wa kunakili."</string>
<string name="basic_status" msgid="2315371112182658176">"Fungua mazungumzo"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Angalau kifaa kimoja kinapatikana"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Gusa na ushikilie njia ya mkato"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Ghairi"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Geuza kifaa sasa"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Kunjua simu ili upige selfi iliyo bora"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Ungependa kugeuza skrini ya mbele ili upige selfi?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Tumia kamera ya nyuma ili upige picha pana iliyo na ubora wa juu."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Skrini hii itajizima"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Kifaa kinachokunjwa kikikunjuliwa"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Kifaa kinachokunjwa kikigeuzwa"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Chaji ya betri imesalia <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-sw/tiles_states_strings.xml b/packages/SystemUI/res/values-sw/tiles_states_strings.xml
index 2f765ef..aad0099 100644
--- a/packages/SystemUI/res/values-sw/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sw/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Imezimwa"</item>
<item msgid="5966994759929723339">"Imewashwa"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index b20bd37..e58acfa 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ஒளிர்வு"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"கலர் இன்வெர்ஷன்"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"கலர் கரெக்ஷன்"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"பயனர்களை நிர்வகியுங்கள்"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"முடிந்தது"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"மூடுக"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ஸ்கிரீன் ரெக்கார்டிங்"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"தலைப்பு இல்லை"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"இயக்க நேரம்"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"பெரிதாக்கல் சாளரம்"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"பெரிதாக்கல் சாளரக் கட்டுப்பாடுகள்"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"பெரிதாக்கு"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"ஏதோ தவறாகிவிட்டது. மீண்டும் முயலவும்."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"ஏற்றுகிறது"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"டேப்லெட்"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"உங்கள் மீடியா அலைபரப்பப்படுகிறது"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ஆப்ஸை அலைபரப்புகிறது"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"செயலில் இல்லை , சரிபார்க்கவும்"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"இல்லை"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"கட்டுப்பாடு இல்லை"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ஒளிபரப்ப முடியவில்லை"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"சேமிக்க முடியவில்லை. மீண்டும் முயலவும்."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"சேமிக்க முடியவில்லை."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"பதிப்பு எண்"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"பதிப்பு எண் கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது."</string>
<string name="basic_status" msgid="2315371112182658176">"திறந்தநிலை உரையாடல்"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• குறைந்தபட்சம் ஒரு சாதனமாவது கிடைக்க வேண்டும்"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"ஷார்ட்கட்டை தொட்டுப் பிடிக்கவும்"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ரத்துசெய்"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"இப்போது மாற்றவும்"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"சிறந்த செல்ஃபிக்கு மொபைலை மடக்காதீர்கள்"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"சிறந்த செல்ஃபிக்கு முன்புற டிஸ்பிளேவிற்கு மாற்றவா?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"அதிகத் தெளிவுத்திறனுடன் அகலக் கோணத்தில் படத்தை எடுப்பதற்குப் பின்பக்கக் கேமராவைப் பயன்படுத்துங்கள்."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ இந்தத் திரை ஆஃப் ஆகிவிடும்"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"மடக்கத்தக்க சாதனம் திறக்கப்படுகிறது"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"மடக்கத்தக்க சாதனம் ஃபிளிப் செய்யப்பட்டு திருப்பப்படுகிறது"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> பேட்டரி மீதமுள்ளது"</string>
diff --git a/packages/SystemUI/res/values-ta/tiles_states_strings.xml b/packages/SystemUI/res/values-ta/tiles_states_strings.xml
index 41f6412..1a22d9f 100644
--- a/packages/SystemUI/res/values-ta/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ta/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"முடக்கப்பட்டுள்ளது"</item>
<item msgid="5966994759929723339">"இயக்கப்பட்டுள்ளது"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 0719671..11f528a 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ప్రకాశం"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"కలర్ మార్పిడి"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"కలర్ కరెక్షన్"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"యూజర్లను మేనేజ్ చేయండి"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"పూర్తయింది"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"మూసివేయి"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"స్క్రీన్ రికార్డింగ్"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"శీర్షిక లేదు"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"స్టాండ్బై"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"మ్యాగ్నిఫికేషన్ విండో"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"మ్యాగ్నిఫికేషన్ నియంత్రణల విండో"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"దగ్గరగా జూమ్ చేయండి"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ప్రసారం చేయడం సాధ్యపడలేదు"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"సేవ్ చేయడం సాధ్యపడదు. మళ్లీ ట్రై చేయండి."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"సేవ్ చేయడం సాధ్యపడదు."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"కనీసం 4 అక్షరాలను ఉపయోగించండి"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"16 కంటే తక్కువ అక్షరాలను ఉపయోగించండి"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"బిల్డ్ నంబర్"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"బిల్డ్ నంబర్, క్లిప్బోర్డ్కు కాపీ చేయబడింది."</string>
<string name="basic_status" msgid="2315371112182658176">"సంభాషణను తెరవండి"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• కనీసం ఒక పరికరమైనా అందుబాటులో ఉందని"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"షార్ట్కట్ను తాకి, నొక్కి ఉంచు"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"రద్దు చేయండి"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"ఇప్పుడే తిప్పండి"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"మెరుగైన సెల్ఫీ కోసం ఫోన్ను అన్ఫోల్డ్ చేయండి"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"మంచి సెల్ఫీ కోసం ముందు వైపు డిస్ప్లేకు తిప్పాలా?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"వెనుక వైపున ఉన్న కెమెరాను ఉపయోగించి అధిక రిజల్యూషన్ గల, మరింత వెడల్పైన ఫోటోను పొందండి."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ ఈ స్క్రీన్ ఆఫ్ అవుతుంది"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"మడవగల పరికరం విప్పబడుతోంది"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"మడవగల పరికరం చుట్టూ తిప్పబడుతోంది"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> బ్యాటరీ మిగిలి ఉంది"</string>
diff --git a/packages/SystemUI/res/values-te/tiles_states_strings.xml b/packages/SystemUI/res/values-te/tiles_states_strings.xml
index 44ba477..c5a525c 100644
--- a/packages/SystemUI/res/values-te/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-te/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ఆఫ్"</item>
<item msgid="5966994759929723339">"ఆన్"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 90617ca..c3037be 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ความสว่าง"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"การกลับสี"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"การแก้สี"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"จัดการผู้ใช้"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"เสร็จสิ้น"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ปิด"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"การบันทึกหน้าจอ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"ไม่มีชื่อ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"สแตนด์บาย"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"หน้าต่างการขยาย"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"การควบคุมหน้าต่างการขยาย"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ซูมเข้า"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"ออกอากาศไม่ได้"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"บันทึกไม่ได้ โปรดลองอีกครั้ง"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"บันทึกไม่ได้"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"ใช้อักขระอย่างน้อย 4 ตัว"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"ใช้อักขระไม่เกิน 16 ตัว"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"หมายเลขบิลด์"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"คัดลอกหมายเลขบิลด์ไปยังคลิปบอร์ดแล้ว"</string>
<string name="basic_status" msgid="2315371112182658176">"เปิดการสนทนา"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• มีอุปกรณ์พร้อมใช้งานอย่างน้อย 1 รายการ"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"แตะแป้นพิมพ์ลัดค้างไว้"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"ยกเลิก"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"พลิกเลย"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"กางโทรศัพท์เพื่อเซลฟีที่ดียิ่งขึ้น"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"พลิกเป็นหน้าจอด้านหน้าเพื่อภาพเซลฟีที่ดีขึ้นไหม"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"ใช้กล้องหลังเพื่อถ่ายภาพกว้างขึ้นด้วยความละเอียดสูงขึ้น"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ หน้าจอนี้จะปิดไป"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"อุปกรณ์ที่พับได้กำลังกางออก"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"อุปกรณ์ที่พับได้กำลังพลิกไปมา"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"เหลือแบตเตอรี่ <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-th/tiles_states_strings.xml b/packages/SystemUI/res/values-th/tiles_states_strings.xml
index 9cd060f..61e0fe6 100644
--- a/packages/SystemUI/res/values-th/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-th/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"ปิด"</item>
<item msgid="5966994759929723339">"เปิด"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 4eaa89c..c991c82 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Brightness"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Pag-invert ng kulay"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Pagtatama ng kulay"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Pamahalaan ang mga user"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Tapos na"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Isara"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"pag-record ng screen"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Walang pamagat"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Naka-standby"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Window ng Pag-magnify"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Mga Kontrol sa Pag-magnify ng Window"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Mag-zoom in"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Nagkaproblema. Subukan ulit."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Naglo-load"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Pag-cast ng iyong media"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Kina-cast ang <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Hindi aktibo, tingnan ang app"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Hindi nahanap"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Hindi available ang kontrol"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Hindi makapag-broadcast"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Hindi ma-save. Subukan ulit."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Hindi ma-save."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Numero ng build"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Nakopya sa clipboard ang numero ng build."</string>
<string name="basic_status" msgid="2315371112182658176">"Buksan ang pag-uusap"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• May kahit isang device na available"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Pindutin nang matagal: shortcut"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Kanselahin"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"I-flip na ngayon"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"I-unfold ang telepono para sa mas magandang selfie"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"I-flip sa front display para sa magandang selfie?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Gamitin ang camera sa harap para sa mas malawak na larawan na may mas mataas na resolution."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Mag-o-off ang screen na ito"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Ina-unfold na foldable na device"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Fini-flip na foldable na device"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> baterya na lang ang natitira"</string>
diff --git a/packages/SystemUI/res/values-tl/tiles_states_strings.xml b/packages/SystemUI/res/values-tl/tiles_states_strings.xml
index cd7dcf5..4522945 100644
--- a/packages/SystemUI/res/values-tl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-tl/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Naka-off"</item>
<item msgid="5966994759929723339">"Naka-on"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 2e53e64..d8569b3 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Parlaklık"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Rengi ters çevirme"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Renk düzeltme"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Kullanıcıları yönet"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Bitti"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Kapat"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ekran kaydı"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Başlıksız"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Beklemeye alınıyor"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Büyütme Penceresi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Büyütme Penceresi Kontrolleri"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Yakınlaştır"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Bir hata oluştu. Tekrar deneyin."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Yükleme"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"tablet"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Medyanız yayınlanıyor"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> yayınlanıyor"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Devre dışı, uygulamaya bakın"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Bulunamadı"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Kontrol kullanılamıyor"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Yayınlanamıyor"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Kaydedilemiyor. Tekrar deneyin."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Kaydedilemiyor."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Derleme numarası"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Derleme numarası panoya kopyalandı."</string>
<string name="basic_status" msgid="2315371112182658176">"Görüşmeyi aç"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• En az bir cihaz mevcut olmalıdır"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Kısayola dokunup basılı tutun"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"İptal"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Şimdi çevirin"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Daha iyi selfie çekmek için telefonu açın"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Daha iyi bir selfie için ön ekrana geçilsin mi?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Daha yüksek çözünürlüğe sahip daha büyük bir fotoğraf için arka yüz kamerasını kullanın."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Bu ekran kapatılacak"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Katlanabilir cihaz açılıyor"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Katlanabilir cihaz döndürülüyor"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> pil kaldı"</string>
diff --git a/packages/SystemUI/res/values-tr/tiles_states_strings.xml b/packages/SystemUI/res/values-tr/tiles_states_strings.xml
index 28ba7dc..5d6a7f4 100644
--- a/packages/SystemUI/res/values-tr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-tr/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Kapalı"</item>
<item msgid="5966994759929723339">"Açık"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 8b5f7b6..df1d27a 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Яскравість"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Інверсія кольорів"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Корекція кольору"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Керувати користувачами"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Готово"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Закрити"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"запис відео з екрана"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Без назви"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим очікування"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Вікно збільшення"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Елементи керування вікна збільшення"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Наблизити"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Сталася помилка. Повторіть спробу."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Завантаження"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"планшет"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Трансляція медіаконтенту"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Трансляція додатка <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактивно, перейдіть у додаток"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не знайдено"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Елемент керування недоступний"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Неможливо транслювати"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Не вдалося зберегти. Повторіть спробу."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Не вдалося зберегти."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Номер складання"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Номер складання скопійовано в буфер обміну."</string>
<string name="basic_status" msgid="2315371112182658176">"Відкрита розмова"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Принаймні один пристрій доступний"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Натисніть і утримуйте ярлик"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Скасувати"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Перевернути"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Розгорніть телефон, щоб зробити краще селфі"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Перемкнути на фронтальну камеру для кращого селфі?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Використовуйте камеру на задній панелі, щоб зробити знімок із ширшим кутом і вищою роздільною здатністю."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Цей екран вимкнеться"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Розкладний пристрій у розкладеному стані"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Розкладний пристрій обертається"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Заряд акумулятора: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-uk/tiles_states_strings.xml b/packages/SystemUI/res/values-uk/tiles_states_strings.xml
index 3f6ca46..a0cc1c1 100644
--- a/packages/SystemUI/res/values-uk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-uk/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Вимкнено"</item>
<item msgid="5966994759929723339">"Увімкнено"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index c1bca22..089e4b4 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"چمکیلا پن"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"رنگوں کی تقلیب"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"رنگ کی اصلاح"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"صارفین کا نظم کریں"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"ہو گیا"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"بند کریں"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"اسکرین ریکارڈنگ"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"کوئی عنوان نہیں ہے"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"اسٹینڈ بائی"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"میگنیفکیشن ونڈو"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"میگنیفکیشن ونڈو کنٹرولز"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"زوم ان کریں"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"کچھ غلط ہوگیا۔ پھر کوشش کریں۔"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"لوڈ ہو رہا ہے"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"ٹیبلیٹ"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"آپ کا میڈیا کاسٹ ہو رہا ہے"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"<xliff:g id="APP_LABEL">%1$s</xliff:g> کاسٹ ہو رہا ہے"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"غیر فعال، ایپ چیک کریں"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"نہیں ملا"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"کنٹرول دستیاب نہیں ہے"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"براڈکاسٹ نہیں کیا جا سکتا"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"محفوظ نہیں کیا جا سکا۔ پھر کوشش کریں۔"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"محفوظ نہیں کیا جا سکا۔"</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"بلڈ نمبر"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"بلڈ نمبر کلپ بورڈ میں کاپی ہو گیا۔"</string>
<string name="basic_status" msgid="2315371112182658176">"گفتگو کھولیں"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• کم از کم ایک آلہ دستیاب ہے"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"شارٹ کٹ ٹچ کریں اور دبائے رکھیں"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"منسوخ کریں"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"اب پلٹائیں"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"بہتر سیلفی کے لیے فون کھولیں"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"بہتر سیلفی کے لیے سامنے والے ڈسپلے پر پلٹائیں؟"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"اعلی ریزولیوشن والی وسیع تصویر کے لیے ییچھے والا کیمرا استعمال کریں۔"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ یہ اسکرین آف ہو جائے گی"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"فولڈ ہونے والے آلے کو کھولا جا رہا ہے"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"فولڈ ہونے والے آلے کو گھمایا جا رہا ہے"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> بیٹری باقی ہے"</string>
diff --git a/packages/SystemUI/res/values-ur/tiles_states_strings.xml b/packages/SystemUI/res/values-ur/tiles_states_strings.xml
index 05aa4e9..5e2b073 100644
--- a/packages/SystemUI/res/values-ur/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ur/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"آف"</item>
<item msgid="5966994759929723339">"آن"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 284193b..7df2aed 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Yorqinlik"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Ranglarni akslantirish"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Ranglarni tuzatish"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Foydalanuvchilarni boshqarish"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Tayyor"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Yopish"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ekranni yozuvi"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Nomsiz"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Kutib turing"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Kattalashtirish oynasi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kattalashtirish oynasi sozlamalari"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Yaqinlashtirish"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Uzatilmadi"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Saqlanmadi. Qayta urining."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Saqlanmadi."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Parolga kamida 4 ta belgi kiriting."</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Kiritiladigan belgilar 16 tadan oshmasin"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Nashr raqami"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Nashr raqami vaqtinchalik xotiraga nusxalandi."</string>
<string name="basic_status" msgid="2315371112182658176">"Suhbatni ochish"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Kamida bitta qurilma mavjud"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Bosib turish yorligʻi"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Bekor qilish"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Almashtirish"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Yaxshiroq selfi olish uchun telefonni yoying"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Yaxshiroq selfi uchun old ekranga almashilsinmi?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Keng burchakli va yuqori aniqlikda suratga olish uchun orqa kameradan foydalaning."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Bu ekran oʻchiriladi"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Buklanadigan qurilma ochilmoqda"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Buklanadigan qurilma aylantirilmoqda"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Batareya quvvati: <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-uz/tiles_states_strings.xml b/packages/SystemUI/res/values-uz/tiles_states_strings.xml
index a84f769..6d55fc1 100644
--- a/packages/SystemUI/res/values-uz/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-uz/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Oʻchiq"</item>
<item msgid="5966994759929723339">"Yoniq"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index fe77c10..caeb44c 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Độ sáng"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Đảo màu"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Chỉnh màu"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Quản lý người dùng"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Xong"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Đóng"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ghi màn hình"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Không có tiêu đề"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Chế độ chờ"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Cửa sổ phóng to"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Các tùy chọn điều khiển cửa sổ phóng to"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Phóng to"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"Đã xảy ra lỗi. Hãy thử lại."</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"Đang tải"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"máy tính bảng"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"Truyền nội dung đa phương tiện"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"Đang truyền <xliff:g id="APP_LABEL">%1$s</xliff:g>"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Không hoạt động, hãy kiểm tra ứng dụng"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Không tìm thấy"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"Không có chức năng điều khiển"</string>
@@ -903,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Không thể truyền"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Không lưu được. Hãy thử lại."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Không lưu được."</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Số bản dựng"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Đã sao chép số bản dựng vào bảng nhớ tạm."</string>
<string name="basic_status" msgid="2315371112182658176">"Mở cuộc trò chuyện"</string>
@@ -1022,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Có ít nhất một thiết bị đang hoạt động"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Chạm và giữ phím tắt"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Huỷ"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Lật ngay"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Mở điện thoại ra để tự chụp ảnh chân dung đẹp hơn"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Lật sang màn hình ngoài để tự chụp ảnh chân dung đẹp hơn?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Sử dụng máy ảnh sau để chụp ảnh góc rộng hơn với độ phân giải cao hơn."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Màn hình này sẽ tắt"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Thiết bị có thể gập lại đang được mở ra"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Thiết bị có thể gập lại đang được lật ngược"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"Còn <xliff:g id="PERCENTAGE">%s</xliff:g> pin"</string>
diff --git a/packages/SystemUI/res/values-vi/tiles_states_strings.xml b/packages/SystemUI/res/values-vi/tiles_states_strings.xml
index 482a32f..5b816fb 100644
--- a/packages/SystemUI/res/values-vi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-vi/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Tắt"</item>
<item msgid="5966994759929723339">"Đang bật"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 3cd6a69..f2ddb99 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"亮度"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"颜色反转"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"色彩校正"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"管理用户"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"完成"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"关闭"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"屏幕录制"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"无标题"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待机"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"放大窗口"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大窗口控件"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"放大"</string>
@@ -901,6 +909,10 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"无法广播"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"无法保存,请重试。"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"无法保存。"</string>
+ <!-- no translation found for media_output_broadcast_code_hint_no_less_than_min (4663836092607696185) -->
+ <skip />
+ <!-- no translation found for media_output_broadcast_code_hint_no_more_than_max (9181869364856175638) -->
+ <skip />
<string name="build_number_clip_data_label" msgid="3623176728412560914">"版本号"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"已将版本号复制到剪贴板。"</string>
<string name="basic_status" msgid="2315371112182658176">"开放式对话"</string>
@@ -1020,11 +1032,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• 至少有一台设备可用"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"轻触并按住快捷方式"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"取消"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"立即翻转"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"展开手机可拍出更好的自拍照"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"翻转到外屏后自拍效果更好,要试试吗?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"您可以使用后置摄像头拍摄视角更广、分辨率更高的照片。"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ 此屏幕将会关闭"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"正在展开可折叠设备"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"正在翻转可折叠设备"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"电池还剩 <xliff:g id="PERCENTAGE">%s</xliff:g> 的电量"</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml b/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
index 6ce948d..5d7d02f 100644
--- a/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"关闭"</item>
<item msgid="5966994759929723339">"已开启"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index e499fe5..1898f8c 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"亮度"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"色彩反轉"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"色彩校正"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"管理使用者"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"完成"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"關閉"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"錄製螢幕畫面"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"無標題"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"放大視窗"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大視窗控制項"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"放大"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"發生錯誤,請再試一次。"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"正在載入"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"平板電腦"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"投放媒體"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"投放 <xliff:g id="APP_LABEL">%1$s</xliff:g> 內容"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"已停用,請檢查應用程式"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"找不到"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"無法使用控制功能"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"無法廣播"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"無法儲存,請再試一次。"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"無法儲存。"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"至少要有 4 個半形字元"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"不得超過 16 個半形字元"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"版本號碼"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"版本號碼已複製到剪貼簿。"</string>
<string name="basic_status" msgid="2315371112182658176">"開啟對話"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• 至少一部裝置可用"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"輕觸並按住快速鍵"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"取消"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"立即翻轉"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"打開手機,即可拍攝更出色的自拍"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"要翻轉至前方螢幕拍攝更出色的自拍嗎?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"使用後置鏡頭,拍攝更廣角、解像度更高的相片。"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ 此螢幕將關閉"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"正在展開折疊式裝置"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"正在翻轉折疊式裝置"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"剩餘電量:<xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml b/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
index ab8e961a..2e51f92 100644
--- a/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"已關閉"</item>
<item msgid="5966994759929723339">"已開啟"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 26c60e0..a129650 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"亮度"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"色彩反轉"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"色彩校正"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"管理使用者"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"完成"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"關閉"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"錄製螢幕畫面"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"無標題"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"放大視窗"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大視窗控制項"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"放大"</string>
@@ -862,10 +870,8 @@
<string name="media_transfer_failed" msgid="7955354964610603723">"發生錯誤,請再試一次。"</string>
<string name="media_transfer_loading" msgid="5544017127027152422">"載入中"</string>
<string name="media_ttt_default_device_type" msgid="4457646436153370169">"平板電腦"</string>
- <!-- no translation found for media_transfer_receiver_content_description_unknown_app (7381771464846263667) -->
- <skip />
- <!-- no translation found for media_transfer_receiver_content_description_with_app_name (8555975056850659389) -->
- <skip />
+ <string name="media_transfer_receiver_content_description_unknown_app" msgid="7381771464846263667">"投放媒體"</string>
+ <string name="media_transfer_receiver_content_description_with_app_name" msgid="8555975056850659389">"投放「<xliff:g id="APP_LABEL">%1$s</xliff:g>」的內容"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"無效,請查看應用程式"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"找不到控制項"</string>
<string name="controls_error_removed_title" msgid="1207794911208047818">"無法使用控制項"</string>
@@ -903,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"無法廣播"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"無法儲存,請再試一次。"</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"無法儲存。"</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"至少要有 4 個半形字元"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"不得超過 16 個半形字元"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"版本號碼"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"已將版本號碼複製到剪貼簿。"</string>
<string name="basic_status" msgid="2315371112182658176">"開放式對話"</string>
@@ -1022,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• 至少要有一部可用裝置"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"按住快速鍵"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"取消"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"立即翻轉"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"打開手機自拍效果較佳"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"要翻轉到前螢幕拍攝更優質的自拍照嗎?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"使用後置鏡頭可拍攝視角較寬廣、解析度較高的相片。"</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ 這麼做會關閉這個螢幕"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"正在展開的折疊式裝置"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"正在翻轉折疊式裝置"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"剩餘電量:<xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml b/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
index 3d6a546..f1f0185 100644
--- a/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"已關閉"</item>
<item msgid="5966994759929723339">"已開啟"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index b585b6c..16f184a 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -257,6 +257,8 @@
<string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Ukugqama"</string>
<string name="quick_settings_inversion_label" msgid="3501527749494755688">"Ukuguqulwa kombala"</string>
<string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Ukulungiswa kombala"</string>
+ <!-- no translation found for quick_settings_font_scaling_label (5289001009876936768) -->
+ <skip />
<string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Phatha abasebenzisi"</string>
<string name="quick_settings_done" msgid="2163641301648855793">"Kwenziwe"</string>
<string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Vala"</string>
@@ -777,6 +779,12 @@
<string name="privacy_type_media_projection" msgid="8136723828804251547">"ukurekhoda isikrini"</string>
<string name="music_controls_no_title" msgid="4166497066552290938">"Asikho isihloko"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ilindile"</string>
+ <!-- no translation found for font_scaling_dialog_title (6273107303850248375) -->
+ <skip />
+ <!-- no translation found for font_scaling_smaller (1012032217622008232) -->
+ <skip />
+ <!-- no translation found for font_scaling_larger (5476242157436806760) -->
+ <skip />
<string name="magnification_window_title" msgid="4863914360847258333">"Iwindi Lesikhulisi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Izilawuli Zewindi Lesikhulisi"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Sondeza"</string>
@@ -901,6 +909,8 @@
<string name="media_output_broadcast_start_failed" msgid="3670835946856129775">"Ayikwazi ukusakaza"</string>
<string name="media_output_broadcast_update_error" msgid="1420868236079122521">"Ayikwazi ukulondoloza. Zama futhi."</string>
<string name="media_output_broadcast_last_update_error" msgid="5484328807296895491">"Ayikwazi ukulondoloza."</string>
+ <string name="media_output_broadcast_code_hint_no_less_than_min" msgid="4663836092607696185">"Sebenzisa okungenani izinhlamvu ezi-4"</string>
+ <string name="media_output_broadcast_code_hint_no_more_than_max" msgid="9181869364856175638">"Sebenzisa isinhlamvu ezimbalwa kuneziyi-16"</string>
<string name="build_number_clip_data_label" msgid="3623176728412560914">"Yakha inombolo"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Yakha inombolo ekopishelwe kubhodi yokunamathisela."</string>
<string name="basic_status" msgid="2315371112182658176">"Vula ingxoxo"</string>
@@ -1020,11 +1030,16 @@
<string name="keyguard_affordance_enablement_dialog_home_instruction_2" msgid="8308525385889021652">"• Okungenani idivayisi eyodwa iyatholakala"</string>
<string name="keyguard_affordance_press_too_short" msgid="8145437175134998864">"Thinta futhi ubambe isinqamuleli"</string>
<string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Khansela"</string>
- <string name="rear_display_bottom_sheet_confirm" msgid="4383356544661421206">"Phendula manje"</string>
- <string name="rear_display_fold_bottom_sheet_title" msgid="6081542277622721548">"Vula ifoni ukuze ube nesithombe ozishuthe sona esingcono"</string>
- <string name="rear_display_unfold_bottom_sheet_title" msgid="2137403802960396357">"Phendulela kwisibonisi sangaphambili ukuba nesithombe ozishuthe sona esingcono?"</string>
- <string name="rear_display_bottom_sheet_description" msgid="1852662982816810352">"Sebenzisa ikhamera ebheke ngemuva ukuze uthole isithombe esibanzi esinokucaca okuphezulu."</string>
- <string name="rear_display_bottom_sheet_warning" msgid="800995919558238930"><b>"✱ Lesi sikrini sizovala"</b></string>
+ <!-- no translation found for rear_display_bottom_sheet_confirm (1507591562761552899) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_title (3930008746560711990) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_title (6291111173057304055) -->
+ <skip />
+ <!-- no translation found for rear_display_folded_bottom_sheet_description (6842767125783222695) -->
+ <skip />
+ <!-- no translation found for rear_display_unfolded_bottom_sheet_description (7229961336309960201) -->
+ <skip />
<string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Idivayisi egoqekayo iyembulwa"</string>
<string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Idivayisi egoqekayo iphendulwa nxazonke"</string>
<string name="stylus_battery_low_percentage" msgid="1620068112350141558">"<xliff:g id="PERCENTAGE">%s</xliff:g> ibhethri elisele"</string>
diff --git a/packages/SystemUI/res/values-zu/tiles_states_strings.xml b/packages/SystemUI/res/values-zu/tiles_states_strings.xml
index 81c4636..a8ccbb5 100644
--- a/packages/SystemUI/res/values-zu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zu/tiles_states_strings.xml
@@ -176,4 +176,7 @@
<item msgid="8014986104355098744">"Valiwe"</item>
<item msgid="5966994759929723339">"Vuliwe"</item>
</string-array>
+ <!-- no translation found for tile_states_font_scaling:0 (3173069902082305985) -->
+ <!-- no translation found for tile_states_font_scaling:1 (2478289035899842865) -->
+ <!-- no translation found for tile_states_font_scaling:2 (5137565285664080143) -->
</resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index e6ac59e..464ce03 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -479,6 +479,8 @@
<string name="accessibility_desc_notification_shade">Notification shade.</string>
<!-- Content description for the quick settings panel (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_desc_quick_settings">Quick settings.</string>
+ <!-- Content description for the split notification shade that also includes QS (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_desc_qs_notification_shade">Quick settings and Notification shade.</string>
<!-- Content description for the lock screen (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_desc_lock_screen">Lock screen.</string>
<!-- Content description for the work profile lock screen. This prevents work profile apps from being used, but personal apps can be used as normal (not shown on the screen). [CHAR LIMIT=NONE] -->
diff --git a/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt b/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt
index c9a25b0..b6aae69 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt
+++ b/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt
@@ -145,7 +145,7 @@
override val namespace: String,
override val default: Boolean = false,
) : SysPropFlag<Boolean> {
- // TODO(b/223379190): Teamfood not supported for sysprop flags yet.
+ // TODO(b/268520433): Teamfood not supported for sysprop flags yet.
override val teamfood: Boolean = false
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java
deleted file mode 100644
index 2a389b6..0000000
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.keyguard;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.widget.FrameLayout;
-
-/**
- * Base class for keyguard view. {@link #reset} is where you should
- * reset the state of your view. Use the {@link KeyguardViewCallback} via
- * {@link #getCallback()} to send information back (such as poking the wake lock,
- * or finishing the keyguard).
- *
- * Handles intercepting of media keys that still work when the keyguard is
- * showing.
- */
-public class KeyguardHostView extends FrameLayout {
-
- protected ViewMediatorCallback mViewMediatorCallback;
- private boolean mIsInteractable;
-
- public KeyguardHostView(Context context) {
- this(context, null);
- }
-
- public KeyguardHostView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- protected void dispatchDraw(Canvas canvas) {
- super.dispatchDraw(canvas);
- if (mViewMediatorCallback != null) {
- mViewMediatorCallback.keyguardDoneDrawing();
- }
- }
-
- public void setViewMediatorCallback(ViewMediatorCallback viewMediatorCallback) {
- mViewMediatorCallback = viewMediatorCallback;
- }
-
- /** Set true if the view can be interacted with */
- public void setInteractable(boolean isInteractable) {
- mIsInteractable = isInteractable;
- }
-
- /**
- * Make sure to disallow touches while transitioning the bouncer, otherwise
- * it can remain interactable even when barely visible.
- */
- @Override
- public boolean onInterceptTouchEvent(MotionEvent ev) {
- return !mIsInteractable;
- }
-
- /** True to consume any events that are sent to it */
- @Override
- public boolean onTouchEvent(MotionEvent ev) {
- return true;
- }
-}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java
deleted file mode 100644
index 77f6318..0000000
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java
+++ /dev/null
@@ -1,538 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.keyguard;
-
-import android.app.ActivityManager;
-import android.content.res.ColorStateList;
-import android.content.res.Resources;
-import android.media.AudioManager;
-import android.os.SystemClock;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-import android.util.MathUtils;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.View.OnKeyListener;
-import android.view.ViewTreeObserver;
-import android.widget.FrameLayout;
-import android.window.OnBackAnimationCallback;
-
-import androidx.annotation.NonNull;
-
-import com.android.keyguard.KeyguardSecurityContainer.SecurityCallback;
-import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
-import com.android.keyguard.dagger.KeyguardBouncerScope;
-import com.android.settingslib.Utils;
-import com.android.systemui.R;
-import com.android.systemui.plugins.ActivityStarter;
-import com.android.systemui.util.ViewController;
-
-import java.io.File;
-
-import javax.inject.Inject;
-
-/** Controller for a {@link KeyguardHostView}. */
-@KeyguardBouncerScope
-public class KeyguardHostViewController extends ViewController<KeyguardHostView> {
- private static final String TAG = "KeyguardViewBase";
- public static final boolean DEBUG = KeyguardConstants.DEBUG;
- // Whether the volume keys should be handled by keyguard. If true, then
- // they will be handled here for specific media types such as music, otherwise
- // the audio service will bring up the volume dialog.
- private static final boolean KEYGUARD_MANAGES_VOLUME = false;
-
- private static final String ENABLE_MENU_KEY_FILE = "/data/local/enable_menu_key";
-
- private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
- private final KeyguardSecurityContainerController mKeyguardSecurityContainerController;
- private final TelephonyManager mTelephonyManager;
- private final ViewMediatorCallback mViewMediatorCallback;
- private final AudioManager mAudioManager;
-
- private ActivityStarter.OnDismissAction mDismissAction;
- private Runnable mCancelAction;
- private int mTranslationY;
-
- private final KeyguardUpdateMonitorCallback mUpdateCallback =
- new KeyguardUpdateMonitorCallback() {
- @Override
- public void onTrustGrantedForCurrentUser(
- boolean dismissKeyguard,
- boolean newlyUnlocked,
- TrustGrantFlags flags,
- String message
- ) {
- if (dismissKeyguard) {
- if (!mView.isVisibleToUser()) {
- // The trust agent dismissed the keyguard without the user proving
- // that they are present (by swiping up to show the bouncer). That's
- // fine if the user proved presence via some other way to the trust
- // agent.
- Log.i(TAG, "TrustAgent dismissed Keyguard.");
- }
- mSecurityCallback.dismiss(
- false /* authenticated */,
- KeyguardUpdateMonitor.getCurrentUser(),
- /* bypassSecondaryLockScreen */ false,
- SecurityMode.Invalid
- );
- } else {
- if (flags.isInitiatedByUser() || flags.dismissKeyguardRequested()) {
- mViewMediatorCallback.playTrustedSound();
- }
- }
- }
- };
-
- private final SecurityCallback mSecurityCallback = new SecurityCallback() {
-
- @Override
- public boolean dismiss(boolean authenticated, int targetUserId,
- boolean bypassSecondaryLockScreen, SecurityMode expectedSecurityMode) {
- return mKeyguardSecurityContainerController.showNextSecurityScreenOrFinish(
- authenticated, targetUserId, bypassSecondaryLockScreen, expectedSecurityMode);
- }
-
- @Override
- public void userActivity() {
- mViewMediatorCallback.userActivity();
- }
-
- @Override
- public void onSecurityModeChanged(SecurityMode securityMode, boolean needsInput) {
- mViewMediatorCallback.setNeedsInput(needsInput);
- }
-
- /**
- * Authentication has happened and it's time to dismiss keyguard. This function
- * should clean up and inform KeyguardViewMediator.
- *
- * @param strongAuth whether the user has authenticated with strong authentication like
- * pattern, password or PIN but not by trust agents or fingerprint
- * @param targetUserId a user that needs to be the foreground user at the dismissal
- * completion.
- */
- @Override
- public void finish(boolean strongAuth, int targetUserId) {
- // If there's a pending runnable because the user interacted with a widget
- // and we're leaving keyguard, then run it.
- boolean deferKeyguardDone = false;
- if (mDismissAction != null) {
- deferKeyguardDone = mDismissAction.onDismiss();
- mDismissAction = null;
- mCancelAction = null;
- }
- if (mViewMediatorCallback != null) {
- if (deferKeyguardDone) {
- mViewMediatorCallback.keyguardDonePending(strongAuth, targetUserId);
- } else {
- mViewMediatorCallback.keyguardDone(strongAuth, targetUserId);
- }
- }
- }
-
- @Override
- public void reset() {
- mViewMediatorCallback.resetKeyguard();
- }
-
- @Override
- public void onCancelClicked() {
- mViewMediatorCallback.onCancelClicked();
- }
- };
-
- private OnKeyListener mOnKeyListener = (v, keyCode, event) -> interceptMediaKey(event);
-
- @Inject
- public KeyguardHostViewController(KeyguardHostView view,
- KeyguardUpdateMonitor keyguardUpdateMonitor,
- AudioManager audioManager,
- TelephonyManager telephonyManager,
- ViewMediatorCallback viewMediatorCallback,
- KeyguardSecurityContainerController.Factory
- keyguardSecurityContainerControllerFactory) {
- super(view);
- mKeyguardUpdateMonitor = keyguardUpdateMonitor;
- mAudioManager = audioManager;
- mTelephonyManager = telephonyManager;
- mViewMediatorCallback = viewMediatorCallback;
- mKeyguardSecurityContainerController = keyguardSecurityContainerControllerFactory.create(
- mSecurityCallback);
- }
-
- /** Initialize the Controller. */
- public void onInit() {
- mKeyguardSecurityContainerController.init();
- updateResources();
- }
-
- @Override
- protected void onViewAttached() {
- mView.setViewMediatorCallback(mViewMediatorCallback);
- // Update ViewMediator with the current input method requirements
- mViewMediatorCallback.setNeedsInput(mKeyguardSecurityContainerController.needsInput());
- mKeyguardUpdateMonitor.registerCallback(mUpdateCallback);
- mView.setOnKeyListener(mOnKeyListener);
- mKeyguardSecurityContainerController.showPrimarySecurityScreen(false);
- }
-
- @Override
- protected void onViewDetached() {
- mKeyguardUpdateMonitor.removeCallback(mUpdateCallback);
- mView.setOnKeyListener(null);
- }
-
- /** Called before this view is being removed. */
- public void cleanUp() {
- mKeyguardSecurityContainerController.onPause();
- }
-
- public void resetSecurityContainer() {
- mKeyguardSecurityContainerController.reset();
- }
-
- /**
- * Reinflate the view flipper child view.
- */
- public void reinflateViewFlipper() {
- mKeyguardSecurityContainerController.reinflateViewFlipper();
- }
-
- /**
- * Dismisses the keyguard by going to the next screen or making it gone.
- * @param targetUserId a user that needs to be the foreground user at the dismissal completion.
- * @return True if the keyguard is done.
- */
- public boolean dismiss(int targetUserId) {
- return mSecurityCallback.dismiss(false, targetUserId, false,
- getCurrentSecurityMode());
- }
-
- /**
- * Called when the Keyguard is actively shown on the screen.
- */
- public void onResume() {
- if (DEBUG) Log.d(TAG, "screen on, instance " + Integer.toHexString(hashCode()));
- mKeyguardSecurityContainerController.onResume(KeyguardSecurityView.SCREEN_ON);
- mView.requestFocus();
- }
-
- public CharSequence getAccessibilityTitleForCurrentMode() {
- return mKeyguardSecurityContainerController.getTitle();
- }
-
- /**
- * Starts the animation when the Keyguard gets shown.
- */
- public void appear() {
- // We might still be collapsed and the view didn't have time to layout yet or still
- // be small, let's wait on the predraw to do the animation in that case.
- mView.getViewTreeObserver().addOnPreDrawListener(
- new ViewTreeObserver.OnPreDrawListener() {
- @Override
- public boolean onPreDraw() {
- mView.getViewTreeObserver().removeOnPreDrawListener(this);
- mKeyguardSecurityContainerController.startAppearAnimation();
- return true;
- }
- });
- mView.requestLayout();
- }
-
- /**
- * Show a string explaining why the security view needs to be solved.
- *
- * @param reason a flag indicating which string should be shown, see
- * {@link KeyguardSecurityView#PROMPT_REASON_NONE},
- * {@link KeyguardSecurityView#PROMPT_REASON_RESTART},
- * {@link KeyguardSecurityView#PROMPT_REASON_TIMEOUT}, and
- * {@link KeyguardSecurityView#PROMPT_REASON_PREPARE_FOR_UPDATE}.
- */
- public void showPromptReason(int reason) {
- mKeyguardSecurityContainerController.showPromptReason(reason);
- }
-
- public void showMessage(CharSequence message, ColorStateList colorState) {
- mKeyguardSecurityContainerController.showMessage(message, colorState);
- }
-
- public void showErrorMessage(CharSequence customMessage) {
- showMessage(customMessage, Utils.getColorError(mView.getContext()));
- }
-
- /**
- * Sets an action to run when keyguard finishes.
- *
- * @param action
- */
- public void setOnDismissAction(ActivityStarter.OnDismissAction action, Runnable cancelAction) {
- if (mCancelAction != null) {
- mCancelAction.run();
- mCancelAction = null;
- }
- mDismissAction = action;
- mCancelAction = cancelAction;
- }
-
- public void cancelDismissAction() {
- setOnDismissAction(null, null);
- }
-
- public void startDisappearAnimation(Runnable finishRunnable) {
- if (!mKeyguardSecurityContainerController.startDisappearAnimation(finishRunnable)
- && finishRunnable != null) {
- finishRunnable.run();
- }
- }
-
- /**
- * Called when the Keyguard is not actively shown anymore on the screen.
- */
- public void onPause() {
- if (DEBUG) {
- Log.d(TAG, String.format("screen off, instance %s at %s",
- Integer.toHexString(hashCode()), SystemClock.uptimeMillis()));
- }
- mKeyguardSecurityContainerController.showPrimarySecurityScreen(true);
- mKeyguardSecurityContainerController.onPause();
- mView.clearFocus();
- }
-
- /**
- * Called when the view needs to be shown.
- */
- public void showPrimarySecurityScreen() {
- if (DEBUG) Log.d(TAG, "show()");
- mKeyguardSecurityContainerController.showPrimarySecurityScreen(false);
- }
-
- /**
- * Fades and translates in/out the security screen.
- * Fades in as expansion approaches 0.
- * Animation duration is between 0.33f and 0.67f of panel expansion fraction.
- * @param fraction amount of the screen that should show.
- */
- public void setExpansion(float fraction) {
- float scaledFraction = BouncerPanelExpansionCalculator.showBouncerProgress(fraction);
- mView.setAlpha(MathUtils.constrain(1 - scaledFraction, 0f, 1f));
- mView.setTranslationY(scaledFraction * mTranslationY);
- }
-
- /**
- * When bouncer was visible and is starting to become hidden.
- */
- public void onStartingToHide() {
- mKeyguardSecurityContainerController.onStartingToHide();
- }
-
- /** Called when bouncer visibility changes. */
- public void onBouncerVisibilityChanged(@View.Visibility int visibility) {
- mKeyguardSecurityContainerController.onBouncerVisibilityChanged(visibility);
- }
-
- public boolean hasDismissActions() {
- return mDismissAction != null || mCancelAction != null;
- }
-
- public SecurityMode getCurrentSecurityMode() {
- return mKeyguardSecurityContainerController.getCurrentSecurityMode();
- }
-
- public int getTop() {
- int top = mView.getTop();
- // The password view has an extra top padding that should be ignored.
- if (getCurrentSecurityMode() == SecurityMode.Password) {
- View messageArea = mView.findViewById(R.id.keyguard_message_area);
- top += messageArea.getTop();
- }
- return top;
- }
-
- public boolean handleBackKey() {
- SecurityMode securityMode = mKeyguardSecurityContainerController.getCurrentSecurityMode();
- if (securityMode != SecurityMode.None) {
- mKeyguardSecurityContainerController.dismiss(
- false, KeyguardUpdateMonitor.getCurrentUser(), securityMode);
- return true;
- }
- return false;
- }
-
- /**
- * In general, we enable unlocking the insecure keyguard with the menu key. However, there are
- * some cases where we wish to disable it, notably when the menu button placement or technology
- * is prone to false positives.
- *
- * @return true if the menu key should be enabled
- */
- public boolean shouldEnableMenuKey() {
- final Resources res = mView.getResources();
- final boolean configDisabled = res.getBoolean(R.bool.config_disableMenuKeyInLockScreen);
- final boolean isTestHarness = ActivityManager.isRunningInTestHarness();
- final boolean fileOverride = (new File(ENABLE_MENU_KEY_FILE)).exists();
- return !configDisabled || isTestHarness || fileOverride;
- }
-
- /**
- * @return true if the current bouncer is password
- */
- public boolean dispatchBackKeyEventPreIme() {
- if (mKeyguardSecurityContainerController.getCurrentSecurityMode()
- == SecurityMode.Password) {
- return true;
- }
- return false;
- }
-
- /**
- * @return the {@link OnBackAnimationCallback} to animate this view during a back gesture.
- */
- @NonNull
- public OnBackAnimationCallback getBackCallback() {
- return mKeyguardSecurityContainerController.getBackCallback();
- }
-
- /**
- * Allows the media keys to work when the keyguard is showing.
- * The media keys should be of no interest to the actual keyguard view(s),
- * so intercepting them here should not be of any harm.
- * @param event The key event
- * @return whether the event was consumed as a media key.
- */
- public boolean interceptMediaKey(KeyEvent event) {
- int keyCode = event.getKeyCode();
- if (event.getAction() == KeyEvent.ACTION_DOWN) {
- switch (keyCode) {
- case KeyEvent.KEYCODE_MEDIA_PLAY:
- case KeyEvent.KEYCODE_MEDIA_PAUSE:
- case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
- /* Suppress PLAY/PAUSE toggle when phone is ringing or
- * in-call to avoid music playback */
- if (mTelephonyManager != null &&
- mTelephonyManager.getCallState() != TelephonyManager.CALL_STATE_IDLE) {
- return true; // suppress key event
- }
- case KeyEvent.KEYCODE_MUTE:
- case KeyEvent.KEYCODE_HEADSETHOOK:
- case KeyEvent.KEYCODE_MEDIA_STOP:
- case KeyEvent.KEYCODE_MEDIA_NEXT:
- case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
- case KeyEvent.KEYCODE_MEDIA_REWIND:
- case KeyEvent.KEYCODE_MEDIA_RECORD:
- case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
- case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: {
- handleMediaKeyEvent(event);
- return true;
- }
-
- case KeyEvent.KEYCODE_VOLUME_UP:
- case KeyEvent.KEYCODE_VOLUME_DOWN:
- case KeyEvent.KEYCODE_VOLUME_MUTE: {
- if (KEYGUARD_MANAGES_VOLUME) {
- // Volume buttons should only function for music (local or remote).
- // TODO: Actually handle MUTE.
- mAudioManager.adjustSuggestedStreamVolume(
- keyCode == KeyEvent.KEYCODE_VOLUME_UP
- ? AudioManager.ADJUST_RAISE
- : AudioManager.ADJUST_LOWER /* direction */,
- AudioManager.STREAM_MUSIC /* stream */, 0 /* flags */);
- // Don't execute default volume behavior
- return true;
- } else {
- return false;
- }
- }
- }
- } else if (event.getAction() == KeyEvent.ACTION_UP) {
- switch (keyCode) {
- case KeyEvent.KEYCODE_MUTE:
- case KeyEvent.KEYCODE_HEADSETHOOK:
- case KeyEvent.KEYCODE_MEDIA_PLAY:
- case KeyEvent.KEYCODE_MEDIA_PAUSE:
- case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
- case KeyEvent.KEYCODE_MEDIA_STOP:
- case KeyEvent.KEYCODE_MEDIA_NEXT:
- case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
- case KeyEvent.KEYCODE_MEDIA_REWIND:
- case KeyEvent.KEYCODE_MEDIA_RECORD:
- case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
- case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: {
- handleMediaKeyEvent(event);
- return true;
- }
- }
- }
- return false;
- }
-
-
- private void handleMediaKeyEvent(KeyEvent keyEvent) {
- mAudioManager.dispatchMediaKeyEvent(keyEvent);
- }
-
- public void finish(boolean strongAuth, int currentUser) {
- mSecurityCallback.finish(strongAuth, currentUser);
- }
-
- /**
- * Apply keyguard configuration from the currently active resources. This can be called when the
- * device configuration changes, to re-apply some resources that are qualified on the device
- * configuration.
- */
- public void updateResources() {
- int gravity;
-
- Resources resources = mView.getResources();
-
- if (resources.getBoolean(R.bool.can_use_one_handed_bouncer)) {
- gravity = resources.getInteger(
- R.integer.keyguard_host_view_one_handed_gravity);
- } else {
- gravity = resources.getInteger(R.integer.keyguard_host_view_gravity);
- }
-
- mTranslationY = resources
- .getDimensionPixelSize(R.dimen.keyguard_host_view_translation_y);
- // Android SysUI uses a FrameLayout as the top-level, but Auto uses RelativeLayout.
- // We're just changing the gravity here though (which can't be applied to RelativeLayout),
- // so only attempt the update if mView is inside a FrameLayout.
- if (mView.getLayoutParams() instanceof FrameLayout.LayoutParams) {
- FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mView.getLayoutParams();
- if (lp.gravity != gravity) {
- lp.gravity = gravity;
- mView.setLayoutParams(lp);
- }
- }
-
- if (mKeyguardSecurityContainerController != null) {
- mKeyguardSecurityContainerController.updateResources();
- }
- }
-
- /** Update keyguard position based on a tapped X coordinate. */
- public void updateKeyguardPosition(float x) {
- if (mKeyguardSecurityContainerController != null) {
- mKeyguardSecurityContainerController.updateKeyguardPosition(x);
- }
- }
-
- /** Set true if the view can be interacted with */
- public void setInteractable(boolean isInteractable) {
- mView.setInteractable(isInteractable);
- }
-}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java
index b143c5b..7054393 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java
@@ -51,26 +51,7 @@
// The following is used to ignore callbacks from SecurityViews that are no longer current
// (e.g. face unlock). This avoids unwanted asynchronous events from messing with the
// state for the current security method.
- private KeyguardSecurityCallback mNullCallback = new KeyguardSecurityCallback() {
- @Override
- public void userActivity() { }
- @Override
- public void reportUnlockAttempt(int userId, boolean success, int timeoutMs) { }
- @Override
- public boolean isVerifyUnlockOnly() {
- return false;
- }
- @Override
- public void dismiss(boolean securityVerified, int targetUserId,
- SecurityMode expectedSecurityMode) { }
- @Override
- public void dismiss(boolean authenticated, int targetId,
- boolean bypassSecondaryLockScreen, SecurityMode expectedSecurityMode) { }
- @Override
- public void onUserInput() { }
- @Override
- public void reset() {}
- };
+ private KeyguardSecurityCallback mNullCallback = new KeyguardSecurityCallback() {};
protected KeyguardInputViewController(T view, SecurityMode securityMode,
KeyguardSecurityCallback keyguardSecurityCallback,
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java
index bc72f79..bf9c3bb 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java
@@ -25,7 +25,9 @@
* @param targetUserId a user that needs to be the foreground user at the dismissal completion.
* @param expectedSecurityMode The security mode that is invoking this dismiss.
*/
- void dismiss(boolean securityVerified, int targetUserId, SecurityMode expectedSecurityMode);
+ default void dismiss(boolean securityVerified, int targetUserId,
+ SecurityMode expectedSecurityMode) {
+ }
/**
* Dismiss the given security screen.
@@ -35,19 +37,26 @@
* if any, during this dismissal.
* @param expectedSecurityMode The security mode that is invoking this dismiss.
*/
- void dismiss(boolean securityVerified, int targetUserId, boolean bypassSecondaryLockScreen,
- SecurityMode expectedSecurityMode);
+ default boolean dismiss(boolean securityVerified, int targetUserId,
+ boolean bypassSecondaryLockScreen,
+ SecurityMode expectedSecurityMode) {
+ return false;
+ }
/**
* Manually report user activity to keep the device awake.
*/
- void userActivity();
+ default void userActivity() {
+ }
/**
* Checks if keyguard is in "verify credentials" mode.
+ *
* @return true if user has been asked to verify security.
*/
- boolean isVerifyUnlockOnly();
+ default boolean isVerifyUnlockOnly() {
+ return false;
+ }
/**
* Call to report an unlock attempt.
@@ -56,12 +65,14 @@
* @param timeoutMs timeout in milliseconds to wait before reattempting an unlock.
* Only nonzero if 'success' is false
*/
- void reportUnlockAttempt(int userId, boolean success, int timeoutMs);
+ default void reportUnlockAttempt(int userId, boolean success, int timeoutMs) {
+ }
/**
* Resets the keyguard view.
*/
- void reset();
+ default void reset() {
+ }
/**
* Call when cancel button is pressed in bouncer.
@@ -73,5 +84,19 @@
/**
* Invoked whenever users are typing their password or drawing a pattern.
*/
- void onUserInput();
+ default void onUserInput() {
+ }
+
+
+ /**
+ * Dismisses keyguard and go to unlocked state.
+ */
+ default void finish(boolean strongAuth, int targetUserId) {
+ }
+
+ /**
+ * Specifies that security mode has changed.
+ */
+ default void onSecurityModeChanged(SecurityMode securityMode, boolean needsInput) {
+ }
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index 9f07a20..eec788b 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -50,6 +50,7 @@
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BlendMode;
+import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
@@ -164,6 +165,8 @@
private boolean mDisappearAnimRunning;
private SwipeListener mSwipeListener;
private ViewMode mViewMode = new DefaultViewMode();
+ private boolean mIsInteractable;
+ protected ViewMediatorCallback mViewMediatorCallback;
/*
* Using MODE_UNINITIALIZED to mean the view mode is set to DefaultViewMode, but init() has not
* yet been called on it. This will happen when the ViewController is initialized.
@@ -265,31 +268,6 @@
return mBackCallback;
}
- // Used to notify the container when something interesting happens.
- public interface SecurityCallback {
- /**
- * Potentially dismiss the current security screen, after validating that all device
- * security has been unlocked. Otherwise show the next screen.
- */
- boolean dismiss(boolean authenticated, int targetUserId, boolean bypassSecondaryLockScreen,
- SecurityMode expectedSecurityMode);
-
- void userActivity();
-
- void onSecurityModeChanged(SecurityMode securityMode, boolean needsInput);
-
- /**
- * @param strongAuth wheher the user has authenticated with strong authentication like
- * pattern, password or PIN but not by trust agents or fingerprint
- * @param targetUserId a user that needs to be the foreground user at the finish completion.
- */
- void finish(boolean strongAuth, int targetUserId);
-
- void reset();
-
- void onCancelClicked();
- }
-
public interface SwipeListener {
void onSwipeUp();
}
@@ -342,7 +320,7 @@
public KeyguardSecurityContainer(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
- mSpringAnimation = new SpringAnimation(this, DynamicAnimation.Y);
+ mSpringAnimation = new SpringAnimation(this, DynamicAnimation.TRANSLATION_Y);
mViewConfiguration = ViewConfiguration.get(context);
mDoubleTapDetector = new GestureDetector(context, new DoubleTapListener());
}
@@ -445,6 +423,11 @@
mViewMode.reset();
}
+ /** Set true if the view can be interacted with */
+ public void setInteractable(boolean isInteractable) {
+ mIsInteractable = isInteractable;
+ }
+
@Override
public boolean shouldDelayChildPressedState() {
return true;
@@ -452,6 +435,10 @@
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
+ if (!mIsInteractable) {
+ return true;
+ }
+
boolean result = mMotionEventListeners.stream().anyMatch(
listener -> listener.onInterceptTouchEvent(event))
|| super.onInterceptTouchEvent(event);
@@ -639,6 +626,18 @@
return insets.inset(0, 0, 0, inset);
}
+ @Override
+ protected void dispatchDraw(Canvas canvas) {
+ super.dispatchDraw(canvas);
+ if (mViewMediatorCallback != null) {
+ mViewMediatorCallback.keyguardDoneDrawing();
+ }
+ }
+
+ public void setViewMediatorCallback(ViewMediatorCallback viewMediatorCallback) {
+ mViewMediatorCallback = viewMediatorCallback;
+ }
+
private void showDialog(String title, String message) {
if (mAlertDialog != null) {
mAlertDialog.dismiss();
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
index d9b8895..92cbb29 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
@@ -29,18 +29,27 @@
import static com.android.keyguard.KeyguardSecurityContainer.USER_TYPE_WORK_PROFILE;
import static com.android.systemui.DejankUtils.whitelistIpcs;
+import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.content.res.Configuration;
+import android.content.res.Resources;
import android.hardware.biometrics.BiometricOverlayConstants;
import android.hardware.biometrics.BiometricSourceType;
+import android.media.AudioManager;
import android.metrics.LogMaker;
+import android.os.SystemClock;
import android.os.UserHandle;
+import android.telephony.TelephonyManager;
import android.util.Log;
+import android.util.MathUtils;
import android.util.Slog;
+import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewTreeObserver;
+import android.widget.FrameLayout;
import android.window.OnBackAnimationCallback;
import androidx.annotation.NonNull;
@@ -54,7 +63,6 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardSecurityContainer.BouncerUiEvent;
-import com.android.keyguard.KeyguardSecurityContainer.SecurityCallback;
import com.android.keyguard.KeyguardSecurityContainer.SwipeListener;
import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
import com.android.keyguard.dagger.KeyguardBouncerScope;
@@ -68,6 +76,7 @@
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.log.SessionTracker;
+import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -76,6 +85,7 @@
import com.android.systemui.util.ViewController;
import com.android.systemui.util.settings.GlobalSettings;
+import java.io.File;
import java.util.Optional;
import javax.inject.Inject;
@@ -96,7 +106,6 @@
private final UiEventLogger mUiEventLogger;
private final KeyguardStateController mKeyguardStateController;
private final KeyguardSecurityViewFlipperController mSecurityViewFlipperController;
- private final SecurityCallback mSecurityCallback;
private final ConfigurationController mConfigurationController;
private final FalsingCollector mFalsingCollector;
private final FalsingManager mFalsingManager;
@@ -106,6 +115,20 @@
private final SessionTracker mSessionTracker;
private final Optional<SideFpsController> mSideFpsController;
private final FalsingA11yDelegate mFalsingA11yDelegate;
+ private int mTranslationY;
+ // Whether the volume keys should be handled by keyguard. If true, then
+ // they will be handled here for specific media types such as music, otherwise
+ // the audio service will bring up the volume dialog.
+ private static final boolean KEYGUARD_MANAGES_VOLUME = false;
+
+ private static final String ENABLE_MENU_KEY_FILE = "/data/local/enable_menu_key";
+
+ private final TelephonyManager mTelephonyManager;
+ private final ViewMediatorCallback mViewMediatorCallback;
+ private final AudioManager mAudioManager;
+ private View.OnKeyListener mOnKeyListener = (v, keyCode, event) -> interceptMediaKey(event);
+ private ActivityStarter.OnDismissAction mDismissAction;
+ private Runnable mCancelAction;
private int mLastOrientation = Configuration.ORIENTATION_UNDEFINED;
@@ -150,11 +173,6 @@
};
private KeyguardSecurityCallback mKeyguardSecurityCallback = new KeyguardSecurityCallback() {
- public void userActivity() {
- if (mSecurityCallback != null) {
- mSecurityCallback.userActivity();
- }
- }
@Override
public void onUserInput() {
@@ -169,16 +187,23 @@
}
@Override
- public void dismiss(boolean authenticated, int targetId,
+ public boolean dismiss(boolean authenticated, int targetId,
boolean bypassSecondaryLockScreen, SecurityMode expectedSecurityMode) {
- mSecurityCallback.dismiss(authenticated, targetId, bypassSecondaryLockScreen,
- expectedSecurityMode);
+ return showNextSecurityScreenOrFinish(
+ authenticated, targetId, bypassSecondaryLockScreen, expectedSecurityMode);
}
+ @Override
+ public void userActivity() {
+ mViewMediatorCallback.userActivity();
+ }
+
+ @Override
public boolean isVerifyUnlockOnly() {
return false;
}
+ @Override
public void reportUnlockAttempt(int userId, boolean success, int timeoutMs) {
int bouncerSide = SysUiStatsLog.KEYGUARD_BOUNCER_PASSWORD_ENTERED__SIDE__DEFAULT;
if (mView.isSidedSecurityMode()) {
@@ -215,12 +240,47 @@
: BouncerUiEvent.BOUNCER_PASSWORD_FAILURE, getSessionId());
}
+ @Override
public void reset() {
- mSecurityCallback.reset();
+ mViewMediatorCallback.resetKeyguard();
}
+ @Override
public void onCancelClicked() {
- mSecurityCallback.onCancelClicked();
+ mViewMediatorCallback.onCancelClicked();
+ }
+
+ /**
+ * Authentication has happened and it's time to dismiss keyguard. This function
+ * should clean up and inform KeyguardViewMediator.
+ *
+ * @param strongAuth whether the user has authenticated with strong authentication like
+ * pattern, password or PIN but not by trust agents or fingerprint
+ * @param targetUserId a user that needs to be the foreground user at the dismissal
+ * completion.
+ */
+ @Override
+ public void finish(boolean strongAuth, int targetUserId) {
+ // If there's a pending runnable because the user interacted with a widget
+ // and we're leaving keyguard, then run it.
+ boolean deferKeyguardDone = false;
+ if (mDismissAction != null) {
+ deferKeyguardDone = mDismissAction.onDismiss();
+ mDismissAction = null;
+ mCancelAction = null;
+ }
+ if (mViewMediatorCallback != null) {
+ if (deferKeyguardDone) {
+ mViewMediatorCallback.keyguardDonePending(strongAuth, targetUserId);
+ } else {
+ mViewMediatorCallback.keyguardDone(strongAuth, targetUserId);
+ }
+ }
+ }
+
+ @Override
+ public void onSecurityModeChanged(SecurityMode securityMode, boolean needsInput) {
+ mViewMediatorCallback.setNeedsInput(needsInput);
}
};
@@ -264,6 +324,34 @@
private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback =
new KeyguardUpdateMonitorCallback() {
@Override
+ public void onTrustGrantedForCurrentUser(
+ boolean dismissKeyguard,
+ boolean newlyUnlocked,
+ TrustGrantFlags flags,
+ String message
+ ) {
+ if (dismissKeyguard) {
+ if (!mView.isVisibleToUser()) {
+ // The trust agent dismissed the keyguard without the user proving
+ // that they are present (by swiping up to show the bouncer). That's
+ // fine if the user proved presence via some other way to the trust
+ // agent.
+ Log.i(TAG, "TrustAgent dismissed Keyguard.");
+ }
+ mKeyguardSecurityCallback.dismiss(
+ false /* authenticated */,
+ KeyguardUpdateMonitor.getCurrentUser(),
+ /* bypassSecondaryLockScreen */ false,
+ SecurityMode.Invalid
+ );
+ } else {
+ if (flags.isInitiatedByUser() || flags.dismissKeyguardRequested()) {
+ mViewMediatorCallback.playTrustedSound();
+ }
+ }
+ }
+
+ @Override
public void onDevicePolicyManagerStateChanged() {
showPrimarySecurityScreen(false);
}
@@ -282,7 +370,8 @@
}
};
- private KeyguardSecurityContainerController(KeyguardSecurityContainer view,
+ @Inject
+ public KeyguardSecurityContainerController(KeyguardSecurityContainer view,
AdminSecondaryLockScreenController.Factory adminSecondaryLockScreenControllerFactory,
LockPatternUtils lockPatternUtils,
KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -290,7 +379,6 @@
MetricsLogger metricsLogger,
UiEventLogger uiEventLogger,
KeyguardStateController keyguardStateController,
- SecurityCallback securityCallback,
KeyguardSecurityViewFlipperController securityViewFlipperController,
ConfigurationController configurationController,
FalsingCollector falsingCollector,
@@ -300,7 +388,11 @@
GlobalSettings globalSettings,
SessionTracker sessionTracker,
Optional<SideFpsController> sideFpsController,
- FalsingA11yDelegate falsingA11yDelegate) {
+ FalsingA11yDelegate falsingA11yDelegate,
+ TelephonyManager telephonyManager,
+ ViewMediatorCallback viewMediatorCallback,
+ AudioManager audioManager
+ ) {
super(view);
mLockPatternUtils = lockPatternUtils;
mUpdateMonitor = keyguardUpdateMonitor;
@@ -308,7 +400,6 @@
mMetricsLogger = metricsLogger;
mUiEventLogger = uiEventLogger;
mKeyguardStateController = keyguardStateController;
- mSecurityCallback = securityCallback;
mSecurityViewFlipperController = securityViewFlipperController;
mAdminSecondaryLockScreenController = adminSecondaryLockScreenControllerFactory.create(
mKeyguardSecurityCallback);
@@ -322,11 +413,15 @@
mSessionTracker = sessionTracker;
mSideFpsController = sideFpsController;
mFalsingA11yDelegate = falsingA11yDelegate;
+ mTelephonyManager = telephonyManager;
+ mViewMediatorCallback = viewMediatorCallback;
+ mAudioManager = audioManager;
}
@Override
public void onInit() {
mSecurityViewFlipperController.init();
+ updateResources();
configureMode();
}
@@ -337,6 +432,11 @@
mView.addMotionEventListener(mGlobalTouchListener);
mConfigurationController.addCallback(mConfigurationListener);
mUserSwitcherController.addUserSwitchCallback(mUserSwitchCallback);
+ mView.setViewMediatorCallback(mViewMediatorCallback);
+ // Update ViewMediator with the current input method requirements
+ mViewMediatorCallback.setNeedsInput(needsInput());
+ mView.setOnKeyListener(mOnKeyListener);
+ showPrimarySecurityScreen(false);
}
@Override
@@ -349,6 +449,11 @@
/** */
public void onPause() {
+ if (DEBUG) {
+ Log.d(TAG, String.format("screen off, instance %s at %s",
+ Integer.toHexString(hashCode()), SystemClock.uptimeMillis()));
+ }
+ showPrimarySecurityScreen(true);
mAdminSecondaryLockScreenController.hide();
if (mCurrentSecurityMode != SecurityMode.None) {
getCurrentSecurityController().onPause();
@@ -357,6 +462,7 @@
// It might happen that onStartingToHide is not called when the device is locked while on
// bouncer.
setBouncerVisible(false);
+ mView.clearFocus();
}
private void updateSideFpsVisibility() {
@@ -393,12 +499,22 @@
* @param turningOff true if the device is being turned off
*/
public void showPrimarySecurityScreen(boolean turningOff) {
+ if (DEBUG) Log.d(TAG, "show()");
SecurityMode securityMode = whitelistIpcs(() -> mSecurityModel.getSecurityMode(
KeyguardUpdateMonitor.getCurrentUser()));
if (DEBUG) Log.v(TAG, "showPrimarySecurityScreen(turningOff=" + turningOff + ")");
showSecurityScreen(securityMode);
}
+ /**
+ * Show a string explaining why the security view needs to be solved.
+ *
+ * @param reason a flag indicating which string should be shown, see
+ * {@link KeyguardSecurityView#PROMPT_REASON_NONE},
+ * {@link KeyguardSecurityView#PROMPT_REASON_RESTART},
+ * {@link KeyguardSecurityView#PROMPT_REASON_TIMEOUT}, and
+ * {@link KeyguardSecurityView#PROMPT_REASON_PREPARE_FOR_UPDATE}.
+ */
@Override
public void showPromptReason(int reason) {
if (mCurrentSecurityMode != SecurityMode.None) {
@@ -415,8 +531,32 @@
}
}
- public SecurityMode getCurrentSecurityMode() {
- return mCurrentSecurityMode;
+ /**
+ * Sets an action to run when keyguard finishes.
+ *
+ * @param action callback to be invoked when keyguard disappear animation completes.
+ */
+ public void setOnDismissAction(ActivityStarter.OnDismissAction action, Runnable cancelAction) {
+ if (mCancelAction != null) {
+ mCancelAction.run();
+ mCancelAction = null;
+ }
+ mDismissAction = action;
+ mCancelAction = cancelAction;
+ }
+
+ /**
+ * @return whether dismiss action or cancel action has been set.
+ */
+ public boolean hasDismissActions() {
+ return mDismissAction != null || mCancelAction != null;
+ }
+
+ /**
+ * Remove any dismiss action or cancel action that was set.
+ */
+ public void cancelDismissAction() {
+ setOnDismissAction(null, null);
}
/**
@@ -428,17 +568,64 @@
mKeyguardSecurityCallback.dismiss(authenticated, targetUserId, expectedSecurityMode);
}
+ /**
+ * Dismisses the keyguard by going to the next screen or making it gone.
+ * @param targetUserId a user that needs to be the foreground user at the dismissal completion.
+ * @return True if the keyguard is done.
+ */
+ public boolean dismiss(int targetUserId) {
+ return mKeyguardSecurityCallback.dismiss(false, targetUserId, false,
+ getCurrentSecurityMode());
+ }
+
+ public SecurityMode getCurrentSecurityMode() {
+ return mCurrentSecurityMode;
+ }
+
+ /**
+ * @return the top of the corresponding view.
+ */
+ public int getTop() {
+ int top = mView.getTop();
+ // The password view has an extra top padding that should be ignored.
+ if (getCurrentSecurityMode() == SecurityMode.Password) {
+ View messageArea = mView.findViewById(R.id.keyguard_message_area);
+ top += messageArea.getTop();
+ }
+ return top;
+ }
+
+ /** Set true if the view can be interacted with */
+ public void setInteractable(boolean isInteractable) {
+ mView.setInteractable(isInteractable);
+ }
+
+ /**
+ * Dismiss keyguard due to a user unlock event.
+ */
+ public void finish(boolean strongAuth, int currentUser) {
+ mKeyguardSecurityCallback.finish(strongAuth, currentUser);
+ }
+
+ /**
+ * @return the text of the KeyguardMessageArea.
+ */
+ public CharSequence getTitle() {
+ return mView.getTitle();
+ }
+
+ /**
+ * Resets the state of the views.
+ */
public void reset() {
mView.reset();
mSecurityViewFlipperController.reset();
}
- public CharSequence getTitle() {
- return mView.getTitle();
- }
-
@Override
public void onResume(int reason) {
+ if (DEBUG) Log.d(TAG, "screen on, instance " + Integer.toHexString(hashCode()));
+ mView.requestFocus();
if (mCurrentSecurityMode != SecurityMode.None) {
int state = SysUiStatsLog.KEYGUARD_BOUNCER_STATE_CHANGED__STATE__SHOWN;
if (mView.isSidedSecurityMode()) {
@@ -456,6 +643,25 @@
mKeyguardStateController.isFaceAuthEnabled());
}
+ /**
+ * Show the bouncer and start appear animations.
+ *
+ */
+ public void appear() {
+ // We might still be collapsed and the view didn't have time to layout yet or still
+ // be small, let's wait on the predraw to do the animation in that case.
+ mView.getViewTreeObserver().addOnPreDrawListener(
+ new ViewTreeObserver.OnPreDrawListener() {
+ @Override
+ public boolean onPreDraw() {
+ mView.getViewTreeObserver().removeOnPreDrawListener(this);
+ startAppearAnimation();
+ return true;
+ }
+ });
+ mView.requestLayout();
+ }
+
public void startAppearAnimation() {
if (mCurrentSecurityMode != SecurityMode.None) {
mView.setAlpha(1f);
@@ -465,12 +671,19 @@
}
public boolean startDisappearAnimation(Runnable onFinishRunnable) {
+ boolean didRunAnimation = false;
+
if (mCurrentSecurityMode != SecurityMode.None) {
mView.startDisappearAnimation(mCurrentSecurityMode);
- return getCurrentSecurityController().startDisappearAnimation(onFinishRunnable);
+ didRunAnimation = getCurrentSecurityController().startDisappearAnimation(
+ onFinishRunnable);
}
- return false;
+ if (!didRunAnimation && onFinishRunnable != null) {
+ onFinishRunnable.run();
+ }
+
+ return didRunAnimation;
}
public void onStartingToHide() {
@@ -585,7 +798,7 @@
mUiEventLogger.log(uiEvent, getSessionId());
}
if (finish) {
- mSecurityCallback.finish(strongAuth, targetUserId);
+ mKeyguardSecurityCallback.finish(strongAuth, targetUserId);
}
return finish;
}
@@ -598,11 +811,114 @@
* @return the {@link OnBackAnimationCallback} to animate this view during a back gesture.
*/
@NonNull
- OnBackAnimationCallback getBackCallback() {
+ public OnBackAnimationCallback getBackCallback() {
return mView.getBackCallback();
}
/**
+ * @return whether we should dispatch the back key event before Ime.
+ */
+ public boolean dispatchBackKeyEventPreIme() {
+ return getCurrentSecurityMode() == SecurityMode.Password;
+ }
+
+ /**
+ * Allows the media keys to work when the keyguard is showing.
+ * The media keys should be of no interest to the actual keyguard view(s),
+ * so intercepting them here should not be of any harm.
+ * @param event The key event
+ * @return whether the event was consumed as a media key.
+ */
+ public boolean interceptMediaKey(KeyEvent event) {
+ int keyCode = event.getKeyCode();
+ if (event.getAction() == KeyEvent.ACTION_DOWN) {
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_MEDIA_PLAY:
+ case KeyEvent.KEYCODE_MEDIA_PAUSE:
+ case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+ /* Suppress PLAY/PAUSE toggle when phone is ringing or
+ * in-call to avoid music playback */
+ if (mTelephonyManager != null
+ && mTelephonyManager.getCallState()
+ != TelephonyManager.CALL_STATE_IDLE) {
+ return true; // suppress key event
+ }
+ return false;
+ case KeyEvent.KEYCODE_MUTE:
+ case KeyEvent.KEYCODE_HEADSETHOOK:
+ case KeyEvent.KEYCODE_MEDIA_STOP:
+ case KeyEvent.KEYCODE_MEDIA_NEXT:
+ case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+ case KeyEvent.KEYCODE_MEDIA_REWIND:
+ case KeyEvent.KEYCODE_MEDIA_RECORD:
+ case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+ case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: {
+ handleMediaKeyEvent(event);
+ return true;
+ }
+
+ case KeyEvent.KEYCODE_VOLUME_UP:
+ case KeyEvent.KEYCODE_VOLUME_DOWN:
+ case KeyEvent.KEYCODE_VOLUME_MUTE: {
+ if (KEYGUARD_MANAGES_VOLUME) {
+ // Volume buttons should only function for music (local or remote).
+ // TODO: Actually handle MUTE.
+ mAudioManager.adjustSuggestedStreamVolume(
+ keyCode == KeyEvent.KEYCODE_VOLUME_UP
+ ? AudioManager.ADJUST_RAISE
+ : AudioManager.ADJUST_LOWER /* direction */,
+ AudioManager.STREAM_MUSIC /* stream */, 0 /* flags */);
+ // Don't execute default volume behavior
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+ } else if (event.getAction() == KeyEvent.ACTION_UP) {
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_MUTE:
+ case KeyEvent.KEYCODE_HEADSETHOOK:
+ case KeyEvent.KEYCODE_MEDIA_PLAY:
+ case KeyEvent.KEYCODE_MEDIA_PAUSE:
+ case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+ case KeyEvent.KEYCODE_MEDIA_STOP:
+ case KeyEvent.KEYCODE_MEDIA_NEXT:
+ case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+ case KeyEvent.KEYCODE_MEDIA_REWIND:
+ case KeyEvent.KEYCODE_MEDIA_RECORD:
+ case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+ case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: {
+ handleMediaKeyEvent(event);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+
+ private void handleMediaKeyEvent(KeyEvent keyEvent) {
+ mAudioManager.dispatchMediaKeyEvent(keyEvent);
+ }
+
+ /**
+ * In general, we enable unlocking the insecure keyguard with the menu key. However, there are
+ * some cases where we wish to disable it, notably when the menu button placement or technology
+ * is prone to false positives.
+ *
+ * @return true if the menu key should be enabled
+ */
+ public boolean shouldEnableMenuKey() {
+ final Resources res = mView.getResources();
+ final boolean configDisabled = res.getBoolean(R.bool.config_disableMenuKeyInLockScreen);
+ final boolean isTestHarness = ActivityManager.isRunningInTestHarness();
+ final boolean fileOverride = (new File(ENABLE_MENU_KEY_FILE)).exists();
+ return !configDisabled || isTestHarness || fileOverride;
+ }
+
+
+ /**
* Switches to the given security view unless it's already being shown, in which case
* this is a no-op.
*
@@ -630,7 +946,7 @@
configureMode();
}
- mSecurityCallback.onSecurityModeChanged(
+ mKeyguardSecurityCallback.onSecurityModeChanged(
securityMode, newView != null && newView.needsInput());
}
@@ -728,6 +1044,30 @@
* configuration.
*/
public void updateResources() {
+ int gravity;
+
+ Resources resources = mView.getResources();
+
+ if (resources.getBoolean(R.bool.can_use_one_handed_bouncer)) {
+ gravity = resources.getInteger(
+ R.integer.keyguard_host_view_one_handed_gravity);
+ } else {
+ gravity = resources.getInteger(R.integer.keyguard_host_view_gravity);
+ }
+
+ mTranslationY = resources
+ .getDimensionPixelSize(R.dimen.keyguard_host_view_translation_y);
+ // Android SysUI uses a FrameLayout as the top-level, but Auto uses RelativeLayout.
+ // We're just changing the gravity here though (which can't be applied to RelativeLayout),
+ // so only attempt the update if mView is inside a FrameLayout.
+ if (mView.getLayoutParams() instanceof FrameLayout.LayoutParams) {
+ FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mView.getLayoutParams();
+ if (lp.gravity != gravity) {
+ lp.gravity = gravity;
+ mView.setLayoutParams(lp);
+ }
+ }
+
int newOrientation = getResources().getConfiguration().orientation;
if (newOrientation != mLastOrientation) {
mLastOrientation = newOrientation;
@@ -764,77 +1104,15 @@
mKeyguardSecurityCallback);
}
- static class Factory {
-
- private final KeyguardSecurityContainer mView;
- private final AdminSecondaryLockScreenController.Factory
- mAdminSecondaryLockScreenControllerFactory;
- private final LockPatternUtils mLockPatternUtils;
- private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
- private final KeyguardSecurityModel mKeyguardSecurityModel;
- private final MetricsLogger mMetricsLogger;
- private final UiEventLogger mUiEventLogger;
- private final KeyguardStateController mKeyguardStateController;
- private final KeyguardSecurityViewFlipperController mSecurityViewFlipperController;
- private final ConfigurationController mConfigurationController;
- private final FalsingCollector mFalsingCollector;
- private final FalsingManager mFalsingManager;
- private final GlobalSettings mGlobalSettings;
- private final FeatureFlags mFeatureFlags;
- private final UserSwitcherController mUserSwitcherController;
- private final SessionTracker mSessionTracker;
- private final Optional<SideFpsController> mSidefpsController;
- private final FalsingA11yDelegate mFalsingA11yDelegate;
-
- @Inject
- Factory(KeyguardSecurityContainer view,
- AdminSecondaryLockScreenController.Factory
- adminSecondaryLockScreenControllerFactory,
- LockPatternUtils lockPatternUtils,
- KeyguardUpdateMonitor keyguardUpdateMonitor,
- KeyguardSecurityModel keyguardSecurityModel,
- MetricsLogger metricsLogger,
- UiEventLogger uiEventLogger,
- KeyguardStateController keyguardStateController,
- KeyguardSecurityViewFlipperController securityViewFlipperController,
- ConfigurationController configurationController,
- FalsingCollector falsingCollector,
- FalsingManager falsingManager,
- UserSwitcherController userSwitcherController,
- FeatureFlags featureFlags,
- GlobalSettings globalSettings,
- SessionTracker sessionTracker,
- Optional<SideFpsController> sidefpsController,
- FalsingA11yDelegate falsingA11yDelegate) {
- mView = view;
- mAdminSecondaryLockScreenControllerFactory = adminSecondaryLockScreenControllerFactory;
- mLockPatternUtils = lockPatternUtils;
- mKeyguardUpdateMonitor = keyguardUpdateMonitor;
- mKeyguardSecurityModel = keyguardSecurityModel;
- mMetricsLogger = metricsLogger;
- mUiEventLogger = uiEventLogger;
- mKeyguardStateController = keyguardStateController;
- mSecurityViewFlipperController = securityViewFlipperController;
- mConfigurationController = configurationController;
- mFalsingCollector = falsingCollector;
- mFalsingManager = falsingManager;
- mFeatureFlags = featureFlags;
- mGlobalSettings = globalSettings;
- mUserSwitcherController = userSwitcherController;
- mSessionTracker = sessionTracker;
- mSidefpsController = sidefpsController;
- mFalsingA11yDelegate = falsingA11yDelegate;
- }
-
- public KeyguardSecurityContainerController create(
- SecurityCallback securityCallback) {
- return new KeyguardSecurityContainerController(mView,
- mAdminSecondaryLockScreenControllerFactory, mLockPatternUtils,
- mKeyguardUpdateMonitor, mKeyguardSecurityModel, mMetricsLogger, mUiEventLogger,
- mKeyguardStateController, securityCallback, mSecurityViewFlipperController,
- mConfigurationController, mFalsingCollector, mFalsingManager,
- mUserSwitcherController, mFeatureFlags, mGlobalSettings, mSessionTracker,
- mSidefpsController, mFalsingA11yDelegate);
- }
+ /**
+ * Fades and translates in/out the security screen.
+ * Fades in as expansion approaches 0.
+ * Animation duration is between 0.33f and 0.67f of panel expansion fraction.
+ * @param fraction amount of the screen that should show.
+ */
+ public void setExpansion(float fraction) {
+ float scaledFraction = BouncerPanelExpansionCalculator.showBouncerProgress(fraction);
+ mView.setAlpha(MathUtils.constrain(1 - scaledFraction, 0f, 1f));
+ mView.setTranslationY(scaledFraction * mTranslationY);
}
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index affb90a..8e11a99 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -2765,7 +2765,8 @@
boolean shouldListen = shouldListenKeyguardState && shouldListenUserState
&& shouldListenBouncerState && shouldListenUdfpsState
- && shouldListenSideFpsState;
+ && shouldListenSideFpsState
+ && !isFingerprintLockedOut();
logListenerModelData(
new KeyguardFingerprintListenModel(
System.currentTimeMillis(),
@@ -3798,7 +3799,7 @@
}
// TODO: use these callbacks elsewhere in place of the existing notifyScreen*()
- // (KeyguardViewMediator, KeyguardHostView)
+ // (KeyguardViewMediator, KeyguardSecurityContainer)
/**
* Dispatch wakeup events to:
* - update biometric listening states
diff --git a/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerComponent.java b/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerComponent.java
index 5ad21df..154b0ed 100644
--- a/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerComponent.java
+++ b/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerComponent.java
@@ -18,7 +18,7 @@
import android.view.ViewGroup;
-import com.android.keyguard.KeyguardHostViewController;
+import com.android.keyguard.KeyguardSecurityContainerController;
import com.android.systemui.dagger.qualifiers.RootView;
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor;
@@ -37,6 +37,6 @@
KeyguardBouncerComponent create(@BindsInstance @RootView ViewGroup bouncerContainer);
}
- /** Returns a {@link KeyguardHostViewController}. */
- KeyguardHostViewController getKeyguardHostViewController();
+ /** Returns a {@link KeyguardSecurityContainerController}. */
+ KeyguardSecurityContainerController getSecurityContainerController();
}
diff --git a/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerModule.java b/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerModule.java
index cb7a0a9..38f252a 100644
--- a/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerModule.java
+++ b/packages/SystemUI/src/com/android/keyguard/dagger/KeyguardBouncerModule.java
@@ -23,7 +23,6 @@
import android.view.LayoutInflater;
import android.view.ViewGroup;
-import com.android.keyguard.KeyguardHostView;
import com.android.keyguard.KeyguardSecurityContainer;
import com.android.keyguard.KeyguardSecurityViewFlipper;
import com.android.systemui.R;
@@ -47,19 +46,13 @@
/** */
@Provides
@KeyguardBouncerScope
- static KeyguardHostView providesKeyguardHostView(@RootView ViewGroup rootView,
+ static KeyguardSecurityContainer providesKeyguardSecurityContainer(@RootView ViewGroup rootView,
LayoutInflater layoutInflater) {
- KeyguardHostView hostView = (KeyguardHostView) layoutInflater.inflate(
- R.layout.keyguard_host_view, rootView, false);
- rootView.addView(hostView);
- return hostView;
- }
-
- /** */
- @Provides
- @KeyguardBouncerScope
- static KeyguardSecurityContainer providesKeyguardSecurityContainer(KeyguardHostView hostView) {
- return hostView.findViewById(R.id.keyguard_security_container);
+ KeyguardSecurityContainer securityContainer =
+ (KeyguardSecurityContainer) layoutInflater.inflate(
+ R.layout.keyguard_security_container_view, rootView, false);
+ rootView.addView(securityContainer);
+ return securityContainer;
}
/** */
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
index 2dc0cd3..3302073 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
@@ -129,7 +129,6 @@
private float mScaleFactor = 1f;
// sensor locations without any resolution scaling nor rotation adjustments:
@Nullable private final Point mFaceSensorLocationDefault;
- @Nullable private final Point mFingerprintSensorLocationDefault;
// cached sensor locations:
@Nullable private Point mFaceSensorLocation;
@Nullable private Point mFingerprintSensorLocation;
@@ -586,11 +585,23 @@
@Nullable private Point getFingerprintSensorLocationInNaturalOrientation() {
if (getUdfpsLocation() != null) {
return getUdfpsLocation();
+ } else {
+ int xFpLocation = mCachedDisplayInfo.getNaturalWidth() / 2;
+ try {
+ xFpLocation = mContext.getResources().getDimensionPixelSize(
+ com.android.systemui.R.dimen
+ .physical_fingerprint_sensor_center_screen_location_x);
+ } catch (Resources.NotFoundException e) {
+ }
+
+ return new Point(
+ (int) (xFpLocation * mScaleFactor),
+ (int) (mContext.getResources().getDimensionPixelSize(
+ com.android.systemui.R.dimen
+ .physical_fingerprint_sensor_center_screen_location_y)
+ * mScaleFactor)
+ );
}
- return new Point(
- (int) (mFingerprintSensorLocationDefault.x * mScaleFactor),
- (int) (mFingerprintSensorLocationDefault.y * mScaleFactor)
- );
}
/**
@@ -774,19 +785,6 @@
}
mDisplay = mContext.getDisplay();
- mDisplay.getDisplayInfo(mCachedDisplayInfo);
- int xFpLocation = mCachedDisplayInfo.getNaturalWidth() / 2;
- try {
- xFpLocation = mContext.getResources().getDimensionPixelSize(
- com.android.systemui.R.dimen
- .physical_fingerprint_sensor_center_screen_location_x);
- } catch (Resources.NotFoundException e) {
- }
- mFingerprintSensorLocationDefault = new Point(
- xFpLocation,
- mContext.getResources().getDimensionPixelSize(com.android.systemui.R.dimen
- .physical_fingerprint_sensor_center_screen_location_y)
- );
updateSensorLocations();
IntentFilter filter = new IntentFilter();
@@ -1246,7 +1244,6 @@
pw.println(" mScaleFactor=" + mScaleFactor);
pw.println(" faceAuthSensorLocationDefault=" + mFaceSensorLocationDefault);
pw.println(" faceAuthSensorLocation=" + getFaceSensorLocation());
- pw.println(" fingerprintSensorLocationDefault=" + mFingerprintSensorLocationDefault);
pw.println(" fingerprintSensorLocationInNaturalOrientation="
+ getFingerprintSensorLocationInNaturalOrientation());
pw.println(" fingerprintSensorLocation=" + getFingerprintSensorLocation());
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
index e9ac840..f6b7133 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
@@ -402,7 +402,7 @@
|| mAccessibilityManager.isTouchExplorationEnabled()
|| mDataProvider.isA11yAction()
|| (mFeatureFlags.isEnabled(Flags.FALSING_OFF_FOR_UNFOLDED)
- && !mDataProvider.isFolded());
+ && mDataProvider.isUnfolded());
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
index 5f347c1..bc0f995 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
@@ -380,8 +380,8 @@
return mBatteryController.isWirelessCharging() || mDockManager.isDocked();
}
- public boolean isFolded() {
- return Boolean.TRUE.equals(mFoldStateListener.getFolded());
+ public boolean isUnfolded() {
+ return Boolean.FALSE.equals(mFoldStateListener.getFolded());
}
/** Implement to be alerted abotu the beginning and ending of falsing tracking. */
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt
index d8d8c0e..3a3f9b4 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt
@@ -134,7 +134,8 @@
super.onStop()
mExitToDream = false
- uiController.hide()
+ // parent is set in onStart, so the field is initialized when we get here
+ uiController.hide(parent)
controlsSettingsDialogManager.closeDialog()
}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt
index c1cec9d..58673bb 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt
@@ -31,7 +31,13 @@
}
fun show(parent: ViewGroup, onDismiss: Runnable, activityContext: Context)
- fun hide()
+
+ /**
+ * Hide the controls content if it's attached to this parent.
+ */
+ fun hide(parent: ViewGroup)
+
+ val isShowing: Boolean
/**
* Returns the preferred activity to start, depending on if the user has favorited any
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
index 58f4835..9405c60 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
@@ -168,6 +168,9 @@
private lateinit var activityContext: Context
private lateinit var listingCallback: ControlsListingController.ControlsListingCallback
+ override val isShowing: Boolean
+ get() = !hidden
+
init {
dumpManager.registerDumpable(javaClass.name, this)
}
@@ -727,21 +730,27 @@
controlActionCoordinator.closeDialogs()
}
- override fun hide() {
- hidden = true
+ override fun hide(parent: ViewGroup) {
+ // We need to check for the parent because it's possible that we have started showing in a
+ // different activity. In that case, make sure to only clear things associated with the
+ // passed parent
+ if (parent == this.parent) {
+ Log.d(ControlsUiController.TAG, "hide()")
+ hidden = true
- closeDialogs(true)
- controlsController.get().unsubscribe()
- taskViewController?.dismiss()
- taskViewController = null
+ closeDialogs(true)
+ controlsController.get().unsubscribe()
+ taskViewController?.dismiss()
+ taskViewController = null
+ controlsById.clear()
+ controlViewsById.clear()
+
+ controlsListingController.get().removeCallback(listingCallback)
+
+ if (!retainCache) RenderInfo.clearCache()
+ }
parent.removeAllViews()
- controlsById.clear()
- controlViewsById.clear()
-
- controlsListingController.get().removeCallback(listingCallback)
-
- if (!retainCache) RenderInfo.clearCache()
}
override fun onRefreshState(componentName: ComponentName, controls: List<Control>) {
diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
index 343fcb0..9fe1739 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
+++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
@@ -59,7 +59,7 @@
)
// TODO(b/254512517): Tracking Bug
- val FSI_REQUIRES_KEYGUARD = unreleasedFlag(110, "fsi_requires_keyguard", teamfood = true)
+ val FSI_REQUIRES_KEYGUARD = releasedFlag(110, "fsi_requires_keyguard")
// TODO(b/259130119): Tracking Bug
val FSI_ON_DND_UPDATE = unreleasedFlag(259130119, "fsi_on_dnd_update", teamfood = true)
@@ -187,7 +187,7 @@
// TODO(b/262780002): Tracking Bug
@JvmField
- val REVAMPED_WALLPAPER_UI = unreleasedFlag(222, "revamped_wallpaper_ui", teamfood = false)
+ val REVAMPED_WALLPAPER_UI = unreleasedFlag(222, "revamped_wallpaper_ui", teamfood = true)
/** A different path for unocclusion transitions back to keyguard */
// TODO(b/262859270): Tracking Bug
@@ -217,6 +217,7 @@
unreleasedFlag(
228,
"lock_screen_long_press_enabled",
+ teamfood = true,
)
// 300 - power menu
@@ -262,6 +263,11 @@
val QS_SECONDARY_DATA_SUB_INFO =
unreleasedFlag(508, "qs_secondary_data_sub_info", teamfood = true)
+ /** Enables Font Scaling Quick Settings tile */
+ // TODO(b/269341316): Tracking Bug
+ @JvmField
+ val ENABLE_FONT_SCALING_TILE = unreleasedFlag(509, "enable_font_scaling_tile", teamfood = false)
+
// 600- status bar
// TODO(b/256614753): Tracking Bug
@@ -471,8 +477,7 @@
sysPropBooleanFlag(1202, "persist.wm.debug.predictive_back_always_enforce", default = false)
// TODO(b/254512728): Tracking Bug
- @JvmField
- val NEW_BACK_AFFORDANCE = unreleasedFlag(1203, "new_back_affordance", teamfood = true)
+ @JvmField val NEW_BACK_AFFORDANCE = unreleasedFlag(1203, "new_back_affordance", teamfood = true)
// TODO(b/255854141): Tracking Bug
@JvmField
diff --git a/packages/SystemUI/src/com/android/systemui/flags/ServerFlagReader.kt b/packages/SystemUI/src/com/android/systemui/flags/ServerFlagReader.kt
index 7acd3f3..9b748d0 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/ServerFlagReader.kt
+++ b/packages/SystemUI/src/com/android/systemui/flags/ServerFlagReader.kt
@@ -57,6 +57,7 @@
override fun onPropertiesChanged(properties: DeviceConfig.Properties) {
if (isTestHarness) {
Log.w(TAG, "Ignore server flag changes in Test Harness mode.")
+ return
}
if (properties.namespace != namespace) {
return
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/CustomizationProvider.kt b/packages/SystemUI/src/com/android/systemui/keyguard/CustomizationProvider.kt
index 680c504..27a5974 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/CustomizationProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/CustomizationProvider.kt
@@ -131,7 +131,7 @@
throw UnsupportedOperationException()
}
- return insertSelection(values)
+ return runBlocking(mainDispatcher) { insertSelection(values) }
}
override fun query(
@@ -171,7 +171,7 @@
throw UnsupportedOperationException()
}
- return deleteSelection(uri, selectionArgs)
+ return runBlocking(mainDispatcher) { deleteSelection(uri, selectionArgs) }
}
override fun call(method: String, arg: String?, extras: Bundle?): Bundle? {
@@ -189,7 +189,7 @@
}
}
- private fun insertSelection(values: ContentValues?): Uri? {
+ private suspend fun insertSelection(values: ContentValues?): Uri? {
if (values == null) {
throw IllegalArgumentException("Cannot insert selection, no values passed in!")
}
@@ -311,7 +311,7 @@
}
}
- private fun querySlots(): Cursor {
+ private suspend fun querySlots(): Cursor {
return MatrixCursor(
arrayOf(
Contract.LockScreenQuickAffordances.SlotTable.Columns.ID,
@@ -330,7 +330,7 @@
}
}
- private fun queryFlags(): Cursor {
+ private suspend fun queryFlags(): Cursor {
return MatrixCursor(
arrayOf(
Contract.FlagsTable.Columns.NAME,
@@ -353,7 +353,7 @@
}
}
- private fun deleteSelection(
+ private suspend fun deleteSelection(
uri: Uri,
selectionArgs: Array<out String>?,
): Int {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardFaceAuthManager.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardFaceAuthManager.kt
new file mode 100644
index 0000000..2069891
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardFaceAuthManager.kt
@@ -0,0 +1,342 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.keyguard.data.repository
+
+import android.app.StatusBarManager
+import android.content.Context
+import android.hardware.face.FaceManager
+import android.os.CancellationSignal
+import com.android.internal.logging.InstanceId
+import com.android.internal.logging.UiEventLogger
+import com.android.keyguard.FaceAuthUiEvent
+import com.android.systemui.Dumpable
+import com.android.systemui.R
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.dump.DumpManager
+import com.android.systemui.keyguard.shared.model.AcquiredAuthenticationStatus
+import com.android.systemui.keyguard.shared.model.AuthenticationStatus
+import com.android.systemui.keyguard.shared.model.DetectionStatus
+import com.android.systemui.keyguard.shared.model.ErrorAuthenticationStatus
+import com.android.systemui.keyguard.shared.model.FailedAuthenticationStatus
+import com.android.systemui.keyguard.shared.model.HelpAuthenticationStatus
+import com.android.systemui.keyguard.shared.model.SuccessAuthenticationStatus
+import com.android.systemui.log.FaceAuthenticationLogger
+import com.android.systemui.log.SessionTracker
+import com.android.systemui.statusbar.phone.KeyguardBypassController
+import com.android.systemui.user.data.repository.UserRepository
+import java.io.PrintWriter
+import java.util.Arrays
+import java.util.stream.Collectors
+import javax.inject.Inject
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * API to run face authentication and detection for device entry / on keyguard (as opposed to the
+ * biometric prompt).
+ */
+interface KeyguardFaceAuthManager {
+ /**
+ * Trigger face authentication.
+ *
+ * [uiEvent] provided should be logged whenever face authentication runs. Invocation should be
+ * ignored if face authentication is already running. Results should be propagated through
+ * [authenticationStatus]
+ */
+ suspend fun authenticate(uiEvent: FaceAuthUiEvent)
+
+ /**
+ * Trigger face detection.
+ *
+ * Invocation should be ignored if face authentication is currently running.
+ */
+ suspend fun detect()
+
+ /** Stop currently running face authentication or detection. */
+ fun cancel()
+
+ /** Provide the current status of face authentication. */
+ val authenticationStatus: Flow<AuthenticationStatus>
+
+ /** Provide the current status of face detection. */
+ val detectionStatus: Flow<DetectionStatus>
+
+ /** Current state of whether face authentication is locked out or not. */
+ val isLockedOut: Flow<Boolean>
+
+ /** Current state of whether face authentication is running. */
+ val isAuthRunning: Flow<Boolean>
+
+ /** Is face detection supported. */
+ val isDetectionSupported: Boolean
+}
+
+@SysUISingleton
+class KeyguardFaceAuthManagerImpl
+@Inject
+constructor(
+ context: Context,
+ private val faceManager: FaceManager? = null,
+ private val userRepository: UserRepository,
+ private val keyguardBypassController: KeyguardBypassController? = null,
+ @Application private val applicationScope: CoroutineScope,
+ @Main private val mainDispatcher: CoroutineDispatcher,
+ private val sessionTracker: SessionTracker,
+ private val uiEventsLogger: UiEventLogger,
+ private val faceAuthLogger: FaceAuthenticationLogger,
+ dumpManager: DumpManager,
+) : KeyguardFaceAuthManager, Dumpable {
+ private var cancellationSignal: CancellationSignal? = null
+ private val lockscreenBypassEnabled: Boolean
+ get() = keyguardBypassController?.bypassEnabled ?: false
+ private var faceAcquiredInfoIgnoreList: Set<Int>
+
+ private val faceLockoutResetCallback =
+ object : FaceManager.LockoutResetCallback() {
+ override fun onLockoutReset(sensorId: Int) {
+ _isLockedOut.value = false
+ }
+ }
+
+ init {
+ faceManager?.addLockoutResetCallback(faceLockoutResetCallback)
+ faceAcquiredInfoIgnoreList =
+ Arrays.stream(
+ context.resources.getIntArray(
+ R.array.config_face_acquire_device_entry_ignorelist
+ )
+ )
+ .boxed()
+ .collect(Collectors.toSet())
+ dumpManager.registerCriticalDumpable("KeyguardFaceAuthManagerImpl", this)
+ }
+
+ private val faceAuthCallback =
+ object : FaceManager.AuthenticationCallback() {
+ override fun onAuthenticationFailed() {
+ _authenticationStatus.value = FailedAuthenticationStatus
+ faceAuthLogger.authenticationFailed()
+ onFaceAuthRequestCompleted()
+ }
+
+ override fun onAuthenticationAcquired(acquireInfo: Int) {
+ _authenticationStatus.value = AcquiredAuthenticationStatus(acquireInfo)
+ faceAuthLogger.authenticationAcquired(acquireInfo)
+ }
+
+ override fun onAuthenticationError(errorCode: Int, errString: CharSequence?) {
+ val errorStatus = ErrorAuthenticationStatus(errorCode, errString.toString())
+ if (errorStatus.isLockoutError()) {
+ _isLockedOut.value = true
+ }
+ _authenticationStatus.value = errorStatus
+ if (errorStatus.isCancellationError()) {
+ cancelNotReceivedHandlerJob?.cancel()
+ applicationScope.launch {
+ faceAuthLogger.launchingQueuedFaceAuthRequest(
+ faceAuthRequestedWhileCancellation
+ )
+ faceAuthRequestedWhileCancellation?.let { authenticate(it) }
+ faceAuthRequestedWhileCancellation = null
+ }
+ }
+ faceAuthLogger.authenticationError(
+ errorCode,
+ errString,
+ errorStatus.isLockoutError(),
+ errorStatus.isCancellationError()
+ )
+ onFaceAuthRequestCompleted()
+ }
+
+ override fun onAuthenticationHelp(code: Int, helpStr: CharSequence?) {
+ if (faceAcquiredInfoIgnoreList.contains(code)) {
+ return
+ }
+ _authenticationStatus.value = HelpAuthenticationStatus(code, helpStr.toString())
+ }
+
+ override fun onAuthenticationSucceeded(result: FaceManager.AuthenticationResult) {
+ _authenticationStatus.value = SuccessAuthenticationStatus(result)
+ faceAuthLogger.faceAuthSuccess(result)
+ onFaceAuthRequestCompleted()
+ }
+ }
+
+ private fun onFaceAuthRequestCompleted() {
+ cancellationInProgress = false
+ _isAuthRunning.value = false
+ cancellationSignal = null
+ }
+
+ private val detectionCallback =
+ FaceManager.FaceDetectionCallback { sensorId, userId, isStrong ->
+ faceAuthLogger.faceDetected()
+ _detectionStatus.value = DetectionStatus(sensorId, userId, isStrong)
+ }
+
+ private var cancellationInProgress = false
+ private var faceAuthRequestedWhileCancellation: FaceAuthUiEvent? = null
+
+ override suspend fun authenticate(uiEvent: FaceAuthUiEvent) {
+ if (_isAuthRunning.value) {
+ faceAuthLogger.ignoredFaceAuthTrigger(uiEvent)
+ return
+ }
+
+ if (cancellationInProgress) {
+ faceAuthLogger.queuingRequestWhileCancelling(
+ faceAuthRequestedWhileCancellation,
+ uiEvent
+ )
+ faceAuthRequestedWhileCancellation = uiEvent
+ return
+ } else {
+ faceAuthRequestedWhileCancellation = null
+ }
+
+ withContext(mainDispatcher) {
+ // We always want to invoke face auth in the main thread.
+ cancellationSignal = CancellationSignal()
+ _isAuthRunning.value = true
+ uiEventsLogger.logWithInstanceIdAndPosition(
+ uiEvent,
+ 0,
+ null,
+ keyguardSessionId,
+ uiEvent.extraInfo
+ )
+ faceAuthLogger.authenticating(uiEvent)
+ faceManager?.authenticate(
+ null,
+ cancellationSignal,
+ faceAuthCallback,
+ null,
+ currentUserId,
+ lockscreenBypassEnabled
+ )
+ }
+ }
+
+ override suspend fun detect() {
+ if (!isDetectionSupported) {
+ faceAuthLogger.detectionNotSupported(faceManager, faceManager?.sensorPropertiesInternal)
+ return
+ }
+ if (_isAuthRunning.value) {
+ faceAuthLogger.skippingBecauseAlreadyRunning("detection")
+ return
+ }
+
+ cancellationSignal = CancellationSignal()
+ withContext(mainDispatcher) {
+ // We always want to invoke face detect in the main thread.
+ faceAuthLogger.faceDetectionStarted()
+ faceManager?.detectFace(cancellationSignal, detectionCallback, currentUserId)
+ }
+ }
+
+ private val currentUserId: Int
+ get() = userRepository.getSelectedUserInfo().id
+
+ override fun cancel() {
+ if (cancellationSignal == null) return
+
+ cancellationSignal?.cancel()
+ cancelNotReceivedHandlerJob =
+ applicationScope.launch {
+ delay(DEFAULT_CANCEL_SIGNAL_TIMEOUT)
+ faceAuthLogger.cancelSignalNotReceived(
+ _isAuthRunning.value,
+ _isLockedOut.value,
+ cancellationInProgress,
+ faceAuthRequestedWhileCancellation
+ )
+ onFaceAuthRequestCompleted()
+ }
+ cancellationInProgress = true
+ _isAuthRunning.value = false
+ }
+
+ private var cancelNotReceivedHandlerJob: Job? = null
+
+ private val _authenticationStatus: MutableStateFlow<AuthenticationStatus?> =
+ MutableStateFlow(null)
+ override val authenticationStatus: Flow<AuthenticationStatus>
+ get() = _authenticationStatus.filterNotNull()
+
+ private val _detectionStatus = MutableStateFlow<DetectionStatus?>(null)
+ override val detectionStatus: Flow<DetectionStatus>
+ get() = _detectionStatus.filterNotNull()
+
+ private val _isLockedOut = MutableStateFlow(false)
+ override val isLockedOut: Flow<Boolean> = _isLockedOut
+
+ override val isDetectionSupported =
+ faceManager?.sensorPropertiesInternal?.firstOrNull()?.supportsFaceDetection ?: false
+
+ private val _isAuthRunning = MutableStateFlow(false)
+ override val isAuthRunning: Flow<Boolean>
+ get() = _isAuthRunning
+
+ private val keyguardSessionId: InstanceId?
+ get() = sessionTracker.getSessionId(StatusBarManager.SESSION_KEYGUARD)
+
+ companion object {
+ const val TAG = "KeyguardFaceAuthManager"
+
+ /**
+ * If no cancel signal has been received after this amount of time, assume that it is
+ * cancelled.
+ */
+ const val DEFAULT_CANCEL_SIGNAL_TIMEOUT = 3000L
+ }
+
+ override fun dump(pw: PrintWriter, args: Array<out String>) {
+ pw.println("KeyguardFaceAuthManagerImpl state:")
+ pw.println(" cancellationInProgress: $cancellationInProgress")
+ pw.println(" _isLockedOut.value: ${_isLockedOut.value}")
+ pw.println(" _isAuthRunning.value: ${_isAuthRunning.value}")
+ pw.println(" isDetectionSupported: $isDetectionSupported")
+ pw.println(" FaceManager state:")
+ pw.println(" faceManager: $faceManager")
+ pw.println(" sensorPropertiesInternal: ${faceManager?.sensorPropertiesInternal}")
+ pw.println(
+ " supportsFaceDetection: " +
+ "${faceManager?.sensorPropertiesInternal?.firstOrNull()?.supportsFaceDetection}"
+ )
+ pw.println(
+ " faceAuthRequestedWhileCancellation: ${faceAuthRequestedWhileCancellation?.reason}"
+ )
+ pw.println(" cancellationSignal: $cancellationSignal")
+ pw.println(" faceAcquiredInfoIgnoreList: $faceAcquiredInfoIgnoreList")
+ pw.println(" _authenticationStatus: ${_authenticationStatus.value}")
+ pw.println(" _detectionStatus: ${_detectionStatus.value}")
+ pw.println(" currentUserId: $currentUserId")
+ pw.println(" keyguardSessionId: $keyguardSessionId")
+ pw.println(" lockscreenBypassEnabled: $lockscreenBypassEnabled")
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt
index b2da793..dfbe1c2 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt
@@ -18,12 +18,14 @@
package com.android.systemui.keyguard.domain.interactor
import android.app.AlertDialog
+import android.app.admin.DevicePolicyManager
import android.content.Intent
import android.util.Log
import com.android.internal.widget.LockPatternUtils
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.animation.Expandable
import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceConfig
@@ -41,13 +43,17 @@
import com.android.systemui.statusbar.policy.KeyguardStateController
import dagger.Lazy
import javax.inject.Inject
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onStart
+import kotlinx.coroutines.withContext
+@OptIn(ExperimentalCoroutinesApi::class)
@SysUISingleton
class KeyguardQuickAffordanceInteractor
@Inject
@@ -61,6 +67,8 @@
private val featureFlags: FeatureFlags,
private val repository: Lazy<KeyguardQuickAffordanceRepository>,
private val launchAnimator: DialogLaunchAnimator,
+ private val devicePolicyManager: DevicePolicyManager,
+ @Background private val backgroundDispatcher: CoroutineDispatcher,
) {
private val isUsingRepository: Boolean
get() = featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES)
@@ -74,9 +82,13 @@
get() = featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES)
/** Returns an observable for the quick affordance at the given position. */
- fun quickAffordance(
+ suspend fun quickAffordance(
position: KeyguardQuickAffordancePosition
): Flow<KeyguardQuickAffordanceModel> {
+ if (isFeatureDisabledByDevicePolicy()) {
+ return flowOf(KeyguardQuickAffordanceModel.Hidden)
+ }
+
return combine(
quickAffordanceAlwaysVisible(position),
keyguardInteractor.isDozing,
@@ -148,13 +160,20 @@
*
* @return `true` if the affordance was selected successfully; `false` otherwise.
*/
- fun select(slotId: String, affordanceId: String): Boolean {
+ suspend fun select(slotId: String, affordanceId: String): Boolean {
check(isUsingRepository)
+ if (isFeatureDisabledByDevicePolicy()) {
+ return false
+ }
val slots = repository.get().getSlotPickerRepresentations()
val slot = slots.find { it.id == slotId } ?: return false
val selections =
- repository.get().getCurrentSelections().getOrDefault(slotId, emptyList()).toMutableList()
+ repository
+ .get()
+ .getCurrentSelections()
+ .getOrDefault(slotId, emptyList())
+ .toMutableList()
val alreadySelected = selections.remove(affordanceId)
if (!alreadySelected) {
while (selections.size > 0 && selections.size >= slot.maxSelectedAffordances) {
@@ -183,8 +202,11 @@
* @return `true` if the affordance was successfully removed; `false` otherwise (for example, if
* the affordance was not on the slot to begin with).
*/
- fun unselect(slotId: String, affordanceId: String?): Boolean {
+ suspend fun unselect(slotId: String, affordanceId: String?): Boolean {
check(isUsingRepository)
+ if (isFeatureDisabledByDevicePolicy()) {
+ return false
+ }
val slots = repository.get().getSlotPickerRepresentations()
if (slots.find { it.id == slotId } == null) {
@@ -203,7 +225,11 @@
}
val selections =
- repository.get().getCurrentSelections().getOrDefault(slotId, emptyList()).toMutableList()
+ repository
+ .get()
+ .getCurrentSelections()
+ .getOrDefault(slotId, emptyList())
+ .toMutableList()
return if (selections.remove(affordanceId)) {
repository
.get()
@@ -219,6 +245,10 @@
/** Returns affordance IDs indexed by slot ID, for all known slots. */
suspend fun getSelections(): Map<String, List<KeyguardQuickAffordancePickerRepresentation>> {
+ if (isFeatureDisabledByDevicePolicy()) {
+ return emptyMap()
+ }
+
val slots = repository.get().getSlotPickerRepresentations()
val selections = repository.get().getCurrentSelections()
val affordanceById =
@@ -343,13 +373,17 @@
return repository.get().getAffordancePickerRepresentations()
}
- fun getSlotPickerRepresentations(): List<KeyguardSlotPickerRepresentation> {
+ suspend fun getSlotPickerRepresentations(): List<KeyguardSlotPickerRepresentation> {
check(isUsingRepository)
+ if (isFeatureDisabledByDevicePolicy()) {
+ return emptyList()
+ }
+
return repository.get().getSlotPickerRepresentations()
}
- fun getPickerFlags(): List<KeyguardPickerFlag> {
+ suspend fun getPickerFlags(): List<KeyguardPickerFlag> {
return listOf(
KeyguardPickerFlag(
name = Contract.FlagsTable.FLAG_NAME_REVAMPED_WALLPAPER_UI,
@@ -357,7 +391,9 @@
),
KeyguardPickerFlag(
name = Contract.FlagsTable.FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED,
- value = featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES),
+ value =
+ !isFeatureDisabledByDevicePolicy() &&
+ featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES),
),
KeyguardPickerFlag(
name = Contract.FlagsTable.FLAG_NAME_CUSTOM_CLOCKS_ENABLED,
@@ -374,6 +410,17 @@
)
}
+ private suspend fun isFeatureDisabledByDevicePolicy(): Boolean {
+ val flags =
+ withContext(backgroundDispatcher) {
+ devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId)
+ }
+ val flagsToCheck =
+ DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL or
+ DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL
+ return flagsToCheck and flags != 0
+ }
+
companion object {
private const val TAG = "KeyguardQuickAffordanceInteractor"
private const val DELIMITER = "::"
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/FaceAuthenticationModels.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/FaceAuthenticationModels.kt
new file mode 100644
index 0000000..b1c5f8f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/FaceAuthenticationModels.kt
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.keyguard.shared.model
+
+import android.hardware.face.FaceManager
+
+/** Authentication status provided by [com.android.keyguard.faceauth.KeyguardFaceAuthManager] */
+sealed class AuthenticationStatus
+
+/** Success authentication status. */
+data class SuccessAuthenticationStatus(val successResult: FaceManager.AuthenticationResult) :
+ AuthenticationStatus()
+
+/** Face authentication help message. */
+data class HelpAuthenticationStatus(val msgId: Int, val msg: String?) : AuthenticationStatus()
+
+/** Face acquired message. */
+data class AcquiredAuthenticationStatus(val acquiredInfo: Int) : AuthenticationStatus()
+
+/** Face authentication failed message. */
+object FailedAuthenticationStatus : AuthenticationStatus()
+
+/** Face authentication error message */
+data class ErrorAuthenticationStatus(val msgId: Int, val msg: String?) : AuthenticationStatus() {
+ /**
+ * Method that checks if [msgId] is a lockout error. A lockout error means that face
+ * authentication is locked out.
+ */
+ fun isLockoutError() = msgId == FaceManager.FACE_ERROR_LOCKOUT_PERMANENT
+
+ /**
+ * Method that checks if [msgId] is a cancellation error. This means that face authentication
+ * was cancelled before it completed.
+ */
+ fun isCancellationError() = msgId == FaceManager.FACE_ERROR_CANCELED
+}
+
+/** Face detection success message. */
+data class DetectionStatus(val sensorId: Int, val userId: Int, val isStrongBiometric: Boolean)
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBouncerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBouncerViewBinder.kt
index b0c0dd7..56f911f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBouncerViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBouncerViewBinder.kt
@@ -22,10 +22,12 @@
import android.window.OnBackAnimationCallback
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle
-import com.android.keyguard.KeyguardHostViewController
+import com.android.keyguard.KeyguardSecurityContainerController
import com.android.keyguard.KeyguardSecurityModel
+import com.android.keyguard.KeyguardSecurityView
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.keyguard.dagger.KeyguardBouncerComponent
+import com.android.settingslib.Utils
import com.android.systemui.keyguard.data.BouncerViewDelegate
import com.android.systemui.keyguard.shared.constants.KeyguardBouncerConstants.EXPANSION_VISIBLE
import com.android.systemui.keyguard.ui.viewmodel.KeyguardBouncerViewModel
@@ -43,52 +45,54 @@
viewModel: KeyguardBouncerViewModel,
componentFactory: KeyguardBouncerComponent.Factory
) {
- // Builds the KeyguardHostViewController from bouncer view group.
- val hostViewController: KeyguardHostViewController =
- componentFactory.create(view).keyguardHostViewController
- hostViewController.init()
+ // Builds the KeyguardSecurityContainerController from bouncer view group.
+ val securityContainerController: KeyguardSecurityContainerController =
+ componentFactory.create(view).securityContainerController
+ securityContainerController.init()
val delegate =
object : BouncerViewDelegate {
override fun isFullScreenBouncer(): Boolean {
- val mode = hostViewController.currentSecurityMode
+ val mode = securityContainerController.currentSecurityMode
return mode == KeyguardSecurityModel.SecurityMode.SimPin ||
mode == KeyguardSecurityModel.SecurityMode.SimPuk
}
override fun getBackCallback(): OnBackAnimationCallback {
- return hostViewController.backCallback
+ return securityContainerController.backCallback
}
override fun shouldDismissOnMenuPressed(): Boolean {
- return hostViewController.shouldEnableMenuKey()
+ return securityContainerController.shouldEnableMenuKey()
}
override fun interceptMediaKey(event: KeyEvent?): Boolean {
- return hostViewController.interceptMediaKey(event)
+ return securityContainerController.interceptMediaKey(event)
}
override fun dispatchBackKeyEventPreIme(): Boolean {
- return hostViewController.dispatchBackKeyEventPreIme()
+ return securityContainerController.dispatchBackKeyEventPreIme()
}
override fun showNextSecurityScreenOrFinish(): Boolean {
- return hostViewController.dismiss(KeyguardUpdateMonitor.getCurrentUser())
+ return securityContainerController.dismiss(
+ KeyguardUpdateMonitor.getCurrentUser()
+ )
}
override fun resume() {
- hostViewController.showPrimarySecurityScreen()
- hostViewController.onResume()
+ securityContainerController.showPrimarySecurityScreen(/* isTurningOff= */ false)
+ securityContainerController.onResume(KeyguardSecurityView.SCREEN_ON)
}
override fun setDismissAction(
onDismissAction: ActivityStarter.OnDismissAction?,
cancelAction: Runnable?
) {
- hostViewController.setOnDismissAction(onDismissAction, cancelAction)
+ securityContainerController.setOnDismissAction(onDismissAction, cancelAction)
}
override fun willDismissWithActions(): Boolean {
- return hostViewController.hasDismissActions()
+ return securityContainerController.hasDismissActions()
}
}
view.repeatWhenAttached {
@@ -98,38 +102,45 @@
launch {
viewModel.show.collect {
// Reset Security Container entirely.
- hostViewController.reinflateViewFlipper()
- hostViewController.showPromptReason(it.promptReason)
+ securityContainerController.reinflateViewFlipper()
+ securityContainerController.showPromptReason(it.promptReason)
it.errorMessage?.let { errorMessage ->
- hostViewController.showErrorMessage(errorMessage)
+ securityContainerController.showMessage(
+ errorMessage,
+ Utils.getColorError(view.context)
+ )
}
- hostViewController.showPrimarySecurityScreen()
- hostViewController.appear()
- hostViewController.onResume()
+ securityContainerController.showPrimarySecurityScreen(
+ /* turningOff= */ false
+ )
+ securityContainerController.appear()
+ securityContainerController.onResume(KeyguardSecurityView.SCREEN_ON)
}
}
launch {
viewModel.hide.collect {
- hostViewController.cancelDismissAction()
- hostViewController.cleanUp()
- hostViewController.resetSecurityContainer()
+ securityContainerController.cancelDismissAction()
+ securityContainerController.onPause()
+ securityContainerController.reset()
}
}
launch {
- viewModel.startingToHide.collect { hostViewController.onStartingToHide() }
+ viewModel.startingToHide.collect {
+ securityContainerController.onStartingToHide()
+ }
}
launch {
viewModel.startDisappearAnimation.collect {
- hostViewController.startDisappearAnimation(it)
+ securityContainerController.startDisappearAnimation(it)
}
}
launch {
viewModel.bouncerExpansionAmount.collect { expansion ->
- hostViewController.setExpansion(expansion)
+ securityContainerController.setExpansion(expansion)
}
}
@@ -137,10 +148,8 @@
viewModel.bouncerExpansionAmount
.filter { it == EXPANSION_VISIBLE }
.collect {
- hostViewController.onResume()
- view.announceForAccessibility(
- hostViewController.accessibilityTitleForCurrentMode
- )
+ securityContainerController.onResume(KeyguardSecurityView.SCREEN_ON)
+ view.announceForAccessibility(securityContainerController.title)
}
}
@@ -148,39 +157,42 @@
viewModel.isBouncerVisible.collect { isVisible ->
val visibility = if (isVisible) View.VISIBLE else View.INVISIBLE
view.visibility = visibility
- hostViewController.onBouncerVisibilityChanged(visibility)
+ securityContainerController.onBouncerVisibilityChanged(visibility)
}
}
launch {
viewModel.isInteractable.collect { isInteractable ->
- hostViewController.setInteractable(isInteractable)
+ securityContainerController.setInteractable(isInteractable)
}
}
launch {
viewModel.keyguardPosition.collect { position ->
- hostViewController.updateKeyguardPosition(position)
+ securityContainerController.updateKeyguardPosition(position)
}
}
launch {
viewModel.updateResources.collect {
- hostViewController.updateResources()
+ securityContainerController.updateResources()
viewModel.notifyUpdateResources()
}
}
launch {
viewModel.bouncerShowMessage.collect {
- hostViewController.showMessage(it.message, it.colorStateList)
+ securityContainerController.showMessage(it.message, it.colorStateList)
viewModel.onMessageShown()
}
}
launch {
viewModel.keyguardAuthenticated.collect {
- hostViewController.finish(it, KeyguardUpdateMonitor.getCurrentUser())
+ securityContainerController.finish(
+ it,
+ KeyguardUpdateMonitor.getCurrentUser()
+ )
viewModel.notifyKeyguardAuthenticated()
}
}
@@ -194,7 +206,7 @@
launch {
viewModel.screenTurnedOff.collect {
if (view.visibility == View.VISIBLE) {
- hostViewController.onPause()
+ securityContainerController.onPause()
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/log/FaceAuthenticationLogger.kt b/packages/SystemUI/src/com/android/systemui/log/FaceAuthenticationLogger.kt
new file mode 100644
index 0000000..f7349a2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/log/FaceAuthenticationLogger.kt
@@ -0,0 +1,181 @@
+package com.android.systemui.log
+
+import android.hardware.face.FaceManager
+import android.hardware.face.FaceSensorPropertiesInternal
+import com.android.keyguard.FaceAuthUiEvent
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.log.dagger.FaceAuthLog
+import com.android.systemui.plugins.log.LogBuffer
+import com.android.systemui.plugins.log.LogLevel.DEBUG
+import com.google.errorprone.annotations.CompileTimeConstant
+import javax.inject.Inject
+
+private const val TAG = "KeyguardFaceAuthManagerLog"
+
+/**
+ * Helper class for logging for [com.android.keyguard.faceauth.KeyguardFaceAuthManager]
+ *
+ * To enable logcat echoing for an entire buffer:
+ *
+ * ```
+ * adb shell settings put global systemui/buffer/KeyguardFaceAuthManagerLog <logLevel>
+ *
+ * ```
+ */
+@SysUISingleton
+class FaceAuthenticationLogger
+@Inject
+constructor(
+ @FaceAuthLog private val logBuffer: LogBuffer,
+) {
+ fun ignoredFaceAuthTrigger(uiEvent: FaceAuthUiEvent) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ { str1 = uiEvent.reason },
+ {
+ "Ignoring trigger because face auth is currently running. " +
+ "Trigger reason: $str1"
+ }
+ )
+ }
+
+ fun queuingRequestWhileCancelling(
+ alreadyQueuedRequest: FaceAuthUiEvent?,
+ newRequest: FaceAuthUiEvent
+ ) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ {
+ str1 = alreadyQueuedRequest?.reason
+ str2 = newRequest.reason
+ },
+ {
+ "Face auth requested while previous request is being cancelled, " +
+ "already queued request: $str1 queueing the new request: $str2"
+ }
+ )
+ }
+
+ fun authenticating(uiEvent: FaceAuthUiEvent) {
+ logBuffer.log(TAG, DEBUG, { str1 = uiEvent.reason }, { "Running authenticate for $str1" })
+ }
+
+ fun detectionNotSupported(
+ faceManager: FaceManager?,
+ sensorPropertiesInternal: MutableList<FaceSensorPropertiesInternal>?
+ ) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ {
+ bool1 = faceManager == null
+ bool2 = sensorPropertiesInternal.isNullOrEmpty()
+ bool2 = sensorPropertiesInternal?.firstOrNull()?.supportsFaceDetection ?: false
+ },
+ {
+ "skipping detection request because it is not supported, " +
+ "faceManager isNull: $bool1, " +
+ "sensorPropertiesInternal isNullOrEmpty: $bool2, " +
+ "supportsFaceDetection: $bool3"
+ }
+ )
+ }
+
+ fun skippingBecauseAlreadyRunning(@CompileTimeConstant operation: String) {
+ logBuffer.log(TAG, DEBUG, "isAuthRunning is true, skipping $operation")
+ }
+
+ fun faceDetectionStarted() {
+ logBuffer.log(TAG, DEBUG, "Face detection started.")
+ }
+
+ fun faceDetected() {
+ logBuffer.log(TAG, DEBUG, "Face detected")
+ }
+
+ fun cancelSignalNotReceived(
+ isAuthRunning: Boolean,
+ isLockedOut: Boolean,
+ cancellationInProgress: Boolean,
+ faceAuthRequestedWhileCancellation: FaceAuthUiEvent?
+ ) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ {
+ bool1 = isAuthRunning
+ bool2 = isLockedOut
+ bool3 = cancellationInProgress
+ str1 = "${faceAuthRequestedWhileCancellation?.reason}"
+ },
+ {
+ "Cancel signal was not received, running timeout handler to reset state. " +
+ "State before reset: " +
+ "isAuthRunning: $bool1, " +
+ "isLockedOut: $bool2, " +
+ "cancellationInProgress: $bool3, " +
+ "faceAuthRequestedWhileCancellation: $str1"
+ }
+ )
+ }
+
+ fun authenticationFailed() {
+ logBuffer.log(TAG, DEBUG, "Face authentication failed")
+ }
+
+ fun authenticationAcquired(acquireInfo: Int) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ { int1 = acquireInfo },
+ { "Face acquired during face authentication: acquireInfo: $int1 " }
+ )
+ }
+
+ fun authenticationError(
+ errorCode: Int,
+ errString: CharSequence?,
+ lockoutError: Boolean,
+ cancellationError: Boolean
+ ) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ {
+ int1 = errorCode
+ str1 = "$errString"
+ bool1 = lockoutError
+ bool2 = cancellationError
+ },
+ {
+ "Received authentication error: errorCode: $int1, " +
+ "errString: $str1, " +
+ "isLockoutError: $bool1, " +
+ "isCancellationError: $bool2"
+ }
+ )
+ }
+
+ fun launchingQueuedFaceAuthRequest(faceAuthRequestedWhileCancellation: FaceAuthUiEvent?) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ { str1 = "${faceAuthRequestedWhileCancellation?.reason}" },
+ { "Received cancellation error and starting queued face auth request: $str1" }
+ )
+ }
+
+ fun faceAuthSuccess(result: FaceManager.AuthenticationResult) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ {
+ int1 = result.userId
+ bool1 = result.isStrongBiometric
+ },
+ { "Face authenticated successfully: userId: $int1, isStrongBiometric: $bool1" }
+ )
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/FaceAuthLog.kt b/packages/SystemUI/src/com/android/systemui/log/dagger/FaceAuthLog.kt
new file mode 100644
index 0000000..b97e3a7
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/log/dagger/FaceAuthLog.kt
@@ -0,0 +1,6 @@
+package com.android.systemui.log.dagger
+
+import javax.inject.Qualifier
+
+/** A [com.android.systemui.log.LogBuffer] for Face authentication triggered by SysUI. */
+@Qualifier @MustBeDocumented @Retention(AnnotationRetention.RUNTIME) annotation class FaceAuthLog()
diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java
index 5341cd5..817de79 100644
--- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java
+++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java
@@ -350,6 +350,17 @@
}
/**
+ * Provides a {@link LogBuffer} for use by
+ * {@link com.android.keyguard.faceauth.KeyguardFaceAuthManagerImpl}.
+ */
+ @Provides
+ @SysUISingleton
+ @FaceAuthLog
+ public static LogBuffer provideFaceAuthLog(LogBufferFactory factory) {
+ return factory.create("KeyguardFaceAuthManagerLog", 300);
+ }
+
+ /**
* Provides a {@link LogBuffer} for bluetooth-related logs.
*/
@Provides
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 7067c220..a0be151 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -25,8 +25,6 @@
import android.content.res.Resources;
import android.graphics.Rect;
import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
import android.util.ArrayMap;
import android.util.AttributeSet;
import android.util.Log;
@@ -108,6 +106,11 @@
private boolean mShouldMoveMediaOnExpansion = true;
private boolean mUsingCombinedHeaders = false;
private QSLogger mQsLogger;
+ /**
+ * Specifies if we can collapse to QQS in current state. In split shade that should be always
+ * false. It influences available accessibility actions.
+ */
+ private boolean mCanCollapse = true;
public QSPanel(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -650,7 +653,9 @@
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
- info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_COLLAPSE);
+ if (mCanCollapse) {
+ info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_COLLAPSE);
+ }
}
@Override
@@ -669,15 +674,11 @@
mCollapseExpandAction = action;
}
- private class H extends Handler {
- private static final int ANNOUNCE_FOR_ACCESSIBILITY = 1;
-
- @Override
- public void handleMessage(Message msg) {
- if (msg.what == ANNOUNCE_FOR_ACCESSIBILITY) {
- announceForAccessibility((CharSequence) msg.obj);
- }
- }
+ /**
+ * Specifies if these expanded QS can collapse to QQS.
+ */
+ public void setCanCollapse(boolean canCollapse) {
+ mCanCollapse = canCollapse;
}
public interface QSTileLayout {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
index cabe1da..01dbb18 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
@@ -148,9 +148,10 @@
}
@Override
- protected void onSplitShadeChanged() {
+ protected void onSplitShadeChanged(boolean shouldUseSplitNotificationShade) {
((PagedTileLayout) mView.getOrCreateTileLayout())
.forceTilesRedistribution("Split shade state changed");
+ mView.setCanCollapse(!shouldUseSplitNotificationShade);
}
/** */
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
index e85d0a3..bbdf6cc 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
@@ -104,14 +104,14 @@
switchTileLayoutIfNeeded();
onConfigurationChanged();
if (previousSplitShadeState != mShouldUseSplitNotificationShade) {
- onSplitShadeChanged();
+ onSplitShadeChanged(mShouldUseSplitNotificationShade);
}
}
};
protected void onConfigurationChanged() { }
- protected void onSplitShadeChanged() { }
+ protected void onSplitShadeChanged(boolean shouldUseSplitNotificationShade) { }
private final Function1<Boolean, Unit> mMediaHostVisibilityListener = (visible) -> {
if (mMediaVisibilityChangedListener != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
index 946fe54..e696d13 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
@@ -152,9 +152,7 @@
Configuration config = mContext.getResources().getConfiguration();
setDatePrivacyContainersWidth(config.orientation == Configuration.ORIENTATION_LANDSCAPE);
- // QS will always show the estimate, and BatteryMeterView handles the case where
- // it's unavailable or charging
- mBatteryRemainingIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE);
+ updateBatteryMode();
mIconsAlphaAnimatorFixed = new TouchAnimator.Builder()
.addFloat(mIconContainer, "alpha", 0, 1)
@@ -460,24 +458,24 @@
(LinearLayout.LayoutParams) mDatePrivacySeparator.getLayoutParams();
LinearLayout.LayoutParams mClockIconsSeparatorLayoutParams =
(LinearLayout.LayoutParams) mClockIconsSeparator.getLayoutParams();
- if (cutout != null) {
- Rect topCutout = cutout.getBoundingRectTop();
- if (topCutout.isEmpty() || hasCornerCutout) {
- datePrivacySeparatorLayoutParams.width = 0;
- mDatePrivacySeparator.setVisibility(View.GONE);
- mClockIconsSeparatorLayoutParams.width = 0;
- setSeparatorVisibility(false);
- mShowClockIconsSeparator = false;
- mHasCenterCutout = false;
- } else {
- datePrivacySeparatorLayoutParams.width = topCutout.width();
- mDatePrivacySeparator.setVisibility(View.VISIBLE);
- mClockIconsSeparatorLayoutParams.width = topCutout.width();
- mShowClockIconsSeparator = true;
- setSeparatorVisibility(mKeyguardExpansionFraction == 0f);
- mHasCenterCutout = true;
- }
+
+ Rect topCutout = cutout == null ? null : cutout.getBoundingRectTop();
+ if (topCutout == null || topCutout.isEmpty() || hasCornerCutout) {
+ datePrivacySeparatorLayoutParams.width = 0;
+ mDatePrivacySeparator.setVisibility(View.GONE);
+ mClockIconsSeparatorLayoutParams.width = 0;
+ setSeparatorVisibility(false);
+ mShowClockIconsSeparator = false;
+ mHasCenterCutout = false;
+ } else {
+ datePrivacySeparatorLayoutParams.width = topCutout.width();
+ mDatePrivacySeparator.setVisibility(View.VISIBLE);
+ mClockIconsSeparatorLayoutParams.width = topCutout.width();
+ mShowClockIconsSeparator = true;
+ setSeparatorVisibility(mKeyguardExpansionFraction == 0f);
+ mHasCenterCutout = true;
}
+
mDatePrivacySeparator.setLayoutParams(datePrivacySeparatorLayoutParams);
mClockIconsSeparator.setLayoutParams(mClockIconsSeparatorLayoutParams);
mCutOutPaddingLeft = sbInsets.first;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt
index 721046d..9b4ac1b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt
@@ -27,6 +27,8 @@
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.flags.FeatureFlags
+import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.qs.QSTile
@@ -50,7 +52,8 @@
activityStarter: ActivityStarter,
qsLogger: QSLogger,
private val dialogLaunchAnimator: DialogLaunchAnimator,
- private val systemSettings: SystemSettings
+ private val systemSettings: SystemSettings,
+ private val featureFlags: FeatureFlags
) :
QSTileImpl<QSTile.State?>(
host,
@@ -65,7 +68,7 @@
private val icon = ResourceIcon.get(R.drawable.ic_qs_font_scaling)
override fun isAvailable(): Boolean {
- return false
+ return featureFlags.isEnabled(Flags.ENABLE_FONT_SCALING_TILE)
}
override fun newTileState(): QSTile.State {
diff --git a/packages/SystemUI/src/com/android/systemui/shade/DebugDrawable.java b/packages/SystemUI/src/com/android/systemui/shade/DebugDrawable.java
index ae303eb..fb2ddc1 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/DebugDrawable.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/DebugDrawable.java
@@ -39,6 +39,7 @@
private final NotificationPanelView mView;
private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
private final LockIconViewController mLockIconViewController;
+ private final QuickSettingsController mQsController;
private final Set<Integer> mDebugTextUsedYPositions;
private final Paint mDebugPaint;
@@ -46,12 +47,14 @@
NotificationPanelViewController notificationPanelViewController,
NotificationPanelView notificationPanelView,
NotificationStackScrollLayoutController notificationStackScrollLayoutController,
- LockIconViewController lockIconViewController
+ LockIconViewController lockIconViewController,
+ QuickSettingsController quickSettingsController
) {
mNotificationPanelViewController = notificationPanelViewController;
mView = notificationPanelView;
mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
mLockIconViewController = lockIconViewController;
+ mQsController = quickSettingsController;
mDebugTextUsedYPositions = new HashSet<>();
mDebugPaint = new Paint();
}
@@ -71,12 +74,19 @@
Color.RED, "getMaxPanelHeight()");
drawDebugInfo(canvas, (int) mNotificationPanelViewController.getExpandedHeight(),
Color.BLUE, "getExpandedHeight()");
- drawDebugInfo(canvas, mNotificationPanelViewController.calculatePanelHeightQsExpanded(),
+ drawDebugInfo(canvas, mQsController.calculatePanelHeightExpanded(
+ mNotificationPanelViewController.getClockPositionResult()
+ .stackScrollerPadding),
Color.GREEN, "calculatePanelHeightQsExpanded()");
- drawDebugInfo(canvas, mNotificationPanelViewController.calculatePanelHeightQsExpanded(),
+ drawDebugInfo(canvas, mQsController.calculatePanelHeightExpanded(
+ mNotificationPanelViewController.getClockPositionResult()
+ .stackScrollerPadding),
Color.YELLOW, "calculatePanelHeightShade()");
drawDebugInfo(canvas,
- (int) mNotificationPanelViewController.calculateNotificationsTopPadding(),
+ (int) mQsController.calculateNotificationsTopPadding(
+ mNotificationPanelViewController.isExpanding(),
+ mNotificationPanelViewController.getKeyguardNotificationStaticPadding(),
+ mNotificationPanelViewController.getExpandedFraction()),
Color.MAGENTA, "calculateNotificationsTopPadding()");
drawDebugInfo(canvas, mNotificationPanelViewController.getClockPositionResult().clockY,
Color.GRAY, "mClockPositionResult.clockY");
diff --git a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt
index 197232e..9d8ed46 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt
@@ -17,6 +17,7 @@
package com.android.systemui.shade
import android.animation.Animator
+import android.animation.AnimatorListenerAdapter
import android.annotation.IdRes
import android.app.StatusBarManager
import android.content.res.Configuration
@@ -24,6 +25,7 @@
import android.os.Trace
import android.os.Trace.TRACE_TAG_APP
import android.util.Pair
+import android.view.DisplayCutout
import android.view.View
import android.view.WindowInsets
import android.widget.TextView
@@ -91,7 +93,8 @@
private val featureFlags: FeatureFlags,
private val qsCarrierGroupControllerBuilder: QSCarrierGroupController.Builder,
private val combinedShadeHeadersConstraintManager: CombinedShadeHeadersConstraintManager,
- private val demoModeController: DemoModeController
+ private val demoModeController: DemoModeController,
+ private val qsBatteryModeController: QsBatteryModeController,
) : ViewController<View>(header), Dumpable {
companion object {
@@ -129,9 +132,8 @@
private val iconContainer: StatusIconContainer = header.findViewById(R.id.statusIcons)
private val qsCarrierGroup: QSCarrierGroup = header.findViewById(R.id.carrier_group)
- private var cutoutLeft = 0
- private var cutoutRight = 0
private var roundedCorners = 0
+ private var cutout: DisplayCutout? = null
private var lastInsets: WindowInsets? = null
private var qsDisabled = false
@@ -144,6 +146,14 @@
updateListeners()
}
+ private var customizing = false
+ set(value) {
+ if (field != value) {
+ field = value
+ updateVisibility()
+ }
+ }
+
/**
* Whether the QQS/QS part of the shade is visible. This is particularly important in
* Lockscreen, as the shade is visible but QS is not.
@@ -175,14 +185,9 @@
*/
var shadeExpandedFraction = -1f
set(value) {
- if (field != value) {
- val oldAlpha = header.alpha
+ if (qsVisible && field != value) {
header.alpha = ShadeInterpolation.getContentAlpha(value)
field = value
- if ((oldAlpha == 0f && header.alpha > 0f) ||
- (oldAlpha > 0f && header.alpha == 0f)) {
- updateVisibility()
- }
}
}
@@ -273,7 +278,6 @@
// battery settings same as in QS icons
batteryMeterViewController.ignoreTunerUpdates()
- batteryIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
iconManager = tintedIconManagerFactory.create(iconContainer, StatusBarLocation.QS)
iconManager.setTint(
@@ -305,6 +309,7 @@
if (header is MotionLayout) {
header.setOnApplyWindowInsetsListener(insetListener)
+
clock.addOnLayoutChangeListener { v, _, _, _, _, _, _, _, _ ->
val newPivot = if (v.isLayoutRtl) v.width.toFloat() else 0f
v.pivotX = newPivot
@@ -317,6 +322,7 @@
dumpManager.registerDumpable(this)
configurationController.addCallback(configurationControllerListener)
demoModeController.addCallback(demoModeReceiver)
+ statusBarIconController.addIconGroup(iconManager)
}
override fun onViewDetached() {
@@ -324,6 +330,7 @@
dumpManager.unregisterDumpable(this::class.java.simpleName)
configurationController.removeCallback(configurationControllerListener)
demoModeController.removeCallback(demoModeReceiver)
+ statusBarIconController.removeIconGroup(iconManager)
}
fun disable(state1: Int, state2: Int, animate: Boolean) {
@@ -338,31 +345,10 @@
.setDuration(duration)
.alpha(if (show) 0f else 1f)
.setInterpolator(if (show) Interpolators.ALPHA_OUT else Interpolators.ALPHA_IN)
- .setUpdateListener {
- updateVisibility()
- }
- .setListener(endAnimationListener)
+ .setListener(CustomizerAnimationListener(show))
.start()
}
- private val endAnimationListener = object : Animator.AnimatorListener {
- override fun onAnimationCancel(animation: Animator?) {
- clearListeners()
- }
-
- override fun onAnimationEnd(animation: Animator?) {
- clearListeners()
- }
-
- override fun onAnimationRepeat(animation: Animator?) {}
-
- override fun onAnimationStart(animation: Animator?) {}
-
- private fun clearListeners() {
- header.animate().setListener(null).setUpdateListener(null)
- }
- }
-
private fun loadConstraints() {
if (header is MotionLayout) {
// Use resources.getXml instead of passing the resource id due to bug b/205018300
@@ -376,11 +362,13 @@
}
private fun updateConstraintsForInsets(view: MotionLayout, insets: WindowInsets) {
- val cutout = insets.displayCutout
+ val cutout = insets.displayCutout.also {
+ this.cutout = it
+ }
val sbInsets: Pair<Int, Int> = insetsProvider.getStatusBarContentInsetsForCurrentRotation()
- cutoutLeft = sbInsets.first
- cutoutRight = sbInsets.second
+ val cutoutLeft = sbInsets.first
+ val cutoutRight = sbInsets.second
val hasCornerCutout: Boolean = insetsProvider.currentRotationHasCornerCutout()
updateQQSPaddings()
// Set these guides as the left/right limits for content that lives in the top row, using
@@ -408,6 +396,13 @@
}
view.updateAllConstraints(changes)
+ updateBatteryMode()
+ }
+
+ private fun updateBatteryMode() {
+ qsBatteryModeController.getBatteryMode(cutout, qsExpandedFraction)?.let {
+ batteryIcon.setPercentShowMode(it)
+ }
}
private fun updateScrollY() {
@@ -443,7 +438,7 @@
private fun updateVisibility() {
val visibility = if (!largeScreenActive && !combinedHeaders || qsDisabled) {
View.GONE
- } else if (qsVisible && header.alpha > 0f) {
+ } else if (qsVisible && !customizing) {
View.VISIBLE
} else {
View.INVISIBLE
@@ -475,6 +470,7 @@
if (header is MotionLayout && !largeScreenActive && visible) {
logInstantEvent("updatePosition: $qsExpandedFraction")
header.progress = qsExpandedFraction
+ updateBatteryMode()
}
}
@@ -491,10 +487,8 @@
if (visible) {
updateSingleCarrier(qsCarrierGroupController.isSingleCarrier)
qsCarrierGroupController.setOnSingleCarrierChangedListener { updateSingleCarrier(it) }
- statusBarIconController.addIconGroup(iconManager)
} else {
qsCarrierGroupController.setOnSingleCarrierChangedListener(null)
- statusBarIconController.removeIconGroup(iconManager)
}
}
@@ -511,6 +505,7 @@
val padding = resources.getDimensionPixelSize(R.dimen.qs_panel_padding)
header.setPadding(padding, header.paddingTop, padding, header.paddingBottom)
updateQQSPaddings()
+ qsBatteryModeController.updateResources()
}
private fun updateQQSPaddings() {
@@ -566,4 +561,23 @@
@VisibleForTesting
internal fun simulateViewDetached() = this.onViewDetached()
+
+ inner class CustomizerAnimationListener(
+ private val enteringCustomizing: Boolean,
+ ) : AnimatorListenerAdapter() {
+ override fun onAnimationEnd(animation: Animator?) {
+ super.onAnimationEnd(animation)
+ header.animate().setListener(null)
+ if (enteringCustomizing) {
+ customizing = true
+ }
+ }
+
+ override fun onAnimationStart(animation: Animator?) {
+ super.onAnimationStart(animation)
+ if (!enteringCustomizing) {
+ customizing = false
+ }
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index cd45b32..2175a33 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -23,14 +23,12 @@
import static androidx.constraintlayout.widget.ConstraintSet.END;
import static androidx.constraintlayout.widget.ConstraintSet.PARENT_ID;
-import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE;
import static com.android.keyguard.KeyguardClockSwitch.LARGE;
import static com.android.keyguard.KeyguardClockSwitch.SMALL;
import static com.android.systemui.animation.Interpolators.EMPHASIZED_ACCELERATE;
import static com.android.systemui.animation.Interpolators.EMPHASIZED_DECELERATE;
import static com.android.systemui.classifier.Classifier.BOUNCER_UNLOCK;
import static com.android.systemui.classifier.Classifier.GENERIC;
-import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import static com.android.systemui.classifier.Classifier.UNLOCK;
import static com.android.systemui.shade.ShadeExpansionStateManagerKt.STATE_CLOSED;
@@ -53,7 +51,6 @@
import android.animation.ValueAnimator;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.app.Fragment;
import android.app.StatusBarManager;
import android.content.ContentResolver;
import android.content.res.Resources;
@@ -101,10 +98,8 @@
import androidx.constraintlayout.widget.ConstraintSet;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.policy.ScreenDecorationsUtils;
import com.android.internal.policy.SystemBarUtils;
import com.android.internal.util.LatencyTracker;
import com.android.keyguard.ActiveUnlockConfig;
@@ -135,7 +130,6 @@
import com.android.systemui.dump.DumpsysTableLogger;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
-import com.android.systemui.fragments.FragmentHostManager.FragmentListener;
import com.android.systemui.fragments.FragmentService;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor;
@@ -177,7 +171,6 @@
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.NotificationShelfController;
import com.android.systemui.statusbar.PulseExpansionHandler;
-import com.android.systemui.statusbar.QsFrameTranslateController;
import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
@@ -263,13 +256,13 @@
private static final VibrationEffect ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT =
VibrationEffect.get(VibrationEffect.EFFECT_STRENGTH_MEDIUM, false);
/** The parallax amount of the quick settings translation when dragging down the panel. */
- private static final float QS_PARALLAX_AMOUNT = 0.175f;
+ public static final float QS_PARALLAX_AMOUNT = 0.175f;
/** Fling expanding QS. */
public static final int FLING_EXPAND = 0;
/** Fling collapsing QS, potentially stopping when QS becomes QQS. */
- private static final int FLING_COLLAPSE = 1;
+ public static final int FLING_COLLAPSE = 1;
/** Fling until QS is completely hidden. */
- private static final int FLING_HIDE = 2;
+ public static final int FLING_HIDE = 2;
/** The delay to reset the hint text when the hint animation is finished running. */
private static final int HINT_RESET_DELAY_MS = 1200;
private static final long ANIMATION_DELAY_ICON_FADE_IN =
@@ -291,7 +284,7 @@
private static final int MAX_TIME_TO_OPEN_WHEN_FLINGING_FROM_LAUNCHER = 300;
private static final int MAX_DOWN_EVENT_BUFFER_SIZE = 50;
private static final String COUNTER_PANEL_OPEN = "panel_open";
- private static final String COUNTER_PANEL_OPEN_QS = "panel_open_qs";
+ public static final String COUNTER_PANEL_OPEN_QS = "panel_open_qs";
private static final String COUNTER_PANEL_OPEN_PEEK = "panel_open_peek";
private static final Rect M_DUMMY_DIRTY_RECT = new Rect(0, 0, 1, 1);
private static final Rect EMPTY_RECT = new Rect();
@@ -310,14 +303,10 @@
private final SystemClock mSystemClock;
private final ShadeLogger mShadeLog;
private final DozeParameters mDozeParameters;
- private final Runnable mCollapseExpandAction = this::collapseOrExpand;
- private final NsslOverscrollTopChangedListener mOnOverscrollTopChangedListener =
- new NsslOverscrollTopChangedListener();
private final NotificationStackScrollLayout.OnEmptySpaceClickListener
mOnEmptySpaceClickListener = (x, y) -> onEmptySpaceClick();
private final ShadeHeadsUpChangedListener mOnHeadsUpChangedListener =
new ShadeHeadsUpChangedListener();
- private final QS.HeightListener mHeightListener = this::onQsHeightChanged;
private final ConfigurationListener mConfigurationListener = new ConfigurationListener();
private final SettingsChangeObserver mSettingsChangeObserver;
private final StatusBarStateListener mStatusBarStateListener = new StatusBarStateListener();
@@ -327,7 +316,6 @@
private final ConfigurationController mConfigurationController;
private final Provider<FlingAnimationUtils.Builder> mFlingAnimationUtilsBuilder;
private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
- private final InteractionJankMonitor mInteractionJankMonitor;
private final LayoutInflater mLayoutInflater;
private final FeatureFlags mFeatureFlags;
private final PowerManager mPowerManager;
@@ -346,12 +334,9 @@
private final KeyguardStatusBarViewComponent.Factory mKeyguardStatusBarViewComponentFactory;
private final FragmentService mFragmentService;
private final ScrimController mScrimController;
- private final NotificationRemoteInputManager mRemoteInputManager;
private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
- private final ShadeTransitionController mShadeTransitionController;
private final TapAgainViewController mTapAgainViewController;
private final LargeScreenShadeHeaderController mLargeScreenShadeHeaderController;
- private final RecordingController mRecordingController;
private final boolean mVibrateOnOpening;
private final VelocityTracker mVelocityTracker = VelocityTracker.obtain();
private final FlingAnimationUtils mFlingAnimationUtilsClosing;
@@ -363,12 +348,11 @@
private final Interpolator mBounceInterpolator;
private final NotificationShadeWindowController mNotificationShadeWindowController;
private final ShadeExpansionStateManager mShadeExpansionStateManager;
- private final QS.ScrollListener mQsScrollListener = this::onQsPanelScrollChanged;
private final FalsingTapListener mFalsingTapListener = this::falsingAdditionalTapRequired;
- private final FragmentListener mQsFragmentListener = new QsFragmentListener();
private final AccessibilityDelegate mAccessibilityDelegate = new ShadeAccessibilityDelegate();
private final NotificationGutsManager mGutsManager;
private final AlternateBouncerInteractor mAlternateBouncerInteractor;
+ private final QuickSettingsController mQsController;
private long mDownTime;
private boolean mTouchSlopExceededBeforeDown;
@@ -395,9 +379,6 @@
private KeyguardUserSwitcherController mKeyguardUserSwitcherController;
private KeyguardStatusBarView mKeyguardStatusBar;
private KeyguardStatusBarViewController mKeyguardStatusBarViewController;
- private QS mQs;
- private FrameLayout mQsFrame;
- private final QsFrameTranslateController mQsFrameTranslateController;
private KeyguardStatusViewController mKeyguardStatusViewController;
private final LockIconViewController mLockIconViewController;
private NotificationsQuickSettingsContainer mNotificationContainerParent;
@@ -405,47 +386,19 @@
private final Provider<KeyguardBottomAreaViewController>
mKeyguardBottomAreaViewControllerProvider;
private boolean mAnimateNextPositionUpdate;
- private float mQuickQsHeaderHeight;
private final ScreenOffAnimationController mScreenOffAnimationController;
private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
- private int mQsTrackingPointer;
- private VelocityTracker mQsVelocityTracker;
private TrackingStartedListener mTrackingStartedListener;
private OpenCloseListener mOpenCloseListener;
private GestureRecorder mGestureRecorder;
- private boolean mQsTracking;
- /** Whether the ongoing gesture might both trigger the expansion in both the view and QS. */
- private boolean mConflictingQsExpansionGesture;
private boolean mPanelExpanded;
- /**
- * Indicates that QS is in expanded state which can happen by:
- * - single pane shade: expanding shade and then expanding QS
- * - split shade: just expanding shade (QS are expanded automatically)
- */
- private boolean mQsExpanded;
- private boolean mQsExpandedWhenExpandingStarted;
- private boolean mQsFullyExpanded;
- private boolean mKeyguardShowing;
private boolean mKeyguardQsUserSwitchEnabled;
private boolean mKeyguardUserSwitcherEnabled;
private boolean mDozing;
private boolean mDozingOnDown;
private boolean mBouncerShowing;
private int mBarState;
- private float mInitialHeightOnTouch;
- private float mInitialTouchX;
- private float mInitialTouchY;
- private float mQsExpansionHeight;
- private int mQsMinExpansionHeight;
- private int mQsMaxExpansionHeight;
- private int mQsPeekHeight;
- private boolean mStackScrollerOverscrolling;
- private boolean mQsExpansionFromOverscroll;
- private float mLastOverscroll;
- private boolean mQsExpansionEnabledPolicy = true;
- private boolean mQsExpansionEnabledAmbient = true;
- private ValueAnimator mQsExpansionAnimator;
private FlingAnimationUtils mFlingAnimationUtils;
private int mStatusBarMinHeight;
private int mStatusBarHeaderHeightKeyguard;
@@ -455,8 +408,6 @@
private int mDisplayTopInset = 0; // in pixels
private int mDisplayRightInset = 0; // in pixels
private int mDisplayLeftInset = 0; // in pixels
- private int mLargeScreenShadeHeaderHeight;
- private int mSplitShadeNotificationsScrimMarginBottom;
private final KeyguardClockPositionAlgorithm
mClockPositionAlgorithm =
@@ -466,23 +417,7 @@
new KeyguardClockPositionAlgorithm.Result();
private boolean mIsExpanding;
- /**
- * Determines if QS should be already expanded when expanding shade.
- * Used for split shade, two finger gesture as well as accessibility shortcut to QS.
- * It needs to be set when movement starts as it resets at the end of expansion/collapse.
- */
- private boolean mQsExpandImmediate;
- private boolean mTwoFingerQsExpandPossible;
private String mHeaderDebugInfo;
- /**
- * If we are in a panel collapsing motion, we reset scrollY of our scroll view but still
- * need to take this into account in our panel height calculation.
- */
- private boolean mQsAnimatorExpand;
- private ValueAnimator mQsSizeChangeAnimator;
- private boolean mQsScrimEnabled = true;
- private boolean mQsTouchAboveFalsingThreshold;
- private int mQsFalsingThreshold;
/**
* Indicates drag starting height when swiping down or up on heads-up notifications.
@@ -564,51 +499,12 @@
private Runnable mExpandAfterLayoutRunnable;
private Runnable mHideExpandedRunnable;
- /**
- * The padding between the start of notifications and the qs boundary on the lockscreen.
- * On lockscreen, notifications aren't inset this extra amount, but we still want the
- * qs boundary to be padded.
- */
- private int mLockscreenNotificationQSPadding;
- /**
- * The amount of progress we are currently in if we're transitioning to the full shade.
- * 0.0f means we're not transitioning yet, while 1 means we're all the way in the full
- * shade. This value can also go beyond 1.1 when we're overshooting!
- */
- private float mTransitioningToFullShadeProgress;
- /**
- * Position of the qs bottom during the full shade transition. This is needed as the toppadding
- * can change during state changes, which makes it much harder to do animations
- */
- private int mTransitionToFullShadeQSPosition;
- /** Distance a full shade transition takes in order for qs to fully transition to the shade. */
- private int mDistanceForQSFullShadeTransition;
- /** The translation amount for QS for the full shade transition. */
- private float mQsTranslationForFullShadeTransition;
-
/** The maximum overshoot allowed for the top padding for the full shade transition. */
private int mMaxOverscrollAmountForPulse;
- /** Should we animate the next bounds update. */
- private boolean mAnimateNextNotificationBounds;
- /** The delay for the next bounds animation. */
- private long mNotificationBoundsAnimationDelay;
- /** The duration of the notification bounds animation. */
- private long mNotificationBoundsAnimationDuration;
/** Whether a collapse that started on the panel should allow the panel to intercept. */
private boolean mIsPanelCollapseOnQQS;
- private boolean mAnimatingQS;
- /** The end bounds of a clipping animation. */
- private final Rect mQsClippingAnimationEndBounds = new Rect();
- /** The animator for the qs clipping bounds. */
- private ValueAnimator mQsClippingAnimation = null;
- /** Whether the current animator is resetting the qs translation. */
- private boolean mIsQsTranslationResetAnimator;
- /** Whether the current animator is resetting the pulse expansion after a drag down. */
- private boolean mIsPulseExpansionResetAnimator;
- private final Rect mLastQsClipBounds = new Rect();
- private final Region mQsInterceptRegion = new Region();
/** Alpha of the views which only show on the keyguard but not in shade / shade locked. */
private float mKeyguardOnlyContentAlpha = 1.0f;
/** Y translation of the views that only show on the keyguard but in shade / shade locked. */
@@ -618,15 +514,6 @@
private boolean mIsGestureNavigation;
private int mOldLayoutDirection;
private NotificationShelfController mNotificationShelfController;
- private int mScrimCornerRadius;
- private int mScreenCornerRadius;
- private boolean mQSAnimatingHiddenFromCollapsed;
- private boolean mUseLargeScreenShadeHeader;
- private boolean mEnableQsClipping;
-
- private int mQsClipTop;
- private int mQsClipBottom;
- private boolean mQsVisible;
private final ContentResolver mContentResolver;
private float mMinFraction;
@@ -685,7 +572,6 @@
private boolean mInstantExpanding;
private boolean mAnimateAfterExpanding;
private boolean mIsFlinging;
- private boolean mLastFlingWasExpanding;
private String mViewName;
private float mInitialExpandY;
private float mInitialExpandX;
@@ -803,6 +689,7 @@
TapAgainViewController tapAgainViewController,
NavigationModeController navigationModeController,
NavigationBarController navigationBarController,
+ QuickSettingsController quickSettingsController,
FragmentService fragmentService,
ContentResolver contentResolver,
RecordingController recordingController,
@@ -812,8 +699,6 @@
ShadeExpansionStateManager shadeExpansionStateManager,
NotificationRemoteInputManager remoteInputManager,
Optional<SysUIUnfoldComponent> unfoldComponent,
- InteractionJankMonitor interactionJankMonitor,
- QsFrameTranslateController qsFrameTranslateController,
SysUiState sysUiState,
Provider<KeyguardBottomAreaViewController> keyguardBottomAreaViewControllerProvider,
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
@@ -873,6 +758,7 @@
mResources = mView.getResources();
mKeyguardStateController = keyguardStateController;
+ mQsController = quickSettingsController;
mKeyguardIndicationController = keyguardIndicationController;
mStatusBarStateController = (SysuiStatusBarStateController) statusBarStateController;
mNotificationShadeWindowController = notificationShadeWindowController;
@@ -903,7 +789,6 @@
mVibratorHelper = vibratorHelper;
mVibrateOnOpening = mResources.getBoolean(R.bool.config_vibrateOnIconAnimation);
mStatusBarTouchableRegionManager = statusBarTouchableRegionManager;
- mInteractionJankMonitor = interactionJankMonitor;
mSystemClock = systemClock;
mKeyguardMediaController = keyguardMediaController;
mMetricsLogger = metricsLogger;
@@ -939,7 +824,6 @@
mView.setAccessibilityPaneTitle(determineAccessibilityPaneTitle());
setPanelAlpha(255, false /* animate */);
mCommandQueue = commandQueue;
- mRecordingController = recordingController;
mDisplayId = displayId;
mPulseExpansionHandler = pulseExpansionHandler;
mDozeParameters = dozeParameters;
@@ -948,20 +832,19 @@
mMediaDataManager = mediaDataManager;
mTapAgainViewController = tapAgainViewController;
mSysUiState = sysUiState;
- pulseExpansionHandler.setPulseExpandAbortListener(() -> {
- if (mQs != null) {
- mQs.animateHeaderSlidingOut();
- }
- });
statusBarWindowStateController.addListener(this::onStatusBarWindowStateChanged);
mKeyguardBypassController = bypassController;
mUpdateMonitor = keyguardUpdateMonitor;
mLockscreenShadeTransitionController = lockscreenShadeTransitionController;
- mShadeTransitionController = shadeTransitionController;
lockscreenShadeTransitionController.setNotificationPanelController(this);
shadeTransitionController.setNotificationPanelViewController(this);
dynamicPrivacyController.addListener(this::onDynamicPrivacyChanged);
-
+ quickSettingsController.setExpansionHeightListener(this::onQsSetExpansionHeightCalled);
+ quickSettingsController.setQsStateUpdateListener(this::onQsStateUpdated);
+ quickSettingsController.setApplyClippingImmediatelyListener(
+ this::onQsClippingImmediatelyApplied);
+ quickSettingsController.setFlingQsWithoutClickListener(this::onFlingQsWithoutClick);
+ quickSettingsController.setExpansionHeightSetToMaxListener(this::onExpansionHeightSetToMax);
shadeExpansionStateManager.addStateListener(this::onPanelStateChanged);
mBottomAreaShadeAlphaAnimator = ValueAnimator.ofFloat(1f, 0);
@@ -976,7 +859,6 @@
mLockIconViewController = lockIconViewController;
mScreenOffAnimationController = screenOffAnimationController;
mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;
- mRemoteInputManager = remoteInputManager;
mLastDownEvents = new NPVCDownEventState.Buffer(MAX_DOWN_EVENT_BUFFER_SIZE);
int currentMode = navigationModeController.addListener(
@@ -995,7 +877,8 @@
if (DEBUG_DRAWABLE) {
mView.getOverlay().add(new DebugDrawable(this, mView,
- mNotificationStackScrollLayoutController, mLockIconViewController));
+ mNotificationStackScrollLayoutController, mLockIconViewController,
+ mQsController));
}
mKeyguardUnfoldTransition = unfoldComponent.map(
@@ -1004,8 +887,6 @@
SysUIUnfoldComponent::getNotificationPanelUnfoldAnimationController);
mUnocclusionTransitionFlagEnabled = featureFlags.isEnabled(Flags.UNOCCLUSION_TRANSITION);
-
- mQsFrameTranslateController = qsFrameTranslateController;
updateUserSwitcherFlags();
mKeyguardBottomAreaViewModel = keyguardBottomAreaViewModel;
mKeyguardBottomAreaInteractor = keyguardBottomAreaInteractor;
@@ -1121,19 +1002,16 @@
mNotificationStackScrollLayoutController.attach(stackScrollLayout);
mNotificationStackScrollLayoutController.setOnHeightChangedListener(
new NsslHeightChangedListener());
- mNotificationStackScrollLayoutController.setOverscrollTopChangedListener(
- mOnOverscrollTopChangedListener);
- mNotificationStackScrollLayoutController.setOnScrollListener(this::onNotificationScrolled);
- mNotificationStackScrollLayoutController.setOnStackYChanged(this::onStackYChanged);
mNotificationStackScrollLayoutController.setOnEmptySpaceClickListener(
mOnEmptySpaceClickListener);
+ mQsController.initNotificationStackScrollLayoutController();
+ mShadeExpansionStateManager.addQsExpansionListener(this::onQsExpansionChanged);
addTrackingHeadsUpListener(mNotificationStackScrollLayoutController::setTrackingHeadsUp);
setKeyguardBottomArea(mView.findViewById(R.id.keyguard_bottom_area));
initBottomArea();
mWakeUpCoordinator.setStackScroller(mNotificationStackScrollLayoutController);
- mQsFrame = mView.findViewById(R.id.qs_frame);
mPulseExpansionHandler.setUp(mNotificationStackScrollLayoutController);
mWakeUpCoordinator.addListener(new NotificationWakeUpCoordinator.WakeUpListener() {
@Override
@@ -1236,24 +1114,14 @@
.setMaxLengthSeconds(0.4f).build();
mStatusBarMinHeight = SystemBarUtils.getStatusBarHeight(mView.getContext());
mStatusBarHeaderHeightKeyguard = Utils.getStatusBarHeaderHeightKeyguard(mView.getContext());
- mQsPeekHeight = mResources.getDimensionPixelSize(R.dimen.qs_peek_height);
mClockPositionAlgorithm.loadDimens(mResources);
- mQsFalsingThreshold = mResources.getDimensionPixelSize(R.dimen.qs_falsing_threshold);
mIndicationBottomPadding = mResources.getDimensionPixelSize(
R.dimen.keyguard_indication_bottom_padding);
int statusbarHeight = SystemBarUtils.getStatusBarHeight(mView.getContext());
mHeadsUpInset = statusbarHeight + mResources.getDimensionPixelSize(
R.dimen.heads_up_status_bar_padding);
- mDistanceForQSFullShadeTransition = mResources.getDimensionPixelSize(
- R.dimen.lockscreen_shade_qs_transition_distance);
mMaxOverscrollAmountForPulse = mResources.getDimensionPixelSize(
R.dimen.pulse_expansion_max_top_overshoot);
- mScrimCornerRadius = mResources.getDimensionPixelSize(
- R.dimen.notification_scrim_corner_radius);
- mScreenCornerRadius = (int) ScreenDecorationsUtils.getWindowCornerRadius(
- mView.getContext());
- mLockscreenNotificationQSPadding = mResources.getDimensionPixelSize(
- R.dimen.notification_side_paddings);
mUdfpsMaxYBurnInOffset = mResources.getDimensionPixelSize(R.dimen.udfps_burn_in_offset_y);
mSplitShadeScrimTransitionDistance = mResources.getDimensionPixelSize(
R.dimen.split_shade_scrim_transition_distance);
@@ -1267,6 +1135,8 @@
R.dimen.gone_to_dreaming_transition_lockscreen_translation_y);
mLockscreenToOccludedTransitionTranslationY = mResources.getDimensionPixelSize(
R.dimen.lockscreen_to_occluded_transition_lockscreen_translation_y);
+ // TODO (b/265193930): remove this and make QsController listen to NotificationPanelViews
+ mQsController.loadDimens();
}
private void updateViewControllers(KeyguardStatusView keyguardStatusView,
@@ -1309,40 +1179,13 @@
}
public void updateResources() {
- mSplitShadeNotificationsScrimMarginBottom =
- mResources.getDimensionPixelSize(
- R.dimen.split_shade_notifications_scrim_margin_bottom);
final boolean newSplitShadeEnabled =
LargeScreenUtils.shouldUseSplitNotificationShade(mResources);
final boolean splitShadeChanged = mSplitShadeEnabled != newSplitShadeEnabled;
mSplitShadeEnabled = newSplitShadeEnabled;
-
- if (mQs != null) {
- mQs.setInSplitShade(mSplitShadeEnabled);
- }
-
- mUseLargeScreenShadeHeader =
- LargeScreenUtils.shouldUseLargeScreenShadeHeader(mView.getResources());
-
- mLargeScreenShadeHeaderHeight =
- mResources.getDimensionPixelSize(R.dimen.large_screen_shade_header_height);
- // TODO: When the flag is eventually removed, it means that we have a single view that is
- // the same height in QQS and in Large Screen (large_screen_shade_header_height). Eventually
- // the concept of largeScreenHeader or quickQsHeader will disappear outside of the class
- // that controls the view as the offset needs to be the same regardless.
- if (mUseLargeScreenShadeHeader || mFeatureFlags.isEnabled(Flags.COMBINED_QS_HEADERS)) {
- mQuickQsHeaderHeight = mLargeScreenShadeHeaderHeight;
- } else {
- mQuickQsHeaderHeight = SystemBarUtils.getQuickQsOffsetHeight(mView.getContext());
- }
- int topMargin = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight :
- mResources.getDimensionPixelSize(R.dimen.notification_panel_margin_top);
- mLargeScreenShadeHeaderController.setLargeScreenActive(mUseLargeScreenShadeHeader);
- mAmbientState.setStackTopMargin(topMargin);
+ mQsController.updateResources();
mNotificationsQSContainerController.updateResources();
-
updateKeyguardStatusViewAlignment(/* animate= */false);
-
mKeyguardMediaController.refreshMediaPosition();
if (splitShadeChanged) {
@@ -1351,17 +1194,15 @@
mSplitShadeFullTransitionDistance =
mResources.getDimensionPixelSize(R.dimen.split_shade_full_transition_distance);
-
- mEnableQsClipping = mResources.getBoolean(R.bool.qs_enable_clipping);
}
private void onSplitShadeEnabledChanged() {
// when we switch between split shade and regular shade we want to enforce setting qs to
// the default state: expanded for split shade and collapsed otherwise
if (!isOnKeyguard() && mPanelExpanded) {
- setQsExpanded(mSplitShadeEnabled);
+ mQsController.setExpanded(mSplitShadeEnabled);
}
- if (isOnKeyguard() && mQsExpanded && mSplitShadeEnabled) {
+ if (isOnKeyguard() && mQsController.getExpanded() && mSplitShadeEnabled) {
// In single column keyguard - when you swipe from the top - QS is fully expanded and
// StatusBarState is KEYGUARD. That state doesn't make sense for split shade,
// where notifications are always visible and we effectively go to fully expanded
@@ -1371,7 +1212,7 @@
mStatusBarStateController.setState(StatusBarState.SHADE_LOCKED, /* force= */false);
}
updateClockAppearance();
- updateQsState();
+ mQsController.updateQsState();
mNotificationStackScrollLayoutController.updateFooter();
}
@@ -1479,11 +1320,6 @@
mNotificationPanelUnfoldAnimationController.ifPresent(u -> u.setup(mView));
}
- @VisibleForTesting
- void setQs(QS qs) {
- mQs = qs;
- }
-
private void attachSplitShadeMediaPlayerContainer(FrameLayout container) {
mKeyguardMediaController.attachSplitShadeContainer(container);
}
@@ -1515,7 +1351,7 @@
if (SPEW_LOGCAT) Log.d(TAG, "Skipping computeMaxKeyguardNotifications() by request");
}
- if (mKeyguardShowing && !mKeyguardBypassController.getBypassEnabled()) {
+ if (getKeyguardShowing() && !mKeyguardBypassController.getBypassEnabled()) {
mNotificationStackScrollLayoutController.setMaxDisplayedNotifications(
mMaxAllowedKeyguardNotifications);
mNotificationStackScrollLayoutController.setKeyguardBottomPaddingForDebug(
@@ -1564,39 +1400,14 @@
mIsFullWidth = isFullWidth;
mScrimController.setClipsQsScrim(isFullWidth);
mNotificationStackScrollLayoutController.setIsFullWidth(isFullWidth);
- if (mQs != null) {
- mQs.setIsNotificationPanelFullWidth(isFullWidth);
- }
- }
-
- private void startQsSizeChangeAnimation(int oldHeight, final int newHeight) {
- if (mQsSizeChangeAnimator != null) {
- oldHeight = (int) mQsSizeChangeAnimator.getAnimatedValue();
- mQsSizeChangeAnimator.cancel();
- }
- mQsSizeChangeAnimator = ValueAnimator.ofInt(oldHeight, newHeight);
- mQsSizeChangeAnimator.setDuration(300);
- mQsSizeChangeAnimator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
- mQsSizeChangeAnimator.addUpdateListener(animation -> {
- requestScrollerTopPaddingUpdate(false /* animate */);
- updateExpandedHeightToMaxHeight();
- int height = (int) mQsSizeChangeAnimator.getAnimatedValue();
- mQs.setHeightOverride(height);
- });
- mQsSizeChangeAnimator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mQsSizeChangeAnimator = null;
- }
- });
- mQsSizeChangeAnimator.start();
+ mQsController.setNotificationPanelFullWidth(isFullWidth);
}
/**
* Positions the clock and notifications dynamically depending on how many notifications are
* showing.
*/
- private void positionClockAndNotifications() {
+ void positionClockAndNotifications() {
positionClockAndNotifications(false /* forceUpdate */);
}
@@ -1621,7 +1432,7 @@
// so we should not add a padding for them
stackScrollerPadding = 0;
} else {
- stackScrollerPadding = getUnlockedStackScrollerPadding();
+ stackScrollerPadding = mQsController.getUnlockedStackScrollerPadding();
}
} else {
stackScrollerPadding = mClockPositionResult.stackScrollerPaddingExpanded;
@@ -1669,8 +1480,9 @@
userSwitcherHeight,
userSwitcherPreferredY,
darkAmount, mOverStretchAmount,
- bypassEnabled, getUnlockedStackScrollerPadding(),
- computeQsExpansionFraction(),
+ bypassEnabled,
+ mQsController.getUnlockedStackScrollerPadding(),
+ mQsController.computeExpansionFraction(),
mDisplayTopInset,
mSplitShadeEnabled,
udfpsAodTopLocation,
@@ -1822,19 +1634,16 @@
return mDozing && mDozeParameters.getAlwaysOn();
}
+ boolean isDozing() {
+ return mDozing;
+ }
+
private boolean hasVisibleNotifications() {
return mNotificationStackScrollLayoutController
.getVisibleNotificationCount() != 0
|| mMediaDataManager.hasActiveMediaOrRecommendation();
}
- /**
- * @return the padding of the stackscroller when unlocked
- */
- private int getUnlockedStackScrollerPadding() {
- return (mQs != null ? mQs.getHeader().getHeight() : 0) + mQsPeekHeight;
- }
-
/** Returns space between top of lock icon and bottom of NotificationStackScrollLayout. */
private float getLockIconPadding() {
float lockIconPadding = 0f;
@@ -1952,23 +1761,23 @@
mAnimateNextPositionUpdate = true;
}
- private void setQsExpansionEnabled() {
- if (mQs == null) return;
- mQs.setHeaderClickable(isQsExpansionEnabled());
- }
+ /** Animate QS closing. */
+ public void animateCloseQs(boolean animateAway) {
+ if (mSplitShadeEnabled) {
+ collapsePanel(true, false, 1.0f);
+ } else {
+ mQsController.animateCloseQs(animateAway);
+ }
- public void setQsExpansionEnabledPolicy(boolean qsExpansionEnabledPolicy) {
- mQsExpansionEnabledPolicy = qsExpansionEnabledPolicy;
- setQsExpansionEnabled();
}
public void resetViews(boolean animate) {
mGutsManager.closeAndSaveGuts(true /* leavebehind */, true /* force */,
true /* controls */, -1 /* x */, -1 /* y */, true /* resetMenu */);
if (animate && !isFullyCollapsed()) {
- animateCloseQs(true /* animateAway */);
+ animateCloseQs(true);
} else {
- closeQs();
+ mQsController.closeQs();
}
mNotificationStackScrollLayoutController.setOverScrollAmount(0f, true /* onTop */, animate,
!animate /* cancelAnimators */);
@@ -1999,8 +1808,8 @@
return;
}
- if (mQsExpanded) {
- setQsExpandImmediate(true);
+ if (mQsController.getExpanded()) {
+ mQsController.setExpandImmediate(true);
setShowShelfOnly(true);
}
debugLog("collapse: %s", this);
@@ -2019,33 +1828,11 @@
}
}
- @VisibleForTesting
- void setQsExpandImmediate(boolean expandImmediate) {
- if (expandImmediate != mQsExpandImmediate) {
- mQsExpandImmediate = expandImmediate;
- mShadeExpansionStateManager.notifyExpandImmediateChange(expandImmediate);
- }
- }
-
- @VisibleForTesting
- boolean isQsExpandImmediate() {
- return mQsExpandImmediate;
- }
-
private void setShowShelfOnly(boolean shelfOnly) {
mNotificationStackScrollLayoutController.setShouldShowShelfOnly(
shelfOnly && !mSplitShadeEnabled);
}
- public void closeQs() {
- cancelQsAnimation();
- setQsExpansionHeight(mQsMinExpansionHeight);
- // qsExpandImmediate is a safety latch in case we're calling closeQS while we're in the
- // middle of animation - we need to make sure that value is always false when shade if
- // fully collapsed or expanded
- setQsExpandImmediate(false);
- }
-
@VisibleForTesting
void cancelHeightAnimator() {
if (mHeightAnimator != null) {
@@ -2061,39 +1848,9 @@
mView.animate().cancel();
}
- /**
- * Animate QS closing by flinging it.
- * If QS is expanded, it will collapse into QQS and stop.
- * If in split shade, it will collapse the whole shade.
- *
- * @param animateAway Do not stop when QS becomes QQS. Fling until QS isn't visible anymore.
- */
- public void animateCloseQs(boolean animateAway) {
- if (mSplitShadeEnabled) {
- collapsePanel(
- /* animate= */true, /* delayed= */false, /* speedUpFactor= */1.0f);
- return;
- }
-
- if (mQsExpansionAnimator != null) {
- if (!mQsAnimatorExpand) {
- return;
- }
- float height = mQsExpansionHeight;
- mQsExpansionAnimator.cancel();
- setQsExpansionHeight(height);
- }
- flingSettings(0 /* vel */, animateAway ? FLING_HIDE : FLING_COLLAPSE);
- }
-
- private boolean isQsExpansionEnabled() {
- return mQsExpansionEnabledPolicy && mQsExpansionEnabledAmbient
- && !mRemoteInputManager.isRemoteInputActive();
- }
-
public void expandWithQs() {
- if (isQsExpansionEnabled()) {
- setQsExpandImmediate(true);
+ if (mQsController.isExpansionEnabled()) {
+ mQsController.setExpandImmediate(true);
setShowShelfOnly(true);
}
if (mSplitShadeEnabled && isOnKeyguard()) {
@@ -2109,8 +1866,8 @@
} else if (isFullyCollapsed()) {
expand(true /* animate */);
} else {
- traceQsJank(true /* startTracing */, false /* wasCancelled */);
- flingSettings(0 /* velocity */, FLING_EXPAND);
+ mQsController.traceQsJank(true /* startTracing */, false /* wasCancelled */);
+ mQsController.flingQs(0, FLING_EXPAND);
}
}
@@ -2125,8 +1882,8 @@
if (mSplitShadeEnabled && (isShadeFullyOpen() || isExpanding())) {
return;
}
- if (isQsExpanded()) {
- flingSettings(0 /* velocity */, FLING_COLLAPSE);
+ if (mQsController.getExpanded()) {
+ mQsController.flingQs(0, FLING_COLLAPSE);
} else {
expand(true /* animate */);
}
@@ -2143,8 +1900,7 @@
@VisibleForTesting
void flingToHeight(float vel, boolean expand, float target,
float collapseSpeedUpFactor, boolean expandBecauseOfFalsing) {
- mLastFlingWasExpanding = expand;
- mShadeLog.logLastFlingWasExpanding(expand);
+ mQsController.setLastShadeFlingWasExpanding(expand);
mHeadsUpTouchHelper.notifyFling(!expand);
mKeyguardStateController.notifyPanelFlingStart(!expand /* flingingToDismiss */);
setClosingWithAlphaFadeout(!expand && !isOnKeyguard() && getFadeoutAlpha() == 1.0f);
@@ -2216,7 +1972,7 @@
@Override
public void onAnimationStart(Animator animation) {
if (!mStatusBarStateController.isDozing()) {
- beginJankMonitoring();
+ mQsController.beginJankMonitoring(isFullyCollapsed());
}
}
@@ -2248,117 +2004,15 @@
setAnimator(null);
mKeyguardStateController.notifyPanelFlingEnd();
if (!cancelled) {
- endJankMonitoring();
+ mQsController.endJankMonitoring();
notifyExpandingFinished();
} else {
- cancelJankMonitoring();
+ mQsController.cancelJankMonitoring();
}
updatePanelExpansionAndVisibility();
mNotificationStackScrollLayoutController.setPanelFlinging(false);
}
- private boolean onQsIntercept(MotionEvent event) {
- debugLog("onQsIntercept");
- int pointerIndex = event.findPointerIndex(mQsTrackingPointer);
- if (pointerIndex < 0) {
- pointerIndex = 0;
- mQsTrackingPointer = event.getPointerId(pointerIndex);
- }
- final float x = event.getX(pointerIndex);
- final float y = event.getY(pointerIndex);
-
- switch (event.getActionMasked()) {
- case MotionEvent.ACTION_DOWN:
- mInitialTouchY = y;
- mInitialTouchX = x;
- initVelocityTracker();
- trackMovement(event);
- float qsExpansionFraction = computeQsExpansionFraction();
- // Intercept the touch if QS is between fully collapsed and fully expanded state
- if (!mSplitShadeEnabled
- && qsExpansionFraction > 0.0 && qsExpansionFraction < 1.0) {
- mShadeLog.logMotionEvent(event,
- "onQsIntercept: down action, QS partially expanded/collapsed");
- return true;
- }
- if (mKeyguardShowing
- && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, 0)) {
- // Dragging down on the lockscreen statusbar should prohibit other interactions
- // immediately, otherwise we'll wait on the touchslop. This is to allow
- // dragging down to expanded quick settings directly on the lockscreen.
- mView.getParent().requestDisallowInterceptTouchEvent(true);
- }
- if (mQsExpansionAnimator != null) {
- mInitialHeightOnTouch = mQsExpansionHeight;
- mShadeLog.logMotionEvent(event,
- "onQsIntercept: down action, QS tracking enabled");
- mQsTracking = true;
- traceQsJank(true /* startTracing */, false /* wasCancelled */);
- mNotificationStackScrollLayoutController.cancelLongPress();
- }
- break;
- case MotionEvent.ACTION_POINTER_UP:
- final int upPointer = event.getPointerId(event.getActionIndex());
- if (mQsTrackingPointer == upPointer) {
- // gesture is ongoing, find a new pointer to track
- final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
- mQsTrackingPointer = event.getPointerId(newIndex);
- mInitialTouchX = event.getX(newIndex);
- mInitialTouchY = event.getY(newIndex);
- }
- break;
-
- case MotionEvent.ACTION_MOVE:
- final float h = y - mInitialTouchY;
- trackMovement(event);
- if (mQsTracking) {
-
- // Already tracking because onOverscrolled was called. We need to update here
- // so we don't stop for a frame until the next touch event gets handled in
- // onTouchEvent.
- setQsExpansionHeight(h + mInitialHeightOnTouch);
- trackMovement(event);
- return true;
- } else {
- mShadeLog.logMotionEvent(event,
- "onQsIntercept: move ignored because qs tracking disabled");
- }
- float touchSlop = getTouchSlop(event);
- if ((h > touchSlop || (h < -touchSlop && mQsExpanded))
- && Math.abs(h) > Math.abs(x - mInitialTouchX)
- && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) {
- mView.getParent().requestDisallowInterceptTouchEvent(true);
- mShadeLog.onQsInterceptMoveQsTrackingEnabled(h);
- mQsTracking = true;
- traceQsJank(true /* startTracing */, false /* wasCancelled */);
- onQsExpansionStarted();
- notifyExpandingFinished();
- mInitialHeightOnTouch = mQsExpansionHeight;
- mInitialTouchY = y;
- mInitialTouchX = x;
- mNotificationStackScrollLayoutController.cancelLongPress();
- return true;
- } else {
- mShadeLog.logQsTrackingNotStarted(mInitialTouchY, y, h, touchSlop, mQsExpanded,
- mCollapsedOnDown, mKeyguardShowing, isQsExpansionEnabled());
- }
- break;
-
- case MotionEvent.ACTION_CANCEL:
- case MotionEvent.ACTION_UP:
- trackMovement(event);
- mShadeLog.logMotionEvent(event, "onQsIntercept: up action, QS tracking disabled");
- mQsTracking = false;
- break;
- }
- return false;
- }
-
- @VisibleForTesting
- boolean isQsTracking() {
- return mQsTracking;
- }
-
private boolean isInContentBounds(float x, float y) {
float stackScrollerX = mNotificationStackScrollLayoutController.getX();
return !mNotificationStackScrollLayoutController
@@ -2367,29 +2021,14 @@
&& x < stackScrollerX + mNotificationStackScrollLayoutController.getWidth();
}
- private void traceQsJank(boolean startTracing, boolean wasCancelled) {
- if (mInteractionJankMonitor == null) {
- return;
- }
- if (startTracing) {
- mInteractionJankMonitor.begin(mView, CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE);
- } else {
- if (wasCancelled) {
- mInteractionJankMonitor.cancel(CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE);
- } else {
- mInteractionJankMonitor.end(CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE);
- }
- }
- }
-
private void initDownStates(MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
- mQsTouchAboveFalsingThreshold = mQsFullyExpanded;
mDozingOnDown = mDozing;
mDownX = event.getX();
mDownY = event.getY();
mCollapsedOnDown = isFullyCollapsed();
- mIsPanelCollapseOnQQS = canPanelCollapseOnQQS(mDownX, mDownY);
+ mQsController.setCollapsedOnDown(mCollapsedOnDown);
+ mIsPanelCollapseOnQQS = mQsController.canPanelCollapseOnQQS(mDownX, mDownY);
mListenForHeadsUp = mCollapsedOnDown && mHeadsUpManager.hasPinnedHeadsUp();
mAllowExpandForSmallExpansion = mExpectingSynthesizedDown;
mTouchSlopExceededBeforeDown = mExpectingSynthesizedDown;
@@ -2399,7 +2038,7 @@
event.getEventTime(),
mDownX,
mDownY,
- mQsTouchAboveFalsingThreshold,
+ mQsController.updateAndGetTouchAboveFalsingThreshold(),
mDozingOnDown,
mCollapsedOnDown,
mIsPanelCollapseOnQQS,
@@ -2414,84 +2053,14 @@
}
}
- /**
- * Can the panel collapse in this motion because it was started on QQS?
- *
- * @param downX the x location where the touch started
- * @param downY the y location where the touch started
- * @return true if the panel could be collapsed because it stared on QQS
- */
- private boolean canPanelCollapseOnQQS(float downX, float downY) {
- if (mCollapsedOnDown || mKeyguardShowing || mQsExpanded) {
- return false;
- }
- View header = mQs == null ? mKeyguardStatusBar : mQs.getHeader();
- return downX >= mQsFrame.getX() && downX <= mQsFrame.getX() + mQsFrame.getWidth()
- && downY <= header.getBottom();
-
- }
-
- private void flingQsWithCurrentVelocity(float y, boolean isCancelMotionEvent) {
- float vel = getCurrentQSVelocity();
- boolean expandsQs = flingExpandsQs(vel);
- if (expandsQs) {
- if (mFalsingManager.isUnlockingDisabled() || isFalseTouch()) {
- expandsQs = false;
- } else {
- logQsSwipeDown(y);
- }
- } else if (vel < 0) {
- mFalsingManager.isFalseTouch(QS_COLLAPSE);
- }
-
- int flingType;
- if (expandsQs && !isCancelMotionEvent) {
- flingType = FLING_EXPAND;
- } else if (mSplitShadeEnabled) {
- flingType = FLING_HIDE;
- } else {
- flingType = FLING_COLLAPSE;
- }
- flingSettings(vel, flingType);
- }
-
- private void logQsSwipeDown(float y) {
- float vel = getCurrentQSVelocity();
- final int
- gesture =
- mBarState == KEYGUARD ? MetricsEvent.ACTION_LS_QS
- : MetricsEvent.ACTION_SHADE_QS_PULL;
- mLockscreenGestureLogger.write(gesture,
- (int) ((y - mInitialTouchY) / mCentralSurfaces.getDisplayDensity()),
- (int) (vel / mCentralSurfaces.getDisplayDensity()));
- }
-
- private boolean flingExpandsQs(float vel) {
+ boolean flingExpandsQs(float vel) {
if (Math.abs(vel) < mFlingAnimationUtils.getMinVelocityPxPerSecond()) {
- return computeQsExpansionFraction() > 0.5f;
+ return mQsController.computeExpansionFraction() > 0.5f;
} else {
return vel > 0;
}
}
- private boolean isFalseTouch() {
- if (mFalsingManager.isClassifierEnabled()) {
- return mFalsingManager.isFalseTouch(Classifier.QUICK_SETTINGS);
- }
- return !mQsTouchAboveFalsingThreshold;
- }
-
- private float computeQsExpansionFraction() {
- if (mQSAnimatingHiddenFromCollapsed) {
- // When hiding QS from collapsed state, the expansion can sometimes temporarily
- // be larger than 0 because of the timing, leading to flickers.
- return 0.0f;
- }
- return Math.min(
- 1f, (mQsExpansionHeight - mQsMinExpansionHeight) / (mQsMaxExpansionHeight
- - mQsMinExpansionHeight));
- }
-
private boolean shouldExpandWhenNotFlinging() {
if (getExpandedFraction() > 0.5f) {
return true;
@@ -2509,121 +2078,13 @@
return mNotificationStackScrollLayoutController.getOpeningHeight();
}
-
- private boolean handleQsTouch(MotionEvent event) {
- if (isSplitShadeAndTouchXOutsideQs(event.getX())) {
- return false;
- }
- final int action = event.getActionMasked();
- boolean collapsedQs = !mQsExpanded && !mSplitShadeEnabled;
- boolean expandedShadeCollapsedQs = getExpandedFraction() == 1f && mBarState != KEYGUARD
- && collapsedQs && isQsExpansionEnabled();
- if (action == MotionEvent.ACTION_DOWN && expandedShadeCollapsedQs) {
- // Down in the empty area while fully expanded - go to QS.
- mShadeLog.logMotionEvent(event, "handleQsTouch: down action, QS tracking enabled");
- mQsTracking = true;
- traceQsJank(true /* startTracing */, false /* wasCancelled */);
- mConflictingQsExpansionGesture = true;
- onQsExpansionStarted();
- mInitialHeightOnTouch = mQsExpansionHeight;
- mInitialTouchY = event.getY();
- mInitialTouchX = event.getX();
- }
- if (!isFullyCollapsed() && !isShadeOrQsHeightAnimationRunning()) {
- handleQsDown(event);
- }
- // defer touches on QQS to shade while shade is collapsing. Added margin for error
- // as sometimes the qsExpansionFraction can be a tiny value instead of 0 when in QQS.
- if (!mSplitShadeEnabled && !mLastFlingWasExpanding
- && computeQsExpansionFraction() <= 0.01 && getExpandedFraction() < 1.0) {
- mShadeLog.logMotionEvent(event,
- "handleQsTouch: shade touched while collapsing, QS tracking disabled");
- mQsTracking = false;
- }
- if (!mQsExpandImmediate && mQsTracking) {
- onQsTouch(event);
- if (!mConflictingQsExpansionGesture && !mSplitShadeEnabled) {
- mShadeLog.logMotionEvent(event,
- "handleQsTouch: not immediate expand or conflicting gesture");
- return true;
- }
- }
- if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
- mConflictingQsExpansionGesture = false;
- }
- if (action == MotionEvent.ACTION_DOWN && isFullyCollapsed() && isQsExpansionEnabled()) {
- mTwoFingerQsExpandPossible = true;
- }
- if (mTwoFingerQsExpandPossible && isOpenQsEvent(event) && event.getY(event.getActionIndex())
- < mStatusBarMinHeight) {
- mMetricsLogger.count(COUNTER_PANEL_OPEN_QS, 1);
- setQsExpandImmediate(true);
- setShowShelfOnly(true);
- updateExpandedHeightToMaxHeight();
-
- // Normally, we start listening when the panel is expanded, but here we need to start
- // earlier so the state is already up to date when dragging down.
- setListening(true);
- }
- return false;
+ float getDisplayDensity() {
+ return mCentralSurfaces.getDisplayDensity();
}
- /** Returns whether split shade is enabled and an x coordinate is outside of the QS frame. */
- private boolean isSplitShadeAndTouchXOutsideQs(float touchX) {
- return mSplitShadeEnabled && (touchX < mQsFrame.getX()
- || touchX > mQsFrame.getX() + mQsFrame.getWidth());
- }
-
- private boolean isInQsArea(float x, float y) {
- if (isSplitShadeAndTouchXOutsideQs(x)) {
- return false;
- }
- // Let's reject anything at the very bottom around the home handle in gesture nav
- if (mIsGestureNavigation && y > mView.getHeight() - mNavigationBarBottomHeight) {
- return false;
- }
- return y <= mNotificationStackScrollLayoutController.getBottomMostNotificationBottom()
- || y <= mQs.getView().getY() + mQs.getView().getHeight();
- }
-
- private boolean isOpenQsEvent(MotionEvent event) {
- final int pointerCount = event.getPointerCount();
- final int action = event.getActionMasked();
-
- final boolean
- twoFingerDrag =
- action == MotionEvent.ACTION_POINTER_DOWN && pointerCount == 2;
-
- final boolean
- stylusButtonClickDrag =
- action == MotionEvent.ACTION_DOWN && (event.isButtonPressed(
- MotionEvent.BUTTON_STYLUS_PRIMARY) || event.isButtonPressed(
- MotionEvent.BUTTON_STYLUS_SECONDARY));
-
- final boolean
- mouseButtonClickDrag =
- action == MotionEvent.ACTION_DOWN && (event.isButtonPressed(
- MotionEvent.BUTTON_SECONDARY) || event.isButtonPressed(
- MotionEvent.BUTTON_TERTIARY));
-
- return twoFingerDrag || stylusButtonClickDrag || mouseButtonClickDrag;
- }
-
- private void handleQsDown(MotionEvent event) {
- if (event.getActionMasked() == MotionEvent.ACTION_DOWN && shouldQuickSettingsIntercept(
- event.getX(), event.getY(), -1)) {
- debugLog("handleQsDown");
- mFalsingCollector.onQsDown();
- mShadeLog.logMotionEvent(event, "handleQsDown: down action, QS tracking enabled");
- mQsTracking = true;
- onQsExpansionStarted();
- mInitialHeightOnTouch = mQsExpansionHeight;
- mInitialTouchY = event.getY();
- mInitialTouchX = event.getX();
-
- // If we interrupt an expansion gesture here, make sure to update the state correctly.
- notifyExpandingFinished();
- }
+ /** Return whether a touch is near the gesture handle at the bottom of screen */
+ public boolean isInGestureNavHomeHandleArea(float x, float y) {
+ return mIsGestureNavigation && y > mView.getHeight() - mNavigationBarBottomHeight;
}
/** Input focus transfer is about to happen. */
@@ -2680,7 +2141,7 @@
}
// If we are already running a QS expansion, make sure that we keep the panel open.
- if (mQsExpansionAnimator != null) {
+ if (mQsController.isExpansionAnimating()) {
expands = true;
}
return expands;
@@ -2694,124 +2155,9 @@
return isFullyCollapsed() || mBarState != StatusBarState.SHADE;
}
- private void onQsTouch(MotionEvent event) {
- int pointerIndex = event.findPointerIndex(mQsTrackingPointer);
- if (pointerIndex < 0) {
- pointerIndex = 0;
- mQsTrackingPointer = event.getPointerId(pointerIndex);
- }
- final float y = event.getY(pointerIndex);
- final float x = event.getX(pointerIndex);
- final float h = y - mInitialTouchY;
-
- switch (event.getActionMasked()) {
- case MotionEvent.ACTION_DOWN:
- mShadeLog.logMotionEvent(event, "onQsTouch: down action, QS tracking enabled");
- mQsTracking = true;
- traceQsJank(true /* startTracing */, false /* wasCancelled */);
- mInitialTouchY = y;
- mInitialTouchX = x;
- onQsExpansionStarted();
- mInitialHeightOnTouch = mQsExpansionHeight;
- initVelocityTracker();
- trackMovement(event);
- break;
-
- case MotionEvent.ACTION_POINTER_UP:
- final int upPointer = event.getPointerId(event.getActionIndex());
- if (mQsTrackingPointer == upPointer) {
- // gesture is ongoing, find a new pointer to track
- final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
- final float newY = event.getY(newIndex);
- final float newX = event.getX(newIndex);
- mQsTrackingPointer = event.getPointerId(newIndex);
- mInitialHeightOnTouch = mQsExpansionHeight;
- mInitialTouchY = newY;
- mInitialTouchX = newX;
- }
- break;
-
- case MotionEvent.ACTION_MOVE:
- debugLog("onQSTouch move");
- mShadeLog.logMotionEvent(event, "onQsTouch: move action, setting QS expansion");
- setQsExpansionHeight(h + mInitialHeightOnTouch);
- if (h >= getFalsingThreshold()) {
- mQsTouchAboveFalsingThreshold = true;
- }
- trackMovement(event);
- break;
-
- case MotionEvent.ACTION_UP:
- case MotionEvent.ACTION_CANCEL:
- mShadeLog.logMotionEvent(event,
- "onQsTouch: up/cancel action, QS tracking disabled");
- mQsTracking = false;
- mQsTrackingPointer = -1;
- trackMovement(event);
- float fraction = computeQsExpansionFraction();
- if (fraction != 0f || y >= mInitialTouchY) {
- flingQsWithCurrentVelocity(y,
- event.getActionMasked() == MotionEvent.ACTION_CANCEL);
- } else {
- traceQsJank(false /* startTracing */,
- event.getActionMasked() == MotionEvent.ACTION_CANCEL);
- }
- if (mQsVelocityTracker != null) {
- mQsVelocityTracker.recycle();
- mQsVelocityTracker = null;
- }
- break;
- }
- }
-
- private int getFalsingThreshold() {
+ int getFalsingThreshold() {
float factor = mCentralSurfaces.isWakeUpComingFromTouch() ? 1.5f : 1.0f;
- return (int) (mQsFalsingThreshold * factor);
- }
-
- private void setOverScrolling(boolean overscrolling) {
- mStackScrollerOverscrolling = overscrolling;
- if (mQs == null) return;
- mQs.setOverscrolling(overscrolling);
- }
-
- private void onQsExpansionStarted() {
- cancelQsAnimation();
- cancelHeightAnimator();
-
- // Reset scroll position and apply that position to the expanded height.
- float height = mQsExpansionHeight;
- setQsExpansionHeight(height);
- mNotificationStackScrollLayoutController.checkSnoozeLeavebehind();
-
- // When expanding QS, let's authenticate the user if possible,
- // this will speed up notification actions.
- if (height == 0 && !mKeyguardStateController.canDismissLockScreen()) {
- mUpdateMonitor.requestFaceAuth(FaceAuthApiRequestReason.QS_EXPANDED);
- }
- }
-
- @VisibleForTesting
- void setQsExpanded(boolean expanded) {
- boolean changed = mQsExpanded != expanded;
- if (changed) {
- mQsExpanded = expanded;
- updateQsState();
- updateExpandedHeightToMaxHeight();
- setStatusAccessibilityImportance(expanded
- ? View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
- : View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
- updateSystemUiStateFlags();
- NavigationBarView navigationBarView =
- mNavigationBarController.getNavigationBarView(mDisplayId);
- if (navigationBarView != null) {
- navigationBarView.onStatusBarPanelStateChanged();
- }
- mShadeExpansionStateManager.onQsExpansionChanged(expanded);
- mShadeLog.logQsExpansionChanged("QS Expansion Changed.", expanded,
- mQsMinExpansionHeight, mQsMaxExpansionHeight, mStackScrollerOverscrolling,
- mDozing, mQsAnimatorExpand, mAnimatingQS);
- }
+ return (int) (mQsController.getFalsingThreshold() * factor);
}
private void maybeAnimateBottomAreaAlpha() {
@@ -2843,403 +2189,29 @@
}
}
- private void updateQsState() {
- boolean qsFullScreen = mQsExpanded && !mSplitShadeEnabled;
- mNotificationStackScrollLayoutController.setQsFullScreen(qsFullScreen);
- mNotificationStackScrollLayoutController.setScrollingEnabled(
- mBarState != KEYGUARD && (!qsFullScreen || mQsExpansionFromOverscroll));
-
- if (mKeyguardUserSwitcherController != null && mQsExpanded
- && !mStackScrollerOverscrolling) {
- mKeyguardUserSwitcherController.closeSwitcherIfOpenAndNotSimple(true);
- }
- if (mQs == null) return;
- mQs.setExpanded(mQsExpanded);
- }
-
- void setQsExpansionHeight(float height) {
- height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight);
- mQsFullyExpanded = height == mQsMaxExpansionHeight && mQsMaxExpansionHeight != 0;
- boolean qsAnimatingAway = !mQsAnimatorExpand && mAnimatingQS;
- if (height > mQsMinExpansionHeight && !mQsExpanded && !mStackScrollerOverscrolling
- && !mDozing && !qsAnimatingAway) {
- setQsExpanded(true);
- } else if (height <= mQsMinExpansionHeight && mQsExpanded) {
- setQsExpanded(false);
- }
- mQsExpansionHeight = height;
- updateQsExpansion();
- requestScrollerTopPaddingUpdate(false /* animate */);
- mKeyguardStatusBarViewController.updateViewState();
- if (mBarState == StatusBarState.SHADE_LOCKED || mBarState == KEYGUARD) {
- updateKeyguardBottomAreaAlpha();
- positionClockAndNotifications();
- }
-
- if (mAccessibilityManager.isEnabled()) {
- mView.setAccessibilityPaneTitle(determineAccessibilityPaneTitle());
- }
-
- if (!mFalsingManager.isUnlockingDisabled() && mQsFullyExpanded
- && mFalsingCollector.shouldEnforceBouncer()) {
- mCentralSurfaces.executeRunnableDismissingKeyguard(null, null /* cancelAction */,
- false /* dismissShade */, true /* afterKeyguardGone */, false /* deferred */);
- }
- if (DEBUG_DRAWABLE) {
- mView.invalidate();
- }
- }
-
- private void updateQsExpansion() {
- if (mQs == null) return;
- final float squishiness;
- if ((mQsExpandImmediate || mQsExpanded) && !mSplitShadeEnabled) {
- squishiness = 1;
- } else if (mTransitioningToFullShadeProgress > 0.0f) {
- squishiness = mLockscreenShadeTransitionController.getQsSquishTransitionFraction();
- } else {
- squishiness = mNotificationStackScrollLayoutController
- .getNotificationSquishinessFraction();
- }
- final float qsExpansionFraction = computeQsExpansionFraction();
- final float adjustedExpansionFraction = mSplitShadeEnabled
- ? 1f : computeQsExpansionFraction();
- mQs.setQsExpansion(adjustedExpansionFraction, getExpandedFraction(), getHeaderTranslation(),
- squishiness);
- mMediaHierarchyManager.setQsExpansion(qsExpansionFraction);
- int qsPanelBottomY = calculateQsBottomPosition(qsExpansionFraction);
- mScrimController.setQsPosition(qsExpansionFraction, qsPanelBottomY);
- setQSClippingBounds();
-
- if (mSplitShadeEnabled) {
- // In split shade we want to pretend that QS are always collapsed so their behaviour and
- // interactions don't influence notifications as they do in portrait. But we want to set
- // 0 explicitly in case we're rotating from non-split shade with QS expansion of 1.
- mNotificationStackScrollLayoutController.setQsExpansionFraction(0);
- } else {
- mNotificationStackScrollLayoutController.setQsExpansionFraction(qsExpansionFraction);
- }
-
- mDepthController.setQsPanelExpansion(qsExpansionFraction);
- mStatusBarKeyguardViewManager.setQsExpansion(qsExpansionFraction);
-
- float shadeExpandedFraction = isOnKeyguard()
- ? getLockscreenShadeDragProgress()
- : getExpandedFraction();
- mLargeScreenShadeHeaderController.setShadeExpandedFraction(shadeExpandedFraction);
- mLargeScreenShadeHeaderController.setQsExpandedFraction(qsExpansionFraction);
- mLargeScreenShadeHeaderController.setQsVisible(mQsVisible);
- }
-
- private float getLockscreenShadeDragProgress() {
+ /** */
+ public float getLockscreenShadeDragProgress() {
// mTransitioningToFullShadeProgress > 0 means we're doing regular lockscreen to shade
// transition. If that's not the case we should follow QS expansion fraction for when
// user is pulling from the same top to go directly to expanded QS
- return mTransitioningToFullShadeProgress > 0
+ return mQsController.getTransitioningToFullShadeProgress() > 0
? mLockscreenShadeTransitionController.getQSDragProgress()
- : computeQsExpansionFraction();
+ : mQsController.computeExpansionFraction();
}
- private void onStackYChanged(boolean shouldAnimate) {
- if (mQs != null) {
- if (shouldAnimate) {
- animateNextNotificationBounds(StackStateAnimator.ANIMATION_DURATION_STANDARD,
- 0 /* delay */);
- mNotificationBoundsAnimationDelay = 0;
- }
- setQSClippingBounds();
- }
- }
-
- private void onNotificationScrolled(int newScrollPosition) {
- updateQSExpansionEnabledAmbient();
- }
-
- private void updateQSExpansionEnabledAmbient() {
- final float scrollRangeToTop = mAmbientState.getTopPadding() - mQuickQsHeaderHeight;
- mQsExpansionEnabledAmbient = mSplitShadeEnabled
- || (mAmbientState.getScrollY() <= scrollRangeToTop);
- setQsExpansionEnabled();
- }
-
- /**
- * Updates scrim bounds, QS clipping, notifications clipping and keyguard status view clipping
- * as well based on the bounds of the shade and QS state.
- */
- private void setQSClippingBounds() {
- float qsExpansionFraction = computeQsExpansionFraction();
- final int qsPanelBottomY = calculateQsBottomPosition(qsExpansionFraction);
- final boolean qsVisible = (qsExpansionFraction > 0 || qsPanelBottomY > 0);
- checkCorrectScrimVisibility(qsExpansionFraction);
-
- int top = calculateTopQsClippingBound(qsPanelBottomY);
- int bottom = calculateBottomQsClippingBound(top);
- int left = calculateLeftQsClippingBound();
- int right = calculateRightQsClippingBound();
- // top should never be lower than bottom, otherwise it will be invisible.
- top = Math.min(top, bottom);
- applyQSClippingBounds(left, top, right, bottom, qsVisible);
- }
-
- private void checkCorrectScrimVisibility(float expansionFraction) {
- // issues with scrims visible on keyguard occur only in split shade
- if (mSplitShadeEnabled) {
- boolean keyguardViewsVisible = mBarState == KEYGUARD && mKeyguardOnlyContentAlpha == 1;
- // expansionFraction == 1 means scrims are fully visible as their size/visibility depend
- // on QS expansion
- if (expansionFraction == 1 && keyguardViewsVisible) {
- Log.wtf(TAG,
- "Incorrect state, scrim is visible at the same time when clock is visible");
- }
- }
- }
-
- private int calculateTopQsClippingBound(int qsPanelBottomY) {
- int top;
- if (mSplitShadeEnabled) {
- top = Math.min(qsPanelBottomY, mLargeScreenShadeHeaderHeight);
- } else {
- if (mTransitioningToFullShadeProgress > 0.0f) {
- // If we're transitioning, let's use the actual value. The else case
- // can be wrong during transitions when waiting for the keyguard to unlock
- top = mTransitionToFullShadeQSPosition;
- } else {
- final float notificationTop = getQSEdgePosition();
- if (isOnKeyguard()) {
- if (mKeyguardBypassController.getBypassEnabled()) {
- // When bypassing on the keyguard, let's use the panel bottom.
- // this should go away once we unify the stackY position and don't have
- // to do this min anymore below.
- top = qsPanelBottomY;
- } else {
- top = (int) Math.min(qsPanelBottomY, notificationTop);
- }
- } else {
- top = (int) notificationTop;
- }
- }
- top += mOverStretchAmount;
- // Correction for instant expansion caused by HUN pull down/
- if (mMinFraction > 0f && mMinFraction < 1f) {
- float realFraction =
- (getExpandedFraction() - mMinFraction) / (1f - mMinFraction);
- top *= MathUtils.saturate(realFraction / mMinFraction);
- }
- }
- return top;
- }
-
- private int calculateBottomQsClippingBound(int top) {
- if (mSplitShadeEnabled) {
- return top + mNotificationStackScrollLayoutController.getHeight()
- + mSplitShadeNotificationsScrimMarginBottom;
- } else {
- return mView.getBottom();
- }
- }
-
- private int calculateLeftQsClippingBound() {
- if (mIsFullWidth) {
- // left bounds can ignore insets, it should always reach the edge of the screen
- return 0;
- } else {
- return mNotificationStackScrollLayoutController.getLeft() + mDisplayLeftInset;
- }
- }
-
- private int calculateRightQsClippingBound() {
- if (mIsFullWidth) {
- return mView.getRight() + mDisplayRightInset;
- } else {
- return mNotificationStackScrollLayoutController.getRight() + mDisplayLeftInset;
- }
- }
-
- /**
- * Applies clipping to quick settings, notifications layout and
- * updates bounds of the notifications background (notifications scrim).
- *
- * The parameters are bounds of the notifications area rectangle, this function
- * calculates bounds for the QS clipping based on the notifications bounds.
- */
- private void applyQSClippingBounds(int left, int top, int right, int bottom,
- boolean qsVisible) {
- if (!mAnimateNextNotificationBounds || mLastQsClipBounds.isEmpty()) {
- if (mQsClippingAnimation != null) {
- // update the end position of the animator
- mQsClippingAnimationEndBounds.set(left, top, right, bottom);
- } else {
- applyQSClippingImmediately(left, top, right, bottom, qsVisible);
- }
- } else {
- mQsClippingAnimationEndBounds.set(left, top, right, bottom);
- final int startLeft = mLastQsClipBounds.left;
- final int startTop = mLastQsClipBounds.top;
- final int startRight = mLastQsClipBounds.right;
- final int startBottom = mLastQsClipBounds.bottom;
- if (mQsClippingAnimation != null) {
- mQsClippingAnimation.cancel();
- }
- mQsClippingAnimation = ValueAnimator.ofFloat(0.0f, 1.0f);
- mQsClippingAnimation.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
- mQsClippingAnimation.setDuration(mNotificationBoundsAnimationDuration);
- mQsClippingAnimation.setStartDelay(mNotificationBoundsAnimationDelay);
- mQsClippingAnimation.addUpdateListener(animation -> {
- float fraction = animation.getAnimatedFraction();
- int animLeft = (int) MathUtils.lerp(startLeft,
- mQsClippingAnimationEndBounds.left, fraction);
- int animTop = (int) MathUtils.lerp(startTop,
- mQsClippingAnimationEndBounds.top, fraction);
- int animRight = (int) MathUtils.lerp(startRight,
- mQsClippingAnimationEndBounds.right, fraction);
- int animBottom = (int) MathUtils.lerp(startBottom,
- mQsClippingAnimationEndBounds.bottom, fraction);
- applyQSClippingImmediately(animLeft, animTop, animRight, animBottom,
- qsVisible /* qsVisible */);
- });
- mQsClippingAnimation.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mQsClippingAnimation = null;
- mIsQsTranslationResetAnimator = false;
- mIsPulseExpansionResetAnimator = false;
- }
- });
- mQsClippingAnimation.start();
- }
- mAnimateNextNotificationBounds = false;
- mNotificationBoundsAnimationDelay = 0;
- }
-
- private void applyQSClippingImmediately(int left, int top, int right, int bottom,
- boolean qsVisible) {
- int radius = mScrimCornerRadius;
- boolean clipStatusView = false;
- mLastQsClipBounds.set(left, top, right, bottom);
- if (mIsFullWidth) {
- clipStatusView = qsVisible;
- float screenCornerRadius = mRecordingController.isRecording() ? 0 : mScreenCornerRadius;
- radius = (int) MathUtils.lerp(screenCornerRadius, mScrimCornerRadius,
- Math.min(top / (float) mScrimCornerRadius, 1f));
- }
- if (mQs != null) {
- float qsTranslation = 0;
- boolean pulseExpanding = mPulseExpansionHandler.isExpanding();
- if (mTransitioningToFullShadeProgress > 0.0f || pulseExpanding
- || (mQsClippingAnimation != null
- && (mIsQsTranslationResetAnimator || mIsPulseExpansionResetAnimator))) {
- if (pulseExpanding || mIsPulseExpansionResetAnimator) {
- // qsTranslation should only be positive during pulse expansion because it's
- // already translating in from the top
- qsTranslation = Math.max(0, (top - mQs.getHeader().getHeight()) / 2.0f);
- } else if (!mSplitShadeEnabled) {
- qsTranslation = (top - mQs.getHeader().getHeight()) * QS_PARALLAX_AMOUNT;
- }
- }
- mQsTranslationForFullShadeTransition = qsTranslation;
- updateQsFrameTranslation();
- float currentTranslation = mQsFrame.getTranslationY();
- mQsClipTop = mEnableQsClipping
- ? (int) (top - currentTranslation - mQsFrame.getTop()) : 0;
- mQsClipBottom = mEnableQsClipping
- ? (int) (bottom - currentTranslation - mQsFrame.getTop()) : 0;
- mQsVisible = qsVisible;
- mQs.setQsVisible(mQsVisible);
- mQs.setFancyClipping(
- mQsClipTop,
- mQsClipBottom,
- radius,
- qsVisible && !mSplitShadeEnabled);
- mKeyguardInteractor.setQuickSettingsVisible(mQsVisible);
- }
- // The padding on this area is large enough that we can use a cheaper clipping strategy
- mKeyguardStatusViewController.setClipBounds(clipStatusView ? mLastQsClipBounds : null);
- // Increase the height of the notifications scrim when not in split shade
- // (e.g. portrait tablet) so the rounded corners are not visible at the bottom,
- // in this case they are rendered off-screen
- final int notificationsScrimBottom = mSplitShadeEnabled ? bottom : bottom + radius;
- mScrimController.setNotificationsBounds(left, top, right, notificationsScrimBottom);
-
- if (mSplitShadeEnabled) {
- mKeyguardStatusBarViewController.setNoTopClipping();
- } else {
- mKeyguardStatusBarViewController.updateTopClipping(top);
- }
-
- mScrimController.setScrimCornerRadius(radius);
-
- // Convert global clipping coordinates to local ones,
- // relative to NotificationStackScrollLayout
- int nsslLeft = calculateNsslLeft(left);
- int nsslRight = calculateNsslRight(right);
- int nsslTop = getNotificationsClippingTopBounds(top);
- int nsslBottom = bottom - mNotificationStackScrollLayoutController.getTop();
- int bottomRadius = mSplitShadeEnabled ? radius : 0;
- int topRadius = mSplitShadeEnabled && mExpandingFromHeadsUp ? 0 : radius;
- mNotificationStackScrollLayoutController.setRoundedClippingBounds(
- nsslLeft, nsslTop, nsslRight, nsslBottom, topRadius, bottomRadius);
- }
-
- private int calculateNsslLeft(int nsslLeftAbsolute) {
- int left = nsslLeftAbsolute - mNotificationStackScrollLayoutController.getLeft();
- if (mIsFullWidth) {
- return left;
- }
- return left - mDisplayLeftInset;
- }
-
- private int calculateNsslRight(int nsslRightAbsolute) {
- int right = nsslRightAbsolute - mNotificationStackScrollLayoutController.getLeft();
- if (mIsFullWidth) {
- return right;
- }
- return right - mDisplayLeftInset;
- }
-
- private int getNotificationsClippingTopBounds(int qsTop) {
- if (mSplitShadeEnabled && mExpandingFromHeadsUp) {
- // in split shade nssl has extra top margin so clipping at top 0 is not enough, we need
- // to set top clipping bound to negative value to allow HUN to go up to the top edge of
- // the screen without clipping.
- return -mAmbientState.getStackTopMargin();
- } else {
- return qsTop - mNotificationStackScrollLayoutController.getTop();
- }
- }
-
- private float getQSEdgePosition() {
- // TODO: replace StackY with unified calculation
- return Math.max(mQuickQsHeaderHeight * mAmbientState.getExpansionFraction(),
- mAmbientState.getStackY()
- // need to adjust for extra margin introduced by large screen shade header
- + mAmbientState.getStackTopMargin() * mAmbientState.getExpansionFraction()
- - mAmbientState.getScrollY());
- }
-
- private int calculateQsBottomPosition(float qsExpansionFraction) {
- if (mTransitioningToFullShadeProgress > 0.0f) {
- return mTransitionToFullShadeQSPosition;
- } else if (mSplitShadeEnabled) {
- // in split shade - outside lockscreen transition handled above - we simply jump between
- // two qs expansion values - either shade is closed and qs expansion is 0 or shade is
- // open and qs expansion is 1
- int qsBottomTarget = mQs.getDesiredHeight() + mLargeScreenShadeHeaderHeight;
- return qsExpansionFraction > 0 ? qsBottomTarget : 0;
- } else {
- int qsBottomYFrom = (int) getHeaderTranslation() + mQs.getQsMinExpansionHeight();
- int expandedTopMargin = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight : 0;
- int qsBottomYTo = mQs.getDesiredHeight() + expandedTopMargin;
- return (int) MathUtils.lerp(qsBottomYFrom, qsBottomYTo, qsExpansionFraction);
- }
- }
-
- private String determineAccessibilityPaneTitle() {
- if (mQs != null && mQs.isCustomizing()) {
+ String determineAccessibilityPaneTitle() {
+ if (mQsController != null && mQsController.isCustomizing()) {
return mResources.getString(R.string.accessibility_desc_quick_settings_edit);
- } else if (mQsExpansionHeight != 0.0f && mQsFullyExpanded) {
+ } else if (mQsController != null && mQsController.getExpansionHeight() != 0.0f
+ && mQsController.getFullyExpanded()) {
// Upon initialisation when we are not layouted yet we don't want to announce that we
// are fully expanded, hence the != 0.0f check.
- return mResources.getString(R.string.accessibility_desc_quick_settings);
+ if (mSplitShadeEnabled) {
+ // In split shade, QS is expanded but it also shows notifications
+ return mResources.getString(R.string.accessibility_desc_qs_notification_shade);
+ } else {
+ return mResources.getString(R.string.accessibility_desc_quick_settings);
+ }
} else if (mBarState == KEYGUARD) {
return mResources.getString(R.string.accessibility_desc_lock_screen);
} else {
@@ -3247,42 +2219,27 @@
}
}
- float calculateNotificationsTopPadding() {
- if (mSplitShadeEnabled) {
- return mKeyguardShowing ? getKeyguardNotificationStaticPadding() : 0;
+ /** Returns the topPadding of notifications when on keyguard not respecting QS expansion. */
+ public int getKeyguardNotificationStaticPadding() {
+ if (!getKeyguardShowing()) {
+ return 0;
}
- if (mKeyguardShowing && (mQsExpandImmediate
- || mIsExpanding && mQsExpandedWhenExpandingStarted)) {
-
- // Either QS pushes the notifications down when fully expanded, or QS is fully above the
- // notifications (mostly on tablets). maxNotificationPadding denotes the normal top
- // padding on Keyguard, maxQsPadding denotes the top padding from the quick settings
- // panel. We need to take the maximum and linearly interpolate with the panel expansion
- // for a nice motion.
- int maxNotificationPadding = getKeyguardNotificationStaticPadding();
- int maxQsPadding = mQsMaxExpansionHeight;
- int max = mBarState == KEYGUARD ? Math.max(
- maxNotificationPadding, maxQsPadding) : maxQsPadding;
- return (int) MathUtils.lerp((float) mQsMinExpansionHeight, (float) max,
- getExpandedFraction());
- } else if (mQsSizeChangeAnimator != null) {
- return Math.max(
- (int) mQsSizeChangeAnimator.getAnimatedValue(),
- getKeyguardNotificationStaticPadding());
- } else if (mKeyguardShowing) {
- // We can only do the smoother transition on Keyguard when we also are not collapsing
- // from a scrolled quick settings.
- return MathUtils.lerp((float) getKeyguardNotificationStaticPadding(),
- (float) (mQsMaxExpansionHeight),
- computeQsExpansionFraction());
+ if (!mKeyguardBypassController.getBypassEnabled()) {
+ return mClockPositionResult.stackScrollerPadding;
+ }
+ int collapsedPosition = mHeadsUpInset;
+ if (!mNotificationStackScrollLayoutController.isPulseExpanding()) {
+ return collapsedPosition;
} else {
- return mQsFrameTranslateController.getNotificationsTopPadding(mQsExpansionHeight,
- mNotificationStackScrollLayoutController);
+ int expandedPosition =
+ mClockPositionResult.stackScrollerPadding;
+ return (int) MathUtils.lerp(collapsedPosition, expandedPosition,
+ mNotificationStackScrollLayoutController.calculateAppearFractionBypass());
}
}
public boolean getKeyguardShowing() {
- return mKeyguardShowing;
+ return mBarState == KEYGUARD;
}
public float getKeyguardNotificationTopPadding() {
@@ -3293,94 +2250,18 @@
return mKeyguardNotificationBottomPadding;
}
- /** Returns the topPadding of notifications when on keyguard not respecting QS expansion. */
- private int getKeyguardNotificationStaticPadding() {
- if (!mKeyguardShowing) {
- return 0;
- }
- if (!mKeyguardBypassController.getBypassEnabled()) {
- return mClockPositionResult.stackScrollerPadding;
- }
- int collapsedPosition = mHeadsUpInset;
- if (!mNotificationStackScrollLayoutController.isPulseExpanding()) {
- return collapsedPosition;
- } else {
- int expandedPosition = mClockPositionResult.stackScrollerPadding;
- return (int) MathUtils.lerp(collapsedPosition, expandedPosition,
- mNotificationStackScrollLayoutController.calculateAppearFractionBypass());
- }
- }
-
- private void requestScrollerTopPaddingUpdate(boolean animate) {
+ void requestScrollerTopPaddingUpdate(boolean animate) {
mNotificationStackScrollLayoutController.updateTopPadding(
- calculateNotificationsTopPadding(), animate);
- if (mKeyguardShowing && mKeyguardBypassController.getBypassEnabled()) {
+ mQsController.calculateNotificationsTopPadding(mIsExpanding,
+ getKeyguardNotificationStaticPadding(), mExpandedFraction), animate);
+ if (getKeyguardShowing()
+ && mKeyguardBypassController.getBypassEnabled()) {
// update the position of the header
- updateQsExpansion();
+ mQsController.updateExpansion();
}
}
/**
- * Set the amount of pixels we have currently dragged down if we're transitioning to the full
- * shade. 0.0f means we're not transitioning yet.
- */
- public void setTransitionToFullShadeAmount(float pxAmount, boolean animate, long delay) {
- if (animate && mIsFullWidth) {
- animateNextNotificationBounds(StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE,
- delay);
- mIsQsTranslationResetAnimator = mQsTranslationForFullShadeTransition > 0.0f;
- }
- float endPosition = 0;
- if (pxAmount > 0.0f) {
- if (mSplitShadeEnabled) {
- float qsHeight = MathUtils.lerp(mQsMinExpansionHeight, mQsMaxExpansionHeight,
- mLockscreenShadeTransitionController.getQSDragProgress());
- setQsExpansionHeight(qsHeight);
- }
- if (mNotificationStackScrollLayoutController.getVisibleNotificationCount() == 0
- && !mMediaDataManager.hasActiveMediaOrRecommendation()) {
- // No notifications are visible, let's animate to the height of qs instead
- if (mQs != null) {
- // Let's interpolate to the header height instead of the top padding,
- // because the toppadding is way too low because of the large clock.
- // we still want to take into account the edgePosition though as that nicely
- // overshoots in the stackscroller
- endPosition = getQSEdgePosition()
- - mNotificationStackScrollLayoutController.getTopPadding()
- + mQs.getHeader().getHeight();
- }
- } else {
- // Interpolating to the new bottom edge position!
- endPosition = getQSEdgePosition()
- + mNotificationStackScrollLayoutController.getFullShadeTransitionInset();
- if (isOnKeyguard()) {
- endPosition -= mLockscreenNotificationQSPadding;
- }
- }
- }
-
- // Calculate the overshoot amount such that we're reaching the target after our desired
- // distance, but only reach it fully once we drag a full shade length.
- mTransitioningToFullShadeProgress = Interpolators.FAST_OUT_SLOW_IN.getInterpolation(
- MathUtils.saturate(pxAmount / mDistanceForQSFullShadeTransition));
-
- int position = (int) MathUtils.lerp((float) 0, endPosition,
- mTransitioningToFullShadeProgress);
- if (mTransitioningToFullShadeProgress > 0.0f) {
- // we want at least 1 pixel otherwise the panel won't be clipped
- position = Math.max(1, position);
- }
- mTransitionToFullShadeQSPosition = position;
- updateQsExpansion();
- }
-
- /** Called when pulse expansion has finished and this is going to the full shade. */
- public void onPulseExpansionFinished() {
- animateNextNotificationBounds(StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE, 0);
- mIsPulseExpansionResetAnimator = true;
- }
-
- /**
* Set the alpha and translationY of the keyguard elements which only show on the lockscreen,
* but not in shade locked / shade. This is used when dragging down to the full shade.
*/
@@ -3404,154 +2285,14 @@
mKeyguardStatusBarViewController.setAlpha(alpha);
}
- private void trackMovement(MotionEvent event) {
- if (mQsVelocityTracker != null) mQsVelocityTracker.addMovement(event);
- }
-
- private void initVelocityTracker() {
- if (mQsVelocityTracker != null) {
- mQsVelocityTracker.recycle();
- }
- mQsVelocityTracker = VelocityTracker.obtain();
- }
-
- private float getCurrentQSVelocity() {
- if (mQsVelocityTracker == null) {
- return 0;
- }
- mQsVelocityTracker.computeCurrentVelocity(1000);
- return mQsVelocityTracker.getYVelocity();
- }
-
- private void cancelQsAnimation() {
- if (mQsExpansionAnimator != null) {
- mQsExpansionAnimator.cancel();
- }
- }
-
- /** @see #flingSettings(float, int, Runnable, boolean) */
- public void flingSettings(float vel, int type) {
- flingSettings(vel, type, null /* onFinishRunnable */, false /* isClick */);
- }
-
- /**
- * Animates QS or QQS as if the user had swiped up or down.
- *
- * @param vel Finger velocity or 0 when not initiated by touch events.
- * @param type Either {@link #FLING_EXPAND}, {@link #FLING_COLLAPSE} or {@link
- * #FLING_HIDE}.
- * @param onFinishRunnable Runnable to be executed at the end of animation.
- * @param isClick If originated by click (different interpolator and duration.)
- */
- private void flingSettings(float vel, int type, final Runnable onFinishRunnable,
- boolean isClick) {
- float target;
- switch (type) {
- case FLING_EXPAND:
- target = mQsMaxExpansionHeight;
- break;
- case FLING_COLLAPSE:
- target = mQsMinExpansionHeight;
- break;
- case FLING_HIDE:
- default:
- if (mQs != null) {
- mQs.closeDetail();
- }
- target = 0;
- }
- if (target == mQsExpansionHeight) {
- if (onFinishRunnable != null) {
- onFinishRunnable.run();
- }
- traceQsJank(false /* startTracing */, type != FLING_EXPAND /* wasCancelled */);
- return;
- }
-
- // If we move in the opposite direction, reset velocity and use a different duration.
- boolean oppositeDirection = false;
- boolean expanding = type == FLING_EXPAND;
- if (vel > 0 && !expanding || vel < 0 && expanding) {
- vel = 0;
- oppositeDirection = true;
- }
- ValueAnimator animator = ValueAnimator.ofFloat(mQsExpansionHeight, target);
- if (isClick) {
- animator.setInterpolator(Interpolators.TOUCH_RESPONSE);
- animator.setDuration(368);
- } else {
- mFlingAnimationUtils.apply(animator, mQsExpansionHeight, target, vel);
- }
- if (oppositeDirection) {
- animator.setDuration(350);
- }
- animator.addUpdateListener(
- animation -> setQsExpansionHeight((Float) animation.getAnimatedValue()));
- animator.addListener(new AnimatorListenerAdapter() {
- private boolean mIsCanceled;
-
- @Override
- public void onAnimationStart(Animator animation) {
- notifyExpandingStarted();
- }
-
- @Override
- public void onAnimationCancel(Animator animation) {
- mIsCanceled = true;
- }
-
- @Override
- public void onAnimationEnd(Animator animation) {
- mQSAnimatingHiddenFromCollapsed = false;
- mAnimatingQS = false;
- notifyExpandingFinished();
- mNotificationStackScrollLayoutController.resetCheckSnoozeLeavebehind();
- mQsExpansionAnimator = null;
- if (onFinishRunnable != null) {
- onFinishRunnable.run();
- }
- traceQsJank(false /* startTracing */, mIsCanceled /* wasCancelled */);
- }
- });
- // Let's note that we're animating QS. Moving the animator here will cancel it immediately,
- // so we need a separate flag.
- mAnimatingQS = true;
- animator.start();
- mQsExpansionAnimator = animator;
- mQsAnimatorExpand = expanding;
- mQSAnimatingHiddenFromCollapsed = computeQsExpansionFraction() == 0.0f && target == 0;
- }
-
- /**
- * @return Whether we should intercept a gesture to open Quick Settings.
- */
- private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {
- if (!isQsExpansionEnabled() || mCollapsedOnDown
- || (mKeyguardShowing && mKeyguardBypassController.getBypassEnabled())
- || mSplitShadeEnabled) {
- return false;
- }
- View header = mKeyguardShowing || mQs == null ? mKeyguardStatusBar : mQs.getHeader();
- int frameTop = mKeyguardShowing || mQs == null ? 0 : mQsFrame.getTop();
- mQsInterceptRegion.set(
- /* left= */ (int) mQsFrame.getX(),
- /* top= */ header.getTop() + frameTop,
- /* right= */ (int) mQsFrame.getX() + mQsFrame.getWidth(),
- /* bottom= */ header.getBottom() + frameTop);
- // Also allow QS to intercept if the touch is near the notch.
- mStatusBarTouchableRegionManager.updateRegionForNotch(mQsInterceptRegion);
- final boolean onHeader = mQsInterceptRegion.contains((int) x, (int) y);
-
- if (mQsExpanded) {
- return onHeader || (yDiff < 0 && isInQsArea(x, y));
- } else {
- return onHeader;
- }
+ /** */
+ public float getKeyguardOnlyContentAlpha() {
+ return mKeyguardOnlyContentAlpha;
}
@VisibleForTesting
boolean canCollapsePanelOnTouch() {
- if (!isInSettings() && mBarState == KEYGUARD) {
+ if (!mQsController.getExpanded() && mBarState == KEYGUARD) {
return true;
}
@@ -3559,20 +2300,22 @@
return true;
}
- return !mSplitShadeEnabled && (isInSettings() || mIsPanelCollapseOnQQS);
+ return !mSplitShadeEnabled && (mQsController.getExpanded() || mIsPanelCollapseOnQQS);
}
int getMaxPanelHeight() {
int min = mStatusBarMinHeight;
if (!(mBarState == KEYGUARD)
&& mNotificationStackScrollLayoutController.getNotGoneChildCount() == 0) {
- int minHeight = mQsMinExpansionHeight;
+ int minHeight = mQsController.getMinExpansionHeight();
min = Math.max(min, minHeight);
}
int maxHeight;
- if (mQsExpandImmediate || mQsExpanded || mIsExpanding && mQsExpandedWhenExpandingStarted
+ if (mQsController.isExpandImmediate() || mQsController.getExpanded()
+ || mIsExpanding && mQsController.getExpandedWhenExpandingStarted()
|| mPulsing || mSplitShadeEnabled) {
- maxHeight = calculatePanelHeightQsExpanded();
+ maxHeight = mQsController.calculatePanelHeightExpanded(
+ mClockPositionResult.stackScrollerPadding);
} else {
maxHeight = calculatePanelHeightShade();
}
@@ -3580,17 +2323,15 @@
if (maxHeight == 0) {
Log.wtf(TAG, "maxPanelHeight is invalid. mOverExpansion: "
+ mOverExpansion + ", calculatePanelHeightQsExpanded: "
- + calculatePanelHeightQsExpanded() + ", calculatePanelHeightShade: "
- + calculatePanelHeightShade() + ", mStatusBarMinHeight = "
- + mStatusBarMinHeight + ", mQsMinExpansionHeight = " + mQsMinExpansionHeight);
+ + mQsController.calculatePanelHeightExpanded(
+ mClockPositionResult.stackScrollerPadding)
+ + ", calculatePanelHeightShade: " + calculatePanelHeightShade()
+ + ", mStatusBarMinHeight = " + mStatusBarMinHeight
+ + ", mQsMinExpansionHeight = " + mQsController.getMinExpansionHeight());
}
return maxHeight;
}
- public boolean isInSettings() {
- return mQsExpanded;
- }
-
public boolean isExpanding() {
return mIsExpanding;
}
@@ -3603,7 +2344,8 @@
mShadeLog.logExpansionChanged("onHeightUpdated: fully expanded.",
mExpandedFraction, isExpanded(), mTracking, mExpansionDragDownAmountPx);
}
- if (!mQsExpanded || mQsExpandImmediate || mIsExpanding && mQsExpandedWhenExpandingStarted) {
+ if (!mQsController.getExpanded() || mQsController.isExpandImmediate()
+ || mIsExpanding && mQsController.getExpandedWhenExpandingStarted()) {
// Updating the clock position will set the top padding which might
// trigger a new panel height and re-position the clock.
// This is a circular dependency and should be avoided, otherwise we'll have
@@ -3614,14 +2356,8 @@
positionClockAndNotifications();
}
}
- // Below is true when QS are expanded and we swipe up from the same bottom of panel to
- // close the whole shade with one motion. Also this will be always true when closing
- // split shade as there QS are always expanded so every collapsing motion is motion from
- // expanded QS to closed panel
- boolean collapsingShadeFromExpandedQs = mQsExpanded && !mQsTracking
- && mQsExpansionAnimator == null && !mQsExpansionFromOverscroll;
boolean goingBetweenClosedShadeAndExpandedQs =
- mQsExpandImmediate || collapsingShadeFromExpandedQs;
+ mQsController.isGoingBetweenClosedShadeAndExpandedQs();
// in split shade we react when HUN is visible only if shade height is over HUN start
// height - which means user is swiping down. Otherwise shade QS will either not show at all
// with HUN movement or it will blink when touching HUN initially
@@ -3631,7 +2367,7 @@
float qsExpansionFraction;
if (mSplitShadeEnabled) {
qsExpansionFraction = 1;
- } else if (mKeyguardShowing) {
+ } else if (getKeyguardShowing()) {
// On Keyguard, interpolate the QS expansion linearly to the panel expansion
qsExpansionFraction = expandedHeight / (getMaxPanelHeight());
} else {
@@ -3640,13 +2376,15 @@
float panelHeightQsCollapsed =
mNotificationStackScrollLayoutController.getIntrinsicPadding()
+ mNotificationStackScrollLayoutController.getLayoutMinHeight();
- float panelHeightQsExpanded = calculatePanelHeightQsExpanded();
+ float panelHeightQsExpanded = mQsController.calculatePanelHeightExpanded(
+ mClockPositionResult.stackScrollerPadding);
qsExpansionFraction = (expandedHeight - panelHeightQsCollapsed)
/ (panelHeightQsExpanded - panelHeightQsCollapsed);
}
- float targetHeight = mQsMinExpansionHeight
- + qsExpansionFraction * (mQsMaxExpansionHeight - mQsMinExpansionHeight);
- setQsExpansionHeight(targetHeight);
+ float targetHeight = mQsController.getMinExpansionHeight() + qsExpansionFraction
+ * (mQsController.getMaxExpansionHeight()
+ - mQsController.getMinExpansionHeight());
+ mQsController.setExpansionHeight(targetHeight);
}
updateExpandedHeight(expandedHeight);
updateHeader();
@@ -3663,8 +2401,8 @@
if (mPanelExpanded != isExpanded) {
mPanelExpanded = isExpanded;
mShadeExpansionStateManager.onShadeExpansionFullyChanged(isExpanded);
- if (!isExpanded && mQs != null && mQs.isCustomizing()) {
- mQs.closeCustomizer();
+ if (!isExpanded) {
+ mQsController.closeQsCustomizer();
}
}
}
@@ -3686,40 +2424,6 @@
}
}
- int calculatePanelHeightQsExpanded() {
- float
- notificationHeight =
- mNotificationStackScrollLayoutController.getHeight()
- - mNotificationStackScrollLayoutController.getEmptyBottomMargin()
- - mNotificationStackScrollLayoutController.getTopPadding();
-
- // When only empty shade view is visible in QS collapsed state, simulate that we would have
- // it in expanded QS state as well so we don't run into troubles when fading the view in/out
- // and expanding/collapsing the whole panel from/to quick settings.
- if (mNotificationStackScrollLayoutController.getNotGoneChildCount() == 0
- && mNotificationStackScrollLayoutController.isShowingEmptyShadeView()) {
- notificationHeight = mNotificationStackScrollLayoutController.getEmptyShadeViewHeight();
- }
- int maxQsHeight = mQsMaxExpansionHeight;
-
- // If an animation is changing the size of the QS panel, take the animated value.
- if (mQsSizeChangeAnimator != null) {
- maxQsHeight = (int) mQsSizeChangeAnimator.getAnimatedValue();
- }
- float totalHeight = Math.max(maxQsHeight,
- mBarState == KEYGUARD ? mClockPositionResult.stackScrollerPadding
- : 0) + notificationHeight
- + mNotificationStackScrollLayoutController.getTopPaddingOverflow();
- if (totalHeight > mNotificationStackScrollLayoutController.getHeight()) {
- float
- fullyCollapsedHeight =
- maxQsHeight + mNotificationStackScrollLayoutController.getLayoutMinHeight();
- totalHeight = Math.max(fullyCollapsedHeight,
- mNotificationStackScrollLayoutController.getHeight());
- }
- return (int) totalHeight;
- }
-
private void updateNotificationTranslucency() {
if (mIsOcclusionTransitionRunning) {
return;
@@ -3738,10 +2442,10 @@
private float getFadeoutAlpha() {
float alpha;
- if (mQsMinExpansionHeight == 0) {
+ if (mQsController.getMinExpansionHeight() == 0) {
return 1.0f;
}
- alpha = getExpandedHeight() / mQsMinExpansionHeight;
+ alpha = getExpandedHeight() / mQsController.getMinExpansionHeight();
alpha = Math.max(0, Math.min(alpha, 1));
alpha = (float) Math.pow(alpha, 0.75);
return alpha;
@@ -3752,30 +2456,7 @@
if (mBarState == KEYGUARD) {
mKeyguardStatusBarViewController.updateViewState();
}
- updateQsExpansion();
- }
-
- private float getHeaderTranslation() {
- if (mSplitShadeEnabled) {
- // in split shade QS don't translate, just (un)squish and overshoot
- return 0;
- }
- if (mBarState == KEYGUARD && !mKeyguardBypassController.getBypassEnabled()) {
- return -mQs.getQsMinExpansionHeight();
- }
- float appearAmount = mNotificationStackScrollLayoutController
- .calculateAppearFraction(mExpandedHeight);
- float startHeight = -mQsExpansionHeight;
- if (mBarState == StatusBarState.SHADE) {
- // Small parallax as we pull down and clip QS
- startHeight = -mQsExpansionHeight * QS_PARALLAX_AMOUNT;
- }
- if (mKeyguardBypassController.getBypassEnabled() && isOnKeyguard()) {
- appearAmount = mNotificationStackScrollLayoutController.calculateAppearFractionBypass();
- startHeight = -mQs.getQsMinExpansionHeight();
- }
- float translation = MathUtils.lerp(startHeight, 0, Math.min(1.0f, appearAmount));
- return Math.min(0, translation);
+ mQsController.updateExpansion();
}
private void updateKeyguardBottomAreaAlpha() {
@@ -3792,28 +2473,12 @@
isUnlockHintRunning() ? 0 : KeyguardBouncerConstants.ALPHA_EXPANSION_THRESHOLD, 1f,
0f, 1f,
getExpandedFraction());
- float alpha = Math.min(expansionAlpha, 1 - computeQsExpansionFraction());
+ float alpha = Math.min(expansionAlpha, 1 - mQsController.computeExpansionFraction());
alpha *= mBottomAreaShadeAlpha;
mKeyguardBottomAreaInteractor.setAlpha(alpha);
mLockIconViewController.setAlpha(alpha);
}
- private void onExpandingStarted() {
- mNotificationStackScrollLayoutController.onExpansionStarted();
- mIsExpanding = true;
- mQsExpandedWhenExpandingStarted = mQsFullyExpanded;
- mMediaHierarchyManager.setCollapsingShadeFromQS(mQsExpandedWhenExpandingStarted &&
- /* We also start expanding when flinging closed Qs. Let's exclude that */
- !mAnimatingQS);
- if (mQsExpanded) {
- onQsExpansionStarted();
- }
- // Since there are QS tiles in the header now, we need to make sure we start listening
- // immediately so they can be up to date.
- if (mQs == null) return;
- mQs.setHeaderListening(true);
- }
-
private void onExpandingFinished() {
if (!mUnocclusionTransitionFlagEnabled) {
mScrimController.onExpandingFinished();
@@ -3823,7 +2488,7 @@
mConversationNotificationManager.onNotificationPanelExpandStateChanged(isFullyCollapsed());
mIsExpanding = false;
mMediaHierarchyManager.setCollapsingShadeFromQS(false);
- mMediaHierarchyManager.setQsExpanded(mQsExpanded);
+ mMediaHierarchyManager.setQsExpanded(mQsController.getExpanded());
if (isFullyCollapsed()) {
DejankUtils.postAfterTraversal(() -> setListening(false));
@@ -3838,10 +2503,10 @@
if (mBarState != SHADE) {
// updating qsExpandImmediate is done in onPanelStateChanged for unlocked shade but
// on keyguard panel state is always OPEN so we need to have that extra update
- setQsExpandImmediate(false);
+ mQsController.setExpandImmediate(false);
}
setShowShelfOnly(false);
- mTwoFingerQsExpandPossible = false;
+ mQsController.setTwoFingerExpandPossible(false);
updateTrackingHeadsUp(null);
mExpandingFromHeadsUp = false;
setPanelScrimMinFraction(0.0f);
@@ -3864,8 +2529,7 @@
private void setListening(boolean listening) {
mKeyguardStatusBarViewController.setBatteryListening(listening);
- if (mQs == null) return;
- mQs.setListening(listening);
+ mQsController.setListening(listening);
}
public void expand(boolean animate) {
@@ -3899,7 +2563,7 @@
this);
if (mAnimateAfterExpanding) {
notifyExpandingStarted();
- beginJankMonitoring();
+ mQsController.beginJankMonitoring(isFullyCollapsed());
fling(0 /* expand */);
} else {
mShadeHeightLogger.logFunctionCall("expand");
@@ -3928,16 +2592,10 @@
mOverExpansion = overExpansion;
// Translating the quick settings by half the overexpansion to center it in the background
// frame
- updateQsFrameTranslation();
+ mQsController.updateQsFrameTranslation();
mNotificationStackScrollLayoutController.setOverExpansion(overExpansion);
}
- private void updateQsFrameTranslation() {
- mQsFrameTranslateController.translateQsFrame(mQsFrame, mQs,
- mNavigationBarBottomHeight + mAmbientState.getStackTopMargin());
-
- }
-
private void falsingAdditionalTapRequired() {
if (mStatusBarStateController.getState() == StatusBarState.SHADE_LOCKED) {
mTapAgainViewController.show();
@@ -3964,8 +2622,8 @@
notifyExpandingStarted();
updatePanelExpansionAndVisibility();
mScrimController.onTrackingStarted();
- if (mQsFullyExpanded) {
- setQsExpandImmediate(true);
+ if (mQsController.getFullyExpanded()) {
+ mQsController.setExpandImmediate(true);
setShowShelfOnly(true);
}
mNotificationStackScrollLayoutController.onPanelTrackingStarted();
@@ -4042,8 +2700,8 @@
// the required distance to be a specific and constant value, to make sure the expansion
// motion has the expected speed. We also only want this on non-lockscreen for now.
if (mSplitShadeEnabled && mBarState == SHADE) {
- boolean transitionFromHeadsUp =
- mHeadsUpManager.isTrackingHeadsUp() || mExpandingFromHeadsUp;
+ boolean transitionFromHeadsUp = (mHeadsUpManager != null
+ && mHeadsUpManager.isTrackingHeadsUp()) || mExpandingFromHeadsUp;
// heads-up starting height is too close to mSplitShadeFullTransitionDistance and
// when dragging HUN transition is already 90% complete. It makes shade become
// immediately visible when starting to drag. We want to set distance so that
@@ -4061,25 +2719,6 @@
}
}
- @VisibleForTesting
- boolean isTrackingBlocked() {
- return mConflictingQsExpansionGesture && mQsExpanded || mBlockingExpansionForCurrentTouch;
- }
-
- public boolean isQsExpanded() {
- return mQsExpanded;
- }
-
- /** Returns whether the QS customizer is currently active. */
- public boolean isQsCustomizing() {
- return mQs.isCustomizing();
- }
-
- /** Close the QS customizer if it is open. */
- public void closeQsCustomizer() {
- mQs.closeCustomizer();
- }
-
public void setIsLaunchAnimationRunning(boolean running) {
boolean wasRunning = mIsLaunchAnimationRunning;
mIsLaunchAnimationRunning = running;
@@ -4104,14 +2743,6 @@
}
}
- public void setQsScrimEnabled(boolean qsScrimEnabled) {
- boolean changed = mQsScrimEnabled != qsScrimEnabled;
- mQsScrimEnabled = qsScrimEnabled;
- if (changed) {
- updateQsState();
- }
- }
-
public void onScreenTurningOn() {
mKeyguardStatusViewController.dozeTimeTick();
}
@@ -4140,7 +2771,7 @@
}
break;
case StatusBarState.SHADE_LOCKED:
- if (!mQsExpanded) {
+ if (!mQsController.getExpanded()) {
mStatusBarStateController.setState(KEYGUARD);
}
break;
@@ -4289,66 +2920,6 @@
return !mShowIconsWhenExpanded;
}
- private void onQsPanelScrollChanged(int scrollY) {
- mLargeScreenShadeHeaderController.setQsScrollY(scrollY);
- if (scrollY > 0 && !mQsFullyExpanded) {
- debugLog("Scrolling while not expanded. Forcing expand");
- // If we are scrolling QS, we should be fully expanded.
- expandWithQs();
- }
- }
-
- private final class QsFragmentListener implements FragmentListener {
- @Override
- public void onFragmentViewCreated(String tag, Fragment fragment) {
- mQs = (QS) fragment;
- mQs.setPanelView(mHeightListener);
- mQs.setCollapseExpandAction(mCollapseExpandAction);
- mQs.setHeaderClickable(isQsExpansionEnabled());
- mQs.setOverscrolling(mStackScrollerOverscrolling);
- mQs.setInSplitShade(mSplitShadeEnabled);
- mQs.setIsNotificationPanelFullWidth(mIsFullWidth);
-
- // recompute internal state when qspanel height changes
- mQs.getView().addOnLayoutChangeListener(
- (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
- final int height = bottom - top;
- final int oldHeight = oldBottom - oldTop;
- if (height != oldHeight) {
- onQsHeightChanged();
- }
- });
- mQs.setCollapsedMediaVisibilityChangedListener((visible) -> {
- if (mQs.getHeader().isShown()) {
- animateNextNotificationBounds(StackStateAnimator.ANIMATION_DURATION_STANDARD,
- 0 /* delay */);
- mNotificationStackScrollLayoutController.animateNextTopPaddingChange();
- }
- });
- mLockscreenShadeTransitionController.setQS(mQs);
- mShadeTransitionController.setQs(mQs);
- mNotificationStackScrollLayoutController.setQsHeader((ViewGroup) mQs.getHeader());
- mQs.setScrollListener(mQsScrollListener);
- updateQsExpansion();
- }
-
- @Override
- public void onFragmentViewDestroyed(String tag, Fragment fragment) {
- // Manual handling of fragment lifecycle is only required because this bridges
- // non-fragment and fragment code. Once we are using a fragment for the notification
- // panel, mQs will not need to be null cause it will be tied to the same lifecycle.
- if (fragment == mQs) {
- mQs = null;
- }
- }
- }
-
- private void animateNextNotificationBounds(long duration, long delay) {
- mAnimateNextNotificationBounds = true;
- mNotificationBoundsAnimationDuration = duration;
- mNotificationBoundsAnimationDelay = delay;
- }
-
public void setTouchAndAnimationDisabled(boolean disabled) {
mTouchDisabled = disabled;
if (mTouchDisabled) {
@@ -4371,9 +2942,11 @@
if (dozing == mDozing) return;
mView.setDozing(dozing);
mDozing = dozing;
+ // TODO (b/) make listeners for this
mNotificationStackScrollLayoutController.setDozing(mDozing, animate);
mKeyguardBottomAreaInteractor.setAnimateDozingTransitions(animate);
mKeyguardStatusBarViewController.setDozing(mDozing);
+ mQsController.setDozing(mDozing);
if (dozing) {
mBottomAreaShadeAlphaAnimator.cancel();
@@ -4564,33 +3137,13 @@
ipw.print("mMaxAllowedKeyguardNotifications=");
ipw.println(mMaxAllowedKeyguardNotifications);
ipw.print("mAnimateNextPositionUpdate="); ipw.println(mAnimateNextPositionUpdate);
- ipw.print("mQuickQsHeaderHeight="); ipw.println(mQuickQsHeaderHeight);
- ipw.print("mQsTrackingPointer="); ipw.println(mQsTrackingPointer);
- ipw.print("mQsTracking="); ipw.println(mQsTracking);
- ipw.print("mConflictingQsExpansionGesture="); ipw.println(mConflictingQsExpansionGesture);
ipw.print("mPanelExpanded="); ipw.println(mPanelExpanded);
- ipw.print("mQsExpanded="); ipw.println(mQsExpanded);
- ipw.print("mQsExpandedWhenExpandingStarted="); ipw.println(mQsExpandedWhenExpandingStarted);
- ipw.print("mQsFullyExpanded="); ipw.println(mQsFullyExpanded);
- ipw.print("mKeyguardShowing="); ipw.println(mKeyguardShowing);
ipw.print("mKeyguardQsUserSwitchEnabled="); ipw.println(mKeyguardQsUserSwitchEnabled);
ipw.print("mKeyguardUserSwitcherEnabled="); ipw.println(mKeyguardUserSwitcherEnabled);
ipw.print("mDozing="); ipw.println(mDozing);
ipw.print("mDozingOnDown="); ipw.println(mDozingOnDown);
ipw.print("mBouncerShowing="); ipw.println(mBouncerShowing);
ipw.print("mBarState="); ipw.println(mBarState);
- ipw.print("mInitialHeightOnTouch="); ipw.println(mInitialHeightOnTouch);
- ipw.print("mInitialTouchX="); ipw.println(mInitialTouchX);
- ipw.print("mInitialTouchY="); ipw.println(mInitialTouchY);
- ipw.print("mQsExpansionHeight="); ipw.println(mQsExpansionHeight);
- ipw.print("mQsMinExpansionHeight="); ipw.println(mQsMinExpansionHeight);
- ipw.print("mQsMaxExpansionHeight="); ipw.println(mQsMaxExpansionHeight);
- ipw.print("mQsPeekHeight="); ipw.println(mQsPeekHeight);
- ipw.print("mStackScrollerOverscrolling="); ipw.println(mStackScrollerOverscrolling);
- ipw.print("mQsExpansionFromOverscroll="); ipw.println(mQsExpansionFromOverscroll);
- ipw.print("mLastOverscroll="); ipw.println(mLastOverscroll);
- ipw.print("mQsExpansionEnabledPolicy="); ipw.println(mQsExpansionEnabledPolicy);
- ipw.print("mQsExpansionEnabledAmbient="); ipw.println(mQsExpansionEnabledAmbient);
ipw.print("mStatusBarMinHeight="); ipw.println(mStatusBarMinHeight);
ipw.print("mStatusBarHeaderHeightKeyguard="); ipw.println(mStatusBarHeaderHeightKeyguard);
ipw.print("mOverStretchAmount="); ipw.println(mOverStretchAmount);
@@ -4599,17 +3152,8 @@
ipw.print("mDisplayTopInset="); ipw.println(mDisplayTopInset);
ipw.print("mDisplayRightInset="); ipw.println(mDisplayRightInset);
ipw.print("mDisplayLeftInset="); ipw.println(mDisplayLeftInset);
- ipw.print("mLargeScreenShadeHeaderHeight="); ipw.println(mLargeScreenShadeHeaderHeight);
- ipw.print("mSplitShadeNotificationsScrimMarginBottom=");
- ipw.println(mSplitShadeNotificationsScrimMarginBottom);
ipw.print("mIsExpanding="); ipw.println(mIsExpanding);
- ipw.print("mQsExpandImmediate="); ipw.println(mQsExpandImmediate);
- ipw.print("mTwoFingerQsExpandPossible="); ipw.println(mTwoFingerQsExpandPossible);
ipw.print("mHeaderDebugInfo="); ipw.println(mHeaderDebugInfo);
- ipw.print("mQsAnimatorExpand="); ipw.println(mQsAnimatorExpand);
- ipw.print("mQsScrimEnabled="); ipw.println(mQsScrimEnabled);
- ipw.print("mQsTouchAboveFalsingThreshold="); ipw.println(mQsTouchAboveFalsingThreshold);
- ipw.print("mQsFalsingThreshold="); ipw.println(mQsFalsingThreshold);
ipw.print("mHeadsUpStartHeight="); ipw.println(mHeadsUpStartHeight);
ipw.print("mListenForHeadsUp="); ipw.println(mListenForHeadsUp);
ipw.print("mNavigationBarBottomHeight="); ipw.println(mNavigationBarBottomHeight);
@@ -4625,7 +3169,6 @@
ipw.println(mBlockingExpansionForCurrentTouch);
ipw.print("mExpectingSynthesizedDown="); ipw.println(mExpectingSynthesizedDown);
ipw.print("mLastEventSynthesizedDown="); ipw.println(mLastEventSynthesizedDown);
- ipw.print("mLastFlingWasExpanding="); ipw.println(mLastFlingWasExpanding);
ipw.print("mInterpolatedDarkAmount="); ipw.println(mInterpolatedDarkAmount);
ipw.print("mLinearDarkAmount="); ipw.println(mLinearDarkAmount);
ipw.print("mPulsing="); ipw.println(mPulsing);
@@ -4636,40 +3179,14 @@
ipw.print("mHeadsUpInset="); ipw.println(mHeadsUpInset);
ipw.print("mHeadsUpPinnedMode="); ipw.println(mHeadsUpPinnedMode);
ipw.print("mAllowExpandForSmallExpansion="); ipw.println(mAllowExpandForSmallExpansion);
- ipw.print("mLockscreenNotificationQSPadding=");
- ipw.println(mLockscreenNotificationQSPadding);
- ipw.print("mTransitioningToFullShadeProgress=");
- ipw.println(mTransitioningToFullShadeProgress);
- ipw.print("mTransitionToFullShadeQSPosition=");
- ipw.println(mTransitionToFullShadeQSPosition);
- ipw.print("mDistanceForQSFullShadeTransition=");
- ipw.println(mDistanceForQSFullShadeTransition);
- ipw.print("mQsTranslationForFullShadeTransition=");
- ipw.println(mQsTranslationForFullShadeTransition);
ipw.print("mMaxOverscrollAmountForPulse="); ipw.println(mMaxOverscrollAmountForPulse);
- ipw.print("mAnimateNextNotificationBounds="); ipw.println(mAnimateNextNotificationBounds);
- ipw.print("mNotificationBoundsAnimationDelay=");
- ipw.println(mNotificationBoundsAnimationDelay);
- ipw.print("mNotificationBoundsAnimationDuration=");
- ipw.println(mNotificationBoundsAnimationDuration);
ipw.print("mIsPanelCollapseOnQQS="); ipw.println(mIsPanelCollapseOnQQS);
- ipw.print("mAnimatingQS="); ipw.println(mAnimatingQS);
- ipw.print("mIsQsTranslationResetAnimator="); ipw.println(mIsQsTranslationResetAnimator);
- ipw.print("mIsPulseExpansionResetAnimator="); ipw.println(mIsPulseExpansionResetAnimator);
ipw.print("mKeyguardOnlyContentAlpha="); ipw.println(mKeyguardOnlyContentAlpha);
ipw.print("mKeyguardOnlyTransitionTranslationY=");
ipw.println(mKeyguardOnlyTransitionTranslationY);
ipw.print("mUdfpsMaxYBurnInOffset="); ipw.println(mUdfpsMaxYBurnInOffset);
ipw.print("mIsGestureNavigation="); ipw.println(mIsGestureNavigation);
ipw.print("mOldLayoutDirection="); ipw.println(mOldLayoutDirection);
- ipw.print("mScrimCornerRadius="); ipw.println(mScrimCornerRadius);
- ipw.print("mScreenCornerRadius="); ipw.println(mScreenCornerRadius);
- ipw.print("mQSAnimatingHiddenFromCollapsed="); ipw.println(mQSAnimatingHiddenFromCollapsed);
- ipw.print("mUseLargeScreenShadeHeader="); ipw.println(mUseLargeScreenShadeHeader);
- ipw.print("mEnableQsClipping="); ipw.println(mEnableQsClipping);
- ipw.print("mQsClipTop="); ipw.println(mQsClipTop);
- ipw.print("mQsClipBottom="); ipw.println(mQsClipBottom);
- ipw.print("mQsVisible="); ipw.println(mQsVisible);
ipw.print("mMinFraction="); ipw.println(mMinFraction);
ipw.print("mStatusViewCentered="); ipw.println(mStatusViewCentered);
ipw.print("mSplitShadeFullTransitionDistance=");
@@ -4854,12 +3371,12 @@
public void updateSystemUiStateFlags() {
if (SysUiState.DEBUG) {
Log.d(TAG, "Updating panel sysui state flags: fullyExpanded="
- + isFullyExpanded() + " inQs=" + isInSettings());
+ + isFullyExpanded() + " inQs=" + mQsController.getExpanded());
}
mSysUiState.setFlag(SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED,
- isFullyExpanded() && !isInSettings())
- .setFlag(SYSUI_STATE_QUICK_SETTINGS_EXPANDED, isFullyExpanded() && isInSettings())
- .commitUpdate(mDisplayId);
+ isFullyExpanded() && !mQsController.getExpanded())
+ .setFlag(SYSUI_STATE_QUICK_SETTINGS_EXPANDED,
+ isFullyExpanded() && mQsController.getExpanded()).commitUpdate(mDisplayId);
}
private void debugLog(String fmt, Object... args) {
@@ -4872,11 +3389,11 @@
void notifyExpandingStarted() {
if (!mExpanding) {
mExpanding = true;
- onExpandingStarted();
+ mIsExpanding = true;
+ mQsController.onExpandingStarted(mQsController.getFullyExpanded());
}
}
- @VisibleForTesting
void notifyExpandingFinished() {
endClosing();
if (mExpanding) {
@@ -4885,7 +3402,7 @@
}
}
- private float getTouchSlop(MotionEvent event) {
+ float getTouchSlop(MotionEvent event) {
// Adjust the touch slop if another gesture may be being performed.
return event.getClassification() == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE
? mTouchSlop * mSlopMultiplier
@@ -4959,7 +3476,7 @@
public void startExpandMotion(float newX, float newY, boolean startTracking,
float expandedHeight) {
if (!mHandlingPointerUp && !mStatusBarStateController.isDozing()) {
- beginJankMonitoring();
+ mQsController.beginJankMonitoring(isFullyCollapsed());
}
mInitialOffsetOnTouch = expandedHeight;
if (!mTracking || isFullyCollapsed()) {
@@ -5121,7 +3638,8 @@
setExpandedHeightInternal(height);
}
- private void updateExpandedHeightToMaxHeight() {
+ /** Try to set expanded height to max. */
+ void updateExpandedHeightToMaxHeight() {
float currentMaxPanelHeight = getMaxPanelHeight();
if (isFullyCollapsed()) {
@@ -5132,7 +3650,8 @@
return;
}
- if (mTracking && !isTrackingBlocked()) {
+ if (mTracking && !(mBlockingExpansionForCurrentTouch
+ || mQsController.isTrackingBlocked())) {
return;
}
@@ -5174,6 +3693,7 @@
mHeightAnimator.end();
}
}
+ mQsController.setShadeExpandedHeight(mExpandedHeight);
mExpansionDragDownAmountPx = h;
mExpandedFraction = Math.min(1f,
maxPanelHeight == 0 ? 0 : mExpandedHeight / maxPanelHeight);
@@ -5213,7 +3733,7 @@
return mExpandedHeight;
}
- private float getExpandedFraction() {
+ float getExpandedFraction() {
return mExpandedFraction;
}
@@ -5244,7 +3764,7 @@
return true;
} else {
// case of two finger swipe from the top of keyguard
- return computeQsExpansionFraction() == 1;
+ return mQsController.computeExpansionFraction() == 1;
}
}
@@ -5342,7 +3862,7 @@
}
/** Returns whether a shade or QS expansion animation is running */
- private boolean isShadeOrQsHeightAnimationRunning() {
+ public boolean isShadeOrQsHeightAnimationRunning() {
return mHeightAnimator != null && !mHintAnimationRunning && !mIsSpringBackAnimation;
}
@@ -5477,44 +3997,127 @@
return mView.isEnabled();
}
- private void beginJankMonitoring() {
- if (mInteractionJankMonitor == null) {
- return;
- }
- InteractionJankMonitor.Configuration.Builder builder =
- InteractionJankMonitor.Configuration.Builder.withView(
- InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE,
- mView)
- .setTag(isFullyCollapsed() ? "Expand" : "Collapse");
- mInteractionJankMonitor.begin(builder);
+ int getDisplayRightInset() {
+ return mDisplayRightInset;
}
- private void endJankMonitoring() {
- if (mInteractionJankMonitor == null) {
- return;
- }
- InteractionJankMonitor.getInstance().end(
- InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE);
+ int getDisplayLeftInset() {
+ return mDisplayLeftInset;
}
- private void cancelJankMonitoring() {
- if (mInteractionJankMonitor == null) {
- return;
- }
- InteractionJankMonitor.getInstance().cancel(
- InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE);
+ float getOverStretchAmount() {
+ return mOverStretchAmount;
+ }
+
+ float getMinFraction() {
+ return mMinFraction;
+ }
+
+ boolean getCollapsedOnDown() {
+ return mCollapsedOnDown;
+ }
+
+ int getNavigationBarBottomHeight() {
+ return mNavigationBarBottomHeight;
+ }
+
+ boolean isExpandingFromHeadsUp() {
+ return mExpandingFromHeadsUp;
+ }
+
+ /** TODO: remove need for this delegate (b/254870148) */
+ public void closeQs() {
+ mQsController.closeQs();
+ }
+
+ /** TODO: remove need for this delegate (b/254870148) */
+ public void setQsScrimEnabled(boolean qsScrimEnabled) {
+ mQsController.setScrimEnabled(qsScrimEnabled);
}
private ShadeExpansionStateManager getShadeExpansionStateManager() {
return mShadeExpansionStateManager;
}
+ private void onQsExpansionChanged(boolean expanded) {
+ updateExpandedHeightToMaxHeight();
+ setStatusAccessibilityImportance(expanded
+ ? View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
+ : View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
+ updateSystemUiStateFlags();
+ NavigationBarView navigationBarView =
+ mNavigationBarController.getNavigationBarView(mDisplayId);
+ if (navigationBarView != null) {
+ navigationBarView.onStatusBarPanelStateChanged();
+ }
+ }
+
+ @VisibleForTesting
+ void onQsSetExpansionHeightCalled(boolean qsFullyExpanded) {
+ requestScrollerTopPaddingUpdate(false);
+ mKeyguardStatusBarViewController.updateViewState();
+ int barState = getBarState();
+ if (barState == SHADE_LOCKED || barState == KEYGUARD) {
+ updateKeyguardBottomAreaAlpha();
+ positionClockAndNotifications();
+ }
+
+ if (mAccessibilityManager.isEnabled()) {
+ mView.setAccessibilityPaneTitle(determineAccessibilityPaneTitle());
+ }
+
+ if (!mFalsingManager.isUnlockingDisabled() && qsFullyExpanded
+ && mFalsingCollector.shouldEnforceBouncer()) {
+ mCentralSurfaces.executeRunnableDismissingKeyguard(null, null,
+ false, true, false);
+ }
+ if (DEBUG_DRAWABLE) {
+ mView.invalidate();
+ }
+ }
+
+ private void onQsStateUpdated(boolean qsExpanded, boolean isStackScrollerOverscrolling) {
+ if (mKeyguardUserSwitcherController != null && qsExpanded
+ && !isStackScrollerOverscrolling) {
+ mKeyguardUserSwitcherController.closeSwitcherIfOpenAndNotSimple(true);
+ }
+ }
+
+ private void onQsClippingImmediatelyApplied(boolean clipStatusView,
+ Rect lastQsClipBounds, int top, boolean qsFragmentCreated, boolean qsVisible) {
+ if (qsFragmentCreated) {
+ mKeyguardInteractor.setQuickSettingsVisible(qsVisible);
+ }
+
+ // The padding on this area is large enough that
+ // we can use a cheaper clipping strategy
+ mKeyguardStatusViewController.setClipBounds(
+ clipStatusView ? lastQsClipBounds : null);
+ if (mSplitShadeEnabled) {
+ mKeyguardStatusBarViewController.setNoTopClipping();
+ } else {
+ mKeyguardStatusBarViewController.updateTopClipping(top);
+ }
+ }
+
+ private void onFlingQsWithoutClick(ValueAnimator animator, float qsExpansionHeight,
+ float target, float vel) {
+ mFlingAnimationUtils.apply(animator, qsExpansionHeight, target, vel);
+ }
+
+ private void onExpansionHeightSetToMax(boolean requestPaddingUpdate) {
+ if (requestPaddingUpdate) {
+ requestScrollerTopPaddingUpdate(false /* animate */);
+ }
+ updateExpandedHeightToMaxHeight();
+ }
+
private final class NsslHeightChangedListener implements
ExpandableView.OnHeightChangedListener {
@Override
public void onHeightChanged(ExpandableView view, boolean needsAnimation) {
// Block update if we are in QS and just the top padding changed (i.e. view == null).
- if (view == null && mQsExpanded) {
+ if (view == null && mQsController.getExpanded()) {
return;
}
if (needsAnimation && mInterpolatedDarkAmount == 0) {
@@ -5530,7 +4133,7 @@
== firstRow))) {
requestScrollerTopPaddingUpdate(false /* animate */);
}
- if (mKeyguardShowing) {
+ if (getKeyguardShowing()) {
updateMaxDisplayedNotifications(true);
}
updateExpandedHeightToMaxHeight();
@@ -5540,62 +4143,6 @@
public void onReset(ExpandableView view) {}
}
- private void collapseOrExpand() {
- onQsExpansionStarted();
- if (mQsExpanded) {
- flingSettings(0 /* vel */, FLING_COLLAPSE, null /* onFinishRunnable */,
- true /* isClick */);
- } else if (isQsExpansionEnabled()) {
- mLockscreenGestureLogger.write(MetricsEvent.ACTION_SHADE_QS_TAP, 0, 0);
- flingSettings(0 /* vel */, FLING_EXPAND, null /* onFinishRunnable */,
- true /* isClick */);
- }
- }
-
- private final class NsslOverscrollTopChangedListener implements
- NotificationStackScrollLayout.OnOverscrollTopChangedListener {
- @Override
- public void onOverscrollTopChanged(float amount, boolean isRubberbanded) {
- // When in split shade, overscroll shouldn't carry through to QS
- if (mSplitShadeEnabled) {
- return;
- }
- cancelQsAnimation();
- if (!isQsExpansionEnabled()) {
- amount = 0f;
- }
- float rounded = amount >= 1f ? amount : 0f;
- setOverScrolling(rounded != 0f && isRubberbanded);
- mQsExpansionFromOverscroll = rounded != 0f;
- mLastOverscroll = rounded;
- updateQsState();
- setQsExpansionHeight(mQsMinExpansionHeight + rounded);
- }
-
- @Override
- public void flingTopOverscroll(float velocity, boolean open) {
- // in split shade touches affect QS only when touch happens within QS
- if (isSplitShadeAndTouchXOutsideQs(mInitialTouchX)) {
- return;
- }
- mLastOverscroll = 0f;
- mQsExpansionFromOverscroll = false;
- if (open) {
- // During overscrolling, qsExpansion doesn't actually change that the qs is
- // becoming expanded. Any layout could therefore reset the position again. Let's
- // make sure we can expand
- setOverScrolling(false);
- }
- setQsExpansionHeight(mQsExpansionHeight);
- boolean canExpand = isQsExpansionEnabled();
- flingSettings(!canExpand && open ? 0f : velocity,
- open && canExpand ? FLING_EXPAND : FLING_COLLAPSE, () -> {
- setOverScrolling(false);
- updateQsState();
- }, false /* isClick */);
- }
- }
-
private void onDynamicPrivacyChanged() {
// Do not request animation when pulsing or waking up, otherwise the clock will be out
// of sync with the notification panel.
@@ -5645,19 +4192,6 @@
}
}
- private void onQsHeightChanged() {
- mQsMaxExpansionHeight = mQs != null ? mQs.getDesiredHeight() : 0;
- if (mQsExpanded && mQsFullyExpanded) {
- mQsExpansionHeight = mQsMaxExpansionHeight;
- requestScrollerTopPaddingUpdate(false /* animate */);
- updateExpandedHeightToMaxHeight();
- }
- if (mAccessibilityManager.isEnabled()) {
- mView.setAccessibilityPaneTitle(determineAccessibilityPaneTitle());
- }
- mNotificationStackScrollLayoutController.setMaxTopPadding(mQsMaxExpansionHeight);
- }
-
private final class ConfigurationListener implements
ConfigurationController.ConfigurationListener {
@Override
@@ -5733,8 +4267,9 @@
setKeyguardBottomAreaVisibility(statusBarState, goingToFullShade);
+ // TODO: maybe add a listener for barstate
mBarState = statusBarState;
- mKeyguardShowing = keyguardShowing;
+ mQsController.setBarState(statusBarState);
boolean fromShadeToKeyguard = statusBarState == KEYGUARD
&& (oldState == SHADE || oldState == SHADE_LOCKED);
@@ -5742,7 +4277,7 @@
// user can go to keyguard from different shade states and closing animation
// may not fully run - we always want to make sure we close QS when that happens
// as we never need QS open in fresh keyguard state
- closeQs();
+ mQsController.closeQs();
}
if (oldState == KEYGUARD && (goingToFullShade
@@ -5758,7 +4293,7 @@
duration = StackStateAnimator.ANIMATION_DURATION_STANDARD;
}
mKeyguardStatusBarViewController.animateKeyguardStatusBarOut(startDelay, duration);
- updateQSMinHeight();
+ mQsController.updateMinHeight();
} else if (oldState == StatusBarState.SHADE_LOCKED
&& statusBarState == KEYGUARD) {
mKeyguardStatusBarViewController.animateKeyguardStatusBarIn();
@@ -5786,9 +4321,7 @@
keyguardShowing ? View.VISIBLE : View.INVISIBLE);
}
if (keyguardShowing && oldState != mBarState) {
- if (mQs != null) {
- mQs.hideImmediately();
- }
+ mQsController.hideQsImmediately();
}
}
mKeyguardStatusBarViewController.updateForHeadsUp();
@@ -5800,7 +4333,7 @@
// The update needs to happen after the headerSlide in above, otherwise the translation
// would reset
maybeAnimateBottomAreaAlpha();
- updateQsState();
+ mQsController.updateQsState();
}
@Override
@@ -5877,7 +4410,7 @@
@Override
public void onViewAttachedToWindow(View v) {
mFragmentService.getFragmentHostManager(mView)
- .addTagListener(QS.TAG, mQsFragmentListener);
+ .addTagListener(QS.TAG, mQsController.getQsFragmentListener());
mStatusBarStateController.addCallback(mStatusBarStateListener);
mStatusBarStateListener.onStateChanged(mStatusBarStateController.getState());
mConfigurationController.addCallback(mConfigurationListener);
@@ -5894,7 +4427,7 @@
public void onViewDetachedFromWindow(View v) {
mContentResolver.unregisterContentObserver(mSettingsChangeObserver);
mFragmentService.getFragmentHostManager(mView)
- .removeTagListener(QS.TAG, mQsFragmentListener);
+ .removeTagListener(QS.TAG, mQsController.getQsFragmentListener());
mStatusBarStateController.removeCallback(mStatusBarStateListener);
mConfigurationController.removeCallback(mConfigurationListener);
mFalsingManager.removeTapListener(mFalsingTapListener);
@@ -5919,28 +4452,9 @@
// Update Clock Pivot (used by anti-burnin transformations)
mKeyguardStatusViewController.updatePivot(mView.getWidth(), mView.getHeight());
- // Calculate quick setting heights.
- int oldMaxHeight = mQsMaxExpansionHeight;
- if (mQs != null) {
- updateQSMinHeight();
- mQsMaxExpansionHeight = mQs.getDesiredHeight();
- mNotificationStackScrollLayoutController.setMaxTopPadding(mQsMaxExpansionHeight);
- }
+ int oldMaxHeight = mQsController.updateHeightsOnShadeLayoutChange();
positionClockAndNotifications();
- if (mQsExpanded && mQsFullyExpanded) {
- mQsExpansionHeight = mQsMaxExpansionHeight;
- requestScrollerTopPaddingUpdate(false /* animate */);
- updateExpandedHeightToMaxHeight();
-
- // Size has changed, start an animation.
- if (mQsMaxExpansionHeight != oldMaxHeight) {
- startQsSizeChangeAnimation(oldMaxHeight, mQsMaxExpansionHeight);
- }
- } else if (!mQsExpanded && mQsExpansionAnimator == null) {
- setQsExpansionHeight(mQsMinExpansionHeight + mLastOverscroll);
- } else {
- mShadeLog.v("onLayoutChange: qs expansion not set");
- }
+ mQsController.handleShadeLayoutChanged(oldMaxHeight);
updateExpandedHeight(getExpandedHeight());
updateHeader();
@@ -5949,9 +4463,8 @@
// container the desired height so when closing the QS detail, it stays smaller after
// the size change animation is finished but the detail view is still being animated
// away (this animation takes longer than the size change animation).
- if (mQsSizeChangeAnimator == null && mQs != null) {
- mQs.setHeightOverride(mQs.getDesiredHeight());
- }
+ mQsController.setHeightOverrideToDesiredHeight();
+
updateMaxHeadsUpTranslation();
updateGestureExclusionRect();
if (mExpandAfterLayoutRunnable != null) {
@@ -5962,18 +4475,6 @@
}
}
- private void updateQSMinHeight() {
- float previousMin = mQsMinExpansionHeight;
- if (mKeyguardShowing || mSplitShadeEnabled) {
- mQsMinExpansionHeight = 0;
- } else {
- mQsMinExpansionHeight = mQs.getQsMinExpansionHeight();
- }
- if (mQsExpansionHeight == previousMin) {
- mQsExpansionHeight = mQsMinExpansionHeight;
- }
- }
-
@NonNull
private WindowInsets onApplyShadeWindowInsets(WindowInsets insets) {
// the same types of insets that are handled in NotificationShadeWindowView
@@ -5982,6 +4483,7 @@
mDisplayTopInset = combinedInsets.top;
mDisplayRightInset = combinedInsets.right;
mDisplayLeftInset = combinedInsets.left;
+ mQsController.setDisplayInsets(mDisplayRightInset, mDisplayLeftInset);
mNavigationBarBottomHeight = insets.getStableInsetBottom();
updateMaxHeadsUpTranslation();
@@ -5994,10 +4496,10 @@
}
private void onPanelStateChanged(@PanelState int state) {
- updateQSExpansionEnabledAmbient();
+ mQsController.updateExpansionEnabledAmbient();
if (state == STATE_OPEN && mCurrentPanelState != state) {
- setQsExpandImmediate(false);
+ mQsController.setExpandImmediate(false);
mView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
}
if (state == STATE_OPENING) {
@@ -6005,12 +4507,12 @@
// to locked will trigger this event and we're not actually in the process of opening
// the shade, lockscreen is just always expanded
if (mSplitShadeEnabled && !isOnKeyguard()) {
- setQsExpandImmediate(true);
+ mQsController.setExpandImmediate(true);
}
mOpenCloseListener.onOpenStarted();
}
if (state == STATE_CLOSED) {
- setQsExpandImmediate(false);
+ mQsController.setExpandImmediate(false);
// Close the status bar in the next frame so we can show the end of the
// animation.
mView.post(mMaybeHideExpandedRunnable);
@@ -6076,7 +4578,7 @@
/** @see ViewGroup#onInterceptTouchEvent(MotionEvent) */
public boolean onInterceptTouchEvent(MotionEvent event) {
mShadeLog.logMotionEvent(event, "NPVC onInterceptTouchEvent");
- if (mQs.disallowPanelTouches()) {
+ if (mQsController.disallowTouches()) {
mShadeLog.logMotionEvent(event,
"NPVC not intercepting touch, panel touches disallowed");
return false;
@@ -6098,14 +4600,14 @@
+ "HeadsUpTouchHelper");
return true;
}
- if (!shouldQuickSettingsIntercept(mDownX, mDownY, 0)
+ if (!mQsController.shouldQuickSettingsIntercept(mDownX, mDownY, 0)
&& mPulseExpansionHandler.onInterceptTouchEvent(event)) {
mShadeLog.v("NotificationPanelViewController MotionEvent intercepted: "
+ "PulseExpansionHandler");
return true;
}
- if (!isFullyCollapsed() && onQsIntercept(event)) {
+ if (!isFullyCollapsed() && mQsController.onIntercept(event)) {
debugLog("onQsIntercept true");
mShadeLog.v("NotificationPanelViewController MotionEvent intercepted: "
+ "QsIntercept");
@@ -6139,11 +4641,6 @@
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
- if (mTracking) {
- // TODO(b/247126247) fix underlying issue. Should be ACTION_POINTER_DOWN.
- mShadeLog.d("Don't intercept down event while already tracking");
- return false;
- }
mCentralSurfaces.userActivity();
mAnimatingOnDown = mHeightAnimator != null && !mIsSpringBackAnimation;
mMinExpandHeight = 0.0f;
@@ -6231,16 +4728,10 @@
"onTouch: duplicate down event detected... ignoring");
return true;
}
- if (mTracking) {
- // TODO(b/247126247) fix underlying issue. Should be ACTION_POINTER_DOWN.
- mShadeLog.d("Don't handle down event while already tracking");
- return true;
- }
mLastTouchDownTime = event.getDownTime();
}
-
- if (mQsFullyExpanded && mQs != null && mQs.disallowPanelTouches()) {
+ if (mQsController.isFullyExpandedAndTouchesDisallowed()) {
mShadeLog.logMotionEvent(event,
"onTouch: ignore touch, panel touches disallowed and qs fully expanded");
return false;
@@ -6271,7 +4762,7 @@
// If pulse is expanding already, let's give it the touch. There are situations
// where the panel starts expanding even though we're also pulsing
boolean pulseShouldGetTouch = (!mIsExpanding
- && !shouldQuickSettingsIntercept(mDownX, mDownY, 0))
+ && !mQsController.shouldQuickSettingsIntercept(mDownX, mDownY, 0))
|| mPulseExpansionHandler.isExpanding();
if (pulseShouldGetTouch && mPulseExpansionHandler.onTouchEvent(event)) {
// We're expanding all the other ones shouldn't get this anymore
@@ -6289,7 +4780,8 @@
}
boolean handled = mHeadsUpTouchHelper.onTouchEvent(event);
- if (!mHeadsUpTouchHelper.isTrackingHeadsUp() && handleQsTouch(event)) {
+ if (!mHeadsUpTouchHelper.isTrackingHeadsUp() && mQsController.handleTouch(
+ event, isFullyCollapsed(), isShadeOrQsHeightAnimationRunning())) {
mShadeLog.logMotionEvent(event, "onTouch: handleQsTouch handled event");
return true;
}
@@ -6444,7 +4936,9 @@
mTouchAboveFalsingThreshold = true;
mUpwardsWhenThresholdReached = isDirectionUpwards(x, y);
}
- if ((!mGestureWaitForTouchSlop || mTracking) && !isTrackingBlocked()) {
+ if ((!mGestureWaitForTouchSlop || mTracking)
+ && !(mBlockingExpansionForCurrentTouch
+ || mQsController.isTrackingBlocked())) {
// Count h==0 as part of swipe-up,
// otherwise {@link NotificationStackScrollLayout}
// wrongly enables stack height updates at the start of lockscreen swipe-up
@@ -6462,9 +4956,9 @@
// mHeightAnimator is null, there is no remaining frame, ends instrumenting.
if (mHeightAnimator == null) {
if (event.getActionMasked() == MotionEvent.ACTION_UP) {
- endJankMonitoring();
+ mQsController.endJankMonitoring();
} else {
- cancelJankMonitoring();
+ mQsController.cancelJankMonitoring();
}
}
break;
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java
index 1f0cbf9..74a61a3 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java
@@ -16,7 +16,7 @@
package com.android.systemui.shade;
-import static android.os.Trace.TRACE_TAG_ALWAYS;
+import static android.os.Trace.TRACE_TAG_APP;
import static android.view.WindowInsets.Type.systemBars;
import static com.android.systemui.statusbar.phone.CentralSurfaces.DEBUG;
@@ -328,7 +328,7 @@
@Override
public void requestLayout() {
- Trace.instant(TRACE_TAG_ALWAYS, "NotificationShadeWindowView#requestLayout");
+ Trace.instant(TRACE_TAG_APP, "NotificationShadeWindowView#requestLayout");
super.requestLayout();
}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt b/packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt
new file mode 100644
index 0000000..3eec7fa0e
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt
@@ -0,0 +1,70 @@
+package com.android.systemui.shade
+
+import android.content.Context
+import android.view.DisplayCutout
+import com.android.systemui.R
+import com.android.systemui.battery.BatteryMeterView
+import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider
+import javax.inject.Inject
+
+/**
+ * Controls [BatteryMeterView.BatteryPercentMode]. It takes into account cutout and qs-qqs
+ * transition fraction when determining the mode.
+ */
+class QsBatteryModeController
+@Inject
+constructor(
+ private val context: Context,
+ private val insetsProvider: StatusBarContentInsetsProvider,
+) {
+
+ private companion object {
+ // MotionLayout frames are in [0, 100]. Where 0 and 100 are reserved for start and end
+ // frames.
+ const val MOTION_LAYOUT_MAX_FRAME = 100
+ // We add a single buffer frame to ensure that battery view faded out completely when we are
+ // about to change it's state
+ const val BUFFER_FRAME_COUNT = 1
+ }
+
+ private var fadeInStartFraction: Float = 0f
+ private var fadeOutCompleteFraction: Float = 0f
+
+ init {
+ updateResources()
+ }
+
+ /**
+ * Returns an appropriate [BatteryMeterView.BatteryPercentMode] for the [qsExpandedFraction] and
+ * [cutout]. We don't show battery estimation in qqs header on the devices with center cutout.
+ * The result might be null when the battery icon is invisible during the qs-qqs transition
+ * animation.
+ */
+ @BatteryMeterView.BatteryPercentMode
+ fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? =
+ when {
+ qsExpandedFraction > fadeInStartFraction -> BatteryMeterView.MODE_ESTIMATE
+ qsExpandedFraction < fadeOutCompleteFraction ->
+ if (hasCenterCutout(cutout)) {
+ BatteryMeterView.MODE_ON
+ } else {
+ BatteryMeterView.MODE_ESTIMATE
+ }
+ else -> null
+ }
+
+ fun updateResources() {
+ fadeInStartFraction =
+ (context.resources.getInteger(R.integer.fade_in_start_frame) - BUFFER_FRAME_COUNT) /
+ MOTION_LAYOUT_MAX_FRAME.toFloat()
+ fadeOutCompleteFraction =
+ (context.resources.getInteger(R.integer.fade_out_complete_frame) + BUFFER_FRAME_COUNT) /
+ MOTION_LAYOUT_MAX_FRAME.toFloat()
+ }
+
+ private fun hasCenterCutout(cutout: DisplayCutout?): Boolean =
+ cutout?.let {
+ !insetsProvider.currentRotationHasCornerCutout() && !it.boundingRectTop.isEmpty
+ }
+ ?: false
+}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java
new file mode 100644
index 0000000..c0ef4c1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java
@@ -0,0 +1,2050 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package com.android.systemui.shade;
+
+import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE;
+import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
+import static com.android.systemui.shade.NotificationPanelViewController.COUNTER_PANEL_OPEN_QS;
+import static com.android.systemui.shade.NotificationPanelViewController.FLING_COLLAPSE;
+import static com.android.systemui.shade.NotificationPanelViewController.FLING_EXPAND;
+import static com.android.systemui.shade.NotificationPanelViewController.FLING_HIDE;
+import static com.android.systemui.shade.NotificationPanelViewController.QS_PARALLAX_AMOUNT;
+import static com.android.systemui.statusbar.StatusBarState.KEYGUARD;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ValueAnimator;
+import android.app.Fragment;
+import android.content.res.Resources;
+import android.graphics.Rect;
+import android.graphics.Region;
+import android.util.Log;
+import android.util.MathUtils;
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityManager;
+import android.widget.FrameLayout;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.jank.InteractionJankMonitor;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.internal.policy.ScreenDecorationsUtils;
+import com.android.internal.policy.SystemBarUtils;
+import com.android.keyguard.FaceAuthApiRequestReason;
+import com.android.keyguard.KeyguardUpdateMonitor;
+import com.android.systemui.R;
+import com.android.systemui.animation.Interpolators;
+import com.android.systemui.classifier.Classifier;
+import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.flags.FeatureFlags;
+import com.android.systemui.flags.Flags;
+import com.android.systemui.fragments.FragmentHostManager;
+import com.android.systemui.media.controls.pipeline.MediaDataManager;
+import com.android.systemui.media.controls.ui.MediaHierarchyManager;
+import com.android.systemui.plugins.FalsingManager;
+import com.android.systemui.plugins.qs.QS;
+import com.android.systemui.screenrecord.RecordingController;
+import com.android.systemui.shade.transition.ShadeTransitionController;
+import com.android.systemui.statusbar.LockscreenShadeTransitionController;
+import com.android.systemui.statusbar.NotificationRemoteInputManager;
+import com.android.systemui.statusbar.NotificationShadeDepthController;
+import com.android.systemui.statusbar.PulseExpansionHandler;
+import com.android.systemui.statusbar.QsFrameTranslateController;
+import com.android.systemui.statusbar.StatusBarState;
+import com.android.systemui.statusbar.notification.stack.AmbientState;
+import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
+import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
+import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
+import com.android.systemui.statusbar.phone.KeyguardBypassController;
+import com.android.systemui.statusbar.phone.KeyguardStatusBarView;
+import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
+import com.android.systemui.statusbar.phone.ScrimController;
+import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
+import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
+import com.android.systemui.statusbar.policy.KeyguardStateController;
+import com.android.systemui.util.LargeScreenUtils;
+
+import javax.inject.Inject;
+
+import dagger.Lazy;
+
+/** Handles QuickSettings touch handling, expansion and animation state
+ * TODO (b/264460656) make this dumpable
+ */
+@CentralSurfacesComponent.CentralSurfacesScope
+public class QuickSettingsController {
+ public static final String TAG = "QuickSettingsController";
+
+ private QS mQs;
+ private final Lazy<NotificationPanelViewController> mPanelViewControllerLazy;
+
+ private final NotificationPanelView mPanelView;
+ private final KeyguardStatusBarView mKeyguardStatusBar;
+ private final FrameLayout mQsFrame;
+
+ private final QsFrameTranslateController mQsFrameTranslateController;
+ private final ShadeTransitionController mShadeTransitionController;
+ private final PulseExpansionHandler mPulseExpansionHandler;
+ private final ShadeExpansionStateManager mShadeExpansionStateManager;
+ private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
+ private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
+ private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
+ private final NotificationShadeDepthController mDepthController;
+ private final LargeScreenShadeHeaderController mLargeScreenShadeHeaderController;
+ private final StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
+ private final KeyguardStateController mKeyguardStateController;
+ private final KeyguardBypassController mKeyguardBypassController;
+ private final NotificationRemoteInputManager mRemoteInputManager;
+ private VelocityTracker mQsVelocityTracker;
+ private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+ private final ScrimController mScrimController;
+ private final MediaDataManager mMediaDataManager;
+ private final MediaHierarchyManager mMediaHierarchyManager;
+ private final AmbientState mAmbientState;
+ private final RecordingController mRecordingController;
+ private final FalsingCollector mFalsingCollector;
+ private final LockscreenGestureLogger mLockscreenGestureLogger;
+ private final ShadeLogger mShadeLog;
+ private final FeatureFlags mFeatureFlags;
+ private final InteractionJankMonitor mInteractionJankMonitor;
+ private final FalsingManager mFalsingManager;
+ private final AccessibilityManager mAccessibilityManager;
+ private final MetricsLogger mMetricsLogger;
+ private final Resources mResources;
+
+ /** Whether the notifications are displayed full width (no margins on the side). */
+ private boolean mIsFullWidth;
+ private int mTouchSlop;
+ private float mSlopMultiplier;
+ /** the current {@link StatusBarState} */
+ private int mBarState;
+ private int mStatusBarMinHeight;
+ private boolean mScrimEnabled = true;
+ private int mScrimCornerRadius;
+ private int mScreenCornerRadius;
+ private boolean mUseLargeScreenShadeHeader;
+ private int mLargeScreenShadeHeaderHeight;
+ private int mDisplayRightInset = 0; // in pixels
+ private int mDisplayLeftInset = 0; // in pixels
+ private boolean mSplitShadeEnabled;
+ /**
+ * The padding between the start of notifications and the qs boundary on the lockscreen.
+ * On lockscreen, notifications aren't inset this extra amount, but we still want the
+ * qs boundary to be padded.
+ */
+ private int mLockscreenNotificationPadding;
+ private int mSplitShadeNotificationsScrimMarginBottom;
+ private boolean mDozing;
+ private boolean mEnableClipping;
+ private int mFalsingThreshold;
+ /**
+ * Position of the qs bottom during the full shade transition. This is needed as the toppadding
+ * can change during state changes, which makes it much harder to do animations
+ */
+ private int mTransitionToFullShadePosition;
+ private boolean mCollapsedOnDown;
+ private float mShadeExpandedHeight = 0;
+ private boolean mLastShadeFlingWasExpanding;
+
+ private float mInitialHeightOnTouch;
+ private float mInitialTouchX;
+ private float mInitialTouchY;
+ /** whether current touch Y delta is above falsing threshold */
+ private boolean mTouchAboveFalsingThreshold;
+ /** whether we are tracking a touch on QS container */
+ private boolean mTracking;
+ /** pointerId of the pointer we're currently tracking */
+ private int mTrackingPointer;
+
+ /**
+ * Indicates that QS is in expanded state which can happen by:
+ * - single pane shade: expanding shade and then expanding QS
+ * - split shade: just expanding shade (QS are expanded automatically)
+ */
+ private boolean mExpanded;
+ /** Indicates QS is at its max height */
+ private boolean mFullyExpanded;
+ /**
+ * Determines if QS should be already expanded when expanding shade.
+ * Used for split shade, two finger gesture as well as accessibility shortcut to QS.
+ * It needs to be set when movement starts as it resets at the end of expansion/collapse.
+ */
+ private boolean mExpandImmediate;
+ private boolean mExpandedWhenExpandingStarted;
+ private boolean mAnimatingHiddenFromCollapsed;
+ private boolean mVisible;
+ private float mExpansionHeight;
+ private int mMinExpansionHeight;
+ private int mMaxExpansionHeight;
+ /** Expansion fraction of the notification shade */
+ private float mShadeExpandedFraction;
+ private int mPeekHeight;
+ private float mLastOverscroll;
+ private boolean mExpansionFromOverscroll;
+ private boolean mExpansionEnabledPolicy = true;
+ private boolean mExpansionEnabledAmbient = true;
+ private float mQuickQsHeaderHeight;
+ /**
+ * Determines if QS should be already expanded when expanding shade.
+ * Used for split shade, two finger gesture as well as accessibility shortcut to QS.
+ * It needs to be set when movement starts as it resets at the end of expansion/collapse.
+ */
+ private boolean mTwoFingerExpandPossible;
+ /** Whether the ongoing gesture might both trigger the expansion in both the view and QS. */
+ private boolean mConflictingExpansionGesture;
+ /**
+ * If we are in a panel collapsing motion, we reset scrollY of our scroll view but still
+ * need to take this into account in our panel height calculation.
+ */
+ private boolean mAnimatorExpand;
+
+ /**
+ * The amount of progress we are currently in if we're transitioning to the full shade.
+ * 0.0f means we're not transitioning yet, while 1 means we're all the way in the full
+ * shade. This value can also go beyond 1.1 when we're overshooting!
+ */
+ private float mTransitioningToFullShadeProgress;
+ /** Distance a full shade transition takes in order for qs to fully transition to the shade. */
+ private int mDistanceForFullShadeTransition;
+ private boolean mStackScrollerOverscrolling;
+ /** Indicates QS is animating - set by flingQs */
+ private boolean mAnimating;
+ /** Whether the current animator is resetting the qs translation. */
+ private boolean mIsTranslationResettingAnimator;
+ /** Whether the current animator is resetting the pulse expansion after a drag down. */
+ private boolean mIsPulseExpansionResettingAnimator;
+ /** The translation amount for QS for the full shade transition. */
+ private float mTranslationForFullShadeTransition;
+ /** Should we animate the next bounds update. */
+ private boolean mAnimateNextNotificationBounds;
+ /** The delay for the next bounds animation. */
+ private long mNotificationBoundsAnimationDelay;
+ /** The duration of the notification bounds animation. */
+ private long mNotificationBoundsAnimationDuration;
+
+ private final Region mInterceptRegion = new Region();
+ /** The end bounds of a clipping animation. */
+ private final Rect mClippingAnimationEndBounds = new Rect();
+ private final Rect mLastClipBounds = new Rect();
+
+ /** The animator for the qs clipping bounds. */
+ private ValueAnimator mClippingAnimator = null;
+ /** The main animator for QS expansion */
+ private ValueAnimator mExpansionAnimator;
+ /** The animator for QS size change */
+ private ValueAnimator mSizeChangeAnimator;
+
+ private ExpansionHeightListener mExpansionHeightListener;
+ private QsStateUpdateListener mQsStateUpdateListener;
+ private ApplyClippingImmediatelyListener mApplyClippingImmediatelyListener;
+ private FlingQsWithoutClickListener mFlingQsWithoutClickListener;
+ private ExpansionHeightSetToMaxListener mExpansionHeightSetToMaxListener;
+ private final QS.HeightListener mQsHeightListener = this::onHeightChanged;
+ private final Runnable mQsCollapseExpandAction = this::collapseOrExpandQs;
+ private final QS.ScrollListener mQsScrollListener = this::onScroll;
+
+ @Inject
+ public QuickSettingsController(
+ Lazy<NotificationPanelViewController> panelViewControllerLazy,
+ NotificationPanelView panelView,
+ QsFrameTranslateController qsFrameTranslateController,
+ ShadeTransitionController shadeTransitionController,
+ PulseExpansionHandler pulseExpansionHandler,
+ NotificationRemoteInputManager remoteInputManager,
+ ShadeExpansionStateManager shadeExpansionStateManager,
+ StatusBarKeyguardViewManager statusBarKeyguardViewManager,
+ NotificationStackScrollLayoutController notificationStackScrollLayoutController,
+ LockscreenShadeTransitionController lockscreenShadeTransitionController,
+ NotificationShadeDepthController notificationShadeDepthController,
+ LargeScreenShadeHeaderController largeScreenShadeHeaderController,
+ StatusBarTouchableRegionManager statusBarTouchableRegionManager,
+ KeyguardStateController keyguardStateController,
+ KeyguardBypassController keyguardBypassController,
+ KeyguardUpdateMonitor keyguardUpdateMonitor,
+ ScrimController scrimController,
+ MediaDataManager mediaDataManager,
+ MediaHierarchyManager mediaHierarchyManager,
+ AmbientState ambientState,
+ RecordingController recordingController,
+ FalsingManager falsingManager,
+ FalsingCollector falsingCollector,
+ AccessibilityManager accessibilityManager,
+ LockscreenGestureLogger lockscreenGestureLogger,
+ MetricsLogger metricsLogger,
+ FeatureFlags featureFlags,
+ InteractionJankMonitor interactionJankMonitor,
+ ShadeLogger shadeLog
+ ) {
+ mPanelViewControllerLazy = panelViewControllerLazy;
+ mPanelView = panelView;
+ mQsFrame = mPanelView.findViewById(R.id.qs_frame);
+ mKeyguardStatusBar = mPanelView.findViewById(R.id.keyguard_header);
+ mResources = mPanelView.getResources();
+ mSplitShadeEnabled = LargeScreenUtils.shouldUseSplitNotificationShade(mResources);
+ mQsFrameTranslateController = qsFrameTranslateController;
+ mShadeTransitionController = shadeTransitionController;
+ mPulseExpansionHandler = pulseExpansionHandler;
+ pulseExpansionHandler.setPulseExpandAbortListener(() -> {
+ if (mQs != null) {
+ mQs.animateHeaderSlidingOut();
+ }
+ });
+ mRemoteInputManager = remoteInputManager;
+ mShadeExpansionStateManager = shadeExpansionStateManager;
+ mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
+ mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
+ mLockscreenShadeTransitionController = lockscreenShadeTransitionController;
+ mDepthController = notificationShadeDepthController;
+ mLargeScreenShadeHeaderController = largeScreenShadeHeaderController;
+ mStatusBarTouchableRegionManager = statusBarTouchableRegionManager;
+ mKeyguardStateController = keyguardStateController;
+ mKeyguardBypassController = keyguardBypassController;
+ mKeyguardUpdateMonitor = keyguardUpdateMonitor;
+ mScrimController = scrimController;
+ mMediaDataManager = mediaDataManager;
+ mMediaHierarchyManager = mediaHierarchyManager;
+ mAmbientState = ambientState;
+ mRecordingController = recordingController;
+ mFalsingManager = falsingManager;
+ mFalsingCollector = falsingCollector;
+ mAccessibilityManager = accessibilityManager;
+
+ mLockscreenGestureLogger = lockscreenGestureLogger;
+ mMetricsLogger = metricsLogger;
+ mShadeLog = shadeLog;
+ mFeatureFlags = featureFlags;
+ mInteractionJankMonitor = interactionJankMonitor;
+
+ mShadeExpansionStateManager.addExpansionListener(this::onPanelExpansionChanged);
+ mLockscreenShadeTransitionController.addCallback(new LockscreenShadeTransitionCallback());
+ }
+
+ @VisibleForTesting
+ void setQs(QS qs) {
+ mQs = qs;
+ }
+
+ public void setExpansionHeightListener(ExpansionHeightListener listener) {
+ mExpansionHeightListener = listener;
+ }
+
+ public void setQsStateUpdateListener(QsStateUpdateListener listener) {
+ mQsStateUpdateListener = listener;
+ }
+
+ public void setApplyClippingImmediatelyListener(ApplyClippingImmediatelyListener listener) {
+ mApplyClippingImmediatelyListener = listener;
+ }
+
+ public void setFlingQsWithoutClickListener(FlingQsWithoutClickListener listener) {
+ mFlingQsWithoutClickListener = listener;
+ }
+
+ public void setExpansionHeightSetToMaxListener(ExpansionHeightSetToMaxListener callback) {
+ mExpansionHeightSetToMaxListener = callback;
+ }
+
+ void loadDimens() {
+ final ViewConfiguration configuration = ViewConfiguration.get(this.mPanelView.getContext());
+ mTouchSlop = configuration.getScaledTouchSlop();
+ mSlopMultiplier = configuration.getScaledAmbiguousGestureMultiplier();
+ mPeekHeight = mResources.getDimensionPixelSize(R.dimen.qs_peek_height);
+ mStatusBarMinHeight = SystemBarUtils.getStatusBarHeight(mPanelView.getContext());
+ mScrimCornerRadius = mResources.getDimensionPixelSize(
+ R.dimen.notification_scrim_corner_radius);
+ mScreenCornerRadius = (int) ScreenDecorationsUtils.getWindowCornerRadius(
+ mPanelView.getContext());
+ mFalsingThreshold = mResources.getDimensionPixelSize(R.dimen.qs_falsing_threshold);
+ mLockscreenNotificationPadding = mResources.getDimensionPixelSize(
+ R.dimen.notification_side_paddings);
+ mDistanceForFullShadeTransition = mResources.getDimensionPixelSize(
+ R.dimen.lockscreen_shade_qs_transition_distance);
+ }
+
+ void updateResources() {
+ mSplitShadeEnabled = LargeScreenUtils.shouldUseSplitNotificationShade(mResources);
+ if (mQs != null) {
+ mQs.setInSplitShade(mSplitShadeEnabled);
+ }
+ mSplitShadeNotificationsScrimMarginBottom =
+ mResources.getDimensionPixelSize(
+ R.dimen.split_shade_notifications_scrim_margin_bottom);
+
+ mUseLargeScreenShadeHeader =
+ LargeScreenUtils.shouldUseLargeScreenShadeHeader(mPanelView.getResources());
+ mLargeScreenShadeHeaderHeight =
+ mResources.getDimensionPixelSize(R.dimen.large_screen_shade_header_height);
+ int topMargin = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight :
+ mResources.getDimensionPixelSize(R.dimen.notification_panel_margin_top);
+ mLargeScreenShadeHeaderController.setLargeScreenActive(mUseLargeScreenShadeHeader);
+ mAmbientState.setStackTopMargin(topMargin);
+
+ // TODO: When the flag is eventually removed, it means that we have a single view that is
+ // the same height in QQS and in Large Screen (large_screen_shade_header_height). Eventually
+ // the concept of largeScreenHeader or quickQsHeader will disappear outside of the class
+ // that controls the view as the offset needs to be the same regardless.
+ if (mUseLargeScreenShadeHeader || mFeatureFlags.isEnabled(Flags.COMBINED_QS_HEADERS)) {
+ mQuickQsHeaderHeight = mLargeScreenShadeHeaderHeight;
+ } else {
+ mQuickQsHeaderHeight = SystemBarUtils.getQuickQsOffsetHeight(mPanelView.getContext());
+ }
+
+ mEnableClipping = mResources.getBoolean(R.bool.qs_enable_clipping);
+ }
+
+ // TODO (b/265054088): move this and others to a CoreStartable
+ void initNotificationStackScrollLayoutController() {
+ mNotificationStackScrollLayoutController.setOverscrollTopChangedListener(
+ new NsslOverscrollTopChangedListener());
+ mNotificationStackScrollLayoutController.setOnStackYChanged(this::onStackYChanged);
+ mNotificationStackScrollLayoutController.setOnScrollListener(this::onNotificationScrolled);
+ }
+
+ private void onStackYChanged(boolean shouldAnimate) {
+ if (isQsFragmentCreated()) {
+ if (shouldAnimate) {
+ setAnimateNextNotificationBounds(StackStateAnimator.ANIMATION_DURATION_STANDARD,
+ 0 /* delay */);
+ }
+ setClippingBounds();
+ }
+ }
+
+ private void onNotificationScrolled(int newScrollPosition) {
+ updateExpansionEnabledAmbient();
+ }
+
+ int getHeaderHeight() {
+ return mQs.getHeader().getHeight();
+ }
+
+ /** Returns the padding of the stackscroller when unlocked */
+ int getUnlockedStackScrollerPadding() {
+ return (mQs != null ? mQs.getHeader().getHeight() : 0) + mPeekHeight;
+ }
+
+ public boolean isExpansionEnabled() {
+ return mExpansionEnabledPolicy && mExpansionEnabledAmbient
+ && !mRemoteInputManager.isRemoteInputActive();
+ }
+
+ public float getTransitioningToFullShadeProgress() {
+ return mTransitioningToFullShadeProgress;
+ }
+
+ /** */
+ @VisibleForTesting
+ boolean isExpandImmediate() {
+ return mExpandImmediate;
+ }
+
+ float getInitialTouchY() {
+ return mInitialTouchY;
+ }
+
+ /** Returns whether split shade is enabled and an x coordinate is outside of the QS frame. */
+ private boolean isSplitShadeAndTouchXOutsideQs(float touchX) {
+ return mSplitShadeEnabled && touchX < mQsFrame.getX()
+ || touchX > mQsFrame.getX() + mQsFrame.getWidth();
+ }
+
+ /** Returns whether touch is within QS area */
+ private boolean isTouchInQsArea(float x, float y) {
+ if (isSplitShadeAndTouchXOutsideQs(x)) {
+ return false;
+ }
+ // TODO (b/265193930): remove dependency on NPVC
+ // Let's reject anything at the very bottom around the home handle in gesture nav
+ if (mPanelViewControllerLazy.get().isInGestureNavHomeHandleArea(x, y)) {
+ return false;
+ }
+ return y <= mNotificationStackScrollLayoutController.getBottomMostNotificationBottom()
+ || y <= mQs.getView().getY() + mQs.getView().getHeight();
+ }
+
+ /** Returns whether or not event should open QS */
+ private boolean isOpenQsEvent(MotionEvent event) {
+ final int pointerCount = event.getPointerCount();
+ final int action = event.getActionMasked();
+
+ final boolean
+ twoFingerDrag =
+ action == MotionEvent.ACTION_POINTER_DOWN && pointerCount == 2;
+
+ final boolean
+ stylusButtonClickDrag =
+ action == MotionEvent.ACTION_DOWN && (event.isButtonPressed(
+ MotionEvent.BUTTON_STYLUS_PRIMARY) || event.isButtonPressed(
+ MotionEvent.BUTTON_STYLUS_SECONDARY));
+
+ final boolean
+ mouseButtonClickDrag =
+ action == MotionEvent.ACTION_DOWN && (event.isButtonPressed(
+ MotionEvent.BUTTON_SECONDARY) || event.isButtonPressed(
+ MotionEvent.BUTTON_TERTIARY));
+
+ return twoFingerDrag || stylusButtonClickDrag || mouseButtonClickDrag;
+ }
+
+
+ public boolean getExpanded() {
+ return mExpanded;
+ }
+
+ @VisibleForTesting
+ boolean isTracking() {
+ return mTracking;
+ }
+
+ public boolean getFullyExpanded() {
+ return mFullyExpanded;
+ }
+
+ boolean isGoingBetweenClosedShadeAndExpandedQs() {
+ // Below is true when QS are expanded and we swipe up from the same bottom of panel to
+ // close the whole shade with one motion. Also this will be always true when closing
+ // split shade as there QS are always expanded so every collapsing motion is motion from
+ // expanded QS to closed panel
+ return mExpandImmediate || (mExpanded
+ && !mTracking && !isExpansionAnimating()
+ && !mExpansionFromOverscroll);
+ }
+
+ private boolean isQsFragmentCreated() {
+ return mQs != null;
+ }
+
+ public boolean isCustomizing() {
+ return isQsFragmentCreated() && mQs.isCustomizing();
+ }
+
+ public float getExpansionHeight() {
+ return mExpansionHeight;
+ }
+
+ public boolean getExpandedWhenExpandingStarted() {
+ return mExpandedWhenExpandingStarted;
+ }
+
+ public int getMinExpansionHeight() {
+ return mMinExpansionHeight;
+ }
+
+ public boolean isFullyExpandedAndTouchesDisallowed() {
+ return isQsFragmentCreated() && getFullyExpanded() && disallowTouches();
+ }
+
+ public int getMaxExpansionHeight() {
+ return mMaxExpansionHeight;
+ }
+
+ private boolean isQsFalseTouch() {
+ if (mFalsingManager.isClassifierEnabled()) {
+ return mFalsingManager.isFalseTouch(Classifier.QUICK_SETTINGS);
+ }
+ return !mTouchAboveFalsingThreshold;
+ }
+
+ public int getFalsingThreshold() {
+ return mFalsingThreshold;
+ }
+
+ /**
+ * Returns Whether we should intercept a gesture to open Quick Settings.
+ */
+ public boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {
+ boolean keyguardShowing = mBarState == KEYGUARD;
+ if (!isExpansionEnabled() || mCollapsedOnDown || (keyguardShowing
+ && mKeyguardBypassController.getBypassEnabled()) || mSplitShadeEnabled) {
+ return false;
+ }
+ View header = keyguardShowing || mQs == null ? mKeyguardStatusBar : mQs.getHeader();
+ int frameTop = keyguardShowing
+ || mQs == null ? 0 : mQsFrame.getTop();
+ mInterceptRegion.set(
+ /* left= */ (int) mQsFrame.getX(),
+ /* top= */ header.getTop() + frameTop,
+ /* right= */ (int) mQsFrame.getX() + mQsFrame.getWidth(),
+ /* bottom= */ header.getBottom() + frameTop);
+ // Also allow QS to intercept if the touch is near the notch.
+ mStatusBarTouchableRegionManager.updateRegionForNotch(mInterceptRegion);
+ final boolean onHeader = mInterceptRegion.contains((int) x, (int) y);
+
+ if (getExpanded()) {
+ return onHeader || (yDiff < 0 && isTouchInQsArea(x, y));
+ } else {
+ return onHeader;
+ }
+ }
+
+ /** Returns amount header should be translated */
+ private float getHeaderTranslation() {
+ if (mSplitShadeEnabled) {
+ // in split shade QS don't translate, just (un)squish and overshoot
+ return 0;
+ }
+ if (mBarState == KEYGUARD && !mKeyguardBypassController.getBypassEnabled()) {
+ return -mQs.getQsMinExpansionHeight();
+ }
+ float appearAmount = mNotificationStackScrollLayoutController
+ .calculateAppearFraction(mShadeExpandedHeight);
+ float startHeight = -getExpansionHeight();
+ if (mBarState == StatusBarState.SHADE) {
+ // Small parallax as we pull down and clip QS
+ startHeight = -getExpansionHeight() * QS_PARALLAX_AMOUNT;
+ }
+ if (mKeyguardBypassController.getBypassEnabled() && mBarState == KEYGUARD) {
+ appearAmount = mNotificationStackScrollLayoutController.calculateAppearFractionBypass();
+ startHeight = -mQs.getQsMinExpansionHeight();
+ }
+ float translation = MathUtils.lerp(startHeight, 0, Math.min(1.0f, appearAmount));
+ return Math.min(0, translation);
+ }
+
+ /**
+ * Can the panel collapse in this motion because it was started on QQS?
+ *
+ * @param downX the x location where the touch started
+ * @param downY the y location where the touch started
+ * Returns true if the panel could be collapsed because it stared on QQS
+ */
+ public boolean canPanelCollapseOnQQS(float downX, float downY) {
+ if (mCollapsedOnDown || mBarState == KEYGUARD || getExpanded()) {
+ return false;
+ }
+ View header = mQs == null ? mKeyguardStatusBar : mQs.getHeader();
+ return downX >= mQsFrame.getX() && downX <= mQsFrame.getX() + mQsFrame.getWidth()
+ && downY <= header.getBottom();
+ }
+
+ /** Closes the Qs customizer. */
+ public void closeQsCustomizer() {
+ mQs.closeCustomizer();
+ }
+
+ /** Returns whether touches from the notification panel should be disallowed */
+ public boolean disallowTouches() {
+ return mQs.disallowPanelTouches();
+ }
+
+ void setListening(boolean listening) {
+ if (mQs != null) {
+ mQs.setListening(listening);
+ }
+ }
+
+ void hideQsImmediately() {
+ if (mQs != null) {
+ mQs.hideImmediately();
+ }
+ }
+
+ public void setDozing(boolean dozing) {
+ mDozing = dozing;
+ }
+
+ /** set QS state to closed */
+ public void closeQs() {
+ cancelExpansionAnimation();
+ setExpansionHeight(getMinExpansionHeight());
+ // qsExpandImmediate is a safety latch in case we're calling closeQS while we're in the
+ // middle of animation - we need to make sure that value is always false when shade if
+ // fully collapsed or expanded
+ setExpandImmediate(false);
+ }
+
+ @VisibleForTesting
+ void setExpanded(boolean expanded) {
+ boolean changed = mExpanded != expanded;
+ if (changed) {
+ mExpanded = expanded;
+ updateQsState();
+ mShadeExpansionStateManager.onQsExpansionChanged(expanded);
+ mShadeLog.logQsExpansionChanged("QS Expansion Changed.", expanded,
+ getMinExpansionHeight(), getMaxExpansionHeight(),
+ mStackScrollerOverscrolling, mAnimatorExpand, mAnimating);
+ }
+ }
+
+ void setLastShadeFlingWasExpanding(boolean expanding) {
+ mLastShadeFlingWasExpanding = expanding;
+ mShadeLog.logLastFlingWasExpanding(expanding);
+ }
+
+ /** update Qs height state */
+ public void setExpansionHeight(float height) {
+ int maxHeight = getMaxExpansionHeight();
+ height = Math.min(Math.max(
+ height, getMinExpansionHeight()), maxHeight);
+ mFullyExpanded = height == maxHeight && maxHeight != 0;
+ boolean qsAnimatingAway = !mAnimatorExpand && mAnimating;
+ if (height > getMinExpansionHeight() && !getExpanded()
+ && !mStackScrollerOverscrolling
+ && !mDozing && !qsAnimatingAway) {
+ setExpanded(true);
+ } else if (height <= getMinExpansionHeight()
+ && getExpanded()) {
+ setExpanded(false);
+ }
+ mExpansionHeight = height;
+ updateExpansion();
+
+ if (mExpansionHeightListener != null) {
+ mExpansionHeightListener.onQsSetExpansionHeightCalled(getFullyExpanded());
+ }
+ }
+
+ /** */
+ public void setHeightOverrideToDesiredHeight() {
+ if (isSizeChangeAnimationRunning() && isQsFragmentCreated()) {
+ mQs.setHeightOverride(mQs.getDesiredHeight());
+ }
+ }
+
+ /** Updates quick setting heights and returns old max height. */
+ int updateHeightsOnShadeLayoutChange() {
+ int oldMaxHeight = getMaxExpansionHeight();
+ if (isQsFragmentCreated()) {
+ updateMinHeight();
+ mMaxExpansionHeight = mQs.getDesiredHeight();
+ mNotificationStackScrollLayoutController.setMaxTopPadding(
+ getMaxExpansionHeight());
+ }
+ return oldMaxHeight;
+ }
+
+ /** Called when Shade view layout changed. Updates QS expansion or
+ * starts size change animation if height has changed. */
+ void handleShadeLayoutChanged(int oldMaxHeight) {
+ if (mExpanded && mFullyExpanded) {
+ mExpansionHeight = mMaxExpansionHeight;
+ if (mExpansionHeightSetToMaxListener != null) {
+ mExpansionHeightSetToMaxListener.onExpansionHeightSetToMax(true);
+ }
+
+ // Size has changed, start an animation.
+ if (getMaxExpansionHeight() != oldMaxHeight) {
+ startSizeChangeAnimation(oldMaxHeight,
+ getMaxExpansionHeight());
+ }
+ } else if (!getExpanded()
+ && !isExpansionAnimating()) {
+ setExpansionHeight(getMinExpansionHeight() + mLastOverscroll);
+ } else {
+ mShadeLog.v("onLayoutChange: qs expansion not set");
+ }
+ }
+
+ private boolean isSizeChangeAnimationRunning() {
+ return mSizeChangeAnimator != null;
+ }
+
+ private void startSizeChangeAnimation(int oldHeight, final int newHeight) {
+ if (mSizeChangeAnimator != null) {
+ oldHeight = (int) mSizeChangeAnimator.getAnimatedValue();
+ mSizeChangeAnimator.cancel();
+ }
+ mSizeChangeAnimator = ValueAnimator.ofInt(oldHeight, newHeight);
+ mSizeChangeAnimator.setDuration(300);
+ mSizeChangeAnimator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
+ mSizeChangeAnimator.addUpdateListener(animation -> {
+ if (mExpansionHeightSetToMaxListener != null) {
+ mExpansionHeightSetToMaxListener.onExpansionHeightSetToMax(true);
+ }
+
+ int height = (int) mSizeChangeAnimator.getAnimatedValue();
+ mQs.setHeightOverride(height);
+ });
+ mSizeChangeAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mSizeChangeAnimator = null;
+ }
+ });
+ mSizeChangeAnimator.start();
+ }
+
+ void setNotificationPanelFullWidth(boolean isFullWidth) {
+ mIsFullWidth = isFullWidth;
+ if (mQs != null) {
+ mQs.setIsNotificationPanelFullWidth(isFullWidth);
+ }
+ }
+
+ void setBarState(int barState) {
+ mBarState = barState;
+ }
+
+ /** */
+ public void setExpansionEnabledPolicy(boolean expansionEnabledPolicy) {
+ mExpansionEnabledPolicy = expansionEnabledPolicy;
+ if (mQs != null) {
+ mQs.setHeaderClickable(isExpansionEnabled());
+ }
+ }
+
+ private void setOverScrolling(boolean overscrolling) {
+ mStackScrollerOverscrolling = overscrolling;
+ if (mQs != null) {
+ mQs.setOverscrolling(overscrolling);
+ }
+ }
+
+ /** Sets Qs ScrimEnabled and updates QS state. */
+ public void setScrimEnabled(boolean scrimEnabled) {
+ boolean changed = mScrimEnabled != scrimEnabled;
+ mScrimEnabled = scrimEnabled;
+ if (changed) {
+ updateQsState();
+ }
+ }
+
+ void setCollapsedOnDown(boolean collapsedOnDown) {
+ mCollapsedOnDown = collapsedOnDown;
+ }
+
+ void setShadeExpandedHeight(float shadeExpandedHeight) {
+ mShadeExpandedHeight = shadeExpandedHeight;
+ }
+
+ @VisibleForTesting
+ float getShadeExpandedHeight() {
+ return mShadeExpandedHeight;
+ }
+
+ @VisibleForTesting
+ void setExpandImmediate(boolean expandImmediate) {
+ if (expandImmediate != mExpandImmediate) {
+ mExpandImmediate = expandImmediate;
+ mShadeExpansionStateManager.notifyExpandImmediateChange(expandImmediate);
+ }
+ }
+
+ void setTwoFingerExpandPossible(boolean expandPossible) {
+ mTwoFingerExpandPossible = expandPossible;
+ }
+
+ /** Called when Qs starts expanding */
+ private void onExpansionStarted() {
+ cancelExpansionAnimation();
+ // TODO (b/265193930): remove dependency on NPVC
+ mPanelViewControllerLazy.get().cancelHeightAnimator();
+ // end
+
+ // Reset scroll position and apply that position to the expanded height.
+ float height = mExpansionHeight;
+ setExpansionHeight(height);
+ mNotificationStackScrollLayoutController.checkSnoozeLeavebehind();
+
+ // When expanding QS, let's authenticate the user if possible,
+ // this will speed up notification actions.
+ if (height == 0 && !mKeyguardStateController.canDismissLockScreen()) {
+ mKeyguardUpdateMonitor.requestFaceAuth(FaceAuthApiRequestReason.QS_EXPANDED);
+ }
+ }
+
+ void updateQsState() {
+ boolean qsFullScreen = mExpanded && !mSplitShadeEnabled;
+ mNotificationStackScrollLayoutController.setQsFullScreen(qsFullScreen);
+ mNotificationStackScrollLayoutController.setScrollingEnabled(
+ mBarState != KEYGUARD && (!qsFullScreen || mExpansionFromOverscroll));
+
+ if (mQsStateUpdateListener != null) {
+ mQsStateUpdateListener.onQsStateUpdated(mExpanded, mStackScrollerOverscrolling);
+ }
+
+ if (mQs == null) return;
+ mQs.setExpanded(mExpanded);
+ }
+
+ /** update expanded state of QS */
+ public void updateExpansion() {
+ if (mQs == null) return;
+ final float squishiness;
+ if ((mExpandImmediate || mExpanded) && !mSplitShadeEnabled) {
+ squishiness = 1;
+ } else if (mTransitioningToFullShadeProgress > 0.0f) {
+ squishiness = mLockscreenShadeTransitionController.getQsSquishTransitionFraction();
+ } else {
+ squishiness = mNotificationStackScrollLayoutController
+ .getNotificationSquishinessFraction();
+ }
+ final float qsExpansionFraction = computeExpansionFraction();
+ final float adjustedExpansionFraction = mSplitShadeEnabled
+ ? 1f : computeExpansionFraction();
+ mQs.setQsExpansion(
+ adjustedExpansionFraction,
+ mShadeExpandedFraction,
+ getHeaderTranslation(),
+ squishiness
+ );
+ mMediaHierarchyManager.setQsExpansion(qsExpansionFraction);
+ int qsPanelBottomY = calculateBottomPosition(qsExpansionFraction);
+ mScrimController.setQsPosition(qsExpansionFraction, qsPanelBottomY);
+ setClippingBounds();
+
+ if (mSplitShadeEnabled) {
+ // In split shade we want to pretend that QS are always collapsed so their behaviour and
+ // interactions don't influence notifications as they do in portrait. But we want to set
+ // 0 explicitly in case we're rotating from non-split shade with QS expansion of 1.
+ mNotificationStackScrollLayoutController.setQsExpansionFraction(0);
+ } else {
+ mNotificationStackScrollLayoutController.setQsExpansionFraction(qsExpansionFraction);
+ }
+
+ mDepthController.setQsPanelExpansion(qsExpansionFraction);
+ mStatusBarKeyguardViewManager.setQsExpansion(qsExpansionFraction);
+
+ // TODO (b/265193930): remove dependency on NPVC
+ float shadeExpandedFraction = mBarState == KEYGUARD
+ ? mPanelViewControllerLazy.get().getLockscreenShadeDragProgress()
+ : mShadeExpandedFraction;
+ mLargeScreenShadeHeaderController.setShadeExpandedFraction(shadeExpandedFraction);
+ mLargeScreenShadeHeaderController.setQsExpandedFraction(qsExpansionFraction);
+ mLargeScreenShadeHeaderController.setQsVisible(mVisible);
+ }
+
+ /** */
+ public void updateExpansionEnabledAmbient() {
+ final float scrollRangeToTop = mAmbientState.getTopPadding() - mQuickQsHeaderHeight;
+ mExpansionEnabledAmbient = mSplitShadeEnabled
+ || (mAmbientState.getScrollY() <= scrollRangeToTop);
+ if (mQs != null) {
+ mQs.setHeaderClickable(isExpansionEnabled());
+ }
+ }
+
+ /** Calculate y value of bottom of QS */
+ private int calculateBottomPosition(float qsExpansionFraction) {
+ if (mTransitioningToFullShadeProgress > 0.0f) {
+ return mTransitionToFullShadePosition;
+ } else {
+ int qsBottomYFrom = (int) getHeaderTranslation() + mQs.getQsMinExpansionHeight();
+ int expandedTopMargin = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight : 0;
+ int qsBottomYTo = mQs.getDesiredHeight() + expandedTopMargin;
+ return (int) MathUtils.lerp(qsBottomYFrom, qsBottomYTo, qsExpansionFraction);
+ }
+ }
+
+ /** Calculate fraction of current QS expansion state */
+ public float computeExpansionFraction() {
+ if (mAnimatingHiddenFromCollapsed) {
+ // When hiding QS from collapsed state, the expansion can sometimes temporarily
+ // be larger than 0 because of the timing, leading to flickers.
+ return 0.0f;
+ }
+ return Math.min(
+ 1f, (mExpansionHeight - mMinExpansionHeight) / (mMaxExpansionHeight
+ - mMinExpansionHeight));
+ }
+
+ void updateMinHeight() {
+ float previousMin = mMinExpansionHeight;
+ if (mBarState == KEYGUARD || mSplitShadeEnabled) {
+ mMinExpansionHeight = 0;
+ } else {
+ mMinExpansionHeight = mQs.getQsMinExpansionHeight();
+ }
+ if (mExpansionHeight == previousMin) {
+ mExpansionHeight = mMinExpansionHeight;
+ }
+ }
+
+ void updateQsFrameTranslation() {
+ // TODO (b/265193930): remove dependency on NPVC
+ mQsFrameTranslateController.translateQsFrame(mQsFrame, mQs,
+ mPanelViewControllerLazy.get().getNavigationBarBottomHeight()
+ + mAmbientState.getStackTopMargin());
+ }
+
+ /** Called when shade starts expanding. */
+ public void onExpandingStarted(boolean qsFullyExpanded) {
+ mNotificationStackScrollLayoutController.onExpansionStarted();
+ mExpandedWhenExpandingStarted = qsFullyExpanded;
+ mMediaHierarchyManager.setCollapsingShadeFromQS(mExpandedWhenExpandingStarted
+ /* We also start expanding when flinging closed Qs. Let's exclude that */
+ && !mAnimating);
+ if (mExpanded) {
+ onExpansionStarted();
+ }
+ // Since there are QS tiles in the header now, we need to make sure we start listening
+ // immediately so they can be up to date.
+ if (mQs == null) return;
+ mQs.setHeaderListening(true);
+ }
+
+ /** Set animate next notification bounds. */
+ private void setAnimateNextNotificationBounds(long duration, long delay) {
+ mAnimateNextNotificationBounds = true;
+ mNotificationBoundsAnimationDuration = duration;
+ mNotificationBoundsAnimationDelay = delay;
+ }
+
+ /**
+ * Updates scrim bounds, QS clipping, notifications clipping and keyguard status view clipping
+ * as well based on the bounds of the shade and QS state.
+ */
+ private void setClippingBounds() {
+ float qsExpansionFraction = computeExpansionFraction();
+ final int qsPanelBottomY = calculateBottomPosition(qsExpansionFraction);
+ final boolean qsVisible = (qsExpansionFraction > 0 || qsPanelBottomY > 0);
+ checkCorrectScrimVisibility(qsExpansionFraction);
+
+ int top = calculateTopClippingBound(qsPanelBottomY);
+ int bottom = calculateBottomClippingBound(top);
+ int left = calculateLeftClippingBound();
+ int right = calculateRightClippingBound();
+ // top should never be lower than bottom, otherwise it will be invisible.
+ top = Math.min(top, bottom);
+ applyClippingBounds(left, top, right, bottom, qsVisible);
+ }
+
+ /**
+ * Applies clipping to quick settings, notifications layout and
+ * updates bounds of the notifications background (notifications scrim).
+ *
+ * The parameters are bounds of the notifications area rectangle, this function
+ * calculates bounds for the QS clipping based on the notifications bounds.
+ */
+ private void applyClippingBounds(int left, int top, int right, int bottom,
+ boolean qsVisible) {
+ if (!mAnimateNextNotificationBounds || mLastClipBounds.isEmpty()) {
+ if (mClippingAnimator != null) {
+ // update the end position of the animator
+ mClippingAnimationEndBounds.set(left, top, right, bottom);
+ } else {
+ applyClippingImmediately(left, top, right, bottom, qsVisible);
+ }
+ } else {
+ mClippingAnimationEndBounds.set(left, top, right, bottom);
+ final int startLeft = mLastClipBounds.left;
+ final int startTop = mLastClipBounds.top;
+ final int startRight = mLastClipBounds.right;
+ final int startBottom = mLastClipBounds.bottom;
+ if (mClippingAnimator != null) {
+ mClippingAnimator.cancel();
+ }
+ mClippingAnimator = ValueAnimator.ofFloat(0.0f, 1.0f);
+ mClippingAnimator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
+ mClippingAnimator.setDuration(mNotificationBoundsAnimationDuration);
+ mClippingAnimator.setStartDelay(mNotificationBoundsAnimationDelay);
+ mClippingAnimator.addUpdateListener(animation -> {
+ float fraction = animation.getAnimatedFraction();
+ int animLeft = (int) MathUtils.lerp(startLeft,
+ mClippingAnimationEndBounds.left, fraction);
+ int animTop = (int) MathUtils.lerp(startTop,
+ mClippingAnimationEndBounds.top, fraction);
+ int animRight = (int) MathUtils.lerp(startRight,
+ mClippingAnimationEndBounds.right, fraction);
+ int animBottom = (int) MathUtils.lerp(startBottom,
+ mClippingAnimationEndBounds.bottom, fraction);
+ applyClippingImmediately(animLeft, animTop, animRight, animBottom,
+ qsVisible /* qsVisible */);
+ });
+ mClippingAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mClippingAnimator = null;
+ mIsTranslationResettingAnimator = false;
+ mIsPulseExpansionResettingAnimator = false;
+ }
+ });
+ mClippingAnimator.start();
+ }
+ mAnimateNextNotificationBounds = false;
+ mNotificationBoundsAnimationDelay = 0;
+ }
+
+ private void applyClippingImmediately(int left, int top, int right, int bottom,
+ boolean qsVisible) {
+ int radius = mScrimCornerRadius;
+ boolean clipStatusView = false;
+ mLastClipBounds.set(left, top, right, bottom);
+ if (mIsFullWidth) {
+ clipStatusView = qsVisible;
+ float screenCornerRadius = mRecordingController.isRecording() ? 0 : mScreenCornerRadius;
+ radius = (int) MathUtils.lerp(screenCornerRadius, mScrimCornerRadius,
+ Math.min(top / (float) mScrimCornerRadius, 1f));
+ }
+ if (isQsFragmentCreated()) {
+ float qsTranslation = 0;
+ boolean pulseExpanding = mPulseExpansionHandler.isExpanding();
+ if (mTransitioningToFullShadeProgress > 0.0f
+ || pulseExpanding || (mClippingAnimator != null
+ && (mIsTranslationResettingAnimator || mIsPulseExpansionResettingAnimator))) {
+ if (pulseExpanding || mIsPulseExpansionResettingAnimator) {
+ // qsTranslation should only be positive during pulse expansion because it's
+ // already translating in from the top
+ qsTranslation = Math.max(0, (top - getHeaderHeight()) / 2.0f);
+ } else if (!mSplitShadeEnabled) {
+ qsTranslation = (top - getHeaderHeight()) * QS_PARALLAX_AMOUNT;
+ }
+ }
+ mTranslationForFullShadeTransition = qsTranslation;
+ updateQsFrameTranslation();
+ float currentTranslation = mQsFrame.getTranslationY();
+ int clipTop = mEnableClipping
+ ? (int) (top - currentTranslation - mQsFrame.getTop()) : 0;
+ int clipBottom = mEnableClipping
+ ? (int) (bottom - currentTranslation - mQsFrame.getTop()) : 0;
+ mVisible = qsVisible;
+ mQs.setQsVisible(qsVisible);
+ mQs.setFancyClipping(
+ clipTop,
+ clipBottom,
+ radius,
+ qsVisible && !mSplitShadeEnabled);
+
+ }
+
+ // Increase the height of the notifications scrim when not in split shade
+ // (e.g. portrait tablet) so the rounded corners are not visible at the bottom,
+ // in this case they are rendered off-screen
+ final int notificationsScrimBottom = mSplitShadeEnabled ? bottom : bottom + radius;
+ mScrimController.setNotificationsBounds(left, top, right, notificationsScrimBottom);
+
+ if (mApplyClippingImmediatelyListener != null) {
+ mApplyClippingImmediatelyListener.onQsClippingImmediatelyApplied(clipStatusView,
+ mLastClipBounds, top, isQsFragmentCreated(), mVisible);
+ }
+
+ mScrimController.setScrimCornerRadius(radius);
+
+ // Convert global clipping coordinates to local ones,
+ // relative to NotificationStackScrollLayout
+ int nsslLeft = calculateNsslLeft(left);
+ int nsslRight = calculateNsslRight(right);
+ int nsslTop = getNotificationsClippingTopBounds(top);
+ int nsslBottom = bottom - mNotificationStackScrollLayoutController.getTop();
+ int bottomRadius = mSplitShadeEnabled ? radius : 0;
+ // TODO (b/265193930): remove dependency on NPVC
+ int topRadius = mSplitShadeEnabled
+ && mPanelViewControllerLazy.get().isExpandingFromHeadsUp() ? 0 : radius;
+ mNotificationStackScrollLayoutController.setRoundedClippingBounds(
+ nsslLeft, nsslTop, nsslRight, nsslBottom, topRadius, bottomRadius);
+ }
+
+ void setDisplayInsets(int leftInset, int rightInset) {
+ mDisplayLeftInset = leftInset;
+ mDisplayRightInset = rightInset;
+ }
+
+ private int calculateNsslLeft(int nsslLeftAbsolute) {
+ int left = nsslLeftAbsolute - mNotificationStackScrollLayoutController.getLeft();
+ if (mIsFullWidth) {
+ return left;
+ }
+ return left - mDisplayLeftInset;
+ }
+
+ private int calculateNsslRight(int nsslRightAbsolute) {
+ int right = nsslRightAbsolute - mNotificationStackScrollLayoutController.getLeft();
+ if (mIsFullWidth) {
+ return right;
+ }
+ return right - mDisplayLeftInset;
+ }
+
+ private int getNotificationsClippingTopBounds(int qsTop) {
+ // TODO (b/265193930): remove dependency on NPVC
+ if (mSplitShadeEnabled && mPanelViewControllerLazy.get().isExpandingFromHeadsUp()) {
+ // in split shade nssl has extra top margin so clipping at top 0 is not enough, we need
+ // to set top clipping bound to negative value to allow HUN to go up to the top edge of
+ // the screen without clipping.
+ return -mAmbientState.getStackTopMargin();
+ } else {
+ return qsTop - mNotificationStackScrollLayoutController.getTop();
+ }
+ }
+
+ private void checkCorrectScrimVisibility(float expansionFraction) {
+ // issues with scrims visible on keyguard occur only in split shade
+ if (mSplitShadeEnabled) {
+ // TODO (b/265193930): remove dependency on NPVC
+ boolean keyguardViewsVisible = mBarState == KEYGUARD
+ && mPanelViewControllerLazy.get().getKeyguardOnlyContentAlpha() == 1;
+ // expansionFraction == 1 means scrims are fully visible as their size/visibility depend
+ // on QS expansion
+ if (expansionFraction == 1 && keyguardViewsVisible) {
+ Log.wtf(TAG,
+ "Incorrect state, scrim is visible at the same time when clock is visible");
+ }
+ }
+ }
+
+ /** Calculate top padding for notifications */
+ public float calculateNotificationsTopPadding(boolean isShadeExpanding,
+ int keyguardNotificationStaticPadding, float expandedFraction) {
+ boolean keyguardShowing = mBarState == KEYGUARD;
+ if (mSplitShadeEnabled) {
+ return keyguardShowing
+ ? keyguardNotificationStaticPadding : 0;
+ }
+ if (keyguardShowing && (isExpandImmediate()
+ || isShadeExpanding && getExpandedWhenExpandingStarted())) {
+
+ // Either QS pushes the notifications down when fully expanded, or QS is fully above the
+ // notifications (mostly on tablets). maxNotificationPadding denotes the normal top
+ // padding on Keyguard, maxQsPadding denotes the top padding from the quick settings
+ // panel. We need to take the maximum and linearly interpolate with the panel expansion
+ // for a nice motion.
+ int maxQsPadding = getMaxExpansionHeight();
+ int max = keyguardShowing ? Math.max(
+ keyguardNotificationStaticPadding, maxQsPadding) : maxQsPadding;
+ return (int) MathUtils.lerp((float) getMinExpansionHeight(),
+ (float) max, expandedFraction);
+ } else if (isSizeChangeAnimationRunning()) {
+ return Math.max((int) mSizeChangeAnimator.getAnimatedValue(),
+ keyguardNotificationStaticPadding);
+ } else if (keyguardShowing) {
+ // We can only do the smoother transition on Keyguard when we also are not collapsing
+ // from a scrolled quick settings.
+ return MathUtils.lerp((float) keyguardNotificationStaticPadding,
+ (float) (getMaxExpansionHeight()), computeExpansionFraction());
+ } else {
+ return mQsFrameTranslateController.getNotificationsTopPadding(
+ mExpansionHeight, mNotificationStackScrollLayoutController);
+ }
+ }
+
+ /** Calculate height of QS panel */
+ public int calculatePanelHeightExpanded(int stackScrollerPadding) {
+ float
+ notificationHeight =
+ mNotificationStackScrollLayoutController.getHeight()
+ - mNotificationStackScrollLayoutController.getEmptyBottomMargin()
+ - mNotificationStackScrollLayoutController.getTopPadding();
+
+ // When only empty shade view is visible in QS collapsed state, simulate that we would have
+ // it in expanded QS state as well so we don't run into troubles when fading the view in/out
+ // and expanding/collapsing the whole panel from/to quick settings.
+ if (mNotificationStackScrollLayoutController.getNotGoneChildCount() == 0
+ && mNotificationStackScrollLayoutController.isShowingEmptyShadeView()) {
+ notificationHeight = mNotificationStackScrollLayoutController.getEmptyShadeViewHeight();
+ }
+ int maxQsHeight = mMaxExpansionHeight;
+
+ // If an animation is changing the size of the QS panel, take the animated value.
+ if (mSizeChangeAnimator != null) {
+ maxQsHeight = (int) mSizeChangeAnimator.getAnimatedValue();
+ }
+ float totalHeight = Math.max(maxQsHeight, mBarState == KEYGUARD ? stackScrollerPadding : 0)
+ + notificationHeight
+ + mNotificationStackScrollLayoutController.getTopPaddingOverflow();
+ if (totalHeight > mNotificationStackScrollLayoutController.getHeight()) {
+ float
+ fullyCollapsedHeight =
+ maxQsHeight + mNotificationStackScrollLayoutController.getLayoutMinHeight();
+ totalHeight = Math.max(fullyCollapsedHeight,
+ mNotificationStackScrollLayoutController.getHeight());
+ }
+ return (int) totalHeight;
+ }
+
+ private float getEdgePosition() {
+ // TODO: replace StackY with unified calculation
+ return Math.max(mQuickQsHeaderHeight * mAmbientState.getExpansionFraction(),
+ mAmbientState.getStackY()
+ // need to adjust for extra margin introduced by large screen shade header
+ + mAmbientState.getStackTopMargin() * mAmbientState.getExpansionFraction()
+ - mAmbientState.getScrollY());
+ }
+
+ private int calculateTopClippingBound(int qsPanelBottomY) {
+ int top;
+ if (mSplitShadeEnabled) {
+ top = Math.min(qsPanelBottomY, mLargeScreenShadeHeaderHeight);
+ } else {
+ if (mTransitioningToFullShadeProgress > 0.0f) {
+ // If we're transitioning, let's use the actual value. The else case
+ // can be wrong during transitions when waiting for the keyguard to unlock
+ top = mTransitionToFullShadePosition;
+ } else {
+ final float notificationTop = getEdgePosition();
+ if (mBarState == KEYGUARD) {
+ if (mKeyguardBypassController.getBypassEnabled()) {
+ // When bypassing on the keyguard, let's use the panel bottom.
+ // this should go away once we unify the stackY position and don't have
+ // to do this min anymore below.
+ top = qsPanelBottomY;
+ } else {
+ top = (int) Math.min(qsPanelBottomY, notificationTop);
+ }
+ } else {
+ top = (int) notificationTop;
+ }
+ }
+ // TODO (b/265193930): remove dependency on NPVC
+ top += mPanelViewControllerLazy.get().getOverStretchAmount();
+ // Correction for instant expansion caused by HUN pull down/
+ float minFraction = mPanelViewControllerLazy.get().getMinFraction();
+ if (minFraction > 0f && minFraction < 1f) {
+ float realFraction = (mShadeExpandedFraction
+ - minFraction) / (1f - minFraction);
+ top *= MathUtils.saturate(realFraction / minFraction);
+ }
+ }
+ return top;
+ }
+
+ private int calculateBottomClippingBound(int top) {
+ if (mSplitShadeEnabled) {
+ return top + mNotificationStackScrollLayoutController.getHeight()
+ + mSplitShadeNotificationsScrimMarginBottom;
+ } else {
+ return mPanelView.getBottom();
+ }
+ }
+
+ private int calculateLeftClippingBound() {
+ if (mIsFullWidth) {
+ // left bounds can ignore insets, it should always reach the edge of the screen
+ return 0;
+ } else {
+ return mNotificationStackScrollLayoutController.getLeft()
+ + mDisplayLeftInset;
+ }
+ }
+
+ private int calculateRightClippingBound() {
+ if (mIsFullWidth) {
+ return mPanelView.getRight()
+ + mDisplayRightInset;
+ } else {
+ return mNotificationStackScrollLayoutController.getRight()
+ + mDisplayLeftInset;
+ }
+ }
+
+ private void trackMovement(MotionEvent event) {
+ if (mQsVelocityTracker != null) mQsVelocityTracker.addMovement(event);
+ }
+
+ private void initVelocityTracker() {
+ if (mQsVelocityTracker != null) {
+ mQsVelocityTracker.recycle();
+ }
+ mQsVelocityTracker = VelocityTracker.obtain();
+ }
+
+ private float getCurrentVelocity() {
+ if (mQsVelocityTracker == null) {
+ return 0;
+ }
+ mQsVelocityTracker.computeCurrentVelocity(1000);
+ return mQsVelocityTracker.getYVelocity();
+ }
+
+ boolean updateAndGetTouchAboveFalsingThreshold() {
+ mTouchAboveFalsingThreshold = mFullyExpanded;
+ return mTouchAboveFalsingThreshold;
+ }
+
+ private void onHeightChanged() {
+ mMaxExpansionHeight = isQsFragmentCreated() ? mQs.getDesiredHeight() : 0;
+ if (mExpanded && mFullyExpanded) {
+ mExpansionHeight = mMaxExpansionHeight;
+ if (mExpansionHeightSetToMaxListener != null) {
+ mExpansionHeightSetToMaxListener.onExpansionHeightSetToMax(true);
+ }
+ }
+ if (mAccessibilityManager.isEnabled()) {
+ // TODO (b/265193930): remove dependency on NPVC
+ mPanelView.setAccessibilityPaneTitle(
+ mPanelViewControllerLazy.get().determineAccessibilityPaneTitle());
+ }
+ mNotificationStackScrollLayoutController.setMaxTopPadding(mMaxExpansionHeight);
+ }
+
+ private void collapseOrExpandQs() {
+ onExpansionStarted();
+ if (getExpanded()) {
+ flingQs(0, FLING_COLLAPSE, null, true);
+ } else if (isExpansionEnabled()) {
+ mLockscreenGestureLogger.write(MetricsProto.MetricsEvent.ACTION_SHADE_QS_TAP, 0, 0);
+ flingQs(0, FLING_EXPAND, null, true);
+ }
+ }
+
+ private void onScroll(int scrollY) {
+ mLargeScreenShadeHeaderController.setQsScrollY(scrollY);
+ if (scrollY > 0 && !mFullyExpanded) {
+ // TODO (b/265193930): remove dependency on NPVC
+ // If we are scrolling QS, we should be fully expanded.
+ mPanelViewControllerLazy.get().expandWithQs();
+ }
+ }
+
+ @VisibleForTesting
+ boolean isTrackingBlocked() {
+ return mConflictingExpansionGesture && getExpanded();
+ }
+
+ boolean isExpansionAnimating() {
+ return mExpansionAnimator != null;
+ }
+
+ @VisibleForTesting
+ boolean isConflictingExpansionGesture() {
+ return mConflictingExpansionGesture;
+ }
+
+ /** handles touches in Qs panel area */
+ public boolean handleTouch(MotionEvent event, boolean isFullyCollapsed,
+ boolean isShadeOrQsHeightAnimationRunning) {
+ if (isSplitShadeAndTouchXOutsideQs(event.getX())) {
+ return false;
+ }
+ final int action = event.getActionMasked();
+ boolean collapsedQs = !getExpanded() && !mSplitShadeEnabled;
+ boolean expandedShadeCollapsedQs = mShadeExpandedFraction == 1f
+ && mBarState != KEYGUARD && collapsedQs && isExpansionEnabled();
+ if (action == MotionEvent.ACTION_DOWN && expandedShadeCollapsedQs) {
+ // Down in the empty area while fully expanded - go to QS.
+ mShadeLog.logMotionEvent(event, "handleQsTouch: down action, QS tracking enabled");
+ mTracking = true;
+ traceQsJank(true, false);
+ mConflictingExpansionGesture = true;
+ onExpansionStarted();
+ mInitialHeightOnTouch = mExpansionHeight;
+ mInitialTouchY = event.getY();
+ mInitialTouchX = event.getX();
+ }
+ if (!isFullyCollapsed && !isShadeOrQsHeightAnimationRunning) {
+ handleDown(event);
+ }
+ // defer touches on QQS to shade while shade is collapsing. Added margin for error
+ // as sometimes the qsExpansionFraction can be a tiny value instead of 0 when in QQS.
+ if (!mSplitShadeEnabled && !mLastShadeFlingWasExpanding
+ && computeExpansionFraction() <= 0.01 && mShadeExpandedFraction < 1.0) {
+ mShadeLog.logMotionEvent(event,
+ "handleQsTouch: shade touched while shade collapsing, QS tracking disabled");
+ mTracking = false;
+ }
+ if (!isExpandImmediate() && mTracking) {
+ onTouch(event);
+ if (!mConflictingExpansionGesture && !mSplitShadeEnabled) {
+ mShadeLog.logMotionEvent(event,
+ "handleQsTouch: not immediate expand or conflicting gesture");
+ return true;
+ }
+ }
+ if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
+ mConflictingExpansionGesture = false;
+ }
+ if (action == MotionEvent.ACTION_DOWN && isFullyCollapsed && isExpansionEnabled()) {
+ mTwoFingerExpandPossible = true;
+ }
+ if (mTwoFingerExpandPossible && isOpenQsEvent(event)
+ && event.getY(event.getActionIndex())
+ < mStatusBarMinHeight) {
+ mMetricsLogger.count(COUNTER_PANEL_OPEN_QS, 1);
+ setExpandImmediate(true);
+ mNotificationStackScrollLayoutController.setShouldShowShelfOnly(!mSplitShadeEnabled);
+ if (mExpansionHeightSetToMaxListener != null) {
+ mExpansionHeightSetToMaxListener.onExpansionHeightSetToMax(false);
+ }
+
+ // Normally, we start listening when the panel is expanded, but here we need to start
+ // earlier so the state is already up to date when dragging down.
+ setListening(true);
+ }
+ return false;
+ }
+
+ private void handleDown(MotionEvent event) {
+ if (event.getActionMasked() == MotionEvent.ACTION_DOWN
+ && shouldQuickSettingsIntercept(event.getX(), event.getY(), -1)) {
+ mFalsingCollector.onQsDown();
+ mShadeLog.logMotionEvent(event, "handleQsDown: down action, QS tracking enabled");
+ mTracking = true;
+ onExpansionStarted();
+ mInitialHeightOnTouch = mExpansionHeight;
+ mInitialTouchY = event.getY();
+ mInitialTouchX = event.getX();
+ // TODO (b/265193930): remove dependency on NPVC
+ // If we interrupt an expansion gesture here, make sure to update the state correctly.
+ mPanelViewControllerLazy.get().notifyExpandingFinished();
+ }
+ }
+
+ private void onTouch(MotionEvent event) {
+ int pointerIndex = event.findPointerIndex(mTrackingPointer);
+ if (pointerIndex < 0) {
+ pointerIndex = 0;
+ mTrackingPointer = event.getPointerId(pointerIndex);
+ }
+ final float y = event.getY(pointerIndex);
+ final float x = event.getX(pointerIndex);
+ final float h = y - mInitialTouchY;
+
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ mShadeLog.logMotionEvent(event, "onQsTouch: down action, QS tracking enabled");
+ mTracking = true;
+ traceQsJank(true, false);
+ mInitialTouchY = y;
+ mInitialTouchX = x;
+ onExpansionStarted();
+ mInitialHeightOnTouch = mExpansionHeight;
+ initVelocityTracker();
+ trackMovement(event);
+ break;
+
+ case MotionEvent.ACTION_POINTER_UP:
+ final int upPointer = event.getPointerId(event.getActionIndex());
+ if (mTrackingPointer == upPointer) {
+ // gesture is ongoing, find a new pointer to track
+ final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
+ final float newY = event.getY(newIndex);
+ final float newX = event.getX(newIndex);
+ mTrackingPointer = event.getPointerId(newIndex);
+ mInitialHeightOnTouch = mExpansionHeight;
+ mInitialTouchY = newY;
+ mInitialTouchX = newX;
+ }
+ break;
+
+ case MotionEvent.ACTION_MOVE:
+ mShadeLog.logMotionEvent(event, "onQsTouch: move action, setting QS expansion");
+ setExpansionHeight(h + mInitialHeightOnTouch);
+ // TODO (b/265193930): remove dependency on NPVC
+ if (h >= mPanelViewControllerLazy.get().getFalsingThreshold()) {
+ mTouchAboveFalsingThreshold = true;
+ }
+ trackMovement(event);
+ break;
+
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ mShadeLog.logMotionEvent(event,
+ "onQsTouch: up/cancel action, QS tracking disabled");
+ mTracking = false;
+ mTrackingPointer = -1;
+ trackMovement(event);
+ float fraction = computeExpansionFraction();
+ if (fraction != 0f || y >= mInitialTouchY) {
+ flingQsWithCurrentVelocity(y,
+ event.getActionMasked() == MotionEvent.ACTION_CANCEL);
+ } else {
+ traceQsJank(false,
+ event.getActionMasked() == MotionEvent.ACTION_CANCEL);
+ }
+ if (mQsVelocityTracker != null) {
+ mQsVelocityTracker.recycle();
+ mQsVelocityTracker = null;
+ }
+ break;
+ }
+ }
+
+ /** intercepts touches on Qs panel area. */
+ public boolean onIntercept(MotionEvent event) {
+ int pointerIndex = event.findPointerIndex(mTrackingPointer);
+ if (pointerIndex < 0) {
+ pointerIndex = 0;
+ mTrackingPointer = event.getPointerId(pointerIndex);
+ }
+ final float x = event.getX(pointerIndex);
+ final float y = event.getY(pointerIndex);
+
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ mInitialTouchY = y;
+ mInitialTouchX = x;
+ initVelocityTracker();
+ trackMovement(event);
+ float qsExpansionFraction = computeExpansionFraction();
+ // Intercept the touch if QS is between fully collapsed and fully expanded state
+ if (!mSplitShadeEnabled
+ && qsExpansionFraction > 0.0 && qsExpansionFraction < 1.0) {
+ mShadeLog.logMotionEvent(event,
+ "onQsIntercept: down action, QS partially expanded/collapsed");
+ return true;
+ }
+ // TODO (b/265193930): remove dependency on NPVC
+ if (mPanelViewControllerLazy.get().getKeyguardShowing()
+ && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, 0)) {
+ // Dragging down on the lockscreen statusbar should prohibit other interactions
+ // immediately, otherwise we'll wait on the touchslop. This is to allow
+ // dragging down to expanded quick settings directly on the lockscreen.
+ mPanelView.getParent().requestDisallowInterceptTouchEvent(true);
+ }
+ if (mExpansionAnimator != null) {
+ mInitialHeightOnTouch = mExpansionHeight;
+ mShadeLog.logMotionEvent(event,
+ "onQsIntercept: down action, QS tracking enabled");
+ mTracking = true;
+ traceQsJank(true, false);
+ mNotificationStackScrollLayoutController.cancelLongPress();
+ }
+ break;
+ case MotionEvent.ACTION_POINTER_UP:
+ final int upPointer = event.getPointerId(event.getActionIndex());
+ if (mTrackingPointer == upPointer) {
+ // gesture is ongoing, find a new pointer to track
+ final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
+ mTrackingPointer = event.getPointerId(newIndex);
+ mInitialTouchX = event.getX(newIndex);
+ mInitialTouchY = event.getY(newIndex);
+ }
+ break;
+
+ case MotionEvent.ACTION_MOVE:
+ final float h = y - mInitialTouchY;
+ trackMovement(event);
+ if (mTracking) {
+
+ // Already tracking because onOverscrolled was called. We need to update here
+ // so we don't stop for a frame until the next touch event gets handled in
+ // onTouchEvent.
+ setExpansionHeight(h + mInitialHeightOnTouch);
+ trackMovement(event);
+ return true;
+ } else {
+ mShadeLog.logMotionEvent(event,
+ "onQsIntercept: move ignored because qs tracking disabled");
+ }
+ // TODO (b/265193930): remove dependency on NPVC
+ float touchSlop = event.getClassification()
+ == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE
+ ? mTouchSlop * mSlopMultiplier
+ : mTouchSlop;
+ if ((h > touchSlop || (h < -touchSlop && getExpanded()))
+ && Math.abs(h) > Math.abs(x - mInitialTouchX)
+ && shouldQuickSettingsIntercept(
+ mInitialTouchX, mInitialTouchY, h)) {
+ mPanelView.getParent().requestDisallowInterceptTouchEvent(true);
+ mShadeLog.onQsInterceptMoveQsTrackingEnabled(h);
+ mTracking = true;
+ traceQsJank(true, false);
+ onExpansionStarted();
+ mPanelViewControllerLazy.get().notifyExpandingFinished();
+ mInitialHeightOnTouch = mExpansionHeight;
+ mInitialTouchY = y;
+ mInitialTouchX = x;
+ mNotificationStackScrollLayoutController.cancelLongPress();
+ return true;
+ } else {
+ mShadeLog.logQsTrackingNotStarted(mInitialTouchY, y, h, touchSlop,
+ getExpanded(), mPanelViewControllerLazy.get().getKeyguardShowing(),
+ isExpansionEnabled());
+ }
+ break;
+
+ case MotionEvent.ACTION_CANCEL:
+ case MotionEvent.ACTION_UP:
+ trackMovement(event);
+ mShadeLog.logMotionEvent(event, "onQsIntercept: up action, QS tracking disabled");
+ mTracking = false;
+ break;
+ }
+ return false;
+ }
+
+ private void onPanelExpansionChanged(ShadeExpansionChangeEvent event) {
+ mShadeExpandedFraction = event.getFraction();
+ }
+
+ /**
+ * Animate QS closing by flinging it.
+ * If QS is expanded, it will collapse into QQS and stop.
+ * If in split shade, it will collapse the whole shade.
+ *
+ * @param animateAway Do not stop when QS becomes QQS. Fling until QS isn't visible anymore.
+ */
+ public void animateCloseQs(boolean animateAway) {
+ if (mExpansionAnimator != null) {
+ if (!mAnimatorExpand) {
+ return;
+ }
+ float height = mExpansionHeight;
+ mExpansionAnimator.cancel();
+ setExpansionHeight(height);
+ }
+ flingQs(0 /* vel */, animateAway ? FLING_HIDE : FLING_COLLAPSE);
+ }
+
+ private void cancelExpansionAnimation() {
+ if (mExpansionAnimator != null) {
+ mExpansionAnimator.cancel();
+ }
+ }
+
+ /** @see #flingQs(float, int, Runnable, boolean) */
+ public void flingQs(float vel, int type) {
+ flingQs(vel, type, null /* onFinishRunnable */, false /* isClick */);
+ }
+
+ /**
+ * Animates QS or QQS as if the user had swiped up or down.
+ *
+ * @param vel Finger velocity or 0 when not initiated by touch events.
+ * @param type Either FLING_EXPAND, FLING_COLLAPSE or FLING_HIDE.
+ * @param onFinishRunnable Runnable to be executed at the end of animation.
+ * @param isClick If originated by click (different interpolator and duration.)
+ */
+ private void flingQs(float vel, int type, final Runnable onFinishRunnable,
+ boolean isClick) {
+ float target;
+ switch (type) {
+ case FLING_EXPAND:
+ target = getMaxExpansionHeight();
+ break;
+ case FLING_COLLAPSE:
+ target = getMinExpansionHeight();
+ break;
+ case FLING_HIDE:
+ default:
+ if (isQsFragmentCreated()) {
+ mQs.closeDetail();
+ }
+ target = 0;
+ }
+ if (target == mExpansionHeight) {
+ if (onFinishRunnable != null) {
+ onFinishRunnable.run();
+ }
+ traceQsJank(false, type != FLING_EXPAND);
+ return;
+ }
+
+ // If we move in the opposite direction, reset velocity and use a different duration.
+ boolean oppositeDirection = false;
+ boolean expanding = type == FLING_EXPAND;
+ if (vel > 0 && !expanding || vel < 0 && expanding) {
+ vel = 0;
+ oppositeDirection = true;
+ }
+ ValueAnimator animator = ValueAnimator.ofFloat(
+ mExpansionHeight, target);
+ if (isClick) {
+ animator.setInterpolator(Interpolators.TOUCH_RESPONSE);
+ animator.setDuration(368);
+ } else {
+ if (mFlingQsWithoutClickListener != null) {
+ mFlingQsWithoutClickListener.onFlingQsWithoutClick(animator, mExpansionHeight,
+ target, vel);
+ }
+ }
+ if (oppositeDirection) {
+ animator.setDuration(350);
+ }
+ animator.addUpdateListener(
+ animation -> setExpansionHeight((Float) animation.getAnimatedValue()));
+ animator.addListener(new AnimatorListenerAdapter() {
+ private boolean mIsCanceled;
+
+ @Override
+ public void onAnimationStart(Animator animation) {
+ mPanelViewControllerLazy.get().notifyExpandingStarted();
+ }
+
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ mIsCanceled = true;
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mAnimatingHiddenFromCollapsed = false;
+ mAnimating = false;
+ mPanelViewControllerLazy.get().notifyExpandingFinished();
+ mNotificationStackScrollLayoutController.resetCheckSnoozeLeavebehind();
+ mExpansionAnimator = null;
+ if (onFinishRunnable != null) {
+ onFinishRunnable.run();
+ }
+ traceQsJank(false, mIsCanceled);
+ }
+ });
+ // Let's note that we're animating QS. Moving the animator here will cancel it immediately,
+ // so we need a separate flag.
+ mAnimating = true;
+ animator.start();
+ mExpansionAnimator = animator;
+ mAnimatorExpand = expanding;
+ mAnimatingHiddenFromCollapsed =
+ computeExpansionFraction() == 0.0f && target == 0;
+ }
+
+ private void flingQsWithCurrentVelocity(float y, boolean isCancelMotionEvent) {
+ float vel = getCurrentVelocity();
+ // TODO (b/265193930): remove dependency on NPVC
+ boolean expandsQs = mPanelViewControllerLazy.get().flingExpandsQs(vel);
+ if (expandsQs) {
+ if (mFalsingManager.isUnlockingDisabled() || isQsFalseTouch()) {
+ expandsQs = false;
+ } else {
+ logQsSwipeDown(y);
+ }
+ } else if (vel < 0) {
+ mFalsingManager.isFalseTouch(QS_COLLAPSE);
+ }
+
+ int flingType;
+ if (expandsQs && !isCancelMotionEvent) {
+ flingType = FLING_EXPAND;
+ } else if (mSplitShadeEnabled) {
+ flingType = FLING_HIDE;
+ } else {
+ flingType = FLING_COLLAPSE;
+ }
+ flingQs(vel, flingType);
+ }
+
+ private void logQsSwipeDown(float y) {
+ float vel = getCurrentVelocity();
+ final int gesture = mBarState == KEYGUARD ? MetricsProto.MetricsEvent.ACTION_LS_QS
+ : MetricsProto.MetricsEvent.ACTION_SHADE_QS_PULL;
+ // TODO (b/265193930): remove dependency on NPVC
+ float displayDensity = mPanelViewControllerLazy.get().getDisplayDensity();
+ mLockscreenGestureLogger.write(gesture,
+ (int) ((y - getInitialTouchY()) / displayDensity), (int) (vel / displayDensity));
+ }
+
+ /** */
+ public FragmentHostManager.FragmentListener getQsFragmentListener() {
+ return new QsFragmentListener();
+ }
+
+ /** */
+ public final class QsFragmentListener implements FragmentHostManager.FragmentListener {
+ /** */
+ @Override
+ public void onFragmentViewCreated(String tag, Fragment fragment) {
+ mQs = (QS) fragment;
+ mQs.setPanelView(mQsHeightListener);
+ mQs.setCollapseExpandAction(mQsCollapseExpandAction);
+ mQs.setHeaderClickable(isExpansionEnabled());
+ mQs.setOverscrolling(mStackScrollerOverscrolling);
+ mQs.setInSplitShade(mSplitShadeEnabled);
+ mQs.setIsNotificationPanelFullWidth(mIsFullWidth);
+
+ // recompute internal state when qspanel height changes
+ mQs.getView().addOnLayoutChangeListener(
+ (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
+ final int height = bottom - top;
+ final int oldHeight = oldBottom - oldTop;
+ if (height != oldHeight) {
+ onHeightChanged();
+ }
+ });
+ mQs.setCollapsedMediaVisibilityChangedListener((visible) -> {
+ if (mQs.getHeader().isShown()) {
+ setAnimateNextNotificationBounds(
+ StackStateAnimator.ANIMATION_DURATION_STANDARD, 0);
+ mNotificationStackScrollLayoutController.animateNextTopPaddingChange();
+ }
+ });
+ mLockscreenShadeTransitionController.setQS(mQs);
+ mShadeTransitionController.setQs(mQs);
+ mNotificationStackScrollLayoutController.setQsHeader((ViewGroup) mQs.getHeader());
+ mQs.setScrollListener(mQsScrollListener);
+ updateExpansion();
+ }
+
+ /** */
+ @Override
+ public void onFragmentViewDestroyed(String tag, Fragment fragment) {
+ // Manual handling of fragment lifecycle is only required because this bridges
+ // non-fragment and fragment code. Once we are using a fragment for the notification
+ // panel, mQs will not need to be null cause it will be tied to the same lifecycle.
+ if (fragment == mQs) {
+ mQs = null;
+ }
+ }
+ }
+
+ private final class LockscreenShadeTransitionCallback
+ implements LockscreenShadeTransitionController.Callback {
+ /** Called when pulse expansion has finished and this is going to the full shade. */
+ @Override
+ public void onPulseExpansionFinished() {
+ setAnimateNextNotificationBounds(
+ StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE, 0);
+ mIsPulseExpansionResettingAnimator = true;
+ }
+
+ @Override
+ public void setTransitionToFullShadeAmount(float pxAmount, boolean animate, long delay) {
+ if (animate && mIsFullWidth) {
+ setAnimateNextNotificationBounds(
+ StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE, delay);
+ mIsTranslationResettingAnimator = mTranslationForFullShadeTransition > 0.0f;
+ }
+ float endPosition = 0;
+ if (pxAmount > 0.0f) {
+ if (mSplitShadeEnabled) {
+ float qsHeight = MathUtils.lerp(getMinExpansionHeight(),
+ getMaxExpansionHeight(),
+ mLockscreenShadeTransitionController.getQSDragProgress());
+ setExpansionHeight(qsHeight);
+ }
+ if (mNotificationStackScrollLayoutController.getVisibleNotificationCount() == 0
+ && !mMediaDataManager.hasActiveMediaOrRecommendation()) {
+ // No notifications are visible, let's animate to the height of qs instead
+ if (isQsFragmentCreated()) {
+ // Let's interpolate to the header height instead of the top padding,
+ // because the toppadding is way too low because of the large clock.
+ // we still want to take into account the edgePosition though as that nicely
+ // overshoots in the stackscroller
+ endPosition = getEdgePosition()
+ - mNotificationStackScrollLayoutController.getTopPadding()
+ + getHeaderHeight();
+ }
+ } else {
+ // Interpolating to the new bottom edge position!
+ endPosition = getEdgePosition() + mNotificationStackScrollLayoutController
+ .getFullShadeTransitionInset();
+ if (mBarState == KEYGUARD) {
+ endPosition -= mLockscreenNotificationPadding;
+ }
+ }
+ }
+
+ // Calculate the overshoot amount such that we're reaching the target after our desired
+ // distance, but only reach it fully once we drag a full shade length.
+ mTransitioningToFullShadeProgress = Interpolators.FAST_OUT_SLOW_IN.getInterpolation(
+ MathUtils.saturate(pxAmount / mDistanceForFullShadeTransition));
+
+ int position = (int) MathUtils.lerp((float) 0, endPosition,
+ mTransitioningToFullShadeProgress);
+ if (mTransitioningToFullShadeProgress > 0.0f) {
+ // we want at least 1 pixel otherwise the panel won't be clipped
+ position = Math.max(1, position);
+ }
+ mTransitionToFullShadePosition = position;
+ updateExpansion();
+ }
+ }
+
+ private final class NsslOverscrollTopChangedListener implements
+ NotificationStackScrollLayout.OnOverscrollTopChangedListener {
+ @Override
+ public void onOverscrollTopChanged(float amount, boolean isRubberbanded) {
+ // When in split shade, overscroll shouldn't carry through to QS
+ if (mSplitShadeEnabled) {
+ return;
+ }
+ cancelExpansionAnimation();
+ if (!isExpansionEnabled()) {
+ amount = 0f;
+ }
+ float rounded = amount >= 1f ? amount : 0f;
+ setOverScrolling(rounded != 0f && isRubberbanded);
+ mExpansionFromOverscroll = rounded != 0f;
+ mLastOverscroll = rounded;
+ updateQsState();
+ setExpansionHeight(getMinExpansionHeight() + rounded);
+ }
+
+ @Override
+ public void flingTopOverscroll(float velocity, boolean open) {
+ // in split shade mode we want to expand/collapse QS only when touch happens within QS
+ if (isSplitShadeAndTouchXOutsideQs(mInitialTouchX)) {
+ return;
+ }
+ mLastOverscroll = 0f;
+ mExpansionFromOverscroll = false;
+ if (open) {
+ // During overscrolling, qsExpansion doesn't actually change that the qs is
+ // becoming expanded. Any layout could therefore reset the position again. Let's
+ // make sure we can expand
+ setOverScrolling(false);
+ }
+ setExpansionHeight(getExpansionHeight());
+ boolean canExpand = isExpansionEnabled();
+ flingQs(!canExpand && open ? 0f : velocity,
+ open && canExpand ? FLING_EXPAND : FLING_COLLAPSE, () -> {
+ setOverScrolling(false);
+ updateQsState();
+ }, false);
+ }
+ }
+
+ void beginJankMonitoring(boolean isFullyCollapsed) {
+ if (mInteractionJankMonitor == null) {
+ return;
+ }
+ // TODO (b/265193930): remove dependency on NPVC
+ InteractionJankMonitor.Configuration.Builder builder =
+ InteractionJankMonitor.Configuration.Builder.withView(
+ InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE,
+ mPanelView).setTag(isFullyCollapsed ? "Expand" : "Collapse");
+ mInteractionJankMonitor.begin(builder);
+ }
+
+ void endJankMonitoring() {
+ if (mInteractionJankMonitor == null) {
+ return;
+ }
+ InteractionJankMonitor.getInstance().end(
+ InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE);
+ }
+
+ void cancelJankMonitoring() {
+ if (mInteractionJankMonitor == null) {
+ return;
+ }
+ InteractionJankMonitor.getInstance().cancel(
+ InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE);
+ }
+
+ void traceQsJank(boolean startTracing, boolean wasCancelled) {
+ if (mInteractionJankMonitor == null) {
+ return;
+ }
+ if (startTracing) {
+ mInteractionJankMonitor.begin(mPanelView, CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE);
+ } else {
+ if (wasCancelled) {
+ mInteractionJankMonitor.cancel(CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE);
+ } else {
+ mInteractionJankMonitor.end(CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE);
+ }
+ }
+ }
+
+ interface ExpansionHeightSetToMaxListener {
+ void onExpansionHeightSetToMax(boolean requestPaddingUpdate);
+ }
+
+ interface ExpansionHeightListener {
+ void onQsSetExpansionHeightCalled(boolean qsFullyExpanded);
+ }
+
+ interface QsStateUpdateListener {
+ void onQsStateUpdated(boolean qsExpanded, boolean isStackScrollerOverscrolling);
+ }
+
+ interface ApplyClippingImmediatelyListener {
+ void onQsClippingImmediatelyApplied(boolean clipStatusView, Rect lastQsClipBounds,
+ int top, boolean qsFragmentCreated, boolean qsVisible);
+ }
+
+ interface FlingQsWithoutClickListener {
+ void onFlingQsWithoutClick(ValueAnimator animator, float qsExpansionHeight,
+ float target, float vel);
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
index 26c839de..b28509e 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
@@ -50,7 +50,6 @@
h: Float,
touchSlop: Float,
qsExpanded: Boolean,
- collapsedOnDown: Boolean,
keyguardShowing: Boolean,
qsExpansionEnabled: Boolean
) {
@@ -63,13 +62,12 @@
long1 = h.toLong()
double1 = touchSlop.toDouble()
bool1 = qsExpanded
- bool2 = collapsedOnDown
- bool3 = keyguardShowing
- bool4 = qsExpansionEnabled
+ bool2 = keyguardShowing
+ bool3 = qsExpansionEnabled
},
{
"QsTrackingNotStarted: initTouchY=$int1,y=$int2,h=$long1,slop=$double1,qsExpanded" +
- "=$bool1,collapsedDown=$bool2,keyguardShowing=$bool3,qsExpansion=$bool4"
+ "=$bool1,keyguardShowing=$bool2,qsExpansion=$bool3"
}
)
}
@@ -158,7 +156,6 @@
qsMinExpansionHeight: Int,
qsMaxExpansionHeight: Int,
stackScrollerOverscrolling: Boolean,
- dozing: Boolean,
qsAnimatorExpand: Boolean,
animatingQs: Boolean
) {
@@ -171,14 +168,13 @@
int1 = qsMinExpansionHeight
int2 = qsMaxExpansionHeight
bool2 = stackScrollerOverscrolling
- bool3 = dozing
- bool4 = qsAnimatorExpand
+ bool3 = qsAnimatorExpand
// 0 = false, 1 = true
long1 = animatingQs.compareTo(false).toLong()
},
{
"$str1 qsExpanded=$bool1,qsMinExpansionHeight=$int1,qsMaxExpansionHeight=$int2," +
- "stackScrollerOverscrolling=$bool2,dozing=$bool3,qsAnimatorExpand=$bool4," +
+ "stackScrollerOverscrolling=$bool2,qsAnimatorExpand=$bool3," +
"animatingQs=$long1"
}
)
diff --git a/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt b/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt
index 236ba1f..5736a5c 100644
--- a/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt
+++ b/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt
@@ -21,6 +21,7 @@
import android.view.ViewGroup
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.BcSmartspaceDataPlugin
+import com.android.systemui.plugins.BcSmartspaceDataPlugin.UI_SURFACE_DREAM
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.smartspace.dagger.SmartspaceViewComponent.SmartspaceViewModule.PLUGIN
import dagger.BindsInstance
@@ -57,7 +58,7 @@
BcSmartspaceDataPlugin.SmartspaceView {
val ssView = plugin.getView(parent)
// Currently, this is only used to provide SmartspaceView on Dream surface.
- ssView.setIsDreaming(true)
+ ssView.setUiSurface(UI_SURFACE_DREAM)
ssView.registerDataProvider(plugin)
ssView.setIntentStarter(object : BcSmartspaceDataPlugin.IntentStarter {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
index afa60fb..f0d064b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
@@ -187,6 +187,8 @@
private val qsTransitionController = qsTransitionControllerFactory.create { qS }
+ private val callbacks = mutableListOf<Callback>()
+
/** See [LockscreenShadeQsTransitionController.qsTransitionFraction].*/
@get:FloatRange(from = 0.0, to = 1.0)
val qSDragProgress: Float
@@ -319,8 +321,8 @@
true /* drag down is always an open */)
}
notificationPanelController.animateToFullShade(delay)
- notificationPanelController.setTransitionToFullShadeAmount(0f,
- true /* animated */, delay)
+ callbacks.forEach { it.setTransitionToFullShadeAmount(0f,
+ true /* animated */, delay) }
// Let's reset ourselves, ready for the next animation
@@ -424,8 +426,8 @@
qsTransitionController.dragDownAmount = value
- notificationPanelController.setTransitionToFullShadeAmount(field,
- false /* animate */, 0 /* delay */)
+ callbacks.forEach { it.setTransitionToFullShadeAmount(field,
+ false /* animate */, 0 /* delay */) }
mediaHierarchyManager.setTransitionToFullShadeAmount(field)
scrimTransitionController.dragDownAmount = value
@@ -688,7 +690,7 @@
if (cancelled) {
setPulseHeight(0f, animate = true)
} else {
- notificationPanelController.onPulseExpansionFinished()
+ callbacks.forEach { it.onPulseExpansionFinished() }
setPulseHeight(0f, animate = false)
}
}
@@ -720,6 +722,27 @@
"${animationHandlerOnKeyguardDismiss != null}")
}
}
+
+
+ fun addCallback(callback: Callback) {
+ if (!callbacks.contains(callback)) {
+ callbacks.add(callback)
+ }
+ }
+
+ /**
+ * Callback for authentication events.
+ */
+ interface Callback {
+ /** TODO: comment here */
+ fun onPulseExpansionFinished() {}
+
+ /**
+ * Sets the amount of pixels we have currently dragged down if we're transitioning
+ * to the full shade. 0.0f means we're not transitioning yet.
+ */
+ fun setTransitionToFullShadeAmount(pxAmount: Float, animate: Boolean, delay: Long) {}
+ }
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
index df35c9e..aa9a6c2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
@@ -164,6 +164,11 @@
private Queue<NotifEvent> mEventQueue = new ArrayDeque<>();
+ private final Runnable mRebuildListRunnable = () -> {
+ if (mBuildListener != null) {
+ mBuildListener.onBuildList(mReadOnlyNotificationSet, "asynchronousUpdate");
+ }
+ };
private boolean mAttached = false;
private boolean mAmDispatchingToOtherCode;
@@ -458,7 +463,7 @@
int modificationType) {
Assert.isMainThread();
mEventQueue.add(new ChannelChangedEvent(pkgName, user, channel, modificationType));
- dispatchEventsAndRebuildList("onNotificationChannelModified");
+ dispatchEventsAndAsynchronouslyRebuildList();
}
private void onNotificationsInitialized() {
@@ -613,15 +618,39 @@
private void dispatchEventsAndRebuildList(String reason) {
Trace.beginSection("NotifCollection.dispatchEventsAndRebuildList");
+ if (mMainHandler.hasCallbacks(mRebuildListRunnable)) {
+ mMainHandler.removeCallbacks(mRebuildListRunnable);
+ }
+
+ dispatchEvents();
+
+ if (mBuildListener != null) {
+ mBuildListener.onBuildList(mReadOnlyNotificationSet, reason);
+ }
+ Trace.endSection();
+ }
+
+ private void dispatchEventsAndAsynchronouslyRebuildList() {
+ Trace.beginSection("NotifCollection.dispatchEventsAndAsynchronouslyRebuildList");
+
+ dispatchEvents();
+
+ if (!mMainHandler.hasCallbacks(mRebuildListRunnable)) {
+ mMainHandler.postDelayed(mRebuildListRunnable, 1000L);
+ }
+
+ Trace.endSection();
+ }
+
+ private void dispatchEvents() {
+ Trace.beginSection("NotifCollection.dispatchEvents");
+
mAmDispatchingToOtherCode = true;
while (!mEventQueue.isEmpty()) {
mEventQueue.remove().dispatchTo(mNotifCollectionListeners);
}
mAmDispatchingToOtherCode = false;
- if (mBuildListener != null) {
- mBuildListener.onBuildList(mReadOnlyNotificationSet, reason);
- }
Trace.endSection();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLogger.kt
index cc1103d..abe0670 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLogger.kt
@@ -20,6 +20,7 @@
import android.app.StatsManager
import android.util.Log
import android.util.StatsEvent
+import androidx.annotation.VisibleForTesting
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
@@ -143,67 +144,70 @@
runBlocking(mainDispatcher) {
traceSection("NML#getNotifications") { notificationPipeline.allNotifs }
}
-
- /** Aggregates memory usage data by package and style, returning sums. */
- private fun aggregateMemoryUsageData(
- notificationMemoryUse: List<NotificationMemoryUsage>
- ): Map<Pair<String, Int>, NotificationMemoryUseAtomBuilder> {
- return notificationMemoryUse
- .groupingBy { Pair(it.packageName, it.objectUsage.style) }
- .aggregate {
- _,
- accumulator: NotificationMemoryUseAtomBuilder?,
- element: NotificationMemoryUsage,
- first ->
- val use =
- if (first) {
- NotificationMemoryUseAtomBuilder(element.uid, element.objectUsage.style)
- } else {
- accumulator!!
- }
-
- use.count++
- // If the views of the notification weren't inflated, the list of memory usage
- // parameters will be empty.
- if (element.viewUsage.isNotEmpty()) {
- use.countWithInflatedViews++
- }
-
- use.smallIconObject += element.objectUsage.smallIcon
- if (element.objectUsage.smallIcon > 0) {
- use.smallIconBitmapCount++
- }
-
- use.largeIconObject += element.objectUsage.largeIcon
- if (element.objectUsage.largeIcon > 0) {
- use.largeIconBitmapCount++
- }
-
- use.bigPictureObject += element.objectUsage.bigPicture
- if (element.objectUsage.bigPicture > 0) {
- use.bigPictureBitmapCount++
- }
-
- use.extras += element.objectUsage.extras
- use.extenders += element.objectUsage.extender
-
- // Use totals count which are more accurate when aggregated
- // in this manner.
- element.viewUsage
- .firstOrNull { vu -> vu.viewType == ViewType.TOTAL }
- ?.let {
- use.smallIconViews += it.smallIcon
- use.largeIconViews += it.largeIcon
- use.systemIconViews += it.systemIcons
- use.styleViews += it.style
- use.customViews += it.style
- use.softwareBitmaps += it.softwareBitmapsPenalty
- }
-
- return@aggregate use
- }
- }
-
- /** Rounds the passed value to the nearest KB - e.g. 700B rounds to 1KB. */
- private fun toKb(value: Int): Int = (value.toFloat() / 1024f).roundToInt()
}
+
+/** Aggregates memory usage data by package and style, returning sums. */
+@VisibleForTesting
+internal fun aggregateMemoryUsageData(
+ notificationMemoryUse: List<NotificationMemoryUsage>
+): Map<Pair<String, Int>, NotificationMemoryLogger.NotificationMemoryUseAtomBuilder> {
+ return notificationMemoryUse
+ .groupingBy { Pair(it.packageName, it.objectUsage.style) }
+ .aggregate {
+ _,
+ accumulator: NotificationMemoryLogger.NotificationMemoryUseAtomBuilder?,
+ element: NotificationMemoryUsage,
+ first ->
+ val use =
+ if (first) {
+ NotificationMemoryLogger.NotificationMemoryUseAtomBuilder(
+ element.uid,
+ element.objectUsage.style
+ )
+ } else {
+ accumulator!!
+ }
+
+ use.count++
+ // If the views of the notification weren't inflated, the list of memory usage
+ // parameters will be empty.
+ if (element.viewUsage.isNotEmpty()) {
+ use.countWithInflatedViews++
+ }
+
+ use.smallIconObject += element.objectUsage.smallIcon
+ if (element.objectUsage.smallIcon > 0) {
+ use.smallIconBitmapCount++
+ }
+
+ use.largeIconObject += element.objectUsage.largeIcon
+ if (element.objectUsage.largeIcon > 0) {
+ use.largeIconBitmapCount++
+ }
+
+ use.bigPictureObject += element.objectUsage.bigPicture
+ if (element.objectUsage.bigPicture > 0) {
+ use.bigPictureBitmapCount++
+ }
+
+ use.extras += element.objectUsage.extras
+ use.extenders += element.objectUsage.extender
+
+ // Use totals count which are more accurate when aggregated
+ // in this manner.
+ element.viewUsage
+ .firstOrNull { vu -> vu.viewType == ViewType.TOTAL }
+ ?.let {
+ use.smallIconViews += it.smallIcon
+ use.largeIconViews += it.largeIcon
+ use.systemIconViews += it.systemIcons
+ use.styleViews += it.style
+ use.customViews += it.customViews
+ use.softwareBitmaps += it.softwareBitmapsPenalty
+ }
+
+ return@aggregate use
+ }
+}
+/** Rounds the passed value to the nearest KB - e.g. 700B rounds to 1KB. */
+private fun toKb(value: Int): Int = (value.toFloat() / 1024f).roundToInt()
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
index 21f4cb5..49f17b6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
@@ -88,6 +88,7 @@
mSeenNotifsFooterTextView = findViewById(R.id.unlock_prompt_footer);
updateResources();
updateText();
+ updateColors();
}
public void setFooterLabelTextAndIcon(@StringRes int text, @DrawableRes int icon) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 1fb7eb5..d2087ba6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -16,7 +16,7 @@
package com.android.systemui.statusbar.notification.stack;
-import static android.os.Trace.TRACE_TAG_ALWAYS;
+import static android.os.Trace.TRACE_TAG_APP;
import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING;
import static com.android.internal.jank.InteractionJankMonitor.CUJ_SHADE_CLEAR_ALL;
@@ -1121,7 +1121,7 @@
@Override
public void requestLayout() {
- Trace.instant(TRACE_TAG_ALWAYS, "NotificationStackScrollLayout#requestLayout");
+ Trace.instant(TRACE_TAG_APP, "NotificationStackScrollLayout#requestLayout");
super.requestLayout();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
index 3170f34..a425792 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
@@ -894,20 +894,19 @@
ExpandableViewState childViewState = child.getViewState();
float baseZ = ambientState.getBaseZHeight();
- // Handles HUN shadow when Shade is opened
-
if (child.mustStayOnScreen() && !childViewState.headsUpIsVisible
&& !ambientState.isDozingAndNotPulsing(child)
&& childViewState.getYTranslation() < ambientState.getTopPadding()
+ ambientState.getStackTranslation()) {
- // Handles HUN shadow when Shade is opened, and AmbientState.mScrollY > 0
- // Calculate the HUN's z-value based on its overlapping fraction with QQS Panel.
- // When scrolling down shade to make HUN back to in-position in Notification Panel,
- // The over-lapping fraction goes to 0, and shadows hides gradually.
+
if (childrenOnTop != 0.0f) {
- // To elevate the later HUN over previous HUN
+ // To elevate the later HUN over previous HUN when multiple HUNs exist
childrenOnTop++;
} else {
+ // Handles HUN shadow when Shade is opened, and AmbientState.mScrollY > 0
+ // Calculate the HUN's z-value based on its overlapping fraction with QQS Panel.
+ // When scrolling down shade to make HUN back to in-position in Notification Panel,
+ // The overlapping fraction goes to 0, and shadows hides gradually.
float overlap = ambientState.getTopPadding()
+ ambientState.getStackTranslation() - childViewState.getYTranslation();
// To prevent over-shadow during HUN entry
@@ -915,7 +914,6 @@
1.0f,
overlap / childViewState.height
);
- MathUtils.saturate(childrenOnTop);
}
childViewState.setZTranslation(baseZ
+ childrenOnTop * mPinnedZTranslationExtra);
@@ -945,7 +943,6 @@
childViewState.setZTranslation(baseZ);
}
- // Handles HUN shadow when shade is closed.
// While HUN is showing and Shade is closed: headerVisibleAmount stays 0, shadow stays.
// During HUN-to-Shade (eg. dragging down HUN to open Shade): headerVisibleAmount goes
// gradually from 0 to 1, shadow hides gradually.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java
index ccde3c2..b8ab956 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java
@@ -57,6 +57,7 @@
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.CameraLauncher;
import com.android.systemui.shade.NotificationPanelViewController;
+import com.android.systemui.shade.QuickSettingsController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DisableFlagsLogger;
@@ -104,6 +105,7 @@
private final VibrationEffect mCameraLaunchGestureVibrationEffect;
private final SystemBarAttributesListener mSystemBarAttributesListener;
private final Lazy<CameraLauncher> mCameraLauncherLazy;
+ private final QuickSettingsController mQsController;
private static final VibrationAttributes HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES =
VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK);
@@ -111,6 +113,7 @@
@Inject
CentralSurfacesCommandQueueCallbacks(
CentralSurfaces centralSurfaces,
+ QuickSettingsController quickSettingsController,
Context context,
@Main Resources resources,
ShadeController shadeController,
@@ -137,6 +140,7 @@
Lazy<CameraLauncher> cameraLauncherLazy,
UserTracker userTracker) {
mCentralSurfaces = centralSurfaces;
+ mQsController = quickSettingsController;
mContext = context;
mShadeController = shadeController;
mCommandQueue = commandQueue;
@@ -334,9 +338,9 @@
mNotificationStackScrollLayoutController.setWillExpand(true);
mHeadsUpManager.unpinAll(true /* userUnpinned */);
mMetricsLogger.count("panel_open", 1);
- } else if (!mNotificationPanelViewController.isInSettings()
+ } else if (!mQsController.getExpanded()
&& !mNotificationPanelViewController.isExpanding()) {
- mNotificationPanelViewController.flingSettings(0 /* velocity */,
+ mQsController.flingQs(0 /* velocity */,
NotificationPanelViewController.FLING_EXPAND);
mMetricsLogger.count("panel_open_qs", 1);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
index 85399ca..378b74a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -185,6 +185,7 @@
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
import com.android.systemui.shade.NotificationShadeWindowViewController;
+import com.android.systemui.shade.QuickSettingsController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.shade.ShadeExpansionChangeEvent;
import com.android.systemui.shade.ShadeExpansionStateManager;
@@ -488,6 +489,8 @@
// settings
private QSPanelController mQSPanelController;
+ @VisibleForTesting
+ QuickSettingsController mQsController;
KeyguardIndicationController mKeyguardIndicationController;
@@ -1419,7 +1422,7 @@
|| isOccluded()
|| !mKeyguardStateController.canDismissLockScreen()
|| mKeyguardViewMediator.isAnySimPinSecure()
- || (mNotificationPanelViewController.isQsExpanded() && trackingTouch)
+ || (mQsController.getExpanded() && trackingTouch)
|| mNotificationPanelViewController.getBarState() == StatusBarState.SHADE_LOCKED) {
return;
}
@@ -1580,6 +1583,7 @@
mCentralSurfacesComponent.getLockIconViewController().init();
mStackScrollerController =
mCentralSurfacesComponent.getNotificationStackScrollLayoutController();
+ mQsController = mCentralSurfacesComponent.getQuickSettingsController();
mStackScroller = mStackScrollerController.getView();
mNotifListContainer = mCentralSurfacesComponent.getNotificationListContainer();
mPresenter = mCentralSurfacesComponent.getNotificationPresenter();
@@ -1699,7 +1703,7 @@
&& !isShadeDisabled()
&& ((mDisabled2 & StatusBarManager.DISABLE2_QUICK_SETTINGS) == 0)
&& !mDozing;
- mNotificationPanelViewController.setQsExpansionEnabledPolicy(expandEnabled);
+ mQsController.setExpansionEnabledPolicy(expandEnabled);
Log.d(TAG, "updateQsExpansionEnabled - QS Expand enabled: " + expandEnabled);
}
@@ -3234,12 +3238,12 @@
mStatusBarKeyguardViewManager.onBackPressed();
return true;
}
- if (mNotificationPanelViewController.isQsCustomizing()) {
- mNotificationPanelViewController.closeQsCustomizer();
+ if (mQsController.isCustomizing()) {
+ mQsController.closeQsCustomizer();
return true;
}
- if (mNotificationPanelViewController.isQsExpanded()) {
- mNotificationPanelViewController.animateCloseQs(false /* animateAway */);
+ if (mQsController.getExpanded()) {
+ mNotificationPanelViewController.animateCloseQs(false);
return true;
}
if (mNotificationPanelViewController.closeUserSwitcherIfOpen()) {
@@ -3600,7 +3604,7 @@
mFalsingCollector.onScreenOff();
mScrimController.onScreenTurnedOff();
if (mCloseQsBeforeScreenOff) {
- mNotificationPanelViewController.closeQs();
+ mQsController.closeQs();
mCloseQsBeforeScreenOff = false;
}
updateIsKeyguard();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
index da1c361..4eed487 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
@@ -40,6 +40,7 @@
import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
+import com.android.systemui.shade.QuickSettingsController;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.KeyguardIndicationController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
@@ -102,6 +103,7 @@
private final IStatusBarService mBarService;
private final DynamicPrivacyController mDynamicPrivacyController;
private final NotificationListContainer mNotifListContainer;
+ private final QuickSettingsController mQsController;
protected boolean mVrMode;
@@ -109,6 +111,7 @@
StatusBarNotificationPresenter(
Context context,
NotificationPanelViewController panel,
+ QuickSettingsController quickSettingsController,
HeadsUpManagerPhone headsUp,
NotificationShadeWindowView statusBarWindow,
ActivityStarter activityStarter,
@@ -136,6 +139,7 @@
mActivityStarter = activityStarter;
mKeyguardStateController = keyguardStateController;
mNotificationPanel = panel;
+ mQsController = quickSettingsController;
mHeadsUpManager = headsUp;
mDynamicPrivacyController = dynamicPrivacyController;
mKeyguardIndicationController = keyguardIndicationController;
@@ -191,7 +195,7 @@
private void maybeClosePanelForShadeEmptied() {
if (CLOSE_PANEL_WHEN_EMPTIED
&& !mNotificationPanel.isTracking()
- && !mNotificationPanel.isQsExpanded()
+ && !mQsController.getExpanded()
&& mStatusBarStateController.getState() == StatusBarState.SHADE_LOCKED
&& !isCollapsing()) {
mStatusBarStateController.setState(StatusBarState.KEYGUARD);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java
index 64b04e9..aec196f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java
@@ -26,6 +26,7 @@
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
import com.android.systemui.shade.NotificationShadeWindowViewController;
+import com.android.systemui.shade.QuickSettingsController;
import com.android.systemui.statusbar.NotificationPresenter;
import com.android.systemui.statusbar.NotificationShelfController;
import com.android.systemui.statusbar.core.StatusBarInitializer;
@@ -113,6 +114,9 @@
*/
NotificationPanelViewController getNotificationPanelViewController();
+ /** Creates a QuickSettingsController. */
+ QuickSettingsController getQuickSettingsController();
+
/**
* Creates a LockIconViewController. Must be init after creation.
*/
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardHostViewControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardHostViewControllerTest.java
deleted file mode 100644
index 4021652..0000000
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardHostViewControllerTest.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.keyguard;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.inOrder;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.media.AudioManager;
-import android.telephony.TelephonyManager;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.testing.AndroidTestingRunner;
-import android.testing.TestableLooper;
-import android.testing.TestableResources;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-
-import com.android.systemui.R;
-import com.android.systemui.SysuiTestCase;
-import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InOrder;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@SmallTest
-@RunWith(AndroidTestingRunner.class)
-@TestableLooper.RunWithLooper
-public class KeyguardHostViewControllerTest extends SysuiTestCase {
- @Mock
- private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
-
- private KeyguardHostView mKeyguardHostView;
- @Mock
- private AudioManager mAudioManager;
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private ViewMediatorCallback mViewMediatorCallback;
- @Mock
- KeyguardSecurityContainerController.Factory mKeyguardSecurityContainerControllerFactory;
- @Mock
- private KeyguardSecurityContainerController mKeyguardSecurityContainerController;
-
- @Rule
- public MockitoRule mMockitoRule = MockitoJUnit.rule();
-
- private TestableResources mTestableResources;
- private KeyguardHostViewController mKeyguardHostViewController;
-
- @Before
- public void setup() {
- mTestableResources = mContext.getOrCreateTestableResources();
-
- mKeyguardHostView = new KeyguardHostView(mContext);
-
- // Explicitly disable one handed keyguard.
- mTestableResources.addOverride(
- R.bool.can_use_one_handed_bouncer, false);
-
- when(mKeyguardSecurityContainerControllerFactory.create(any(
- KeyguardSecurityContainer.SecurityCallback.class)))
- .thenReturn(mKeyguardSecurityContainerController);
- mKeyguardHostViewController = new KeyguardHostViewController(
- mKeyguardHostView, mKeyguardUpdateMonitor, mAudioManager, mTelephonyManager,
- mViewMediatorCallback, mKeyguardSecurityContainerControllerFactory);
- }
-
- @Test
- public void testHasDismissActions() {
- assertFalse("Action not set yet", mKeyguardHostViewController.hasDismissActions());
- mKeyguardHostViewController.setOnDismissAction(mock(OnDismissAction.class),
- null /* cancelAction */);
- assertTrue("Action should exist", mKeyguardHostViewController.hasDismissActions());
- }
-
- @Test
- public void testOnStartingToHide() {
- mKeyguardHostViewController.onStartingToHide();
- verify(mKeyguardSecurityContainerController).onStartingToHide();
- }
-
- @Test
- public void onBouncerVisible_propagatesToKeyguardSecurityContainerController() {
- mKeyguardHostViewController.onBouncerVisibilityChanged(ViewGroup.VISIBLE);
- mKeyguardHostViewController.onBouncerVisibilityChanged(ViewGroup.INVISIBLE);
-
- InOrder order = inOrder(mKeyguardSecurityContainerController);
- order.verify(mKeyguardSecurityContainerController).onBouncerVisibilityChanged(View.VISIBLE);
- order.verify(mKeyguardSecurityContainerController).onBouncerVisibilityChanged(
- View.INVISIBLE);
- }
-
- @Test
- public void testGravityReappliedOnConfigurationChange() {
- FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
- mKeyguardHostView.setLayoutParams(lp);
-
- // Set initial gravity
- mTestableResources.addOverride(R.integer.keyguard_host_view_gravity,
- Gravity.CENTER);
-
- // Kick off the initial pass...
- mKeyguardHostViewController.init();
- assertEquals(
- ((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity,
- Gravity.CENTER);
-
- // Now simulate a config change
- mTestableResources.addOverride(R.integer.keyguard_host_view_gravity,
- Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
-
- mKeyguardHostViewController.updateResources();
- assertEquals(
- ((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity,
- Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
- }
-
- @Test
- public void testGravityUsesOneHandGravityWhenApplicable() {
- FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
- mKeyguardHostView.setLayoutParams(lp);
-
- mTestableResources.addOverride(
- R.integer.keyguard_host_view_gravity,
- Gravity.CENTER);
- mTestableResources.addOverride(
- R.integer.keyguard_host_view_one_handed_gravity,
- Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
-
- // Start disabled.
- mTestableResources.addOverride(
- R.bool.can_use_one_handed_bouncer, false);
-
- mKeyguardHostViewController.init();
- assertEquals(
- ((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity,
- Gravity.CENTER);
-
- // And enable
- mTestableResources.addOverride(
- R.bool.can_use_one_handed_bouncer, true);
-
- mKeyguardHostViewController.updateResources();
- assertEquals(
- ((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity,
- Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
- }
-
- @Test
- public void testUpdateKeyguardPositionDelegatesToSecurityContainer() {
- mKeyguardHostViewController.updateKeyguardPosition(1.0f);
-
- verify(mKeyguardSecurityContainerController).updateKeyguardPosition(1.0f);
- }
-}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java
index 4a1c1cf..bffbe17 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java
@@ -23,12 +23,17 @@
import static com.google.common.truth.Truth.assertThat;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
@@ -40,12 +45,17 @@
import android.content.res.Resources;
import android.hardware.biometrics.BiometricOverlayConstants;
import android.hardware.biometrics.BiometricSourceType;
+import android.media.AudioManager;
+import android.telephony.TelephonyManager;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
+import android.testing.TestableResources;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowInsetsController;
+import android.widget.FrameLayout;
import androidx.test.filters.SmallTest;
@@ -61,6 +71,7 @@
import com.android.systemui.classifier.FalsingCollector;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.log.SessionTracker;
+import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -72,6 +83,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatcher;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
@@ -109,8 +121,6 @@
@Mock
private KeyguardInputViewController mInputViewController;
@Mock
- private KeyguardSecurityContainer.SecurityCallback mSecurityCallback;
- @Mock
private WindowInsetsController mWindowInsetsController;
@Mock
private KeyguardSecurityViewFlipper mSecurityViewFlipper;
@@ -127,8 +137,6 @@
@Mock
private EmergencyButtonController mEmergencyButtonController;
@Mock
- private Resources mResources;
- @Mock
private FalsingCollector mFalsingCollector;
@Mock
private FalsingManager mFalsingManager;
@@ -148,6 +156,12 @@
private KeyguardPasswordViewController mKeyguardPasswordViewControllerMock;
@Mock
private FalsingA11yDelegate mFalsingA11yDelegate;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private ViewMediatorCallback mViewMediatorCallback;
+ @Mock
+ private AudioManager mAudioManager;
@Captor
private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallback;
@@ -159,18 +173,25 @@
private KeyguardSecurityContainerController mKeyguardSecurityContainerController;
private KeyguardPasswordViewController mKeyguardPasswordViewController;
private KeyguardPasswordView mKeyguardPasswordView;
+ private TestableResources mTestableResources;
@Before
public void setup() {
mConfiguration = new Configuration();
mConfiguration.setToDefaults(); // Defaults to ORIENTATION_UNDEFINED.
+ mTestableResources = mContext.getOrCreateTestableResources();
- when(mResources.getConfiguration()).thenReturn(mConfiguration);
when(mView.getContext()).thenReturn(mContext);
- when(mView.getResources()).thenReturn(mResources);
+ when(mView.getResources()).thenReturn(mContext.getResources());
+ FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(/* width= */ 0, /* height= */
+ 0);
+ lp.gravity = 0;
+ when(mView.getLayoutParams()).thenReturn(lp);
when(mAdminSecondaryLockScreenControllerFactory.create(any(KeyguardSecurityCallback.class)))
.thenReturn(mAdminSecondaryLockScreenController);
when(mSecurityViewFlipper.getWindowInsetsController()).thenReturn(mWindowInsetsController);
+ when(mKeyguardSecurityViewFlipperController.getSecurityView(any(SecurityMode.class),
+ any(KeyguardSecurityCallback.class))).thenReturn(mInputViewController);
mKeyguardPasswordView = spy((KeyguardPasswordView) LayoutInflater.from(mContext).inflate(
R.layout.keyguard_password_view, null));
when(mKeyguardPasswordView.getRootView()).thenReturn(mSecurityViewFlipper);
@@ -179,20 +200,21 @@
when(mKeyguardMessageAreaControllerFactory.create(any(KeyguardMessageArea.class)))
.thenReturn(mKeyguardMessageAreaController);
when(mKeyguardPasswordView.getWindowInsetsController()).thenReturn(mWindowInsetsController);
+ when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(SecurityMode.PIN);
mKeyguardPasswordViewController = new KeyguardPasswordViewController(
(KeyguardPasswordView) mKeyguardPasswordView, mKeyguardUpdateMonitor,
SecurityMode.Password, mLockPatternUtils, null,
mKeyguardMessageAreaControllerFactory, null, null, mEmergencyButtonController,
null, mock(Resources.class), null, mKeyguardViewController);
- mKeyguardSecurityContainerController = new KeyguardSecurityContainerController.Factory(
+ mKeyguardSecurityContainerController = new KeyguardSecurityContainerController(
mView, mAdminSecondaryLockScreenControllerFactory, mLockPatternUtils,
mKeyguardUpdateMonitor, mKeyguardSecurityModel, mMetricsLogger, mUiEventLogger,
mKeyguardStateController, mKeyguardSecurityViewFlipperController,
mConfigurationController, mFalsingCollector, mFalsingManager,
mUserSwitcherController, mFeatureFlags, mGlobalSettings,
- mSessionTracker, Optional.of(mSideFpsController), mFalsingA11yDelegate).create(
- mSecurityCallback);
+ mSessionTracker, Optional.of(mSideFpsController), mFalsingA11yDelegate,
+ mTelephonyManager, mViewMediatorCallback, mAudioManager);
}
@Test
@@ -244,7 +266,8 @@
eq(mFalsingA11yDelegate));
// Update rotation. Should trigger update
- mConfiguration.orientation = Configuration.ORIENTATION_LANDSCAPE;
+ mTestableResources.getResources().getConfiguration().orientation =
+ Configuration.ORIENTATION_LANDSCAPE;
mKeyguardSecurityContainerController.updateResources();
verify(mView).initMode(eq(MODE_DEFAULT), eq(mGlobalSettings), eq(mFalsingManager),
@@ -278,7 +301,7 @@
@Test
public void showSecurityScreen_oneHandedMode_flagDisabled_noOneHandedMode() {
- when(mResources.getBoolean(R.bool.can_use_one_handed_bouncer)).thenReturn(false);
+ mTestableResources.addOverride(R.bool.can_use_one_handed_bouncer, false);
when(mKeyguardSecurityViewFlipperController.getSecurityView(
eq(SecurityMode.Pattern), any(KeyguardSecurityCallback.class)))
.thenReturn((KeyguardInputViewController) mKeyguardPasswordViewController);
@@ -292,7 +315,7 @@
@Test
public void showSecurityScreen_oneHandedMode_flagEnabled_oneHandedMode() {
- when(mResources.getBoolean(R.bool.can_use_one_handed_bouncer)).thenReturn(true);
+ mTestableResources.addOverride(R.bool.can_use_one_handed_bouncer, true);
when(mKeyguardSecurityViewFlipperController.getSecurityView(
eq(SecurityMode.Pattern), any(KeyguardSecurityCallback.class)))
.thenReturn((KeyguardInputViewController) mKeyguardPasswordViewController);
@@ -306,7 +329,7 @@
@Test
public void showSecurityScreen_twoHandedMode_flagEnabled_noOneHandedMode() {
- when(mResources.getBoolean(R.bool.can_use_one_handed_bouncer)).thenReturn(true);
+ mTestableResources.addOverride(R.bool.can_use_one_handed_bouncer, true);
setupGetSecurityView();
mKeyguardSecurityContainerController.showSecurityScreen(SecurityMode.Password);
@@ -488,7 +511,9 @@
SecurityMode.SimPin);
// THEN the next security method of PIN is set, and the keyguard is not marked as done
- verify(mSecurityCallback, never()).finish(anyBoolean(), anyInt());
+
+ verify(mViewMediatorCallback, never()).keyguardDonePending(anyBoolean(), anyInt());
+ verify(mViewMediatorCallback, never()).keyguardDone(anyBoolean(), anyInt());
assertThat(mKeyguardSecurityContainerController.getCurrentSecurityMode())
.isEqualTo(SecurityMode.PIN);
}
@@ -562,17 +587,19 @@
}
@Test
- public void onDensityorFontScaleChanged() {
+ public void onDensityOrFontScaleChanged() {
ArgumentCaptor<ConfigurationController.ConfigurationListener>
configurationListenerArgumentCaptor = ArgumentCaptor.forClass(
ConfigurationController.ConfigurationListener.class);
mKeyguardSecurityContainerController.onViewAttached();
verify(mConfigurationController).addCallback(configurationListenerArgumentCaptor.capture());
+ clearInvocations(mKeyguardSecurityViewFlipperController);
+
configurationListenerArgumentCaptor.getValue().onDensityOrFontScaleChanged();
verify(mView).onDensityOrFontScaleChanged();
verify(mKeyguardSecurityViewFlipperController).clearViews();
- verify(mKeyguardSecurityViewFlipperController).getSecurityView(any(SecurityMode.class),
+ verify(mKeyguardSecurityViewFlipperController).getSecurityView(eq(SecurityMode.PIN),
any(KeyguardSecurityCallback.class));
}
@@ -583,11 +610,13 @@
ConfigurationController.ConfigurationListener.class);
mKeyguardSecurityContainerController.onViewAttached();
verify(mConfigurationController).addCallback(configurationListenerArgumentCaptor.capture());
+ clearInvocations(mKeyguardSecurityViewFlipperController);
+
configurationListenerArgumentCaptor.getValue().onThemeChanged();
verify(mView).reloadColors();
verify(mKeyguardSecurityViewFlipperController).clearViews();
- verify(mKeyguardSecurityViewFlipperController).getSecurityView(any(SecurityMode.class),
+ verify(mKeyguardSecurityViewFlipperController).getSecurityView(eq(SecurityMode.PIN),
any(KeyguardSecurityCallback.class));
}
@@ -598,15 +627,91 @@
ConfigurationController.ConfigurationListener.class);
mKeyguardSecurityContainerController.onViewAttached();
verify(mConfigurationController).addCallback(configurationListenerArgumentCaptor.capture());
+ clearInvocations(mKeyguardSecurityViewFlipperController);
+
configurationListenerArgumentCaptor.getValue().onUiModeChanged();
verify(mView).reloadColors();
verify(mKeyguardSecurityViewFlipperController).clearViews();
- verify(mKeyguardSecurityViewFlipperController).getSecurityView(any(SecurityMode.class),
+ verify(mKeyguardSecurityViewFlipperController).getSecurityView(eq(SecurityMode.PIN),
any(KeyguardSecurityCallback.class));
}
@Test
+ public void testHasDismissActions() {
+ assertFalse("Action not set yet", mKeyguardSecurityContainerController.hasDismissActions());
+ mKeyguardSecurityContainerController.setOnDismissAction(mock(
+ ActivityStarter.OnDismissAction.class),
+ null /* cancelAction */);
+ assertTrue("Action should exist", mKeyguardSecurityContainerController.hasDismissActions());
+ }
+
+ @Test
+ public void testOnStartingToHide() {
+ mKeyguardSecurityContainerController.onStartingToHide();
+ verify(mInputViewController).onStartingToHide();
+ }
+
+ @Test
+ public void testGravityReappliedOnConfigurationChange() {
+ // Set initial gravity
+ mTestableResources.addOverride(R.integer.keyguard_host_view_gravity,
+ Gravity.CENTER);
+
+ // Kick off the initial pass...
+ mKeyguardSecurityContainerController.onInit();
+ verify(mView).setLayoutParams(argThat(
+ (ArgumentMatcher<FrameLayout.LayoutParams>) argument ->
+ argument.gravity == Gravity.CENTER));
+ clearInvocations(mView);
+
+ // Now simulate a config change
+ mTestableResources.addOverride(R.integer.keyguard_host_view_gravity,
+ Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
+
+ mKeyguardSecurityContainerController.updateResources();
+ verify(mView).setLayoutParams(argThat(
+ (ArgumentMatcher<FrameLayout.LayoutParams>) argument ->
+ argument.gravity == (Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM)));
+ }
+
+ @Test
+ public void testGravityUsesOneHandGravityWhenApplicable() {
+ mTestableResources.addOverride(
+ R.integer.keyguard_host_view_gravity,
+ Gravity.CENTER);
+ mTestableResources.addOverride(
+ R.integer.keyguard_host_view_one_handed_gravity,
+ Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
+
+ // Start disabled.
+ mTestableResources.addOverride(
+ R.bool.can_use_one_handed_bouncer, false);
+
+ mKeyguardSecurityContainerController.onInit();
+ verify(mView).setLayoutParams(argThat(
+ (ArgumentMatcher<FrameLayout.LayoutParams>) argument ->
+ argument.gravity == Gravity.CENTER));
+ clearInvocations(mView);
+
+ // And enable
+ mTestableResources.addOverride(
+ R.bool.can_use_one_handed_bouncer, true);
+
+ mKeyguardSecurityContainerController.updateResources();
+ verify(mView).setLayoutParams(argThat(
+ (ArgumentMatcher<FrameLayout.LayoutParams>) argument ->
+ argument.gravity == (Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM)));
+ }
+
+ @Test
+ public void testUpdateKeyguardPositionDelegatesToSecurityContainer() {
+ mKeyguardSecurityContainerController.updateKeyguardPosition(1.0f);
+ verify(mView).updatePositionByTouchX(1.0f);
+ }
+
+
+ @Test
public void testReinflateViewFlipper() {
mKeyguardSecurityContainerController.reinflateViewFlipper();
verify(mKeyguardSecurityViewFlipperController).clearViews();
@@ -639,7 +744,7 @@
}
private void setSideFpsHintEnabledFromResources(boolean enabled) {
- when(mResources.getBoolean(R.bool.config_show_sidefps_hint_on_bouncer)).thenReturn(
+ mTestableResources.addOverride(R.bool.config_show_sidefps_hint_on_bouncer,
enabled);
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 6b80494..dc90e2d 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -28,6 +28,7 @@
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN;
import static com.android.keyguard.FaceAuthApiRequestReason.NOTIFICATION_PANEL_CLICKED;
import static com.android.keyguard.KeyguardUpdateMonitor.BIOMETRIC_HELP_FACE_NOT_AVAILABLE;
+import static com.android.keyguard.KeyguardUpdateMonitor.BIOMETRIC_STATE_CANCELLING;
import static com.android.keyguard.KeyguardUpdateMonitor.BIOMETRIC_STATE_CANCELLING_RESTARTING;
import static com.android.keyguard.KeyguardUpdateMonitor.DEFAULT_CANCEL_SIGNAL_TIMEOUT;
import static com.android.keyguard.KeyguardUpdateMonitor.HAL_POWER_PRESS_TIMEOUT;
@@ -1166,10 +1167,11 @@
assertThat(mKeyguardUpdateMonitor.isFingerprintLockedOut()).isEqualTo(fpLocked);
assertThat(mKeyguardUpdateMonitor.isFaceLockedOut()).isEqualTo(faceLocked);
- // Fingerprint should be restarted once its cancelled bc on lockout, the device
- // can still detectFingerprint (and if it's not locked out, fingerprint can listen)
+ // Fingerprint should be cancelled on lockout if going to lockout state, else
+ // restarted if it's not
assertThat(mKeyguardUpdateMonitor.mFingerprintRunningState)
- .isEqualTo(BIOMETRIC_STATE_CANCELLING_RESTARTING);
+ .isEqualTo(fpLocked
+ ? BIOMETRIC_STATE_CANCELLING : BIOMETRIC_STATE_CANCELLING_RESTARTING);
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java
index ace0ccb..489efd71 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java
@@ -25,6 +25,7 @@
import static com.google.common.truth.Truth.assertThat;
import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotSame;
import static junit.framework.Assert.assertNull;
import static org.mockito.ArgumentMatchers.any;
@@ -33,6 +34,7 @@
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -49,6 +51,7 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
+import android.content.res.Resources;
import android.graphics.Point;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants;
@@ -166,6 +169,8 @@
private ArgumentCaptor<StatusBarStateController.StateListener> mStatusBarStateListenerCaptor;
@Captor
private ArgumentCaptor<WakefulnessLifecycle.Observer> mWakefullnessObserverCaptor;
+ @Mock
+ private Resources mResources;
private TestableContext mContextSpy;
private Execution mExecution;
@@ -879,6 +884,25 @@
);
}
+ @Test
+ public void testUpdateFingerprintLocation_defaultPointChanges_whenConfigChanges() {
+ when(mContextSpy.getResources()).thenReturn(mResources);
+
+ doReturn(500).when(mResources)
+ .getDimensionPixelSize(eq(com.android.systemui.R.dimen
+ .physical_fingerprint_sensor_center_screen_location_y));
+ mAuthController.onConfigurationChanged(null /* newConfig */);
+
+ final Point firstFpLocation = mAuthController.getFingerprintSensorLocation();
+
+ doReturn(1000).when(mResources)
+ .getDimensionPixelSize(eq(com.android.systemui.R.dimen
+ .physical_fingerprint_sensor_center_screen_location_y));
+ mAuthController.onConfigurationChanged(null /* newConfig */);
+
+ assertNotSame(firstFpLocation, mAuthController.getFingerprintSensorLocation());
+ }
+
private void showDialog(int[] sensorIds, boolean credentialAllowed) {
mAuthController.showAuthenticationDialog(createTestPromptInfo(),
mReceiver /* receiver */,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
index e4df754..8cb9130 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
@@ -106,7 +106,7 @@
mClassifiers.add(mClassifierB);
when(mFalsingDataProvider.getRecentMotionEvents()).thenReturn(mMotionEventList);
when(mKeyguardStateController.isShowing()).thenReturn(true);
- when(mFalsingDataProvider.isFolded()).thenReturn(true);
+ when(mFalsingDataProvider.isUnfolded()).thenReturn(false);
mBrightLineFalsingManager = new BrightLineFalsingManager(mFalsingDataProvider,
mMetricsLogger, mClassifiers, mSingleTapClassfier, mLongTapClassifier,
mDoubleTapClassifier, mHistoryTracker, mKeyguardStateController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineFalsingManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineFalsingManagerTest.java
index ae38eb6..315774a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineFalsingManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineFalsingManagerTest.java
@@ -89,7 +89,7 @@
mClassifiers.add(mClassifierA);
when(mFalsingDataProvider.getRecentMotionEvents()).thenReturn(mMotionEventList);
when(mKeyguardStateController.isShowing()).thenReturn(true);
- when(mFalsingDataProvider.isFolded()).thenReturn(true);
+ when(mFalsingDataProvider.isUnfolded()).thenReturn(false);
mBrightLineFalsingManager = new BrightLineFalsingManager(mFalsingDataProvider,
mMetricsLogger, mClassifiers, mSingleTapClassifier, mLongTapClassifier,
mDoubleTapClassifier, mHistoryTracker, mKeyguardStateController,
@@ -185,7 +185,7 @@
@Test
public void testSkipUnfolded() {
assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.GENERIC)).isTrue();
- when(mFalsingDataProvider.isFolded()).thenReturn(false);
+ when(mFalsingDataProvider.isUnfolded()).thenReturn(true);
assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.GENERIC)).isFalse();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingDataProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingDataProviderTest.java
index c451a1e7..2edc3d3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingDataProviderTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingDataProviderTest.java
@@ -324,12 +324,18 @@
@Test
public void test_FoldedState_Folded() {
when(mFoldStateListener.getFolded()).thenReturn(true);
- assertThat(mDataProvider.isFolded()).isTrue();
+ assertThat(mDataProvider.isUnfolded()).isFalse();
}
@Test
public void test_FoldedState_Unfolded() {
when(mFoldStateListener.getFolded()).thenReturn(false);
- assertThat(mDataProvider.isFolded()).isFalse();
+ assertThat(mDataProvider.isUnfolded()).isTrue();
+ }
+
+ @Test
+ public void test_FoldedState_NotFoldable() {
+ when(mFoldStateListener.getFolded()).thenReturn(null);
+ assertThat(mDataProvider.isUnfolded()).isFalse();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt
index 85f9961..aa90e2a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt
@@ -29,6 +29,7 @@
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
+import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.test.filters.SmallTest
import com.android.systemui.R
@@ -328,7 +329,7 @@
)
.isTrue()
- underTest.hide()
+ underTest.hide(parent)
clearInvocations(controlsListingController, taskViewFactory)
controlsSettingsRepository.setAllowActionOnTrivialControlsInLockscreen(false)
@@ -387,6 +388,28 @@
assertThat(underTest.resolveActivity()).isEqualTo(ControlsActivity::class.java)
}
+ @Test
+ fun testRemoveViewsOnlyForParentPassedInHide() {
+ underTest.show(parent, {}, context)
+ parent.addView(View(context))
+
+ val mockParent: ViewGroup = mock()
+
+ underTest.hide(mockParent)
+
+ verify(mockParent).removeAllViews()
+ assertThat(parent.childCount).isGreaterThan(0)
+ }
+
+ @Test
+ fun testHideDifferentParentDoesntCancelListeners() {
+ underTest.show(parent, {}, context)
+ underTest.hide(mock())
+
+ verify(controlsController, never()).unsubscribe()
+ verify(controlsListingController, never()).removeCallback(any())
+ }
+
private fun setUpPanel(panel: SelectedItem.PanelItem): ControlsServiceInfo {
val activity = ComponentName("pkg", "activity")
sharedPreferences
diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt
index a12315b..2e98006 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt
@@ -26,6 +26,7 @@
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
+import org.mockito.Mockito.never
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
@@ -58,4 +59,16 @@
verify(changeListener).onChange(flag)
}
+
+ @Test
+ fun testChange_ignoresListenersDuringTest() {
+ val serverFlagReader = ServerFlagReaderImpl(NAMESPACE, deviceConfig, executor, true)
+ val flag = ReleasedFlag(1, "1", "test")
+ serverFlagReader.listenForChanges(listOf(flag), changeListener)
+
+ deviceConfig.setProperty(NAMESPACE, "flag_override_1", "1", false)
+ executor.runAllReady()
+
+ verify(changeListener, never()).onChange(flag)
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt
index 15a454b..a4e5bca 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt
@@ -17,6 +17,7 @@
package com.android.systemui.keyguard
+import android.app.admin.DevicePolicyManager
import android.content.ContentValues
import android.content.pm.PackageManager
import android.content.pm.ProviderInfo
@@ -61,7 +62,6 @@
import com.android.systemui.util.settings.FakeSettings
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.runTest
@@ -90,6 +90,7 @@
@Mock private lateinit var previewSurfacePackage: SurfaceControlViewHost.SurfacePackage
@Mock private lateinit var launchAnimator: DialogLaunchAnimator
@Mock private lateinit var commandQueue: CommandQueue
+ @Mock private lateinit var devicePolicyManager: DevicePolicyManager
private lateinit var underTest: CustomizationProvider
private lateinit var testScope: TestScope
@@ -102,7 +103,7 @@
whenever(backgroundHandler.looper).thenReturn(TestableLooper.get(this).looper)
underTest = CustomizationProvider()
- val testDispatcher = StandardTestDispatcher()
+ val testDispatcher = UnconfinedTestDispatcher()
testScope = TestScope(testDispatcher)
val localUserSelectionManager =
KeyguardQuickAffordanceLocalUserSelectionManager(
@@ -183,6 +184,8 @@
featureFlags = featureFlags,
repository = { quickAffordanceRepository },
launchAnimator = launchAnimator,
+ devicePolicyManager = devicePolicyManager,
+ backgroundDispatcher = testDispatcher,
)
underTest.previewManager =
KeyguardRemotePreviewManager(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardFaceAuthManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardFaceAuthManagerTest.kt
new file mode 100644
index 0000000..7c604f7
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardFaceAuthManagerTest.kt
@@ -0,0 +1,428 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.keyguard.data.repository
+
+import android.app.StatusBarManager.SESSION_KEYGUARD
+import android.content.pm.UserInfo
+import android.hardware.biometrics.BiometricFaceConstants.FACE_ERROR_CANCELED
+import android.hardware.biometrics.BiometricFaceConstants.FACE_ERROR_LOCKOUT_PERMANENT
+import android.hardware.biometrics.ComponentInfoInternal
+import android.hardware.face.FaceManager
+import android.hardware.face.FaceSensorProperties
+import android.hardware.face.FaceSensorPropertiesInternal
+import android.os.CancellationSignal
+import androidx.test.filters.SmallTest
+import com.android.internal.logging.InstanceId.fakeInstanceId
+import com.android.internal.logging.UiEventLogger
+import com.android.keyguard.FaceAuthUiEvent
+import com.android.keyguard.FaceAuthUiEvent.FACE_AUTH_TRIGGERED_ALTERNATE_BIOMETRIC_BOUNCER_SHOWN
+import com.android.keyguard.FaceAuthUiEvent.FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER
+import com.android.systemui.R
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.FlowValue
+import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.dump.DumpManager
+import com.android.systemui.dump.logcatLogBuffer
+import com.android.systemui.keyguard.shared.model.AuthenticationStatus
+import com.android.systemui.keyguard.shared.model.DetectionStatus
+import com.android.systemui.keyguard.shared.model.ErrorAuthenticationStatus
+import com.android.systemui.keyguard.shared.model.HelpAuthenticationStatus
+import com.android.systemui.keyguard.shared.model.SuccessAuthenticationStatus
+import com.android.systemui.log.FaceAuthenticationLogger
+import com.android.systemui.log.SessionTracker
+import com.android.systemui.statusbar.phone.KeyguardBypassController
+import com.android.systemui.user.data.repository.FakeUserRepository
+import com.android.systemui.util.mockito.whenever
+import com.google.common.truth.Truth.assertThat
+import java.io.PrintWriter
+import java.io.StringWriter
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceTimeBy
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import org.mockito.ArgumentCaptor
+import org.mockito.ArgumentMatchers.any
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.ArgumentMatchers.eq
+import org.mockito.Captor
+import org.mockito.Mock
+import org.mockito.Mockito.clearInvocations
+import org.mockito.Mockito.isNull
+import org.mockito.Mockito.never
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.verifyNoMoreInteractions
+import org.mockito.MockitoAnnotations
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@SmallTest
+@RunWith(JUnit4::class)
+class KeyguardFaceAuthManagerTest : SysuiTestCase() {
+ private lateinit var underTest: KeyguardFaceAuthManagerImpl
+
+ @Mock private lateinit var faceManager: FaceManager
+ @Mock private lateinit var bypassController: KeyguardBypassController
+ @Mock private lateinit var sessionTracker: SessionTracker
+ @Mock private lateinit var uiEventLogger: UiEventLogger
+ @Mock private lateinit var dumpManager: DumpManager
+
+ @Captor
+ private lateinit var authenticationCallback: ArgumentCaptor<FaceManager.AuthenticationCallback>
+ @Captor
+ private lateinit var detectionCallback: ArgumentCaptor<FaceManager.FaceDetectionCallback>
+ @Captor private lateinit var cancellationSignal: ArgumentCaptor<CancellationSignal>
+ @Captor
+ private lateinit var faceLockoutResetCallback: ArgumentCaptor<FaceManager.LockoutResetCallback>
+ private lateinit var testDispatcher: TestDispatcher
+
+ private lateinit var testScope: TestScope
+ private lateinit var fakeUserRepository: FakeUserRepository
+ private lateinit var authStatus: FlowValue<AuthenticationStatus?>
+ private lateinit var detectStatus: FlowValue<DetectionStatus?>
+ private lateinit var authRunning: FlowValue<Boolean?>
+ private lateinit var lockedOut: FlowValue<Boolean?>
+
+ @Before
+ fun setup() {
+ MockitoAnnotations.initMocks(this)
+ fakeUserRepository = FakeUserRepository()
+ fakeUserRepository.setUserInfos(listOf(currentUser))
+ testDispatcher = StandardTestDispatcher()
+ testScope = TestScope(testDispatcher)
+ whenever(sessionTracker.getSessionId(SESSION_KEYGUARD)).thenReturn(keyguardSessionId)
+ whenever(bypassController.bypassEnabled).thenReturn(true)
+ underTest = createFaceAuthManagerImpl(faceManager)
+ }
+
+ private fun createFaceAuthManagerImpl(
+ fmOverride: FaceManager? = faceManager,
+ bypassControllerOverride: KeyguardBypassController? = bypassController
+ ) =
+ KeyguardFaceAuthManagerImpl(
+ mContext,
+ fmOverride,
+ fakeUserRepository,
+ bypassControllerOverride,
+ testScope.backgroundScope,
+ testDispatcher,
+ sessionTracker,
+ uiEventLogger,
+ FaceAuthenticationLogger(logcatLogBuffer("KeyguardFaceAuthManagerLog")),
+ dumpManager,
+ )
+
+ @Test
+ fun faceAuthRunsAndProvidesAuthStatusUpdates() =
+ testScope.runTest {
+ testSetup(this)
+
+ FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER.extraInfo = 10
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+ uiEventIsLogged(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+
+ assertThat(authRunning()).isTrue()
+
+ val successResult = successResult()
+ authenticationCallback.value.onAuthenticationSucceeded(successResult)
+
+ assertThat(authStatus()).isEqualTo(SuccessAuthenticationStatus(successResult))
+
+ assertThat(authRunning()).isFalse()
+ }
+
+ private fun uiEventIsLogged(faceAuthUiEvent: FaceAuthUiEvent) {
+ verify(uiEventLogger)
+ .logWithInstanceIdAndPosition(
+ faceAuthUiEvent,
+ 0,
+ null,
+ keyguardSessionId,
+ faceAuthUiEvent.extraInfo
+ )
+ }
+
+ @Test
+ fun faceAuthDoesNotRunWhileItIsAlreadyRunning() =
+ testScope.runTest {
+ testSetup(this)
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+ clearInvocations(faceManager)
+ clearInvocations(uiEventLogger)
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ verifyNoMoreInteractions(faceManager)
+ verifyNoMoreInteractions(uiEventLogger)
+ }
+
+ @Test
+ fun faceLockoutStatusIsPropagated() =
+ testScope.runTest {
+ testSetup(this)
+ verify(faceManager).addLockoutResetCallback(faceLockoutResetCallback.capture())
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+
+ authenticationCallback.value.onAuthenticationError(
+ FACE_ERROR_LOCKOUT_PERMANENT,
+ "face locked out"
+ )
+
+ assertThat(lockedOut()).isTrue()
+
+ faceLockoutResetCallback.value.onLockoutReset(0)
+ assertThat(lockedOut()).isFalse()
+ }
+
+ @Test
+ fun faceDetectionSupportIsTheCorrectValue() =
+ testScope.runTest {
+ assertThat(createFaceAuthManagerImpl(fmOverride = null).isDetectionSupported).isFalse()
+
+ whenever(faceManager.sensorPropertiesInternal).thenReturn(null)
+ assertThat(createFaceAuthManagerImpl().isDetectionSupported).isFalse()
+
+ whenever(faceManager.sensorPropertiesInternal).thenReturn(listOf())
+ assertThat(createFaceAuthManagerImpl().isDetectionSupported).isFalse()
+
+ whenever(faceManager.sensorPropertiesInternal)
+ .thenReturn(listOf(createFaceSensorProperties(supportsFaceDetection = false)))
+ assertThat(createFaceAuthManagerImpl().isDetectionSupported).isFalse()
+
+ whenever(faceManager.sensorPropertiesInternal)
+ .thenReturn(
+ listOf(
+ createFaceSensorProperties(supportsFaceDetection = false),
+ createFaceSensorProperties(supportsFaceDetection = true)
+ )
+ )
+ assertThat(createFaceAuthManagerImpl().isDetectionSupported).isFalse()
+
+ whenever(faceManager.sensorPropertiesInternal)
+ .thenReturn(
+ listOf(
+ createFaceSensorProperties(supportsFaceDetection = true),
+ createFaceSensorProperties(supportsFaceDetection = false)
+ )
+ )
+ assertThat(createFaceAuthManagerImpl().isDetectionSupported).isTrue()
+ }
+
+ @Test
+ fun cancelStopsFaceAuthentication() =
+ testScope.runTest {
+ testSetup(this)
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+
+ var wasAuthCancelled = false
+ cancellationSignal.value.setOnCancelListener { wasAuthCancelled = true }
+
+ underTest.cancel()
+ assertThat(wasAuthCancelled).isTrue()
+ assertThat(authRunning()).isFalse()
+ }
+
+ @Test
+ fun cancelInvokedWithoutFaceAuthRunningIsANoop() = testScope.runTest { underTest.cancel() }
+
+ @Test
+ fun faceDetectionRunsAndPropagatesDetectionStatus() =
+ testScope.runTest {
+ whenever(faceManager.sensorPropertiesInternal)
+ .thenReturn(listOf(createFaceSensorProperties(supportsFaceDetection = true)))
+ underTest = createFaceAuthManagerImpl()
+ testSetup(this)
+
+ underTest.detect()
+ faceDetectIsCalled()
+
+ detectionCallback.value.onFaceDetected(1, 1, true)
+
+ assertThat(detectStatus()).isEqualTo(DetectionStatus(1, 1, true))
+ }
+
+ @Test
+ fun faceDetectDoesNotRunIfDetectionIsNotSupported() =
+ testScope.runTest {
+ whenever(faceManager.sensorPropertiesInternal)
+ .thenReturn(listOf(createFaceSensorProperties(supportsFaceDetection = false)))
+ underTest = createFaceAuthManagerImpl()
+ testSetup(this)
+ clearInvocations(faceManager)
+
+ underTest.detect()
+
+ verify(faceManager, never()).detectFace(any(), any(), anyInt())
+ }
+
+ @Test
+ fun faceAuthShouldWaitAndRunIfTriggeredWhileCancelling() =
+ testScope.runTest {
+ testSetup(this)
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+
+ // Enter cancelling state
+ underTest.cancel()
+ clearInvocations(faceManager)
+
+ // Auth is while cancelling.
+ underTest.authenticate(FACE_AUTH_TRIGGERED_ALTERNATE_BIOMETRIC_BOUNCER_SHOWN)
+ // Auth is not started
+ verifyNoMoreInteractions(faceManager)
+
+ // Auth is done cancelling.
+ authenticationCallback.value.onAuthenticationError(
+ FACE_ERROR_CANCELED,
+ "First auth attempt cancellation completed"
+ )
+ assertThat(authStatus())
+ .isEqualTo(
+ ErrorAuthenticationStatus(
+ FACE_ERROR_CANCELED,
+ "First auth attempt cancellation completed"
+ )
+ )
+
+ faceAuthenticateIsCalled()
+ uiEventIsLogged(FACE_AUTH_TRIGGERED_ALTERNATE_BIOMETRIC_BOUNCER_SHOWN)
+ }
+
+ @Test
+ fun faceAuthAutoCancelsAfterDefaultCancellationTimeout() =
+ testScope.runTest {
+ testSetup(this)
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+
+ clearInvocations(faceManager)
+ underTest.cancel()
+ advanceTimeBy(KeyguardFaceAuthManagerImpl.DEFAULT_CANCEL_SIGNAL_TIMEOUT + 1)
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+ }
+
+ @Test
+ fun faceHelpMessagesAreIgnoredBasedOnConfig() =
+ testScope.runTest {
+ overrideResource(
+ R.array.config_face_acquire_device_entry_ignorelist,
+ intArrayOf(10, 11)
+ )
+ underTest = createFaceAuthManagerImpl()
+ testSetup(this)
+
+ underTest.authenticate(FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER)
+ faceAuthenticateIsCalled()
+
+ authenticationCallback.value.onAuthenticationHelp(9, "help msg")
+ authenticationCallback.value.onAuthenticationHelp(10, "Ignored help msg")
+ authenticationCallback.value.onAuthenticationHelp(11, "Ignored help msg")
+
+ assertThat(authStatus()).isEqualTo(HelpAuthenticationStatus(9, "help msg"))
+ }
+
+ @Test
+ fun dumpDoesNotErrorOutWhenFaceManagerOrBypassControllerIsNull() =
+ testScope.runTest {
+ fakeUserRepository.setSelectedUserInfo(currentUser)
+ underTest.dump(PrintWriter(StringWriter()), emptyArray())
+
+ underTest =
+ createFaceAuthManagerImpl(fmOverride = null, bypassControllerOverride = null)
+ fakeUserRepository.setSelectedUserInfo(currentUser)
+
+ underTest.dump(PrintWriter(StringWriter()), emptyArray())
+ }
+
+ private suspend fun testSetup(testScope: TestScope) {
+ with(testScope) {
+ authStatus = collectLastValue(underTest.authenticationStatus)
+ detectStatus = collectLastValue(underTest.detectionStatus)
+ authRunning = collectLastValue(underTest.isAuthRunning)
+ lockedOut = collectLastValue(underTest.isLockedOut)
+ fakeUserRepository.setSelectedUserInfo(currentUser)
+ }
+ }
+
+ private fun successResult() = FaceManager.AuthenticationResult(null, null, currentUserId, false)
+
+ private fun faceDetectIsCalled() {
+ verify(faceManager)
+ .detectFace(
+ cancellationSignal.capture(),
+ detectionCallback.capture(),
+ eq(currentUserId)
+ )
+ }
+
+ private fun faceAuthenticateIsCalled() {
+ verify(faceManager)
+ .authenticate(
+ isNull(),
+ cancellationSignal.capture(),
+ authenticationCallback.capture(),
+ isNull(),
+ eq(currentUserId),
+ eq(true)
+ )
+ }
+
+ private fun createFaceSensorProperties(
+ supportsFaceDetection: Boolean
+ ): FaceSensorPropertiesInternal {
+ val componentInfo =
+ listOf(
+ ComponentInfoInternal(
+ "faceSensor" /* componentId */,
+ "vendor/model/revision" /* hardwareVersion */,
+ "1.01" /* firmwareVersion */,
+ "00000001" /* serialNumber */,
+ "" /* softwareVersion */
+ )
+ )
+ return FaceSensorPropertiesInternal(
+ 0 /* id */,
+ FaceSensorProperties.STRENGTH_STRONG,
+ 1 /* maxTemplatesAllowed */,
+ componentInfo,
+ FaceSensorProperties.TYPE_UNKNOWN,
+ supportsFaceDetection /* supportsFaceDetection */,
+ true /* supportsSelfIllumination */,
+ false /* resetLockoutRequiresChallenge */
+ )
+ }
+
+ companion object {
+ const val currentUserId = 1
+ val keyguardSessionId = fakeInstanceId(10)!!
+ val currentUser = UserInfo(currentUserId, "test user", 0)
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt
index 23e06ec..84ec125 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt
@@ -17,6 +17,7 @@
package com.android.systemui.keyguard.domain.interactor
+import android.app.admin.DevicePolicyManager
import android.content.Intent
import android.os.UserHandle
import androidx.test.filters.SmallTest
@@ -54,7 +55,10 @@
import com.android.systemui.util.settings.FakeSettings
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.test.runBlockingTest
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -70,6 +74,7 @@
import org.mockito.Mockito.verifyZeroInteractions
import org.mockito.MockitoAnnotations
+@OptIn(ExperimentalCoroutinesApi::class)
@SmallTest
@RunWith(Parameterized::class)
class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() {
@@ -219,8 +224,10 @@
@Mock private lateinit var expandable: Expandable
@Mock private lateinit var launchAnimator: DialogLaunchAnimator
@Mock private lateinit var commandQueue: CommandQueue
+ @Mock private lateinit var devicePolicyManager: DevicePolicyManager
private lateinit var underTest: KeyguardQuickAffordanceInteractor
+ private lateinit var testScope: TestScope
@JvmField @Parameter(0) var needStrongAuthAfterBoot: Boolean = false
@JvmField @Parameter(1) var canShowWhileLocked: Boolean = false
@@ -292,6 +299,8 @@
set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, false)
set(Flags.FACE_AUTH_REFACTOR, true)
}
+ val testDispatcher = StandardTestDispatcher()
+ testScope = TestScope(testDispatcher)
underTest =
KeyguardQuickAffordanceInteractor(
keyguardInteractor =
@@ -322,58 +331,61 @@
featureFlags = featureFlags,
repository = { quickAffordanceRepository },
launchAnimator = launchAnimator,
+ devicePolicyManager = devicePolicyManager,
+ backgroundDispatcher = testDispatcher,
)
}
@Test
- fun onQuickAffordanceTriggered() = runBlockingTest {
- setUpMocks(
- needStrongAuthAfterBoot = needStrongAuthAfterBoot,
- keyguardIsUnlocked = keyguardIsUnlocked,
- )
+ fun onQuickAffordanceTriggered() =
+ testScope.runTest {
+ setUpMocks(
+ needStrongAuthAfterBoot = needStrongAuthAfterBoot,
+ keyguardIsUnlocked = keyguardIsUnlocked,
+ )
- homeControls.setState(
- lockScreenState =
- KeyguardQuickAffordanceConfig.LockScreenState.Visible(
- icon = DRAWABLE,
- )
- )
- homeControls.onTriggeredResult =
+ homeControls.setState(
+ lockScreenState =
+ KeyguardQuickAffordanceConfig.LockScreenState.Visible(
+ icon = DRAWABLE,
+ )
+ )
+ homeControls.onTriggeredResult =
+ if (startActivity) {
+ KeyguardQuickAffordanceConfig.OnTriggeredResult.StartActivity(
+ intent = INTENT,
+ canShowWhileLocked = canShowWhileLocked,
+ )
+ } else {
+ KeyguardQuickAffordanceConfig.OnTriggeredResult.Handled
+ }
+
+ underTest.onQuickAffordanceTriggered(
+ configKey = BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS,
+ expandable = expandable,
+ )
+
if (startActivity) {
- KeyguardQuickAffordanceConfig.OnTriggeredResult.StartActivity(
- intent = INTENT,
- canShowWhileLocked = canShowWhileLocked,
- )
+ if (needsToUnlockFirst) {
+ verify(activityStarter)
+ .postStartActivityDismissingKeyguard(
+ any(),
+ /* delay= */ eq(0),
+ same(animationController),
+ )
+ } else {
+ verify(activityStarter)
+ .startActivity(
+ any(),
+ /* dismissShade= */ eq(true),
+ same(animationController),
+ /* showOverLockscreenWhenLocked= */ eq(true),
+ )
+ }
} else {
- KeyguardQuickAffordanceConfig.OnTriggeredResult.Handled
+ verifyZeroInteractions(activityStarter)
}
-
- underTest.onQuickAffordanceTriggered(
- configKey = BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS,
- expandable = expandable,
- )
-
- if (startActivity) {
- if (needsToUnlockFirst) {
- verify(activityStarter)
- .postStartActivityDismissingKeyguard(
- any(),
- /* delay= */ eq(0),
- same(animationController),
- )
- } else {
- verify(activityStarter)
- .startActivity(
- any(),
- /* dismissShade= */ eq(true),
- same(animationController),
- /* showOverLockscreenWhenLocked= */ eq(true),
- )
- }
- } else {
- verifyZeroInteractions(activityStarter)
}
- }
private fun setUpMocks(
needStrongAuthAfterBoot: Boolean = true,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt
index 1b8c627..62c9e5f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt
@@ -17,6 +17,7 @@
package com.android.systemui.keyguard.domain.interactor
+import android.app.admin.DevicePolicyManager
import android.os.UserHandle
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -78,6 +79,7 @@
@Mock private lateinit var activityStarter: ActivityStarter
@Mock private lateinit var launchAnimator: DialogLaunchAnimator
@Mock private lateinit var commandQueue: CommandQueue
+ @Mock private lateinit var devicePolicyManager: DevicePolicyManager
private lateinit var underTest: KeyguardQuickAffordanceInteractor
@@ -184,6 +186,8 @@
featureFlags = featureFlags,
repository = { quickAffordanceRepository },
launchAnimator = launchAnimator,
+ devicePolicyManager = devicePolicyManager,
+ backgroundDispatcher = testDispatcher,
)
}
@@ -239,6 +243,44 @@
}
@Test
+ fun `quickAffordance - hidden when all features are disabled by device policy`() =
+ testScope.runTest {
+ whenever(devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId))
+ .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL)
+ quickAccessWallet.setState(
+ KeyguardQuickAffordanceConfig.LockScreenState.Visible(
+ icon = ICON,
+ )
+ )
+
+ val collectedValue by
+ collectLastValue(
+ underTest.quickAffordance(KeyguardQuickAffordancePosition.BOTTOM_END)
+ )
+
+ assertThat(collectedValue).isInstanceOf(KeyguardQuickAffordanceModel.Hidden::class.java)
+ }
+
+ @Test
+ fun `quickAffordance - hidden when shortcuts feature is disabled by device policy`() =
+ testScope.runTest {
+ whenever(devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId))
+ .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL)
+ quickAccessWallet.setState(
+ KeyguardQuickAffordanceConfig.LockScreenState.Visible(
+ icon = ICON,
+ )
+ )
+
+ val collectedValue by
+ collectLastValue(
+ underTest.quickAffordance(KeyguardQuickAffordancePosition.BOTTOM_END)
+ )
+
+ assertThat(collectedValue).isInstanceOf(KeyguardQuickAffordanceModel.Hidden::class.java)
+ }
+
+ @Test
fun `quickAffordance - bottom start affordance hidden while dozing`() =
testScope.runTest {
repository.setDozing(true)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt
index 6afeddd..8bd8be5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt
@@ -16,6 +16,7 @@
package com.android.systemui.keyguard.ui.viewmodel
+import android.app.admin.DevicePolicyManager
import android.content.Intent
import android.os.UserHandle
import androidx.test.filters.SmallTest
@@ -87,6 +88,7 @@
@Mock private lateinit var activityStarter: ActivityStarter
@Mock private lateinit var launchAnimator: DialogLaunchAnimator
@Mock private lateinit var commandQueue: CommandQueue
+ @Mock private lateinit var devicePolicyManager: DevicePolicyManager
private lateinit var underTest: KeyguardBottomAreaViewModel
@@ -140,6 +142,7 @@
bouncerRepository = FakeKeyguardBouncerRepository(),
)
whenever(userTracker.userHandle).thenReturn(mock())
+ whenever(userTracker.userId).thenReturn(10)
whenever(lockPatternUtils.getStrongAuthForUser(anyInt()))
.thenReturn(LockPatternUtils.StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED)
val testDispatcher = StandardTestDispatcher()
@@ -205,6 +208,8 @@
featureFlags = featureFlags,
repository = { quickAffordanceRepository },
launchAnimator = launchAnimator,
+ devicePolicyManager = devicePolicyManager,
+ backgroundDispatcher = testDispatcher,
),
bottomAreaInteractor = KeyguardBottomAreaInteractor(repository = repository),
burnInHelperWrapper = burnInHelperWrapper,
@@ -240,6 +245,39 @@
}
@Test
+ fun `startButton - hidden when device policy disables all keyguard features`() =
+ testScope.runTest {
+ whenever(devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId))
+ .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL)
+ repository.setKeyguardShowing(true)
+ val latest by collectLastValue(underTest.startButton)
+
+ val testConfig =
+ TestConfig(
+ isVisible = true,
+ isClickable = true,
+ isActivated = true,
+ icon = mock(),
+ canShowWhileLocked = false,
+ intent = Intent("action"),
+ )
+ val configKey =
+ setUpQuickAffordanceModel(
+ position = KeyguardQuickAffordancePosition.BOTTOM_START,
+ testConfig = testConfig,
+ )
+
+ assertQuickAffordanceViewModel(
+ viewModel = latest,
+ testConfig =
+ TestConfig(
+ isVisible = false,
+ ),
+ configKey = configKey,
+ )
+ }
+
+ @Test
fun `startButton - in preview mode - visible even when keyguard not showing`() =
testScope.runTest {
underTest.enablePreviewMode(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt
index 6cf642c..09156d6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt
@@ -70,7 +70,7 @@
whenever(brightnessSliderFactory.create(any(), any())).thenReturn(brightnessSlider)
whenever(brightnessControllerFactory.create(any())).thenReturn(brightnessController)
- testableResources.addOverride(R.bool.config_use_split_notification_shade, false)
+ setShouldUseSplitShade(false)
whenever(qsPanel.resources).thenReturn(testableResources.resources)
whenever(qsPanel.getOrCreateTileLayout()).thenReturn(pagedTileLayout)
whenever(statusBarKeyguardViewManager.isPrimaryBouncerInTransit()).thenReturn(false)
@@ -133,12 +133,31 @@
@Test
fun configurationChange_onlySplitShadeConfigChanges_tileAreRedistributed() {
- testableResources.addOverride(R.bool.config_use_split_notification_shade, false)
+ setShouldUseSplitShade(false)
controller.mOnConfigurationChangedListener.onConfigurationChange(configuration)
verify(pagedTileLayout, never()).forceTilesRedistribution(any())
- testableResources.addOverride(R.bool.config_use_split_notification_shade, true)
+ setShouldUseSplitShade(true)
controller.mOnConfigurationChangedListener.onConfigurationChange(configuration)
verify(pagedTileLayout).forceTilesRedistribution("Split shade state changed")
}
+
+ @Test
+ fun configurationChange_onlySplitShadeConfigChanges_qsPanelCanBeCollapsed() {
+ setShouldUseSplitShade(false)
+ controller.mOnConfigurationChangedListener.onConfigurationChange(configuration)
+ verify(qsPanel, never()).setCanCollapse(anyBoolean())
+
+ setShouldUseSplitShade(true)
+ controller.mOnConfigurationChangedListener.onConfigurationChange(configuration)
+ verify(qsPanel).setCanCollapse(false)
+
+ setShouldUseSplitShade(false)
+ controller.mOnConfigurationChangedListener.onConfigurationChange(configuration)
+ verify(qsPanel).setCanCollapse(true)
+ }
+
+ private fun setShouldUseSplitShade(shouldUse: Boolean) {
+ testableResources.addOverride(R.bool.config_use_split_notification_shade, shouldUse)
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt
index d52b296..a8cfb25 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt
@@ -37,6 +37,7 @@
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.mock
+import org.mockito.Mockito.never
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
@@ -196,6 +197,16 @@
qsPanel.setSquishinessFraction(0.5f)
}
+ @Test
+ fun testSplitShade_CollapseAccessibilityActionNotAnnounced() {
+ qsPanel.setCanCollapse(false)
+ val accessibilityInfo = mock(AccessibilityNodeInfo::class.java)
+ qsPanel.onInitializeAccessibilityNodeInfo(accessibilityInfo)
+
+ val actionCollapse = AccessibilityNodeInfo.AccessibilityAction.ACTION_COLLAPSE
+ verify(accessibilityInfo, never()).addAction(actionCollapse)
+ }
+
private infix fun View.isLeftOf(other: View): Boolean {
val rect = Rect()
getBoundsOnScreen(rect)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/FontScalingTileTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/FontScalingTileTest.kt
similarity index 68%
rename from packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/FontScalingTileTest.kt
rename to packages/SystemUI/tests/src/com/android/systemui/qs/tiles/FontScalingTileTest.kt
index 57abae0..257d42a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/FontScalingTileTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/FontScalingTileTest.kt
@@ -13,27 +13,35 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.systemui.qs.tiles.dialog
+package com.android.systemui.qs.tiles
import android.os.Handler
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
+import android.view.View
import androidx.test.filters.SmallTest
import com.android.internal.logging.MetricsLogger
+import com.android.internal.logging.UiEventLogger
import com.android.systemui.SysuiTestCase
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.classifier.FalsingManagerFake
+import com.android.systemui.flags.FakeFeatureFlags
+import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSTileHost
import com.android.systemui.qs.logging.QSLogger
-import com.android.systemui.qs.tiles.FontScalingTile
+import com.android.systemui.util.mockito.any
+import com.android.systemui.util.mockito.eq
+import com.android.systemui.util.mockito.nullable
import com.android.systemui.util.settings.FakeSettings
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
+import org.mockito.Mockito.anyBoolean
+import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
@@ -47,15 +55,20 @@
@Mock private lateinit var activityStarter: ActivityStarter
@Mock private lateinit var qsLogger: QSLogger
@Mock private lateinit var dialogLaunchAnimator: DialogLaunchAnimator
+ @Mock private lateinit var uiEventLogger: UiEventLogger
private lateinit var testableLooper: TestableLooper
private lateinit var fontScalingTile: FontScalingTile
+ val featureFlags = FakeFeatureFlags()
+
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
testableLooper = TestableLooper.get(this)
`when`(qsHost.getContext()).thenReturn(mContext)
+ `when`(qsHost.uiEventLogger).thenReturn(uiEventLogger)
+
fontScalingTile =
FontScalingTile(
qsHost,
@@ -67,15 +80,37 @@
activityStarter,
qsLogger,
dialogLaunchAnimator,
- FakeSettings()
+ FakeSettings(),
+ featureFlags
)
fontScalingTile.initialize()
+ testableLooper.processAllMessages()
}
@Test
- fun isNotAvailable_whenNotSupportedDevice_returnsFalse() {
+ fun isAvailable_whenFlagIsFalse_returnsFalse() {
+ featureFlags.set(Flags.ENABLE_FONT_SCALING_TILE, false)
+
val isAvailable = fontScalingTile.isAvailable()
assertThat(isAvailable).isFalse()
}
+
+ @Test
+ fun isAvailable_whenFlagIsTrue_returnsTrue() {
+ featureFlags.set(Flags.ENABLE_FONT_SCALING_TILE, true)
+
+ val isAvailable = fontScalingTile.isAvailable()
+
+ assertThat(isAvailable).isTrue()
+ }
+
+ @Test
+ fun clickTile_showDialog() {
+ val view = View(context)
+ fontScalingTile.click(view)
+ testableLooper.processAllMessages()
+
+ verify(dialogLaunchAnimator).showFromView(any(), eq(view), nullable(), anyBoolean())
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt
index 91fef1d..ee5f61c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt
@@ -21,6 +21,7 @@
import android.content.res.XmlResourceParser
import android.graphics.Rect
import android.testing.AndroidTestingRunner
+import android.view.Display
import android.view.DisplayCutout
import android.view.View
import android.view.ViewPropertyAnimator
@@ -77,9 +78,11 @@
import org.mockito.Mockito.inOrder
import org.mockito.Mockito.never
import org.mockito.Mockito.reset
+import org.mockito.Mockito.same
+import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
-import org.mockito.Mockito.`when` as whenever
import org.mockito.junit.MockitoJUnit
+import org.mockito.Mockito.`when` as whenever
private val EMPTY_CHANGES = ConstraintsChanges()
@@ -133,6 +136,7 @@
@Mock
private lateinit var mockedContext: Context
+ private lateinit var viewContext: Context
@Mock(answer = Answers.RETURNS_MOCKS)
private lateinit var view: MotionLayout
@@ -143,6 +147,7 @@
@Mock
private lateinit var largeScreenConstraints: ConstraintSet
@Mock private lateinit var demoModeController: DemoModeController
+ @Mock private lateinit var qsBatteryModeController: QsBatteryModeController
@JvmField @Rule
val mockitoRule = MockitoJUnit.rule()
@@ -175,7 +180,8 @@
.thenReturn(qsCarrierGroupControllerBuilder)
whenever(qsCarrierGroupControllerBuilder.build()).thenReturn(qsCarrierGroupController)
- whenever(view.context).thenReturn(context)
+ viewContext = spy(context)
+ whenever(view.context).thenReturn(viewContext)
whenever(view.resources).thenReturn(context.resources)
whenever(view.setVisibility(ArgumentMatchers.anyInt())).then {
viewVisibility = it.arguments[0] as Int
@@ -192,19 +198,20 @@
setUpMotionLayout(view)
controller = LargeScreenShadeHeaderController(
- view,
- statusBarIconController,
- iconManagerFactory,
- privacyIconsController,
- insetsProvider,
- configurationController,
- variableDateViewControllerFactory,
- batteryMeterViewController,
- dumpManager,
- featureFlags,
- qsCarrierGroupControllerBuilder,
- combinedShadeHeadersConstraintManager,
- demoModeController
+ view,
+ statusBarIconController,
+ iconManagerFactory,
+ privacyIconsController,
+ insetsProvider,
+ configurationController,
+ variableDateViewControllerFactory,
+ batteryMeterViewController,
+ dumpManager,
+ featureFlags,
+ qsCarrierGroupControllerBuilder,
+ combinedShadeHeadersConstraintManager,
+ demoModeController,
+ qsBatteryModeController,
)
whenever(view.isAttachedToWindow).thenReturn(true)
controller.init()
@@ -218,7 +225,6 @@
verify(batteryMeterViewController).init()
verify(batteryMeterViewController).ignoreTunerUpdates()
- verify(batteryMeterView).setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
val inOrder = inOrder(qsCarrierGroupControllerBuilder)
inOrder.verify(qsCarrierGroupControllerBuilder).setQSCarrierGroup(carrierGroup)
@@ -226,6 +232,23 @@
}
@Test
+ fun `battery mode controller called when qsExpandedFraction changes`() {
+ whenever(qsBatteryModeController.getBatteryMode(same(null), eq(0f)))
+ .thenReturn(BatteryMeterView.MODE_ON)
+ whenever(qsBatteryModeController.getBatteryMode(same(null), eq(1f)))
+ .thenReturn(BatteryMeterView.MODE_ESTIMATE)
+ controller.qsVisible = true
+
+ val times = 10
+ repeat(times) {
+ controller.qsExpandedFraction = it / (times - 1).toFloat()
+ }
+
+ verify(batteryMeterView).setPercentShowMode(BatteryMeterView.MODE_ON)
+ verify(batteryMeterView).setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
+ }
+
+ @Test
fun testClockPivotLtr() {
val width = 200
whenever(clock.width).thenReturn(width)
@@ -684,11 +707,11 @@
configurationController.notifyDensityOrFontScaleChanged()
val captor = ArgumentCaptor.forClass(XmlResourceParser::class.java)
- verify(qqsConstraints).load(eq(context), capture(captor))
+ verify(qqsConstraints).load(eq(viewContext), capture(captor))
assertThat(captor.value.getResId()).isEqualTo(R.xml.qqs_header)
- verify(qsConstraints).load(eq(context), capture(captor))
+ verify(qsConstraints).load(eq(viewContext), capture(captor))
assertThat(captor.value.getResId()).isEqualTo(R.xml.qs_header)
- verify(largeScreenConstraints).load(eq(context), capture(captor))
+ verify(largeScreenConstraints).load(eq(viewContext), capture(captor))
assertThat(captor.value.getResId()).isEqualTo(R.xml.large_screen_shade_header)
}
@@ -786,6 +809,13 @@
whenever(insetsProvider.getStatusBarContentInsetsForCurrentRotation())
.thenReturn(Pair(0, 0).toAndroidPair())
whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(false)
+ setupCurrentInsets(null)
+ }
+
+ private fun setupCurrentInsets(cutout: DisplayCutout?) {
+ val mockedDisplay =
+ mock<Display>().also { display -> whenever(display.cutout).thenReturn(cutout) }
+ whenever(viewContext.display).thenReturn(mockedDisplay)
}
private fun<T, U> Pair<T, U>.toAndroidPair(): android.util.Pair<T, U> {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerTest.kt
index 2bf2a81..e684007 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerTest.kt
@@ -1,7 +1,6 @@
package com.android.systemui.shade
import android.animation.Animator
-import android.animation.ValueAnimator
import android.app.StatusBarManager
import android.content.Context
import android.testing.AndroidTestingRunner
@@ -44,6 +43,7 @@
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Mock
import org.mockito.Mockito.mock
+import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
import org.mockito.Mockito.verifyZeroInteractions
import org.mockito.junit.MockitoJUnit
@@ -76,6 +76,7 @@
@Mock private lateinit var mockedContext: Context
@Mock private lateinit var demoModeController: DemoModeController
+ @Mock private lateinit var qsBatteryModeController: QsBatteryModeController
@JvmField @Rule val mockitoRule = MockitoJUnit.rule()
var viewVisibility = View.GONE
@@ -130,8 +131,9 @@
featureFlags,
qsCarrierGroupControllerBuilder,
combinedShadeHeadersConstraintManager,
- demoModeController
- )
+ demoModeController,
+ qsBatteryModeController,
+ )
whenever(view.isAttachedToWindow).thenReturn(true)
mLargeScreenShadeHeaderController.init()
carrierIconSlots = listOf(
@@ -156,10 +158,20 @@
fun updateListeners_registersWhenVisible() {
makeShadeVisible()
verify(qsCarrierGroupController).setListening(true)
+ }
+
+ @Test
+ fun statusIconsAddedWhenAttached() {
verify(statusBarIconController).addIconGroup(any())
}
@Test
+ fun statusIconsRemovedWhenDettached() {
+ mLargeScreenShadeHeaderController.simulateViewDetached()
+ verify(statusBarIconController).removeIconGroup(any())
+ }
+
+ @Test
fun shadeExpandedFraction_updatesAlpha() {
makeShadeVisible()
mLargeScreenShadeHeaderController.shadeExpandedFraction = 0.5f
@@ -167,16 +179,6 @@
}
@Test
- fun alphaChangesUpdateVisibility() {
- makeShadeVisible()
- mLargeScreenShadeHeaderController.shadeExpandedFraction = 0f
- assertThat(viewVisibility).isEqualTo(View.INVISIBLE)
-
- mLargeScreenShadeHeaderController.shadeExpandedFraction = 1f
- assertThat(viewVisibility).isEqualTo(View.VISIBLE)
- }
-
- @Test
fun singleCarrier_enablesCarrierIconsInStatusIcons() {
whenever(qsCarrierGroupController.isSingleCarrier).thenReturn(true)
@@ -261,40 +263,32 @@
}
@Test
- fun testShadeExpanded_true_alpha_zero_invisible() {
- view.alpha = 0f
- mLargeScreenShadeHeaderController.largeScreenActive = true
- mLargeScreenShadeHeaderController.qsVisible = true
+ fun customizerAnimatorChangesViewVisibility() {
+ makeShadeVisible()
- assertThat(viewVisibility).isEqualTo(View.INVISIBLE)
- }
-
- @Test
- fun animatorCallsUpdateVisibilityOnUpdate() {
val animator = mock(ViewPropertyAnimator::class.java, Answers.RETURNS_SELF)
+ val duration = 1000L
whenever(view.animate()).thenReturn(animator)
+ val listenerCaptor = argumentCaptor<Animator.AnimatorListener>()
- mLargeScreenShadeHeaderController.startCustomizingAnimation(show = false, 0L)
-
- val updateCaptor = argumentCaptor<ValueAnimator.AnimatorUpdateListener>()
- verify(animator).setUpdateListener(capture(updateCaptor))
-
- mLargeScreenShadeHeaderController.largeScreenActive = true
- mLargeScreenShadeHeaderController.qsVisible = true
-
- view.alpha = 1f
- updateCaptor.value.onAnimationUpdate(mock())
-
- assertThat(viewVisibility).isEqualTo(View.VISIBLE)
-
- view.alpha = 0f
- updateCaptor.value.onAnimationUpdate(mock())
-
+ mLargeScreenShadeHeaderController.startCustomizingAnimation(show = true, duration)
+ verify(animator).setListener(capture(listenerCaptor))
+ // Start and end the animation
+ listenerCaptor.value.onAnimationStart(mock())
+ listenerCaptor.value.onAnimationEnd(mock())
assertThat(viewVisibility).isEqualTo(View.INVISIBLE)
+
+ reset(animator)
+ mLargeScreenShadeHeaderController.startCustomizingAnimation(show = false, duration)
+ verify(animator).setListener(capture(listenerCaptor))
+ // Start and end the animation
+ listenerCaptor.value.onAnimationStart(mock())
+ listenerCaptor.value.onAnimationEnd(mock())
+ assertThat(viewVisibility).isEqualTo(View.VISIBLE)
}
@Test
- fun animatorListenersClearedAtEnd() {
+ fun animatorListenerClearedAtEnd() {
val animator = mock(ViewPropertyAnimator::class.java, Answers.RETURNS_SELF)
whenever(view.animate()).thenReturn(animator)
@@ -304,21 +298,6 @@
listenerCaptor.value.onAnimationEnd(mock())
verify(animator).setListener(null)
- verify(animator).setUpdateListener(null)
- }
-
- @Test
- fun animatorListenersClearedOnCancel() {
- val animator = mock(ViewPropertyAnimator::class.java, Answers.RETURNS_SELF)
- whenever(view.animate()).thenReturn(animator)
-
- mLargeScreenShadeHeaderController.startCustomizingAnimation(show = true, 0L)
- val listenerCaptor = argumentCaptor<Animator.AnimatorListener>()
- verify(animator).setListener(capture(listenerCaptor))
-
- listenerCaptor.value.onAnimationCancel(mock())
- verify(animator).setListener(null)
- verify(animator).setUpdateListener(null)
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java
index 28f7edf..996d9fb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java
@@ -196,6 +196,7 @@
import java.util.List;
import java.util.Optional;
+import dagger.Lazy;
import kotlinx.coroutines.CoroutineDispatcher;
@SmallTest
@@ -270,6 +271,7 @@
@Mock private KeyguardMediaController mKeyguardMediaController;
@Mock private NavigationModeController mNavigationModeController;
@Mock private NavigationBarController mNavigationBarController;
+ @Mock private QuickSettingsController mQsController;
@Mock private LargeScreenShadeHeaderController mLargeScreenShadeHeaderController;
@Mock private ContentResolver mContentResolver;
@Mock private TapAgainViewController mTapAgainViewController;
@@ -329,6 +331,10 @@
private final DisplayMetrics mDisplayMetrics = new DisplayMetrics();
private final ShadeExpansionStateManager mShadeExpansionStateManager =
new ShadeExpansionStateManager();
+
+ private QuickSettingsController mQuickSettingsController;
+ @Mock private Lazy<NotificationPanelViewController> mNotificationPanelViewControllerLazy;
+
private FragmentHostManager.FragmentListener mFragmentListener;
@Before
@@ -506,6 +512,7 @@
mTapAgainViewController,
mNavigationModeController,
mNavigationBarController,
+ mQsController,
mFragmentService,
mContentResolver,
mRecordingController,
@@ -515,8 +522,6 @@
mShadeExpansionStateManager,
mNotificationRemoteInputManager,
mSysUIUnfoldComponent,
- mInteractionJankMonitor,
- mQsFrameTranslateController,
mSysUiState,
() -> mKeyguardBottomAreaViewController,
mKeyguardUnlockAnimationController,
@@ -572,6 +577,40 @@
.setOnEmptySpaceClickListener(mEmptySpaceClickListenerCaptor.capture());
verify(mKeyguardStatusViewController).displayClock(LARGE, /* animate */ true);
reset(mKeyguardStatusViewController);
+
+ when(mNotificationPanelViewControllerLazy.get())
+ .thenReturn(mNotificationPanelViewController);
+ mQuickSettingsController = new QuickSettingsController(
+ mNotificationPanelViewControllerLazy,
+ mView,
+ mQsFrameTranslateController,
+ mShadeTransitionController,
+ expansionHandler,
+ mNotificationRemoteInputManager,
+ mShadeExpansionStateManager,
+ mStatusBarKeyguardViewManager,
+ mNotificationStackScrollLayoutController,
+ mLockscreenShadeTransitionController,
+ mNotificationShadeDepthController,
+ mLargeScreenShadeHeaderController,
+ mStatusBarTouchableRegionManager,
+ mKeyguardStateController,
+ mKeyguardBypassController,
+ mUpdateMonitor,
+ mScrimController,
+ mMediaDataManager,
+ mMediaHierarchyManager,
+ mAmbientState,
+ mRecordingController,
+ mFalsingManager,
+ new FalsingCollectorFake(),
+ mAccessibilityManager,
+ mLockscreenGestureLogger,
+ mMetricsLogger,
+ mFeatureFlags,
+ mInteractionJankMonitor,
+ mShadeLog
+ );
}
@After
@@ -755,27 +794,14 @@
@Test
public void testOnTouchEvent_expansionCanBeBlocked() {
- onTouchEvent(MotionEvent.obtain(0L /* downTime */,
- 0L /* eventTime */, MotionEvent.ACTION_DOWN, 0f /* x */, 0f /* y */,
- 0 /* metaState */));
- onTouchEvent(MotionEvent.obtain(0L /* downTime */,
- 0L /* eventTime */, MotionEvent.ACTION_MOVE, 0f /* x */, 200f /* y */,
- 0 /* metaState */));
+ onTouchEvent(MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, 0f, 0f, 0));
+ onTouchEvent(MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_MOVE, 0f, 200f, 0));
assertThat((int) mNotificationPanelViewController.getExpandedHeight()).isEqualTo(200);
- assertThat(mNotificationPanelViewController.isTrackingBlocked()).isFalse();
mNotificationPanelViewController.blockExpansionForCurrentTouch();
- onTouchEvent(MotionEvent.obtain(0L /* downTime */,
- 0L /* eventTime */, MotionEvent.ACTION_MOVE, 0f /* x */, 300f /* y */,
- 0 /* metaState */));
+ onTouchEvent(MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_MOVE, 0f, 300f, 0));
// Expansion should not have changed because it was blocked
assertThat((int) mNotificationPanelViewController.getExpandedHeight()).isEqualTo(200);
- assertThat(mNotificationPanelViewController.isTrackingBlocked()).isTrue();
-
- onTouchEvent(MotionEvent.obtain(0L /* downTime */,
- 0L /* eventTime */, MotionEvent.ACTION_UP, 0f /* x */, 300f /* y */,
- 0 /* metaState */));
- assertThat(mNotificationPanelViewController.isTrackingBlocked()).isFalse();
}
@Test
@@ -1045,7 +1071,7 @@
@Test
public void testCanCollapsePanelOnTouch_trueWhenInSettings() {
mStatusBarStateController.setState(SHADE);
- mNotificationPanelViewController.setQsExpanded(true);
+ when(mQsController.getExpanded()).thenReturn(true);
assertThat(mNotificationPanelViewController.canCollapsePanelOnTouch()).isTrue();
}
@@ -1054,7 +1080,7 @@
public void testCanCollapsePanelOnTouch_falseInDualPaneShade() {
mStatusBarStateController.setState(SHADE);
enableSplitShade(/* enabled= */ true);
- mNotificationPanelViewController.setQsExpanded(true);
+ when(mQsController.getExpanded()).thenReturn(true);
assertThat(mNotificationPanelViewController.canCollapsePanelOnTouch()).isFalse();
}
@@ -1125,7 +1151,7 @@
@Test
public void testRotatingToSplitShadeWithQsExpanded_transitionsToShadeLocked() {
mStatusBarStateController.setState(KEYGUARD);
- mNotificationPanelViewController.setQsExpanded(true);
+ when(mQsController.getExpanded()).thenReturn(true);
enableSplitShade(true);
@@ -1136,24 +1162,18 @@
public void testUnlockedSplitShadeTransitioningToKeyguard_closesQS() {
enableSplitShade(true);
mStatusBarStateController.setState(SHADE);
- mNotificationPanelViewController.setQsExpanded(true);
-
mStatusBarStateController.setState(KEYGUARD);
- assertThat(mNotificationPanelViewController.isQsExpanded()).isEqualTo(false);
- assertThat(mNotificationPanelViewController.isQsExpandImmediate()).isEqualTo(false);
+ verify(mQsController).closeQs();
}
@Test
public void testLockedSplitShadeTransitioningToKeyguard_closesQS() {
enableSplitShade(true);
mStatusBarStateController.setState(SHADE_LOCKED);
- mNotificationPanelViewController.setQsExpanded(true);
-
mStatusBarStateController.setState(KEYGUARD);
- assertThat(mNotificationPanelViewController.isQsExpanded()).isEqualTo(false);
- assertThat(mNotificationPanelViewController.isQsExpandImmediate()).isEqualTo(false);
+ verify(mQsController).closeQs();
}
@Test
@@ -1165,7 +1185,7 @@
verify(mKeyguardStatusViewController).displayClock(LARGE, /* animate */ true);
when(mNotificationStackScrollLayoutController.getVisibleNotificationCount()).thenReturn(1);
- mNotificationPanelViewController.closeQs();
+ triggerPositionClockAndNotifications();
verify(mKeyguardStatusViewController).displayClock(SMALL, /* animate */ true);
}
@@ -1293,18 +1313,6 @@
}
@Test
- public void testLargeScreenHeaderMadeActiveForLargeScreen() {
- mStatusBarStateController.setState(SHADE);
- when(mResources.getBoolean(R.bool.config_use_large_screen_shade_header)).thenReturn(true);
- mNotificationPanelViewController.updateResources();
- verify(mLargeScreenShadeHeaderController).setLargeScreenActive(true);
-
- when(mResources.getBoolean(R.bool.config_use_large_screen_shade_header)).thenReturn(false);
- mNotificationPanelViewController.updateResources();
- verify(mLargeScreenShadeHeaderController).setLargeScreenActive(false);
- }
-
- @Test
public void testExpandWithQsMethodIsUsingLockscreenTransitionController() {
enableSplitShade(/* enabled= */ true);
mStatusBarStateController.setState(KEYGUARD);
@@ -1358,12 +1366,14 @@
@Test
public void testQsToBeImmediatelyExpandedWhenOpeningPanelInSplitShade() {
enableSplitShade(/* enabled= */ true);
+ mShadeExpansionStateManager.updateState(STATE_OPEN);
+ verify(mQsController).setExpandImmediate(false);
+
mShadeExpansionStateManager.updateState(STATE_CLOSED);
- assertThat(mNotificationPanelViewController.isQsExpandImmediate()).isFalse();
+ verify(mQsController, times(2)).setExpandImmediate(false);
mShadeExpansionStateManager.updateState(STATE_OPENING);
-
- assertThat(mNotificationPanelViewController.isQsExpandImmediate()).isTrue();
+ verify(mQsController).setExpandImmediate(true);
}
@Test
@@ -1375,33 +1385,28 @@
// going to lockscreen would trigger STATE_OPENING
mShadeExpansionStateManager.updateState(STATE_OPENING);
- assertThat(mNotificationPanelViewController.isQsExpandImmediate()).isFalse();
+ verify(mQsController, never()).setExpandImmediate(true);
}
@Test
public void testQsImmediateResetsWhenPanelOpensOrCloses() {
- mNotificationPanelViewController.setQsExpandImmediate(true);
mShadeExpansionStateManager.updateState(STATE_OPEN);
- assertThat(mNotificationPanelViewController.isQsExpandImmediate()).isFalse();
-
- mNotificationPanelViewController.setQsExpandImmediate(true);
mShadeExpansionStateManager.updateState(STATE_CLOSED);
- assertThat(mNotificationPanelViewController.isQsExpandImmediate()).isFalse();
+ verify(mQsController, times(2)).setExpandImmediate(false);
}
@Test
public void testQsExpansionChangedToDefaultWhenRotatingFromOrToSplitShade() {
// to make sure shade is in expanded state
mNotificationPanelViewController.startWaitingForOpenPanelGesture();
- assertThat(mNotificationPanelViewController.isQsExpanded()).isFalse();
// switch to split shade from portrait (default state)
enableSplitShade(/* enabled= */ true);
- assertThat(mNotificationPanelViewController.isQsExpanded()).isTrue();
+ verify(mQsController).setExpanded(true);
// switch to portrait from split shade
enableSplitShade(/* enabled= */ false);
- assertThat(mNotificationPanelViewController.isQsExpanded()).isFalse();
+ verify(mQsController).setExpanded(false);
}
@Test
@@ -1413,60 +1418,11 @@
assertThat(mNotificationPanelViewController.isClosing()).isFalse();
mNotificationPanelViewController.animateCloseQs(false);
+
assertThat(mNotificationPanelViewController.isClosing()).isTrue();
}
@Test
- public void testPanelStaysOpenWhenClosingQs() {
- mShadeExpansionStateManager.onPanelExpansionChanged(/* fraction= */ 1,
- /* expanded= */ true, /* tracking= */ false, /* dragDownPxAmount= */ 0);
- mNotificationPanelViewController.setExpandedFraction(1f);
-
- assertThat(mNotificationPanelViewController.isClosing()).isFalse();
- mNotificationPanelViewController.animateCloseQs(false);
- assertThat(mNotificationPanelViewController.isClosing()).isFalse();
- }
-
- @Test
- public void interceptTouchEvent_withinQs_shadeExpanded_startsQsTracking() {
- mNotificationPanelViewController.setQs(mQs);
- when(mQsFrame.getX()).thenReturn(0f);
- when(mQsFrame.getWidth()).thenReturn(1000);
- when(mQsHeader.getTop()).thenReturn(0);
- when(mQsHeader.getBottom()).thenReturn(1000);
- NotificationPanelViewController.TouchHandler touchHandler =
- mNotificationPanelViewController.createTouchHandler();
-
- mNotificationPanelViewController.setExpandedFraction(1f);
- touchHandler.onInterceptTouchEvent(
- createMotionEvent(/* x= */ 0, /* y= */ 0, MotionEvent.ACTION_DOWN));
- touchHandler.onInterceptTouchEvent(
- createMotionEvent(/* x= */ 0, /* y= */ 500, MotionEvent.ACTION_MOVE));
-
- assertThat(mNotificationPanelViewController.isQsTracking()).isTrue();
- }
-
- @Test
- public void interceptTouchEvent_withinQs_shadeExpanded_inSplitShade_doesNotStartQsTracking() {
- enableSplitShade(true);
- mNotificationPanelViewController.setQs(mQs);
- when(mQsFrame.getX()).thenReturn(0f);
- when(mQsFrame.getWidth()).thenReturn(1000);
- when(mQsHeader.getTop()).thenReturn(0);
- when(mQsHeader.getBottom()).thenReturn(1000);
- NotificationPanelViewController.TouchHandler touchHandler =
- mNotificationPanelViewController.createTouchHandler();
-
- mNotificationPanelViewController.setExpandedFraction(1f);
- touchHandler.onInterceptTouchEvent(
- createMotionEvent(/* x= */ 0, /* y= */ 0, MotionEvent.ACTION_DOWN));
- touchHandler.onInterceptTouchEvent(
- createMotionEvent(/* x= */ 0, /* y= */ 500, MotionEvent.ACTION_MOVE));
-
- assertThat(mNotificationPanelViewController.isQsTracking()).isFalse();
- }
-
- @Test
public void testOnAttachRefreshStatusBarState() {
mStatusBarStateController.setState(KEYGUARD);
when(mKeyguardStateController.isKeyguardFadingAway()).thenReturn(false);
@@ -1494,11 +1450,14 @@
enableSplitShade(true);
mNotificationPanelViewController.expandWithQs();
when(mHeadsUpManager.isTrackingHeadsUp()).thenReturn(true);
+ when(mQsController.calculatePanelHeightExpanded(anyInt())).thenReturn(10000);
mNotificationPanelViewController.setHeadsUpDraggingStartingHeight(
SPLIT_SHADE_FULL_TRANSITION_DISTANCE);
int maxDistance = mNotificationPanelViewController.getMaxPanelTransitionDistance();
+ // make sure we're ignoring the placeholder value for Qs max height
+ assertThat(maxDistance).isLessThan(10000);
assertThat(maxDistance).isGreaterThan(SPLIT_SHADE_FULL_TRANSITION_DISTANCE);
}
@@ -1525,95 +1484,26 @@
@Test
public void onLayoutChange_fullWidth_updatesQSWithFullWithTrue() {
- mNotificationPanelViewController.setQs(mQs);
-
setIsFullWidth(true);
- verify(mQs).setIsNotificationPanelFullWidth(true);
+ verify(mQsController).setNotificationPanelFullWidth(true);
}
@Test
public void onLayoutChange_notFullWidth_updatesQSWithFullWithFalse() {
- mNotificationPanelViewController.setQs(mQs);
-
setIsFullWidth(false);
- verify(mQs).setIsNotificationPanelFullWidth(false);
+ verify(mQsController).setNotificationPanelFullWidth(false);
}
@Test
public void onLayoutChange_qsNotSet_doesNotCrash() {
- mNotificationPanelViewController.setQs(null);
+ mQuickSettingsController.setQs(null);
triggerLayoutChange();
}
@Test
- public void onQsFragmentAttached_fullWidth_setsFullWidthTrueOnQS() {
- setIsFullWidth(true);
- givenViewAttached();
- mFragmentListener.onFragmentViewCreated(QS.TAG, mQSFragment);
-
- verify(mQSFragment).setIsNotificationPanelFullWidth(true);
- }
-
- @Test
- public void onQsFragmentAttached_notFullWidth_setsFullWidthFalseOnQS() {
- setIsFullWidth(false);
- givenViewAttached();
- mFragmentListener.onFragmentViewCreated(QS.TAG, mQSFragment);
-
- verify(mQSFragment).setIsNotificationPanelFullWidth(false);
- }
-
- @Test
- public void setQsExpansion_lockscreenShadeTransitionInProgress_usesLockscreenSquishiness() {
- float squishinessFraction = 0.456f;
- mNotificationPanelViewController.setQs(mQs);
- when(mLockscreenShadeTransitionController.getQsSquishTransitionFraction())
- .thenReturn(squishinessFraction);
- when(mNotificationStackScrollLayoutController.getNotificationSquishinessFraction())
- .thenReturn(0.987f);
- // Call setTransitionToFullShadeAmount to get into the full shade transition in progress
- // state.
- mNotificationPanelViewController.setTransitionToFullShadeAmount(
- /* pxAmount= */ 234,
- /* animate= */ false,
- /* delay= */ 0
- );
-
- mNotificationPanelViewController.setQsExpansionHeight(/* height= */ 123);
-
- // First for setTransitionToFullShadeAmount and then setQsExpansion
- verify(mQs, times(2)).setQsExpansion(
- /* expansion= */ anyFloat(),
- /* panelExpansionFraction= */ anyFloat(),
- /* proposedTranslation= */ anyFloat(),
- eq(squishinessFraction)
- );
- }
-
- @Test
- public void setQsExpansion_lockscreenShadeTransitionNotInProgress_usesStandardSquishiness() {
- float lsSquishinessFraction = 0.456f;
- float nsslSquishinessFraction = 0.987f;
- mNotificationPanelViewController.setQs(mQs);
- when(mLockscreenShadeTransitionController.getQsSquishTransitionFraction())
- .thenReturn(lsSquishinessFraction);
- when(mNotificationStackScrollLayoutController.getNotificationSquishinessFraction())
- .thenReturn(nsslSquishinessFraction);
-
- mNotificationPanelViewController.setQsExpansionHeight(/* height= */ 123);
-
- verify(mQs).setQsExpansion(
- /* expansion= */ anyFloat(),
- /* panelExpansionFraction= */ anyFloat(),
- /* proposedTranslation= */ anyFloat(),
- eq(nsslSquishinessFraction)
- );
- }
-
- @Test
public void onEmptySpaceClicked_notDozingAndOnKeyguard_requestsFaceAuth() {
StatusBarStateController.StateListener statusBarStateListener =
mNotificationPanelViewController.getStatusBarStateListener();
@@ -1738,15 +1628,6 @@
int transitionDistance = mNotificationPanelViewController.getMaxPanelTransitionDistance();
mNotificationPanelViewController.setExpandedHeight(transitionDistance);
assertThat(mNotificationPanelViewController.isShadeFullyOpen()).isFalse();
-
- // set maxQsExpansion in NPVC
- int maxQsExpansion = 123;
- mNotificationPanelViewController.setQs(mQs);
- when(mQs.getDesiredHeight()).thenReturn(maxQsExpansion);
- triggerLayoutChange();
-
- mNotificationPanelViewController.setQsExpansionHeight(maxQsExpansion);
- assertThat(mNotificationPanelViewController.isShadeFullyOpen()).isTrue();
}
@Test
@@ -1761,7 +1642,7 @@
}
private void triggerPositionClockAndNotifications() {
- mNotificationPanelViewController.closeQs();
+ mNotificationPanelViewController.onQsSetExpansionHeightCalled(false);
}
private FalsingManager.FalsingTapListener getFalsingTapListener() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt
index e5d5e3b..d229a08 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt
@@ -21,7 +21,7 @@
import android.view.MotionEvent
import android.view.ViewGroup
import androidx.test.filters.SmallTest
-import com.android.keyguard.KeyguardHostViewController
+import com.android.keyguard.KeyguardSecurityContainerController
import com.android.keyguard.LockIconViewController
import com.android.keyguard.dagger.KeyguardBouncerComponent
import com.android.systemui.R
@@ -106,7 +106,7 @@
private lateinit var alternateBouncerInteractor: AlternateBouncerInteractor
@Mock lateinit var keyguardBouncerComponentFactory: KeyguardBouncerComponent.Factory
@Mock lateinit var keyguardBouncerComponent: KeyguardBouncerComponent
- @Mock lateinit var keyguardHostViewController: KeyguardHostViewController
+ @Mock lateinit var keyguardSecurityContainerController: KeyguardSecurityContainerController
@Mock lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor
private lateinit var interactionEventHandlerCaptor: ArgumentCaptor<InteractionEventHandler>
@@ -122,8 +122,8 @@
.thenReturn(mock(ViewGroup::class.java))
whenever(keyguardBouncerComponentFactory.create(any(ViewGroup::class.java)))
.thenReturn(keyguardBouncerComponent)
- whenever(keyguardBouncerComponent.keyguardHostViewController)
- .thenReturn(keyguardHostViewController)
+ whenever(keyguardBouncerComponent.securityContainerController)
+ .thenReturn(keyguardSecurityContainerController)
underTest = NotificationShadeWindowViewController(
lockscreenShadeTransitionController,
FalsingCollectorFake(),
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.java
index 5cc3ef1..5e9c219 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.java
@@ -33,7 +33,7 @@
import androidx.test.filters.SmallTest;
-import com.android.keyguard.KeyguardHostViewController;
+import com.android.keyguard.KeyguardSecurityContainerController;
import com.android.keyguard.LockIconViewController;
import com.android.keyguard.dagger.KeyguardBouncerComponent;
import com.android.systemui.R;
@@ -97,7 +97,7 @@
@Mock private KeyguardBouncerViewModel mKeyguardBouncerViewModel;
@Mock private KeyguardBouncerComponent.Factory mKeyguardBouncerComponentFactory;
@Mock private KeyguardBouncerComponent mKeyguardBouncerComponent;
- @Mock private KeyguardHostViewController mKeyguardHostViewController;
+ @Mock private KeyguardSecurityContainerController mKeyguardSecurityContainerController;
@Mock private NotificationInsetsController mNotificationInsetsController;
@Mock private AlternateBouncerInteractor mAlternateBouncerInteractor;
@Mock private KeyguardTransitionInteractor mKeyguardTransitionInteractor;
@@ -117,8 +117,8 @@
when(mView.findViewById(R.id.keyguard_bouncer_container)).thenReturn(mock(ViewGroup.class));
when(mKeyguardBouncerComponentFactory.create(any(ViewGroup.class))).thenReturn(
mKeyguardBouncerComponent);
- when(mKeyguardBouncerComponent.getKeyguardHostViewController()).thenReturn(
- mKeyguardHostViewController);
+ when(mKeyguardBouncerComponent.getSecurityContainerController()).thenReturn(
+ mKeyguardSecurityContainerController);
when(mStatusBarStateController.isDozing()).thenReturn(false);
mDependency.injectTestDependency(ShadeController.class, mShadeController);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt
new file mode 100644
index 0000000..b547318
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt
@@ -0,0 +1,100 @@
+package com.android.systemui.shade
+
+import android.content.Context
+import android.content.res.Resources
+import android.graphics.Rect
+import android.testing.AndroidTestingRunner
+import android.view.DisplayCutout
+import androidx.test.filters.SmallTest
+import com.android.systemui.R
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.battery.BatteryMeterView
+import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider
+import com.android.systemui.util.mockito.mock
+import com.android.systemui.util.mockito.whenever
+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.Mock
+import org.mockito.junit.MockitoJUnit
+
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+class QsBatteryModeControllerTest : SysuiTestCase() {
+
+ private companion object {
+ val CENTER_TOP_CUTOUT: DisplayCutout =
+ mock<DisplayCutout>().also {
+ whenever(it.boundingRectTop).thenReturn(Rect(10, 0, 20, 10))
+ }
+
+ const val MOTION_LAYOUT_MAX_FRAME = 100
+ const val QQS_START_FRAME = 14
+ const val QS_END_FRAME = 58
+ }
+
+ @JvmField @Rule val mockitoRule = MockitoJUnit.rule()!!
+
+ @Mock private lateinit var insetsProvider: StatusBarContentInsetsProvider
+ @Mock private lateinit var mockedContext: Context
+ @Mock private lateinit var mockedResources: Resources
+
+ private lateinit var controller: QsBatteryModeController // under test
+
+ @Before
+ fun setup() {
+ whenever(mockedContext.resources).thenReturn(mockedResources)
+ whenever(mockedResources.getInteger(R.integer.fade_in_start_frame)).thenReturn(QS_END_FRAME)
+ whenever(mockedResources.getInteger(R.integer.fade_out_complete_frame))
+ .thenReturn(QQS_START_FRAME)
+
+ controller = QsBatteryModeController(mockedContext, insetsProvider)
+ }
+
+ @Test
+ fun `returns MODE_ON for qqs with center cutout`() {
+ assertThat(
+ controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.prevFrameToFraction())
+ )
+ .isEqualTo(BatteryMeterView.MODE_ON)
+ }
+
+ @Test
+ fun `returns MODE_ESTIMATE for qs with center cutout`() {
+ assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction()))
+ .isEqualTo(BatteryMeterView.MODE_ESTIMATE)
+ }
+
+ @Test
+ fun `returns MODE_ON for qqs with corner cutout`() {
+ whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true)
+
+ assertThat(
+ controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.prevFrameToFraction())
+ )
+ .isEqualTo(BatteryMeterView.MODE_ESTIMATE)
+ }
+
+ @Test
+ fun `returns MODE_ESTIMATE for qs with corner cutout`() {
+ whenever(insetsProvider.currentRotationHasCornerCutout()).thenReturn(true)
+
+ assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.nextFrameToFraction()))
+ .isEqualTo(BatteryMeterView.MODE_ESTIMATE)
+ }
+
+ @Test
+ fun `returns null in-between`() {
+ assertThat(
+ controller.getBatteryMode(CENTER_TOP_CUTOUT, QQS_START_FRAME.nextFrameToFraction())
+ )
+ .isNull()
+ assertThat(controller.getBatteryMode(CENTER_TOP_CUTOUT, QS_END_FRAME.prevFrameToFraction()))
+ .isNull()
+ }
+
+ private fun Int.prevFrameToFraction(): Float = (this - 1) / MOTION_LAYOUT_MAX_FRAME.toFloat()
+ private fun Int.nextFrameToFraction(): Float = (this + 1) / MOTION_LAYOUT_MAX_FRAME.toFloat()
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerTest.java
new file mode 100644
index 0000000..c2fca6f
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerTest.java
@@ -0,0 +1,415 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.shade;
+
+import static com.android.systemui.statusbar.StatusBarState.KEYGUARD;
+import static com.android.systemui.statusbar.StatusBarState.SHADE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyFloat;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.res.Resources;
+import android.os.Handler;
+import android.os.Looper;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+import android.view.MotionEvent;
+import android.view.ViewGroup;
+import android.view.ViewParent;
+import android.view.accessibility.AccessibilityManager;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.internal.jank.InteractionJankMonitor;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.UiEventLogger;
+import com.android.keyguard.KeyguardStatusView;
+import com.android.keyguard.KeyguardUpdateMonitor;
+import com.android.systemui.R;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.dump.DumpManager;
+import com.android.systemui.flags.FeatureFlags;
+import com.android.systemui.fragments.FragmentHostManager;
+import com.android.systemui.media.controls.pipeline.MediaDataManager;
+import com.android.systemui.media.controls.ui.MediaHierarchyManager;
+import com.android.systemui.plugins.FalsingManager;
+import com.android.systemui.plugins.qs.QS;
+import com.android.systemui.qs.QSFragment;
+import com.android.systemui.screenrecord.RecordingController;
+import com.android.systemui.shade.transition.ShadeTransitionController;
+import com.android.systemui.statusbar.LockscreenShadeTransitionController;
+import com.android.systemui.statusbar.NotificationRemoteInputManager;
+import com.android.systemui.statusbar.NotificationShadeDepthController;
+import com.android.systemui.statusbar.PulseExpansionHandler;
+import com.android.systemui.statusbar.QsFrameTranslateController;
+import com.android.systemui.statusbar.StatusBarStateControllerImpl;
+import com.android.systemui.statusbar.SysuiStatusBarStateController;
+import com.android.systemui.statusbar.notification.stack.AmbientState;
+import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
+import com.android.systemui.statusbar.phone.DozeParameters;
+import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
+import com.android.systemui.statusbar.phone.KeyguardBottomAreaView;
+import com.android.systemui.statusbar.phone.KeyguardBypassController;
+import com.android.systemui.statusbar.phone.KeyguardStatusBarView;
+import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
+import com.android.systemui.statusbar.phone.ScreenOffAnimationController;
+import com.android.systemui.statusbar.phone.ScrimController;
+import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
+import com.android.systemui.statusbar.policy.KeyguardStateController;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import dagger.Lazy;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper(setAsMainLooper = true)
+public class QuickSettingsControllerTest extends SysuiTestCase {
+
+ private static final int SPLIT_SHADE_FULL_TRANSITION_DISTANCE = 400;
+
+ private QuickSettingsController mQsController;
+
+ @Mock private Resources mResources;
+ @Mock private KeyguardBottomAreaView mQsFrame;
+ @Mock private KeyguardStatusBarView mKeyguardStatusBar;
+ @Mock private QS mQs;
+ @Mock private QSFragment mQSFragment;
+
+ @Mock private Lazy<NotificationPanelViewController> mPanelViewControllerLazy;
+ @Mock private NotificationPanelViewController mNotificationPanelViewController;
+ @Mock private NotificationPanelView mPanelView;
+ @Mock private ViewGroup mQsHeader;
+ @Mock private ViewParent mPanelViewParent;
+ @Mock private QsFrameTranslateController mQsFrameTranslateController;
+ @Mock private ShadeTransitionController mShadeTransitionController;
+ @Mock private PulseExpansionHandler mPulseExpansionHandler;
+ @Mock private NotificationRemoteInputManager mNotificationRemoteInputManager;
+ @Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
+ @Mock private NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
+ @Mock private LockscreenShadeTransitionController mLockscreenShadeTransitionController;
+ @Mock private NotificationShadeDepthController mNotificationShadeDepthController;
+ @Mock private LargeScreenShadeHeaderController mLargeScreenShadeHeaderController;
+ @Mock private StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
+ @Mock private KeyguardStateController mKeyguardStateController;
+ @Mock private KeyguardBypassController mKeyguardBypassController;
+ @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+ @Mock private ScrimController mScrimController;
+ @Mock private MediaDataManager mMediaDataManager;
+ @Mock private MediaHierarchyManager mMediaHierarchyManager;
+ @Mock private AmbientState mAmbientState;
+ @Mock private RecordingController mRecordingController;
+ @Mock private FalsingManager mFalsingManager;
+ @Mock private FalsingCollector mFalsingCollector;
+ @Mock private AccessibilityManager mAccessibilityManager;
+ @Mock private LockscreenGestureLogger mLockscreenGestureLogger;
+ @Mock private MetricsLogger mMetricsLogger;
+ @Mock private FeatureFlags mFeatureFlags;
+ @Mock private InteractionJankMonitor mInteractionJankMonitor;
+ @Mock private ShadeLogger mShadeLogger;
+
+ @Mock private DumpManager mDumpManager;
+ @Mock private DozeParameters mDozeParameters;
+ @Mock private ScreenOffAnimationController mScreenOffAnimationController;
+ @Mock private HeadsUpManagerPhone mHeadsUpManager;
+ @Mock private UiEventLogger mUiEventLogger;
+
+ private SysuiStatusBarStateController mStatusBarStateController;
+
+ private Handler mMainHandler;
+ private LockscreenShadeTransitionController.Callback mLockscreenShadeTransitionCallback;
+
+ private final ShadeExpansionStateManager mShadeExpansionStateManager =
+ new ShadeExpansionStateManager();
+
+ private FragmentHostManager.FragmentListener mFragmentListener;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ when(mPanelViewControllerLazy.get()).thenReturn(mNotificationPanelViewController);
+ mStatusBarStateController = new StatusBarStateControllerImpl(mUiEventLogger, mDumpManager,
+ mInteractionJankMonitor, mShadeExpansionStateManager);
+
+ KeyguardStatusView keyguardStatusView = new KeyguardStatusView(mContext);
+ keyguardStatusView.setId(R.id.keyguard_status_view);
+
+ when(mPanelView.getResources()).thenReturn(mResources);
+ when(mPanelView.getContext()).thenReturn(getContext());
+ when(mPanelView.findViewById(R.id.keyguard_header)).thenReturn(mKeyguardStatusBar);
+ when(mNotificationStackScrollLayoutController.getHeight()).thenReturn(1000);
+ when(mPanelView.findViewById(R.id.qs_frame)).thenReturn(mQsFrame);
+ when(mPanelView.findViewById(R.id.keyguard_status_view))
+ .thenReturn(mock(KeyguardStatusView.class));
+ when(mQs.getView()).thenReturn(mPanelView);
+ when(mQSFragment.getView()).thenReturn(mPanelView);
+
+ when(mNotificationRemoteInputManager.isRemoteInputActive())
+ .thenReturn(false);
+ when(mInteractionJankMonitor.begin(any(), anyInt()))
+ .thenReturn(true);
+ when(mInteractionJankMonitor.end(anyInt()))
+ .thenReturn(true);
+
+ when(mPanelView.getParent()).thenReturn(mPanelViewParent);
+ when(mQs.getHeader()).thenReturn(mQsHeader);
+
+ doAnswer(invocation -> {
+ mLockscreenShadeTransitionCallback = invocation.getArgument(0);
+ return null;
+ }).when(mLockscreenShadeTransitionController).addCallback(any());
+
+
+ mMainHandler = new Handler(Looper.getMainLooper());
+
+ mQsController = new QuickSettingsController(
+ mPanelViewControllerLazy,
+ mPanelView,
+ mQsFrameTranslateController,
+ mShadeTransitionController,
+ mPulseExpansionHandler,
+ mNotificationRemoteInputManager,
+ mShadeExpansionStateManager,
+ mStatusBarKeyguardViewManager,
+ mNotificationStackScrollLayoutController,
+ mLockscreenShadeTransitionController,
+ mNotificationShadeDepthController,
+ mLargeScreenShadeHeaderController,
+ mStatusBarTouchableRegionManager,
+ mKeyguardStateController,
+ mKeyguardBypassController,
+ mKeyguardUpdateMonitor,
+ mScrimController,
+ mMediaDataManager,
+ mMediaHierarchyManager,
+ mAmbientState,
+ mRecordingController,
+ mFalsingManager,
+ mFalsingCollector,
+ mAccessibilityManager,
+ mLockscreenGestureLogger,
+ mMetricsLogger,
+ mFeatureFlags,
+ mInteractionJankMonitor,
+ mShadeLogger
+ );
+
+ mFragmentListener = mQsController.getQsFragmentListener();
+ }
+
+ @After
+ public void tearDown() {
+ mNotificationPanelViewController.cancelHeightAnimator();
+ mMainHandler.removeCallbacksAndMessages(null);
+ }
+
+ @Test
+ public void testOnTouchEvent_isConflictingExpansionGestureSet() {
+ assertThat(mQsController.isConflictingExpansionGesture()).isFalse();
+ mShadeExpansionStateManager.onPanelExpansionChanged(1f, true, false, 0f);
+ mQsController.handleTouch(MotionEvent.obtain(0L /* downTime */,
+ 0L /* eventTime */, MotionEvent.ACTION_DOWN, 0f /* x */, 0f /* y */,
+ 0 /* metaState */), false, false);
+ assertThat(mQsController.isConflictingExpansionGesture()).isTrue();
+ }
+
+ @Test
+ public void testCloseQsSideEffects() {
+ enableSplitShade(true);
+ mQsController.setExpandImmediate(true);
+ mQsController.setExpanded(true);
+ mQsController.closeQs();
+
+ assertThat(mQsController.getExpanded()).isEqualTo(false);
+ assertThat(mQsController.isExpandImmediate()).isEqualTo(false);
+ }
+
+ @Test
+ public void testLargeScreenHeaderMadeActiveForLargeScreen() {
+ mStatusBarStateController.setState(SHADE);
+ when(mResources.getBoolean(R.bool.config_use_large_screen_shade_header)).thenReturn(true);
+ mQsController.updateResources();
+ verify(mLargeScreenShadeHeaderController).setLargeScreenActive(true);
+
+ when(mResources.getBoolean(R.bool.config_use_large_screen_shade_header)).thenReturn(false);
+ mQsController.updateResources();
+ verify(mLargeScreenShadeHeaderController).setLargeScreenActive(false);
+ }
+
+ @Test
+ public void testPanelStaysOpenWhenClosingQs() {
+ mShadeExpansionStateManager.onPanelExpansionChanged(/* fraction= */ 1,
+ /* expanded= */ true, /* tracking= */ false, /* dragDownPxAmount= */ 0);
+ mNotificationPanelViewController.setExpandedFraction(1f);
+
+ float shadeExpandedHeight = mQsController.getShadeExpandedHeight();
+ mQsController.animateCloseQs(false);
+
+ assertThat(mQsController.getShadeExpandedHeight()).isEqualTo(shadeExpandedHeight);
+ }
+
+ @Test
+ public void interceptTouchEvent_withinQs_shadeExpanded_startsQsTracking() {
+ mQsController.setQs(mQs);
+ when(mQsFrame.getX()).thenReturn(0f);
+ when(mQsFrame.getWidth()).thenReturn(1000);
+ when(mQsHeader.getTop()).thenReturn(0);
+ when(mQsHeader.getBottom()).thenReturn(1000);
+
+ mQsController.setShadeExpandedHeight(1f);
+ mQsController.onIntercept(
+ createMotionEvent(0, 0, MotionEvent.ACTION_DOWN));
+ mQsController.onIntercept(
+ createMotionEvent(0, 500, MotionEvent.ACTION_MOVE));
+
+ assertThat(mQsController.isTracking()).isTrue();
+ }
+
+ @Test
+ public void interceptTouchEvent_withinQs_shadeExpanded_inSplitShade_doesNotStartQsTracking() {
+ enableSplitShade(true);
+ mQsController.setQs(mQs);
+ when(mQsFrame.getX()).thenReturn(0f);
+ when(mQsFrame.getWidth()).thenReturn(1000);
+ when(mQsHeader.getTop()).thenReturn(0);
+ when(mQsHeader.getBottom()).thenReturn(1000);
+
+ mQsController.setShadeExpandedHeight(1f);
+ mQsController.onIntercept(
+ createMotionEvent(0, 0, MotionEvent.ACTION_DOWN));
+ mQsController.onIntercept(
+ createMotionEvent(0, 500, MotionEvent.ACTION_MOVE));
+
+ assertThat(mQsController.isTracking()).isFalse();
+ }
+
+ @Test
+ public void onQsFragmentAttached_fullWidth_setsFullWidthTrueOnQS() {
+ setIsFullWidth(true);
+ mFragmentListener.onFragmentViewCreated(QS.TAG, mQSFragment);
+
+ verify(mQSFragment).setIsNotificationPanelFullWidth(true);
+ }
+
+ @Test
+ public void onQsFragmentAttached_notFullWidth_setsFullWidthFalseOnQS() {
+ setIsFullWidth(false);
+ mFragmentListener.onFragmentViewCreated(QS.TAG, mQSFragment);
+
+ verify(mQSFragment).setIsNotificationPanelFullWidth(false);
+ }
+
+ @Test
+ public void getMaxPanelTransitionDistance_inSplitShade_withHeadsUp_returnsBiggerValue() {
+ enableSplitShade(true);
+ mNotificationPanelViewController.expandWithQs();
+ when(mHeadsUpManager.isTrackingHeadsUp()).thenReturn(true);
+
+ mNotificationPanelViewController.setHeadsUpDraggingStartingHeight(
+ SPLIT_SHADE_FULL_TRANSITION_DISTANCE);
+
+ assertThat(mQsController.calculatePanelHeightExpanded(0))
+ .isGreaterThan(SPLIT_SHADE_FULL_TRANSITION_DISTANCE);
+ }
+
+ @Test
+ public void setQsExpansion_lockscreenShadeTransitionInProgress_usesLockscreenSquishiness() {
+ float squishinessFraction = 0.456f;
+ mQsController.setQs(mQs);
+ when(mLockscreenShadeTransitionController.getQsSquishTransitionFraction())
+ .thenReturn(squishinessFraction);
+ when(mNotificationStackScrollLayoutController.getNotificationSquishinessFraction())
+ .thenReturn(0.987f);
+ // Call setTransitionToFullShadeAmount to get into the full shade transition in progress
+ // state.
+ mLockscreenShadeTransitionCallback.setTransitionToFullShadeAmount(234, false, 0);
+
+ mQsController.setExpansionHeight(123);
+
+ // First for setTransitionToFullShadeAmount and then setQsExpansion
+ verify(mQs, times(2)).setQsExpansion(anyFloat(), anyFloat(), anyFloat(),
+ eq(squishinessFraction)
+ );
+ }
+
+ @Test
+ public void setQsExpansion_lockscreenShadeTransitionNotInProgress_usesStandardSquishiness() {
+ float lsSquishinessFraction = 0.456f;
+ float nsslSquishinessFraction = 0.987f;
+ mQsController.setQs(mQs);
+ when(mLockscreenShadeTransitionController.getQsSquishTransitionFraction())
+ .thenReturn(lsSquishinessFraction);
+ when(mNotificationStackScrollLayoutController.getNotificationSquishinessFraction())
+ .thenReturn(nsslSquishinessFraction);
+
+ mQsController.setExpansionHeight(123);
+
+ verify(mQs).setQsExpansion(anyFloat(), anyFloat(), anyFloat(), eq(nsslSquishinessFraction)
+ );
+ }
+
+ @Test
+ public void shadeExpanded_onKeyguard() {
+ mStatusBarStateController.setState(KEYGUARD);
+ // set maxQsExpansion in NPVC
+ int maxQsExpansion = 123;
+ mQsController.setQs(mQs);
+ when(mQs.getDesiredHeight()).thenReturn(maxQsExpansion);
+
+ int oldMaxHeight = mQsController.updateHeightsOnShadeLayoutChange();
+ mQsController.handleShadeLayoutChanged(oldMaxHeight);
+
+ mQsController.setExpansionHeight(maxQsExpansion);
+ assertThat(mQsController.computeExpansionFraction()).isEqualTo(1f);
+ }
+
+ private static MotionEvent createMotionEvent(int x, int y, int action) {
+ return MotionEvent.obtain(
+ /* downTime= */ 0, /* eventTime= */ 0, action, x, y, /* metaState= */ 0);
+ }
+
+ private void enableSplitShade(boolean enabled) {
+ when(mResources.getBoolean(R.bool.config_use_split_notification_shade)).thenReturn(enabled);
+ mQsController.updateResources();
+ }
+
+ private void setIsFullWidth(boolean fullWidth) {
+ mQsController.setNotificationPanelFullWidth(fullWidth);
+ triggerLayoutChange();
+ }
+
+ private void triggerLayoutChange() {
+ int oldMaxHeight = mQsController.updateHeightsOnShadeLayoutChange();
+ mQsController.handleShadeLayoutChanged(oldMaxHeight);
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt
index c5432c5..a280510 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt
@@ -99,8 +99,6 @@
override fun setPrimaryTextColor(color: Int) {}
- override fun setIsDreaming(isDreaming: Boolean) {}
-
override fun setUiSurface(uiSurface: String) {}
override fun setDozeAmount(amount: Float) {}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt
index 702f278..d99cdd51 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt
@@ -79,6 +79,7 @@
@Mock lateinit var singleShadeOverScroller: SingleShadeLockScreenOverScroller
@Mock lateinit var splitShadeOverScroller: SplitShadeLockScreenOverScroller
@Mock lateinit var qsTransitionController: LockscreenShadeQsTransitionController
+ @Mock lateinit var transitionControllerCallback: LockscreenShadeTransitionController.Callback
@JvmField @Rule val mockito = MockitoJUnit.rule()
private val configurationController = FakeConfigurationController()
@@ -124,6 +125,7 @@
},
qsTransitionControllerFactory = { qsTransitionController },
)
+ transitionController.addCallback(transitionControllerCallback)
whenever(nsslController.view).thenReturn(stackscroller)
whenever(nsslController.expandHelperCallback).thenReturn(expandHelperCallback)
transitionController.notificationPanelController = notificationPanelController
@@ -258,7 +260,7 @@
verify(nsslController, never()).setTransitionToFullShadeAmount(anyFloat())
verify(mediaHierarchyManager, never()).setTransitionToFullShadeAmount(anyFloat())
verify(scrimController, never()).setTransitionToFullShadeProgress(anyFloat(), anyFloat())
- verify(notificationPanelController, never()).setTransitionToFullShadeAmount(anyFloat(),
+ verify(transitionControllerCallback, never()).setTransitionToFullShadeAmount(anyFloat(),
anyBoolean(), anyLong())
verify(qsTransitionController, never()).dragDownAmount = anyFloat()
}
@@ -269,7 +271,7 @@
verify(nsslController).setTransitionToFullShadeAmount(anyFloat())
verify(mediaHierarchyManager).setTransitionToFullShadeAmount(anyFloat())
verify(scrimController).setTransitionToFullShadeProgress(anyFloat(), anyFloat())
- verify(notificationPanelController).setTransitionToFullShadeAmount(anyFloat(),
+ verify(transitionControllerCallback).setTransitionToFullShadeAmount(anyFloat(),
anyBoolean(), anyLong())
verify(qsTransitionController).dragDownAmount = 10f
verify(depthController).transitionToFullShadeProgress = anyFloat()
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt
index d6225c6..7fdcfb2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt
@@ -780,9 +780,6 @@
override fun setPrimaryTextColor(color: Int) {
}
- override fun setIsDreaming(isDreaming: Boolean) {
- }
-
override fun setUiSurface(uiSurface: String) {
}
@@ -811,9 +808,6 @@
override fun setPrimaryTextColor(color: Int) {
}
- override fun setIsDreaming(isDreaming: Boolean) {
- }
-
override fun setUiSurface(uiSurface: String) {
}
@@ -838,9 +832,6 @@
override fun setPrimaryTextColor(color: Int) {
}
- override fun setIsDreaming(isDreaming: Boolean) {
- }
-
override fun setUiSurface(uiSurface: String) {
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java
index 94e3e6c..edb2965 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java
@@ -105,6 +105,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
+import org.mockito.stubbing.Answer;
import java.util.Arrays;
import java.util.Collection;
@@ -376,6 +377,90 @@
}
@Test
+ public void testScheduleBuildNotificationListWhenChannelChanged() {
+ // GIVEN
+ final NotificationEntryBuilder neb = buildNotif(TEST_PACKAGE, 48);
+ final NotificationChannel channel = new NotificationChannel(
+ "channelId",
+ "channelName",
+ NotificationManager.IMPORTANCE_DEFAULT);
+ neb.setChannel(channel);
+
+ final NotifEvent notif = mNoMan.postNotif(neb);
+ final NotificationEntry entry = mCollectionListener.getEntry(notif.key);
+
+ when(mMainHandler.hasCallbacks(any())).thenReturn(false);
+
+ clearInvocations(mBuildListener);
+
+ // WHEN
+ mNotifHandler.onNotificationChannelModified(TEST_PACKAGE,
+ entry.getSbn().getUser(), channel, NOTIFICATION_CHANNEL_OR_GROUP_UPDATED);
+
+ // THEN
+ verify(mMainHandler).postDelayed(any(), eq(1000L));
+ }
+
+ @Test
+ public void testCancelScheduledBuildNotificationListEventWhenNotifUpdatedSynchronously() {
+ // GIVEN
+ final NotificationEntry entry1 = buildNotif(TEST_PACKAGE, 1)
+ .setGroup(mContext, "group_1")
+ .build();
+ final NotificationEntry entry2 = buildNotif(TEST_PACKAGE, 2)
+ .setGroup(mContext, "group_1")
+ .setContentTitle(mContext, "New version")
+ .build();
+ final NotificationEntry entry3 = buildNotif(TEST_PACKAGE, 3)
+ .setGroup(mContext, "group_1")
+ .build();
+
+ final List<CoalescedEvent> entriesToBePosted = Arrays.asList(
+ new CoalescedEvent(entry1.getKey(), 0, entry1.getSbn(), entry1.getRanking(), null),
+ new CoalescedEvent(entry2.getKey(), 1, entry2.getSbn(), entry2.getRanking(), null),
+ new CoalescedEvent(entry3.getKey(), 2, entry3.getSbn(), entry3.getRanking(), null)
+ );
+
+ when(mMainHandler.hasCallbacks(any())).thenReturn(true);
+
+ // WHEN
+ mNotifHandler.onNotificationBatchPosted(entriesToBePosted);
+
+ // THEN
+ verify(mMainHandler).removeCallbacks(any());
+ }
+
+ @Test
+ public void testBuildNotificationListWhenChannelChanged() {
+ // GIVEN
+ final NotificationEntryBuilder neb = buildNotif(TEST_PACKAGE, 48);
+ final NotificationChannel channel = new NotificationChannel(
+ "channelId",
+ "channelName",
+ NotificationManager.IMPORTANCE_DEFAULT);
+ neb.setChannel(channel);
+
+ final NotifEvent notif = mNoMan.postNotif(neb);
+ final NotificationEntry entry = mCollectionListener.getEntry(notif.key);
+
+ when(mMainHandler.hasCallbacks(any())).thenReturn(false);
+ when(mMainHandler.postDelayed(any(), eq(1000L))).thenAnswer((Answer) invocation -> {
+ final Runnable runnable = invocation.getArgument(0);
+ runnable.run();
+ return null;
+ });
+
+ clearInvocations(mBuildListener);
+
+ // WHEN
+ mNotifHandler.onNotificationChannelModified(TEST_PACKAGE,
+ entry.getSbn().getUser(), channel, NOTIFICATION_CHANNEL_OR_GROUP_UPDATED);
+
+ // THEN
+ verifyBuiltList(List.of(entry));
+ }
+
+ @Test
public void testRankingsAreUpdatedForOtherNotifs() {
// GIVEN a collection with one notif
NotifEvent notif1 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 3)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLoggerTest.kt
index bd03903..33a838e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLoggerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryLoggerTest.kt
@@ -20,6 +20,7 @@
import android.app.StatsManager
import android.graphics.Bitmap
import android.graphics.drawable.Icon
+import android.stats.sysui.NotificationEnums
import android.testing.AndroidTestingRunner
import android.util.StatsEvent
import androidx.test.filters.SmallTest
@@ -31,10 +32,12 @@
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.time.FakeSystemClock
+import com.google.common.truth.Expect
import com.google.common.truth.Truth.assertThat
import java.lang.RuntimeException
import kotlinx.coroutines.Dispatchers
import org.junit.Before
+import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
@@ -45,6 +48,8 @@
@RunWith(AndroidTestingRunner::class)
class NotificationMemoryLoggerTest : SysuiTestCase() {
+ @Rule @JvmField val expect = Expect.create()
+
private val bgExecutor = FakeExecutor(FakeSystemClock())
private val immediate = Dispatchers.Main.immediate
@@ -132,6 +137,123 @@
.isEqualTo(StatsManager.PULL_SKIP)
}
+ @Test
+ fun aggregateMemoryUsageData_returnsCorrectlyAggregatedSamePackageData() {
+ val usage = getPresetMemoryUsages()
+ val aggregateUsage = aggregateMemoryUsageData(usage)
+
+ assertThat(aggregateUsage).hasSize(3)
+ assertThat(aggregateUsage)
+ .containsKey(Pair("package 1", NotificationEnums.STYLE_BIG_PICTURE))
+
+ // Aggregated fields
+ val aggregatedData =
+ aggregateUsage[Pair("package 1", NotificationEnums.STYLE_BIG_PICTURE)]!!
+ val presetUsage1 = usage[0]
+ val presetUsage2 = usage[1]
+ assertAggregatedData(
+ aggregatedData,
+ 2,
+ 2,
+ smallIconObject =
+ presetUsage1.objectUsage.smallIcon + presetUsage2.objectUsage.smallIcon,
+ smallIconBitmapCount = 2,
+ largeIconObject =
+ presetUsage1.objectUsage.largeIcon + presetUsage2.objectUsage.largeIcon,
+ largeIconBitmapCount = 2,
+ bigPictureObject =
+ presetUsage1.objectUsage.bigPicture + presetUsage2.objectUsage.bigPicture,
+ bigPictureBitmapCount = 2,
+ extras = presetUsage1.objectUsage.extras + presetUsage2.objectUsage.extras,
+ extenders = presetUsage1.objectUsage.extender + presetUsage2.objectUsage.extender,
+ // Only totals need to be summarized.
+ smallIconViews =
+ presetUsage1.viewUsage[0].smallIcon + presetUsage2.viewUsage[0].smallIcon,
+ largeIconViews =
+ presetUsage1.viewUsage[0].largeIcon + presetUsage2.viewUsage[0].largeIcon,
+ systemIconViews =
+ presetUsage1.viewUsage[0].systemIcons + presetUsage2.viewUsage[0].systemIcons,
+ styleViews = presetUsage1.viewUsage[0].style + presetUsage2.viewUsage[0].style,
+ customViews =
+ presetUsage1.viewUsage[0].customViews + presetUsage2.viewUsage[0].customViews,
+ softwareBitmaps =
+ presetUsage1.viewUsage[0].softwareBitmapsPenalty +
+ presetUsage2.viewUsage[0].softwareBitmapsPenalty,
+ seenCount = 0
+ )
+ }
+
+ @Test
+ fun aggregateMemoryUsageData_correctlySeparatesDifferentStyles() {
+ val usage = getPresetMemoryUsages()
+ val aggregateUsage = aggregateMemoryUsageData(usage)
+
+ assertThat(aggregateUsage).hasSize(3)
+ assertThat(aggregateUsage)
+ .containsKey(Pair("package 1", NotificationEnums.STYLE_BIG_PICTURE))
+ assertThat(aggregateUsage).containsKey(Pair("package 1", NotificationEnums.STYLE_BIG_TEXT))
+
+ // Different style should be separate
+ val separateStyleData =
+ aggregateUsage[Pair("package 1", NotificationEnums.STYLE_BIG_TEXT)]!!
+ val presetUsage = usage[2]
+ assertAggregatedData(
+ separateStyleData,
+ 1,
+ 1,
+ presetUsage.objectUsage.smallIcon,
+ 1,
+ presetUsage.objectUsage.largeIcon,
+ 1,
+ presetUsage.objectUsage.bigPicture,
+ 1,
+ presetUsage.objectUsage.extras,
+ presetUsage.objectUsage.extender,
+ presetUsage.viewUsage[0].smallIcon,
+ presetUsage.viewUsage[0].largeIcon,
+ presetUsage.viewUsage[0].systemIcons,
+ presetUsage.viewUsage[0].style,
+ presetUsage.viewUsage[0].customViews,
+ presetUsage.viewUsage[0].softwareBitmapsPenalty,
+ 0
+ )
+ }
+
+ @Test
+ fun aggregateMemoryUsageData_correctlySeparatesDifferentProcess() {
+ val usage = getPresetMemoryUsages()
+ val aggregateUsage = aggregateMemoryUsageData(usage)
+
+ assertThat(aggregateUsage).hasSize(3)
+ assertThat(aggregateUsage)
+ .containsKey(Pair("package 2", NotificationEnums.STYLE_BIG_PICTURE))
+
+ // Different UID/package should also be separate
+ val separatePackageData =
+ aggregateUsage[Pair("package 2", NotificationEnums.STYLE_BIG_PICTURE)]!!
+ val presetUsage = usage[3]
+ assertAggregatedData(
+ separatePackageData,
+ 1,
+ 1,
+ presetUsage.objectUsage.smallIcon,
+ 1,
+ presetUsage.objectUsage.largeIcon,
+ 1,
+ presetUsage.objectUsage.bigPicture,
+ 1,
+ presetUsage.objectUsage.extras,
+ presetUsage.objectUsage.extender,
+ presetUsage.viewUsage[0].smallIcon,
+ presetUsage.viewUsage[0].largeIcon,
+ presetUsage.viewUsage[0].systemIcons,
+ presetUsage.viewUsage[0].style,
+ presetUsage.viewUsage[0].customViews,
+ presetUsage.viewUsage[0].softwareBitmapsPenalty,
+ 0
+ )
+ }
+
private fun createLoggerWithNotifications(
notifications: List<Notification>
): NotificationMemoryLogger {
@@ -143,4 +265,182 @@
whenever(pipeline.allNotifs).thenReturn(notifications)
return NotificationMemoryLogger(pipeline, statsManager, immediate, bgExecutor)
}
+
+ /**
+ * Short hand for making sure the passed NotificationMemoryUseAtomBuilder object contains
+ * expected values.
+ */
+ private fun assertAggregatedData(
+ value: NotificationMemoryLogger.NotificationMemoryUseAtomBuilder,
+ count: Int,
+ countWithInflatedViews: Int,
+ smallIconObject: Int,
+ smallIconBitmapCount: Int,
+ largeIconObject: Int,
+ largeIconBitmapCount: Int,
+ bigPictureObject: Int,
+ bigPictureBitmapCount: Int,
+ extras: Int,
+ extenders: Int,
+ smallIconViews: Int,
+ largeIconViews: Int,
+ systemIconViews: Int,
+ styleViews: Int,
+ customViews: Int,
+ softwareBitmaps: Int,
+ seenCount: Int
+ ) {
+ expect.withMessage("count").that(value.count).isEqualTo(count)
+ expect
+ .withMessage("countWithInflatedViews")
+ .that(value.countWithInflatedViews)
+ .isEqualTo(countWithInflatedViews)
+ expect.withMessage("smallIconObject").that(value.smallIconObject).isEqualTo(smallIconObject)
+ expect
+ .withMessage("smallIconBitmapCount")
+ .that(value.smallIconBitmapCount)
+ .isEqualTo(smallIconBitmapCount)
+ expect.withMessage("largeIconObject").that(value.largeIconObject).isEqualTo(largeIconObject)
+ expect
+ .withMessage("largeIconBitmapCount")
+ .that(value.largeIconBitmapCount)
+ .isEqualTo(largeIconBitmapCount)
+ expect
+ .withMessage("bigPictureObject")
+ .that(value.bigPictureObject)
+ .isEqualTo(bigPictureObject)
+ expect
+ .withMessage("bigPictureBitmapCount")
+ .that(value.bigPictureBitmapCount)
+ .isEqualTo(bigPictureBitmapCount)
+ expect.withMessage("extras").that(value.extras).isEqualTo(extras)
+ expect.withMessage("extenders").that(value.extenders).isEqualTo(extenders)
+ expect.withMessage("smallIconViews").that(value.smallIconViews).isEqualTo(smallIconViews)
+ expect.withMessage("largeIconViews").that(value.largeIconViews).isEqualTo(largeIconViews)
+ expect.withMessage("systemIconViews").that(value.systemIconViews).isEqualTo(systemIconViews)
+ expect.withMessage("styleViews").that(value.styleViews).isEqualTo(styleViews)
+ expect.withMessage("customViews").that(value.customViews).isEqualTo(customViews)
+ expect.withMessage("softwareBitmaps").that(value.softwareBitmaps).isEqualTo(softwareBitmaps)
+ expect.withMessage("seenCount").that(value.seenCount).isEqualTo(seenCount)
+ }
+
+ /** Generates a static set of [NotificationMemoryUsage] objects. */
+ private fun getPresetMemoryUsages() =
+ listOf(
+ // A pair of notifications that have to be aggregated, same UID and style
+ NotificationMemoryUsage(
+ "package 1",
+ 384,
+ "key1",
+ Notification.Builder(context).setStyle(Notification.BigPictureStyle()).build(),
+ NotificationObjectUsage(
+ 23,
+ 45,
+ 67,
+ NotificationEnums.STYLE_BIG_PICTURE,
+ 12,
+ 483,
+ 4382,
+ true
+ ),
+ listOf(
+ NotificationViewUsage(ViewType.TOTAL, 493, 584, 4833, 584, 4888, 5843),
+ NotificationViewUsage(
+ ViewType.PRIVATE_CONTRACTED_VIEW,
+ 100,
+ 250,
+ 300,
+ 594,
+ 6000,
+ 5843
+ )
+ )
+ ),
+ NotificationMemoryUsage(
+ "package 1",
+ 384,
+ "key2",
+ Notification.Builder(context).setStyle(Notification.BigPictureStyle()).build(),
+ NotificationObjectUsage(
+ 77,
+ 54,
+ 34,
+ NotificationEnums.STYLE_BIG_PICTURE,
+ 77,
+ 432,
+ 2342,
+ true
+ ),
+ listOf(
+ NotificationViewUsage(ViewType.TOTAL, 3245, 1234, 7653, 543, 765, 7655),
+ NotificationViewUsage(
+ ViewType.PRIVATE_CONTRACTED_VIEW,
+ 160,
+ 350,
+ 300,
+ 5544,
+ 66500,
+ 5433
+ )
+ )
+ ),
+ // Different style is different aggregation
+ NotificationMemoryUsage(
+ "package 1",
+ 384,
+ "key2",
+ Notification.Builder(context).setStyle(Notification.BigTextStyle()).build(),
+ NotificationObjectUsage(
+ 77,
+ 54,
+ 34,
+ NotificationEnums.STYLE_BIG_TEXT,
+ 77,
+ 432,
+ 2342,
+ true
+ ),
+ listOf(
+ NotificationViewUsage(ViewType.TOTAL, 3245, 1234, 7653, 543, 765, 7655),
+ NotificationViewUsage(
+ ViewType.PRIVATE_CONTRACTED_VIEW,
+ 160,
+ 350,
+ 300,
+ 5544,
+ 66500,
+ 5433
+ )
+ )
+ ),
+ // Different package is also different aggregation
+ NotificationMemoryUsage(
+ "package 2",
+ 684,
+ "key2",
+ Notification.Builder(context).setStyle(Notification.BigPictureStyle()).build(),
+ NotificationObjectUsage(
+ 32,
+ 654,
+ 234,
+ NotificationEnums.STYLE_BIG_PICTURE,
+ 211,
+ 776,
+ 435,
+ true
+ ),
+ listOf(
+ NotificationViewUsage(ViewType.TOTAL, 4355, 6543, 4322, 5435, 6546, 65485),
+ NotificationViewUsage(
+ ViewType.PRIVATE_CONTRACTED_VIEW,
+ 6546,
+ 7657,
+ 4353,
+ 6546,
+ 76575,
+ 54654
+ )
+ )
+ )
+ )
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java
index b879cf2..48573c6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java
@@ -46,6 +46,7 @@
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.CameraLauncher;
import com.android.systemui.shade.NotificationPanelViewController;
+import com.android.systemui.shade.QuickSettingsController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DisableFlagsLogger;
@@ -73,6 +74,7 @@
@Mock private CentralSurfaces mCentralSurfaces;
@Mock private ShadeController mShadeController;
@Mock private CommandQueue mCommandQueue;
+ @Mock private QuickSettingsController mQuickSettingsController;
@Mock private NotificationPanelViewController mNotificationPanelViewController;
@Mock private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
private final MetricsLogger mMetricsLogger = new FakeMetricsLogger();
@@ -101,6 +103,7 @@
mSbcqCallbacks = new CentralSurfacesCommandQueueCallbacks(
mCentralSurfaces,
+ mQuickSettingsController,
mContext,
mContext.getResources(),
mShadeController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
index 0605398..dbf416e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
@@ -126,6 +126,7 @@
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
import com.android.systemui.shade.NotificationShadeWindowViewController;
+import com.android.systemui.shade.QuickSettingsController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.shade.ShadeControllerImpl;
import com.android.systemui.shade.ShadeExpansionStateManager;
@@ -218,6 +219,7 @@
@Mock private HeadsUpManagerPhone mHeadsUpManager;
@Mock private NotificationPanelViewController mNotificationPanelViewController;
@Mock private NotificationPanelView mNotificationPanelView;
+ @Mock private QuickSettingsController mQuickSettingsController;
@Mock private IStatusBarService mBarService;
@Mock private IDreamManager mDreamManager;
@Mock private LightRevealScrimViewModel mLightRevealScrimViewModel;
@@ -546,6 +548,7 @@
// initialized automatically and make NPVC private.
mCentralSurfaces.mNotificationShadeWindowView = mNotificationShadeWindowView;
mCentralSurfaces.mNotificationPanelViewController = mNotificationPanelViewController;
+ mCentralSurfaces.mQsController = mQuickSettingsController;
mCentralSurfaces.mDozeScrimController = mDozeScrimController;
mCentralSurfaces.mPresenter = mNotificationPresenter;
mCentralSurfaces.mKeyguardIndicationController = mKeyguardIndicationController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
index 8841521..5bb25f5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
@@ -43,6 +43,7 @@
import com.android.systemui.settings.FakeDisplayTracker;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
+import com.android.systemui.shade.QuickSettingsController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.KeyguardIndicationController;
@@ -112,6 +113,7 @@
mStatusBarNotificationPresenter = new StatusBarNotificationPresenter(
mContext,
mock(NotificationPanelViewController.class),
+ mock(QuickSettingsController.class),
mock(HeadsUpManagerPhone.class),
notificationShadeWindowView,
mock(ActivityStarter.class),
diff --git a/services/core/java/com/android/server/audio/AudioDeviceBroker.java b/services/core/java/com/android/server/audio/AudioDeviceBroker.java
index cf880eb..6410142 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceBroker.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceBroker.java
@@ -1218,6 +1218,10 @@
sendILMsg(MSG_IL_BTA2DP_TIMEOUT, SENDMSG_QUEUE, a2dpCodec, address, delayMs);
}
+ /*package*/ void setLeAudioTimeout(String address, int device, int delayMs) {
+ sendILMsg(MSG_IL_BTLEAUDIO_TIMEOUT, SENDMSG_QUEUE, device, address, delayMs);
+ }
+
/*package*/ void setAvrcpAbsoluteVolumeSupported(boolean supported) {
synchronized (mDeviceStateLock) {
mBtHelper.setAvrcpAbsoluteVolumeSupported(supported);
@@ -1422,6 +1426,13 @@
mDeviceInventory.onMakeA2dpDeviceUnavailableNow((String) msg.obj, msg.arg1);
}
break;
+ case MSG_IL_BTLEAUDIO_TIMEOUT:
+ // msg.obj == address of LE Audio device
+ synchronized (mDeviceStateLock) {
+ mDeviceInventory.onMakeLeAudioDeviceUnavailableNow(
+ (String) msg.obj, msg.arg1);
+ }
+ break;
case MSG_L_A2DP_DEVICE_CONFIG_CHANGE:
final BluetoothDevice btDevice = (BluetoothDevice) msg.obj;
synchronized (mDeviceStateLock) {
@@ -1649,11 +1660,14 @@
// process set volume for Le Audio, obj is BleVolumeInfo
private static final int MSG_II_SET_LE_AUDIO_OUT_VOLUME = 46;
+ private static final int MSG_IL_BTLEAUDIO_TIMEOUT = 49;
+
private static boolean isMessageHandledUnderWakelock(int msgId) {
switch(msgId) {
case MSG_L_SET_WIRED_DEVICE_CONNECTION_STATE:
case MSG_L_SET_BT_ACTIVE_DEVICE:
case MSG_IL_BTA2DP_TIMEOUT:
+ case MSG_IL_BTLEAUDIO_TIMEOUT:
case MSG_L_A2DP_DEVICE_CONFIG_CHANGE:
case MSG_TOGGLE_HDMI:
case MSG_L_A2DP_DEVICE_CONNECTION_CHANGE_EXT:
@@ -1744,6 +1758,7 @@
case MSG_L_SET_BT_ACTIVE_DEVICE:
case MSG_L_SET_WIRED_DEVICE_CONNECTION_STATE:
case MSG_IL_BTA2DP_TIMEOUT:
+ case MSG_IL_BTLEAUDIO_TIMEOUT:
case MSG_L_A2DP_DEVICE_CONFIG_CHANGE:
if (sLastDeviceConnectMsgTime >= time) {
// add a little delay to make sure messages are ordered as expected
diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
index 35da73e..a74f4154 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
@@ -374,7 +374,7 @@
case BluetoothProfile.LE_AUDIO:
case BluetoothProfile.LE_AUDIO_BROADCAST:
if (switchToUnavailable) {
- makeLeAudioDeviceUnavailable(address, btInfo.mAudioSystemDevice);
+ makeLeAudioDeviceUnavailableNow(address, btInfo.mAudioSystemDevice);
} else if (switchToAvailable) {
makeLeAudioDeviceAvailable(address, BtHelper.getName(btInfo.mDevice),
streamType, btInfo.mVolume == -1 ? -1 : btInfo.mVolume * 10,
@@ -486,6 +486,12 @@
}
}
+ /*package*/ void onMakeLeAudioDeviceUnavailableNow(String address, int device) {
+ synchronized (mDevicesLock) {
+ makeLeAudioDeviceUnavailableNow(address, device);
+ }
+ }
+
/*package*/ void onReportNewRoutes() {
int n = mRoutesObservers.beginBroadcast();
if (n > 0) {
@@ -883,10 +889,11 @@
new MediaMetrics.Item(mMetricsId + "disconnectLeAudio")
.record();
if (toRemove.size() > 0) {
- final int delay = checkSendBecomingNoisyIntentInt(device, 0,
+ final int delay = checkSendBecomingNoisyIntentInt(device,
+ AudioService.CONNECTION_STATE_DISCONNECTED,
AudioSystem.DEVICE_NONE);
toRemove.stream().forEach(deviceAddress ->
- makeLeAudioDeviceUnavailable(deviceAddress, device)
+ makeLeAudioDeviceUnavailableLater(deviceAddress, device, delay)
);
}
}
@@ -1187,9 +1194,21 @@
*/
mDeviceBroker.setBluetoothA2dpOnInt(true, false /*fromA2dp*/, eventSource);
- AudioSystem.setDeviceConnectionState(new AudioDeviceAttributes(device, address, name),
+ final int res = AudioSystem.setDeviceConnectionState(new AudioDeviceAttributes(
+ device, address, name),
AudioSystem.DEVICE_STATE_AVAILABLE,
AudioSystem.AUDIO_FORMAT_DEFAULT);
+ if (res != AudioSystem.AUDIO_STATUS_OK) {
+ AudioService.sDeviceLogger.log(new AudioEventLogger.StringEvent(
+ "APM failed to make available LE Audio device addr=" + address
+ + " error=" + res).printLog(TAG));
+ // TODO: connection failed, stop here
+ // TODO: return;
+ } else {
+ AudioService.sDeviceLogger.log(new AudioEventLogger.StringEvent(
+ "LE Audio device addr=" + address + " now available").printLog(TAG));
+ }
+
mConnectedDevices.put(DeviceInfo.makeDeviceListKey(device, address),
new DeviceInfo(device, name, address, AudioSystem.AUDIO_FORMAT_DEFAULT));
mDeviceBroker.postAccessoryPlugMediaUnmute(device);
@@ -1210,11 +1229,23 @@
}
@GuardedBy("mDevicesLock")
- private void makeLeAudioDeviceUnavailable(String address, int device) {
+ private void makeLeAudioDeviceUnavailableNow(String address, int device) {
if (device != AudioSystem.DEVICE_NONE) {
- AudioSystem.setDeviceConnectionState(new AudioDeviceAttributes(device, address),
+ final int res = AudioSystem.setDeviceConnectionState(new AudioDeviceAttributes(
+ device, address),
AudioSystem.DEVICE_STATE_UNAVAILABLE,
AudioSystem.AUDIO_FORMAT_DEFAULT);
+
+ if (res != AudioSystem.AUDIO_STATUS_OK) {
+ AudioService.sDeviceLogger.log(new AudioEventLogger.StringEvent(
+ "APM failed to make unavailable LE Audio device addr=" + address
+ + " error=" + res).printLog(TAG));
+ // TODO: failed to disconnect, stop here
+ // TODO: return;
+ } else {
+ AudioService.sDeviceLogger.log((new AudioEventLogger.StringEvent(
+ "LE Audio device addr=" + address + " made unavailable")).printLog(TAG));
+ }
mConnectedDevices.remove(DeviceInfo.makeDeviceListKey(device, address));
}
@@ -1222,6 +1253,14 @@
}
@GuardedBy("mDevicesLock")
+ private void makeLeAudioDeviceUnavailableLater(String address, int device, int delayMs) {
+ // the device will be made unavailable later, so consider it disconnected right away
+ mConnectedDevices.remove(DeviceInfo.makeDeviceListKey(device, address));
+ // send the delayed message to make the device unavailable later
+ mDeviceBroker.setLeAudioTimeout(address, device, delayMs);
+ }
+
+ @GuardedBy("mDevicesLock")
private void setCurrentAudioRouteNameIfPossible(String name, boolean fromA2dp) {
synchronized (mCurAudioRoutes) {
if (TextUtils.equals(mCurAudioRoutes.bluetoothName, name)) {
diff --git a/services/core/java/com/android/server/audio/BtHelper.java b/services/core/java/com/android/server/audio/BtHelper.java
index f959821..691ce93 100644
--- a/services/core/java/com/android/server/audio/BtHelper.java
+++ b/services/core/java/com/android/server/audio/BtHelper.java
@@ -291,9 +291,9 @@
if (mA2dp == null) {
return AudioSystem.AUDIO_FORMAT_DEFAULT;
}
- final BluetoothCodecStatus btCodecStatus = null;
+ BluetoothCodecStatus btCodecStatus = null;
try {
- mA2dp.getCodecStatus(device);
+ btCodecStatus = mA2dp.getCodecStatus(device);
} catch (Exception e) {
Log.e(TAG, "Exception while getting status of " + device, e);
}
@@ -489,7 +489,7 @@
}
// @GuardedBy("AudioDeviceBroker.mSetModeLock")
- @GuardedBy("AudioDeviceBroker.mDeviceStateLock")
+ //@GuardedBy("AudioDeviceBroker.mDeviceStateLock")
/*package*/ synchronized void resetBluetoothSco() {
mScoAudioState = SCO_STATE_INACTIVE;
broadcastScoConnectionState(AudioManager.SCO_AUDIO_STATE_DISCONNECTED);
@@ -532,7 +532,7 @@
}
}
- //@GuardedBy("AudioDeviceBroker.mDeviceStateLock")
+ @GuardedBy("AudioDeviceBroker.mDeviceStateLock")
/*package*/ synchronized void onBtProfileConnected(int profile, BluetoothProfile proxy) {
if (profile == BluetoothProfile.HEADSET) {
onHeadsetProfileConnected((BluetoothHeadset) proxy);
@@ -564,7 +564,7 @@
}
// @GuardedBy("AudioDeviceBroker.mSetModeLock")
- @GuardedBy("AudioDeviceBroker.mDeviceStateLock")
+ //@GuardedBy("AudioDeviceBroker.mDeviceStateLock")
/*package*/ synchronized void onHeadsetProfileConnected(BluetoothHeadset headset) {
// Discard timeout message
mDeviceBroker.handleCancelFailureToConnectToBtHeadsetService();
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java
index 598e2b9..94b67ce 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java
@@ -452,6 +452,13 @@
return -1;
}
+ if (!Utils.isUserEncryptedOrLockdown(mLockPatternUtils, userId)) {
+ // If this happens, something in KeyguardUpdateMonitor is wrong. This should only
+ // ever be invoked when the user is encrypted or lockdown.
+ Slog.e(TAG, "detectFingerprint invoked when user is not encrypted or lockdown");
+ return -1;
+ }
+
final Pair<Integer, ServiceProvider> provider = getSingleProvider();
if (provider == null) {
Slog.w(TAG, "Null provider for detectFingerprint");
diff --git a/services/core/java/com/android/server/devicestate/DeviceStatePolicy.java b/services/core/java/com/android/server/devicestate/DeviceStatePolicy.java
index 5c4e2f3..c876a8b 100644
--- a/services/core/java/com/android/server/devicestate/DeviceStatePolicy.java
+++ b/services/core/java/com/android/server/devicestate/DeviceStatePolicy.java
@@ -20,6 +20,7 @@
import android.content.Context;
import android.content.res.Resources;
import android.text.TextUtils;
+import android.util.Slog;
import com.android.server.policy.DeviceStatePolicyImpl;
@@ -92,11 +93,16 @@
try {
return (DeviceStatePolicy.Provider) Class.forName(name).newInstance();
- } catch (ReflectiveOperationException | ClassCastException e) {
+ } catch (ClassCastException e) {
throw new IllegalStateException("Couldn't instantiate class " + name
+ " for config_deviceSpecificDeviceStatePolicyProvider:"
+ " make sure it has a public zero-argument constructor"
- + " and implements DeviceStatePolicy.Provider", e);
+ + " and implements DeviceStatePolicy.Provider");
+ } catch (ReflectiveOperationException e) {
+ Slog.e("DeviceStatePolicy", "Couldn't instantiate class " + name
+ + " for config_deviceSpecificDeviceStatePolicyProvider:"
+ + " using default provider", e);
+ return new DeviceStatePolicy.DefaultProvider();
}
}
}
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 4341634..909c531 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -434,6 +434,8 @@
private boolean mIsDocked;
private boolean mIsDreaming;
+ private boolean mBootCompleted = false;
+
private final BroadcastReceiver mIdleModeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -573,6 +575,12 @@
}
}
} else if (phase == PHASE_BOOT_COMPLETED) {
+ synchronized (mSyncRoot) {
+ mBootCompleted = true;
+ for (int i = 0; i < mDisplayPowerControllers.size(); i++) {
+ mDisplayPowerControllers.valueAt(i).onBootCompleted();
+ }
+ }
mDisplayModeDirector.onBootCompleted();
mLogicalDisplayMapper.onBootCompleted();
}
@@ -2680,7 +2688,7 @@
final DisplayPowerController displayPowerController = new DisplayPowerController(
mContext, mDisplayPowerCallbacks, mPowerHandler, mSensorManager,
mDisplayBlanker, display, mBrightnessTracker, brightnessSetting,
- () -> handleBrightnessChange(display), hbmMetadata);
+ () -> handleBrightnessChange(display), hbmMetadata, mBootCompleted);
mDisplayPowerControllers.append(display.getDisplayIdLocked(), displayPowerController);
}
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index b431306..7957ed6 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -132,6 +132,8 @@
private static final int MSG_UPDATE_RBC = 11;
private static final int MSG_BRIGHTNESS_RAMP_DONE = 12;
private static final int MSG_STATSD_HBM_BRIGHTNESS = 13;
+ private static final int MSG_SWITCH_USER = 14;
+ private static final int MSG_BOOT_COMPLETED = 15;
private static final int PROXIMITY_UNKNOWN = -1;
private static final int PROXIMITY_NEGATIVE = 0;
@@ -505,6 +507,8 @@
private boolean mIsEnabled;
private boolean mIsInTransition;
+ private boolean mBootCompleted;
+
/**
* Creates the display power controller.
*/
@@ -512,7 +516,8 @@
DisplayPowerCallbacks callbacks, Handler handler,
SensorManager sensorManager, DisplayBlanker blanker, LogicalDisplay logicalDisplay,
BrightnessTracker brightnessTracker, BrightnessSetting brightnessSetting,
- Runnable onBrightnessChangeRunnable, HighBrightnessModeMetadata hbmMetadata) {
+ Runnable onBrightnessChangeRunnable, HighBrightnessModeMetadata hbmMetadata,
+ boolean bootCompleted) {
mLogicalDisplay = logicalDisplay;
mDisplayId = mLogicalDisplay.getDisplayIdLocked();
final String displayIdStr = "[" + mDisplayId + "]";
@@ -654,6 +659,7 @@
mTemporaryAutoBrightnessAdjustment = PowerManager.BRIGHTNESS_INVALID_FLOAT;
mPendingAutoBrightnessAdjustment = PowerManager.BRIGHTNESS_INVALID_FLOAT;
+ mBootCompleted = bootCompleted;
}
private void applyReduceBrightColorsSplineAdjustment() {
@@ -703,6 +709,11 @@
}
public void onSwitchUser(@UserIdInt int newUserId) {
+ Message msg = mHandler.obtainMessage(MSG_SWITCH_USER, newUserId);
+ mHandler.sendMessage(msg);
+ }
+
+ private void handleOnSwitchUser(@UserIdInt int newUserId) {
handleSettingsChange(true /* userSwitch */);
handleBrightnessModeChange();
if (mBrightnessTracker != null) {
@@ -1364,7 +1375,7 @@
// Initialize things the first time the power state is changed.
if (mustInitialize) {
- initialize(state);
+ initialize(readyToUpdateDisplayState() ? state : Display.STATE_UNKNOWN);
}
// Animate the screen state change unless already animating.
@@ -2044,7 +2055,8 @@
}
}
- if (!reportOnly && mPowerState.getScreenState() != state) {
+ if (!reportOnly && mPowerState.getScreenState() != state
+ && readyToUpdateDisplayState()) {
Trace.traceCounter(Trace.TRACE_TAG_POWER, "ScreenState", state);
// TODO(b/153319140) remove when we can get this from the above trace invocation
SystemProperties.set("debug.tracing.screen_state", String.valueOf(state));
@@ -2491,6 +2503,10 @@
mBrightnessSetting.setBrightness(brightnessValue);
}
+ void onBootCompleted() {
+ mHandler.obtainMessage(MSG_BOOT_COMPLETED).sendToTarget();
+ }
+
private void updateScreenBrightnessSetting(float brightnessValue) {
if (!isValidBrightnessValue(brightnessValue)
|| brightnessValue == mCurrentScreenBrightnessSetting) {
@@ -2636,6 +2652,17 @@
}
};
+ /**
+ * Indicates whether the display state is ready to update. If this is the default display, we
+ * want to update it right away so that we can draw the boot animation on it. If it is not
+ * the default display, drawing the boot animation on it would look incorrect, so we need
+ * to wait until boot is completed.
+ * @return True if the display state is ready to update
+ */
+ private boolean readyToUpdateDisplayState() {
+ return mDisplayId == Display.DEFAULT_DISPLAY || mBootCompleted;
+ }
+
public void dump(final PrintWriter pw) {
synchronized (mLock) {
pw.println();
@@ -3167,6 +3194,15 @@
case MSG_STATSD_HBM_BRIGHTNESS:
logHbmBrightnessStats(Float.intBitsToFloat(msg.arg1), msg.arg2);
break;
+
+ case MSG_SWITCH_USER:
+ handleOnSwitchUser(msg.arg1);
+ break;
+
+ case MSG_BOOT_COMPLETED:
+ mBootCompleted = true;
+ updatePowerState();
+ break;
}
}
}
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
index 78cffa6..59794f4 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
@@ -80,6 +80,7 @@
import android.hardware.fingerprint.FingerprintManager;
import android.net.Uri;
import android.os.Binder;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -117,6 +118,7 @@
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.EventLog;
+import android.util.Log;
import android.util.LongSparseArray;
import android.util.Slog;
import android.util.SparseArray;
@@ -203,7 +205,7 @@
private static final String TAG = "LockSettingsService";
private static final String PERMISSION = ACCESS_KEYGUARD_SECURE_STORAGE;
private static final String BIOMETRIC_PERMISSION = MANAGE_BIOMETRIC;
- private static final boolean DEBUG = false;
+ private static final boolean DEBUG = Build.IS_DEBUGGABLE && Log.isLoggable(TAG, Log.DEBUG);
private static final int PROFILE_KEY_IV_SIZE = 12;
private static final String SEPARATE_PROFILE_CHALLENGE_KEY = "lockscreen.profilechallenge";
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsStrongAuth.java b/services/core/java/com/android/server/locksettings/LockSettingsStrongAuth.java
index 1203769..678698b 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsStrongAuth.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsStrongAuth.java
@@ -25,6 +25,7 @@
import android.app.admin.DevicePolicyManager;
import android.app.trust.IStrongAuthTracker;
import android.content.Context;
+import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -33,6 +34,7 @@
import android.os.SystemClock;
import android.os.UserHandle;
import android.util.ArrayMap;
+import android.util.Log;
import android.util.Slog;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
@@ -46,8 +48,8 @@
*/
public class LockSettingsStrongAuth {
- private static final String TAG = "LockSettings";
- private static final boolean DEBUG = false;
+ private static final String TAG = "LockSettingsStrongAuth";
+ private static final boolean DEBUG = Build.IS_DEBUGGABLE && Log.isLoggable(TAG, Log.DEBUG);
private static final int MSG_REQUIRE_STRONG_AUTH = 1;
private static final int MSG_REGISTER_TRACKER = 2;
@@ -267,6 +269,7 @@
}
private void handleScheduleStrongAuthTimeout(int userId) {
+ if (DEBUG) Slog.d(TAG, "handleScheduleStrongAuthTimeout for userId=" + userId);
rescheduleStrongAuthTimeoutAlarm(mInjector.getElapsedRealtimeMs(), userId);
// cancel current non-strong biometric alarm listener for the user (if there was one)
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index b5fceb5..ff10cbc 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -8543,6 +8543,9 @@
if (interceptBefore && !record.isIntercepted()
&& record.isNewEnoughForAlerting(System.currentTimeMillis())) {
buzzBeepBlinkLocked(record);
+
+ // Log alert after change in intercepted state to Zen Log as well
+ ZenLog.traceAlertOnUpdatedIntercept(record);
}
}
if (changed) {
diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java
index d344306..1501d69 100644
--- a/services/core/java/com/android/server/notification/NotificationRecord.java
+++ b/services/core/java/com/android/server/notification/NotificationRecord.java
@@ -114,6 +114,8 @@
// is this notification currently being intercepted by Zen Mode?
private boolean mIntercept;
+ // has the intercept value been set explicitly? we only want to log it if new or changed
+ private boolean mInterceptSet;
// is this notification hidden since the app pkg is suspended?
private boolean mHidden;
@@ -914,6 +916,7 @@
public boolean setIntercepted(boolean intercept) {
mIntercept = intercept;
+ mInterceptSet = true;
return mIntercept;
}
@@ -934,6 +937,10 @@
return mIntercept;
}
+ public boolean hasInterceptBeenSet() {
+ return mInterceptSet;
+ }
+
public boolean isNewEnoughForAlerting(long now) {
return getFreshnessMs(now) <= MAX_SOUND_DELAY_MS;
}
diff --git a/services/core/java/com/android/server/notification/ZenLog.java b/services/core/java/com/android/server/notification/ZenLog.java
index c0bc474..35b94e7 100644
--- a/services/core/java/com/android/server/notification/ZenLog.java
+++ b/services/core/java/com/android/server/notification/ZenLog.java
@@ -68,20 +68,23 @@
private static final int TYPE_MATCHES_CALL_FILTER = 18;
private static final int TYPE_RECORD_CALLER = 19;
private static final int TYPE_CHECK_REPEAT_CALLER = 20;
+ private static final int TYPE_ALERT_ON_UPDATED_INTERCEPT = 21;
private static int sNext;
private static int sSize;
public static void traceIntercepted(NotificationRecord record, String reason) {
- if (record != null && record.isIntercepted()) return; // already logged
append(TYPE_INTERCEPTED, record.getKey() + "," + reason);
}
public static void traceNotIntercepted(NotificationRecord record, String reason) {
- if (record != null && record.isUpdate) return; // already logged
append(TYPE_NOT_INTERCEPTED, record.getKey() + "," + reason);
}
+ public static void traceAlertOnUpdatedIntercept(NotificationRecord record) {
+ append(TYPE_ALERT_ON_UPDATED_INTERCEPT, record.getKey());
+ }
+
public static void traceSetRingerModeExternal(int ringerModeOld, int ringerModeNew,
String caller, int ringerModeInternalIn, int ringerModeInternalOut) {
append(TYPE_SET_RINGER_MODE_EXTERNAL, caller + ",e:" +
@@ -219,6 +222,7 @@
case TYPE_MATCHES_CALL_FILTER: return "matches_call_filter";
case TYPE_RECORD_CALLER: return "record_caller";
case TYPE_CHECK_REPEAT_CALLER: return "check_repeat_caller";
+ case TYPE_ALERT_ON_UPDATED_INTERCEPT: return "alert_on_updated_intercept";
default: return "unknown";
}
}
diff --git a/services/core/java/com/android/server/notification/ZenModeFiltering.java b/services/core/java/com/android/server/notification/ZenModeFiltering.java
index db0ce2e..5b7b0c1 100644
--- a/services/core/java/com/android/server/notification/ZenModeFiltering.java
+++ b/services/core/java/com/android/server/notification/ZenModeFiltering.java
@@ -155,85 +155,85 @@
if (isCritical(record)) {
// Zen mode is ignored for critical notifications.
- ZenLog.traceNotIntercepted(record, "criticalNotification");
+ maybeLogInterceptDecision(record, false, "criticalNotification");
return false;
}
// Make an exception to policy for the notification saying that policy has changed
if (NotificationManager.Policy.areAllVisualEffectsSuppressed(policy.suppressedVisualEffects)
&& "android".equals(record.getSbn().getPackageName())
&& SystemMessageProto.SystemMessage.NOTE_ZEN_UPGRADE == record.getSbn().getId()) {
- ZenLog.traceNotIntercepted(record, "systemDndChangedNotification");
+ maybeLogInterceptDecision(record, false, "systemDndChangedNotification");
return false;
}
switch (zen) {
case Global.ZEN_MODE_NO_INTERRUPTIONS:
// #notevenalarms
- ZenLog.traceIntercepted(record, "none");
+ maybeLogInterceptDecision(record, true, "none");
return true;
case Global.ZEN_MODE_ALARMS:
if (isAlarm(record)) {
// Alarms only
- ZenLog.traceNotIntercepted(record, "alarm");
+ maybeLogInterceptDecision(record, false, "alarm");
return false;
}
- ZenLog.traceIntercepted(record, "alarmsOnly");
+ maybeLogInterceptDecision(record, true, "alarmsOnly");
return true;
case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
// allow user-prioritized packages through in priority mode
if (record.getPackagePriority() == Notification.PRIORITY_MAX) {
- ZenLog.traceNotIntercepted(record, "priorityApp");
+ maybeLogInterceptDecision(record, false, "priorityApp");
return false;
}
if (isAlarm(record)) {
if (!policy.allowAlarms()) {
- ZenLog.traceIntercepted(record, "!allowAlarms");
+ maybeLogInterceptDecision(record, true, "!allowAlarms");
return true;
}
- ZenLog.traceNotIntercepted(record, "allowedAlarm");
+ maybeLogInterceptDecision(record, false, "allowedAlarm");
return false;
}
if (isEvent(record)) {
if (!policy.allowEvents()) {
- ZenLog.traceIntercepted(record, "!allowEvents");
+ maybeLogInterceptDecision(record, true, "!allowEvents");
return true;
}
- ZenLog.traceNotIntercepted(record, "allowedEvent");
+ maybeLogInterceptDecision(record, false, "allowedEvent");
return false;
}
if (isReminder(record)) {
if (!policy.allowReminders()) {
- ZenLog.traceIntercepted(record, "!allowReminders");
+ maybeLogInterceptDecision(record, true, "!allowReminders");
return true;
}
- ZenLog.traceNotIntercepted(record, "allowedReminder");
+ maybeLogInterceptDecision(record, false, "allowedReminder");
return false;
}
if (isMedia(record)) {
if (!policy.allowMedia()) {
- ZenLog.traceIntercepted(record, "!allowMedia");
+ maybeLogInterceptDecision(record, true, "!allowMedia");
return true;
}
- ZenLog.traceNotIntercepted(record, "allowedMedia");
+ maybeLogInterceptDecision(record, false, "allowedMedia");
return false;
}
if (isSystem(record)) {
if (!policy.allowSystem()) {
- ZenLog.traceIntercepted(record, "!allowSystem");
+ maybeLogInterceptDecision(record, true, "!allowSystem");
return true;
}
- ZenLog.traceNotIntercepted(record, "allowedSystem");
+ maybeLogInterceptDecision(record, false, "allowedSystem");
return false;
}
if (isConversation(record)) {
if (policy.allowConversations()) {
if (policy.priorityConversationSenders == CONVERSATION_SENDERS_ANYONE) {
- ZenLog.traceNotIntercepted(record, "conversationAnyone");
+ maybeLogInterceptDecision(record, false, "conversationAnyone");
return false;
} else if (policy.priorityConversationSenders
== NotificationManager.Policy.CONVERSATION_SENDERS_IMPORTANT
&& record.getChannel().isImportantConversation()) {
- ZenLog.traceNotIntercepted(record, "conversationMatches");
+ maybeLogInterceptDecision(record, false, "conversationMatches");
return false;
}
}
@@ -244,31 +244,59 @@
if (policy.allowRepeatCallers()
&& REPEAT_CALLERS.isRepeat(
mContext, extras(record), record.getPhoneNumbers())) {
- ZenLog.traceNotIntercepted(record, "repeatCaller");
+ maybeLogInterceptDecision(record, false, "repeatCaller");
return false;
}
if (!policy.allowCalls()) {
- ZenLog.traceIntercepted(record, "!allowCalls");
+ maybeLogInterceptDecision(record, true, "!allowCalls");
return true;
}
return shouldInterceptAudience(policy.allowCallsFrom(), record);
}
if (isMessage(record)) {
if (!policy.allowMessages()) {
- ZenLog.traceIntercepted(record, "!allowMessages");
+ maybeLogInterceptDecision(record, true, "!allowMessages");
return true;
}
return shouldInterceptAudience(policy.allowMessagesFrom(), record);
}
- ZenLog.traceIntercepted(record, "!priority");
+ maybeLogInterceptDecision(record, true, "!priority");
return true;
default:
- ZenLog.traceNotIntercepted(record, "unknownZenMode");
+ maybeLogInterceptDecision(record, false, "unknownZenMode");
return false;
}
}
+ // Consider logging the decision of shouldIntercept for the given record.
+ // This will log the outcome if one of the following is true:
+ // - it's the first time the intercept decision is set for the record
+ // - OR it's not the first time, but the intercept decision changed
+ private static void maybeLogInterceptDecision(NotificationRecord record, boolean intercept,
+ String reason) {
+ boolean interceptBefore = record.isIntercepted();
+ if (record.hasInterceptBeenSet() && (interceptBefore == intercept)) {
+ // this record has already been evaluated for whether it should be intercepted, and
+ // the decision has not changed.
+ return;
+ }
+
+ // add a note to the reason indicating whether it's new or updated
+ String annotatedReason = reason;
+ if (!record.hasInterceptBeenSet()) {
+ annotatedReason = "new:" + reason;
+ } else if (interceptBefore != intercept) {
+ annotatedReason = "updated:" + reason;
+ }
+
+ if (intercept) {
+ ZenLog.traceIntercepted(record, annotatedReason);
+ } else {
+ ZenLog.traceNotIntercepted(record, annotatedReason);
+ }
+ }
+
/**
* Check if the notification is too critical to be suppressed.
*
@@ -285,10 +313,10 @@
private static boolean shouldInterceptAudience(int source, NotificationRecord record) {
float affinity = record.getContactAffinity();
if (!audienceMatches(source, affinity)) {
- ZenLog.traceIntercepted(record, "!audienceMatches,affinity=" + affinity);
+ maybeLogInterceptDecision(record, true, "!audienceMatches,affinity=" + affinity);
return true;
}
- ZenLog.traceNotIntercepted(record, "affinity=" + affinity);
+ maybeLogInterceptDecision(record, false, "affinity=" + affinity);
return false;
}
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
index 20c9a21..9ed5aa7 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
@@ -3268,7 +3268,7 @@
if (Objects.equals(packageName, PLATFORM_PACKAGE_NAME)) {
return true;
}
- if (!pkg.isPrivileged()) {
+ if (!(pkg.isSystem() && pkg.isPrivileged())) {
return true;
}
if (!mPrivilegedPermissionAllowlistSourcePackageNames
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 7370d61..f913cef 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -3324,8 +3324,8 @@
}
@Override
- public void onKeyguardOccludedChangedLw(boolean occluded) {
- if (mKeyguardDelegate != null && mKeyguardDelegate.isShowing()) {
+ public void onKeyguardOccludedChangedLw(boolean occluded, boolean waitAppTransition) {
+ if (mKeyguardDelegate != null && waitAppTransition) {
mPendingKeyguardOccluded = occluded;
mKeyguardOccludedChanged = true;
} else {
diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
index 4f00992..77007fa 100644
--- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java
+++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
@@ -166,9 +166,10 @@
/**
* Called when the Keyguard occluded state changed.
+ *
* @param occluded Whether Keyguard is currently occluded or not.
*/
- void onKeyguardOccludedChangedLw(boolean occluded);
+ void onKeyguardOccludedChangedLw(boolean occluded, boolean waitAppTransition);
/**
* Applies a keyguard occlusion change if one happened.
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index 48258a1..1d21b9d 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -403,8 +403,10 @@
return;
}
- mWindowManager.mPolicy.onKeyguardOccludedChangedLw(isDisplayOccluded(DEFAULT_DISPLAY));
- if (isKeyguardLocked(displayId)) {
+ final boolean waitAppTransition = isKeyguardLocked(displayId);
+ mWindowManager.mPolicy.onKeyguardOccludedChangedLw(isDisplayOccluded(DEFAULT_DISPLAY),
+ waitAppTransition);
+ if (waitAppTransition) {
mService.deferWindowLayout();
try {
mRootWindowContainer.getDefaultDisplay()
diff --git a/services/core/java/com/android/server/wm/LetterboxUiController.java b/services/core/java/com/android/server/wm/LetterboxUiController.java
index 5a481f4..e343768 100644
--- a/services/core/java/com/android/server/wm/LetterboxUiController.java
+++ b/services/core/java/com/android/server/wm/LetterboxUiController.java
@@ -962,8 +962,8 @@
&& (parentConfiguration.orientation == ORIENTATION_LANDSCAPE
&& mActivityRecord.getOrientationForReachability() == ORIENTATION_PORTRAIT)
// Check whether the activity fills the parent vertically.
- && parentConfiguration.windowConfiguration.getBounds().height()
- == mActivityRecord.getBounds().height();
+ && parentConfiguration.windowConfiguration.getAppBounds().height()
+ <= mActivityRecord.getBounds().height();
}
@VisibleForTesting
diff --git a/services/tests/servicestests/src/com/android/server/devicestate/DeviceStatePolicyProviderTest.java b/services/tests/servicestests/src/com/android/server/devicestate/DeviceStatePolicyProviderTest.java
index 0bd81b7..18dc35c 100644
--- a/services/tests/servicestests/src/com/android/server/devicestate/DeviceStatePolicyProviderTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicestate/DeviceStatePolicyProviderTest.java
@@ -16,6 +16,8 @@
package com.android.server.devicestate;
+import static org.hamcrest.Matchers.instanceOf;
+import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertThrows;
@@ -24,8 +26,6 @@
import android.content.res.Resources;
import android.platform.test.annotations.Presubmit;
-import org.hamcrest.Matchers;
-import org.junit.Assert;
import org.junit.Test;
/**
@@ -39,37 +39,35 @@
@Test
public void test_emptyPolicyProvider() {
- Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider("")),
- Matchers.instanceOf(DeviceStatePolicy.DefaultProvider.class));
+ assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider("")),
+ instanceOf(DeviceStatePolicy.DefaultProvider.class));
}
@Test
public void test_nullPolicyProvider() {
- Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(null)),
- Matchers.instanceOf(DeviceStatePolicy.DefaultProvider.class));
+ assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(null)),
+ instanceOf(DeviceStatePolicy.DefaultProvider.class));
}
@Test
public void test_customPolicyProvider() {
- Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(
- TestProvider.class.getName())),
- Matchers.instanceOf(TestProvider.class));
+ assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(
+ TestProvider.class.getName())),
+ instanceOf(TestProvider.class));
}
@Test
public void test_badPolicyProvider_notImplementingProviderInterface() {
- assertThrows(IllegalStateException.class, () -> {
- DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(
- Object.class.getName()));
- });
+ assertThrows(IllegalStateException.class, () ->
+ DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(
+ Object.class.getName())));
}
@Test
- public void test_badPolicyProvider_doesntExist() {
- assertThrows(IllegalStateException.class, () -> {
- DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(
- "com.android.devicestate.nonexistent.policy"));
- });
+ public void test_badPolicyProvider_returnsDefault() {
+ assertThat(DeviceStatePolicy.Provider.fromResources(
+ resourcesWithProvider("com.android.devicestate.nonexistent.policy")),
+ instanceOf(DeviceStatePolicy.DefaultProvider.class));
}
private static Resources resourcesWithProvider(String provider) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/TestWindowManagerPolicy.java b/services/tests/wmtests/src/com/android/server/wm/TestWindowManagerPolicy.java
index d2cb7ba..e2db2e6 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TestWindowManagerPolicy.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TestWindowManagerPolicy.java
@@ -222,7 +222,7 @@
}
@Override
- public void onKeyguardOccludedChangedLw(boolean occluded) {
+ public void onKeyguardOccludedChangedLw(boolean occluded, boolean waitAppTransition) {
}
public void setSafeMode(boolean safeMode) {
diff --git a/tools/aapt2/SdkConstants.cpp b/tools/aapt2/SdkConstants.cpp
index 8ea43abf..34e8edb 100644
--- a/tools/aapt2/SdkConstants.cpp
+++ b/tools/aapt2/SdkConstants.cpp
@@ -27,7 +27,7 @@
static ApiVersion sDevelopmentSdkLevel = 10000;
static const auto sDevelopmentSdkCodeNames =
- std::unordered_set<StringPiece>({"Q", "R", "S", "Sv2", "Tiramisu"});
+ std::unordered_set<StringPiece>({"Q", "R", "S", "Sv2", "Tiramisu", "UpsideDownCake"});
static const std::vector<std::pair<uint16_t, ApiVersion>> sAttrIdMap = {
{0x021c, 1},